As per updated GCS recommendations.
* bin/autoconf.as, bin/autoreconf.in, bin/autoscan.in, ifnames.in,
bin/autoupdate.in: Throughout these files.
* bin/autoheader.in, bin/autom4te.in: Likewise. Also, remove some
useless escaping of the "'" single-quote characters, and reformat
some message for better line wrapping.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
AS_INIT[]dnl -*- shell-script -*-
m4_divert_push([HEADER-COPYRIGHT])dnl
# @configure_input@
-# autoconf -- create `configure' using m4 macros
+# autoconf -- create 'configure' using m4 macros.
# Copyright (C) 1992-1994, 1996, 1999-2012 Free Software Foundation,
# Inc.
Usage: $0 [OPTION]... [TEMPLATE-FILE]
Generate a configuration script from a TEMPLATE-FILE if given, or
-\`configure.ac' if present, or else \`configure.in'. Output is sent
+'configure.ac' if present, or else 'configure.in'. Output is sent
to the standard output if TEMPLATE-FILE is given, else into
-\`configure'.
+'configure'.
Operation modes:
-h, --help print this help, then exit
-W, --warnings=CATEGORY report the warnings falling in CATEGORY [syntax]
Warning categories include:
- \`cross' cross compilation issues
- \`obsolete' obsolete constructs
- \`syntax' dubious syntactic constructs
- \`all' all the warnings
- \`no-CATEGORY' turn off the warnings on CATEGORY
- \`none' turn off all the warnings
- \`error' warnings are error
+ 'cross' cross compilation issues
+ 'obsolete' obsolete constructs
+ 'syntax' dubious syntactic constructs
+ 'all' all the warnings
+ 'no-CATEGORY' turn off the warnings on CATEGORY
+ 'none' turn off all the warnings
+ 'error' warnings are error
-The environment variables \`M4' and \`WARNINGS' are honored.
+The environment variables 'M4' and 'WARNINGS' are honored.
Library directories:
-B, --prepend-include=DIR prepend directory DIR to search path
-i, --initialization also trace Autoconf's initialization process
In tracing mode, no configuration script is created. FORMAT defaults
-to \`\$f:\$l:\$n:\$%'; see \`autom4te --help' for information about FORMAT.
+to '\$f:\$l:\$n:\$%'; see 'autom4te --help' for information about FORMAT.
Report bugs to <bug-autoconf@gnu.org>.
GNU Autoconf home page: <http://www.gnu.org/software/autoconf/>.
Written by David J. MacKenzie and Akim Demaille."]
help="\
-Try \`$as_me --help' for more information."
+Try '$as_me --help' for more information."
exit_missing_arg='
- m4_bpatsubst([AS_ERROR([option `$[1]' requires an argument$as_nl$help])],
+ m4_bpatsubst([AS_ERROR([option '$[1]' requires an argument$as_nl$help])],
['], ['\\''])'
# restore font-lock: '
break ;;
-* )
exec >&2
- AS_ERROR([invalid option `$[1]'$as_nl$help]) ;; #`
+ AS_ERROR([invalid option '$[1]'$as_nl$help]) ;;
* )
break ;;
esac
0)
if test -f configure.ac; then
if test -f configure.in; then
- AS_ECHO(["$as_me: warning: both \`configure.ac' and \`configure.in' are present."]) >&2
- AS_ECHO(["$as_me: warning: proceeding with \`configure.ac'."]) >&2
+ AS_ECHO(["$as_me: warning: both 'configure.ac' and 'configure.in' are present."]) >&2
+ AS_ECHO(["$as_me: warning: proceeding with 'configure.ac'."]) >&2
fi
infile=configure.ac
elif test -f configure.in; then
eval 'case $# in 0) exec @PERL@ -S "$0";; *) exec @PERL@ -S "$0" "$@";; esac'
if 0;
-# autoheader -- create `config.h.in' from `configure.ac'
+# autoheader -- create 'config.h.in' from 'configure.ac'.
# Copyright (C) 1992-1994, 1996, 1998-2012 Free Software Foundation,
# Inc.
use Autom4te::XFile;
use strict;
-# Using `do FILE', we need `local' vars.
+# Using 'do FILE', we need 'local' vars.
use vars qw ($config_h %verbatim %symbol);
# Lib files.
# -----
$help = "Usage: $0 [OPTION]... [TEMPLATE-FILE]
-Create a template file of C \`\#define\' statements for \`configure\' to
-use. To this end, scan TEMPLATE-FILE, or \`configure.ac\' if present,
-or else \`configure.in\'.
+Create a template file of C '\#define' statements for 'configure' to
+use. To this end, scan TEMPLATE-FILE, or 'configure.ac' if present,
+or else 'configure.in'.
-h, --help print this help, then exit
-V, --version print version number, then exit
if ($config_h_top || $config_h_bot || $acconfig_h)
{
my $msg = << "END";
- Using auxiliary files such as \`acconfig.h\', \`config.h.bot\'
- and \`config.h.top\', to define templates for \`config.h.in\'
+ Using auxiliary files such as 'acconfig.h', 'config.h.bot'
+ and 'config.h.top', to define templates for 'config.h.in'
is deprecated and discouraged.
- Using the third argument of \`AC_DEFINE\' and
- \`AC_DEFINE_UNQUOTED\' allows one to define a template without
- \`acconfig.h\':
+ Using the third argument of 'AC_DEFINE_UNQUOTED' and
+ 'AC_DEFINE' allows one to define a template without
+ 'acconfig.h':
AC_DEFINE([NEED_FUNC_MAIN], 1,
- [Define if a function \`main\' is needed.])
+ [Define if a function 'main' is needed.])
More sophisticated templates can also be produced, see the
documentation.
my $quoted_tmp = shell_quote ($tmp);
xsystem ("$autoconf"
# If you change this list, update the
- # `Autoheader-preselections' section of autom4te.in.
+ # 'Autoheader-preselections' section of autom4te.in.
. ' --trace AC_CONFIG_HEADERS:\'$$config_h ||= \'"\'"\'$1\'"\'"\';\''
. ' --trace AH_OUTPUT:\'$$verbatim{\'"\'"\'$1\'"\'"\'} = \'"\'"\'$2\'"\'"\';\''
. ' --trace AC_DEFINE_TRACE_LITERAL:\'$$symbol{\'"\'"\'$1\'"\'"\'} = 1;\''
. " " . shell_quote ($ARGV[0]) . " >$quoted_tmp/traces.pl");
local (%verbatim, %symbol);
-debug "$me: \`do'ing $tmp/traces.pl:\n" . `sed 's/^/| /' $quoted_tmp/traces.pl`;
+debug "$me: 'do'ing $tmp/traces.pl:\n" . `sed 's/^/| /' $quoted_tmp/traces.pl`;
do "$tmp/traces.pl";
warn "couldn't parse $tmp/traces.pl: $@" if $@;
unless ($config_h)
($config_h, $config_h_in) = split (':', $config_h, 2);
$config_h_in ||= "$config_h.in";
-# %SYMBOL might contain things like `F77_FUNC(name,NAME)', but we keep
+# %SYMBOL might contain things like 'F77_FUNC(name,NAME)', but we keep
# only the name of the macro.
%symbol = map { s/\(.*//; $_ => 1 } keys %symbol;
}
}
-# Dump `acconfig.h', except for its bottom portion.
+# Dump 'acconfig.h', except for its bottom portion.
if ($acconfig_h)
{
my $in = new Autom4te::XFile ("< " . open_quote ($acconfig_h));
}
}
-# Dump the templates from `configure.ac'.
+# Dump the templates from 'configure.ac'.
foreach (sort keys %verbatim)
{
print $out "\n$verbatim{$_}\n";
}
-# Dump bottom portion of `acconfig.h'.
+# Dump bottom portion of 'acconfig.h'.
if ($acconfig_h)
{
my $in = new Autom4te::XFile ("< " . open_quote ($acconfig_h));
my %trace;
# The macros the user will want to trace in the future.
-# We need `include' to get the included file, `m4_pattern_forbid' and
-# `m4_pattern_allow' to check the output.
+# We need 'include' to get the included file, 'm4_pattern_forbid' and
+# 'm4_pattern_allow' to check the output.
#
-# FIXME: What about `sinclude'?
+# FIXME: What about 'sinclude'?
my @preselect = ('include',
'm4_pattern_allow', 'm4_pattern_forbid',
'_m4_warn');
# %M4_BUILTIN_ALTERNATE_NAME
# --------------------------
-# The builtins are renamed, e.g., `define' is renamed `m4_define'.
-# So map `define' to `m4_define' and conversely.
+# The builtins are renamed, e.g., 'define' is renamed 'm4_define'.
+# So map 'define' to 'm4_define' and conversely.
# Some macros don't follow this scheme: be sure to properly map to their
# alternate name too.
#
# FIXME: Trace status of renamed builtins was fixed in M4 1.4.5, which
# we now depend on; do we still need to do this mapping?
#
-# So we will merge them, i.e., tracing `BUILTIN' or tracing
-# `m4_BUILTIN' will be the same: tracing both, but honoring the
+# So we will merge them, i.e., tracing 'BUILTIN' or tracing
+# 'm4_BUILTIN' will be the same: tracing both, but honoring the
# *last* trace specification.
#
-# FIXME: This is not enough: in the output `$0' will be `BUILTIN'
-# sometimes and `m4_BUILTIN' at others. We should return a unique name,
+# FIXME: This is not enough: in the output '$0' will be 'BUILTIN'
+# sometimes and 'm4_BUILTIN' at others. We should return a unique name,
# the one specified by the user.
#
# FIXME: To be absolutely rigorous, I would say that given that we
Run GNU M4 on the FILES, avoiding useless runs. Output the traces if tracing,
the frozen file if freezing, otherwise the expansion of the FILES.
-If some of the FILES are named \`FILE.m4f\' they are considered to be M4
+If some of the FILES are named 'FILE.m4f' they are considered to be M4
frozen files of all the previous files (which are therefore not loaded).
-If \`FILE.m4f\' is not found, then \`FILE.m4\' will be used, together with
+If 'FILE.m4f' is not found, then 'FILE.m4' will be used, together with
all the previous files.
Some files may be optional, i.e., will only be processed if found in the
-include path, but then must end in \`.m4?\'; the question mark is not part of
-the actual file name.
+include path, but then must end in '.m4?'; the question mark is not part
+of the actual file name.
Operation modes:
-h, --help print this help, then exit
-V, --version print version number, then exit
-v, --verbose verbosely report processing
- -d, --debug don\'t remove temporary files
- -o, --output=FILE save output in FILE (defaults to \`-\', stdout)
- -f, --force don\'t rely on cached values
+ -d, --debug don't remove temporary files
+ -o, --output=FILE save output in FILE (defaults to '-', stdout)
+ -f, --force don't rely on cached values
-W, --warnings=CATEGORY report the warnings falling in CATEGORY
-l, --language=LANG specify the set of M4 macros to use
-C, --cache=DIRECTORY preserve results for future runs in DIRECTORY
--no-cache disable the cache
-m, --mode=OCTAL change the non trace output file mode (0666)
- -M, --melt don\'t use M4 frozen files
+ -M, --melt don't use M4 frozen files
Languages include:
- \`Autoconf\' create Autoconf configure scripts
- \`Autotest\' create Autotest test suites
- \`M4sh\' create M4sh shell scripts
- \`M4sugar\' create M4sugar output
+ 'Autoconf' create Autoconf configure scripts
+ 'Autotest' create Autotest test suites
+ 'M4sh' create M4sh shell scripts
+ 'M4sugar' create M4sugar output
" . Autom4te::ChannelDefs::usage . "
-The environment variables \`M4\' and \`WARNINGS\' are honored.
+The environment variables 'M4' and 'WARNINGS' are honored.
Library directories:
-B, --prepend-include=DIR prepend directory DIR to search path
Freezing:
-F, --freeze produce an M4 frozen state file for FILES
-FORMAT defaults to \`\$f:\$l:\$n:\$%\', and can use the following escapes:
+FORMAT defaults to '\$f:\$l:\$n:\$%', and can use the following escapes:
\$\$ literal \$
\$f file where macro was called
\$l line where macro was called
"I|include=s" => \@include,
# Tracing:
- # Using a hash for traces is seducing. Unfortunately, upon `-t FOO',
- # instead of mapping `FOO' to undef, Getopt maps it to `1', preventing
- # us from distinguishing `-t FOO' from `-t FOO=1'. So let's do it
+ # Using a hash for traces is seducing. Unfortunately, upon '-t FOO',
+ # instead of mapping 'FOO' to undef, Getopt maps it to '1', preventing
+ # us from distinguishing '-t FOO' from '-t FOO=1'. So let's do it
# by hand.
"t|trace=s" => \@trace,
"p|preselect=s" => \@preselect,
);
fatal "too few arguments
-Try `$me --help' for more information."
+Try '$me --help' for more information."
unless @ARGV;
# Freezing:
# Normalize the includes: the first occurrence is enough, several is
# a pain since it introduces a useless difference in the path which
- # invalidates the cache. And strip `.' which is implicit and always
+ # invalidates the cache. And strip '.' which is implicit and always
# first.
@include = grep { !/^\.$/ } uniq (reverse(@prepend_include), @include);
# Convert @trace to %trace, and work around the M4 builtins tracing
# problem.
- # The default format is `$f:$l:$n:$%'.
+ # The default format is '$f:$l:$n:$%'.
foreach (@trace)
{
/^([^:]+)(?::(.*))?$/ms;
# discarded: the frozen file is supposed to include them all.
#
# We don't want to depend upon m4's --include to find the top level
- # files, so we use `find_file' here. Try to get a canonical name,
+ # files, so we use 'find_file' here. Try to get a canonical name,
# as it's part of the key for caching. And some files are optional
- # (also handled by `find_file').
+ # (also handled by 'find_file').
my @argv;
foreach (@ARGV)
{
}
elsif (/\.m4f$/)
{
- # Frozen files are optional => pass a `?' to `find_file'.
+ # Frozen files are optional => pass a '?' to 'find_file'.
my $file = find_file ("$_?", @include);
if (!$melt && $file)
{
# warn_forbidden ($WHERE, $WORD, %FORBIDDEN)
# ------------------------------------------
# $WORD is forbidden. Warn with a dedicated error message if in
-# %FORBIDDEN, otherwise a simple `error: possibly undefined macro'
+# %FORBIDDEN, otherwise a simple 'error: possibly undefined macro'
# will do.
my $first_warn_forbidden = 1;
sub warn_forbidden ($$%)
$res = $_;
# Don't complain in comments. Well, until we have something
- # better, don't consider `#include' etc. are comments.
+ # better, don't consider '#include' etc. are comments.
s/\#.*//
unless /^\#\s*(if|include|endif|ifdef|ifndef|define)\b/;
foreach (split (/\W+/))
while ($_ = $file->getline)
{
# Don't complain in comments. Well, until we have something
- # better, don't consider `#include' etc. to be comments.
+ # better, don't consider '#include' etc. to be comments.
s/\#.*//
unless /^\#(if|include|endif|ifdef|ifndef|define)\b/;
# handle_traces($REQ, $OUTPUT, %TRACE)
# ------------------------------------
# We use M4 itself to process the traces. But to avoid name clashes when
-# processing the traces, the builtins are disabled, and moved into `at_'.
-# Actually, all the low level processing macros are in `at_' (and `_at_').
-# To avoid clashes between user macros and `at_' macros, the macros which
-# implement tracing are in `AT_'.
+# processing the traces, the builtins are disabled, and moved into 'at_'.
+# Actually, all the low level processing macros are in 'at_' (and '_at_').
+# To avoid clashes between user macros and 'at_' macros, the macros which
+# implement tracing are in 'AT_'.
#
# Having $REQ is needed to neutralize the macros which have been traced,
# but are not wanted now.
{
my ($req, $output, %trace) = @_;
- verb "formatting traces for `$output': " . join (', ', sort keys %trace);
+ verb "formatting traces for '$output': " . join (', ', sort keys %trace);
# Processing the traces.
my $trace_m4 = new Autom4te::XFile ("> " . open_quote ("$tmp/traces.m4"));
# ----------------------------------
# List the elements, separating then with SEPARATOR.
# MODE can be:
- # `at' -- the elements are enclosed in brackets.
- # `star' -- the elements are listed as are.
- # `percent' -- the elements are `flattened': spaces are singled out,
+ # 'at' -- the elements are enclosed in brackets.
+ # 'star' -- the elements are listed as are.
+ # 'percent' -- the elements are 'flattened': spaces are singled out,
# and no new line remains.
define([_at_at],
[at_ifelse([$#], [1], [],
[[$2][$1]$0([$1], at_shift(at_shift($@)))])])
# FLATTEN quotes its result.
- # Note that the second pattern is `newline, tab or space'. Don't lose
+ # Note that the second pattern is 'newline, tab or space'. Don't lose
# the tab!
define([at_flatten],
[at_patsubst(at_patsubst([[[$1]]], [\\\n]), [[\n\t ]+], [ ])])
s/^ //mg;s/\\t/\t/mg;s/\\n/\n/mg;
print $trace_m4 $_;
- # If you trace `define', then on `define([m4_exit], defn([m4exit])' you
+ # If you trace 'define', then on 'define([m4_exit], defn([m4exit])' you
# will produce
#
# AT_define([m4sugar.m4], [115], [1], [define], [m4_exit], <m4exit>)
#
- # Since `<m4exit>' is not quoted, the outer m4, when processing
- # `trace.m4' will exit prematurely. Hence, move all the builtins to
- # the `at_' name space.
+ # Since '<m4exit>' is not quoted, the outer m4, when processing
+ # 'trace.m4' will exit prematurely. Hence, move all the builtins to
+ # the 'at_' name space.
print $trace_m4 "# Copy the builtins.\n";
map { print $trace_m4 "define([at_$_], defn([$_]))\n" } @m4_builtin;
# | AT_AC_SUBST([configure.ac], [3], [1], [AC_SUBST], [exec_prefix], [NONE])
#
# Pay attention that the file name might include colons, if under DOS
- # for instance, so we don't use `[^:]+'.
+ # for instance, so we don't use '[^:]+'.
my $traces = new Autom4te::XFile ("< " . open_quote ($tcache . $req->id));
while ($_ = $traces->getline)
{
# up_to_date ($REQ)
# -----------------
# Are the cache files of $REQ up to date?
-# $REQ is `valid' if it corresponds to the request and exists, which
+# $REQ is 'valid' if it corresponds to the request and exists, which
# does not mean it is up to date. It is up to date if, in addition,
# its files are younger than its dependencies.
sub up_to_date ($)
fatal "freezing produced output:\n$result"
if $result;
- # If freezing produces output, something went wrong: a bad `divert',
+ # If freezing produces output, something went wrong: a bad 'divert',
# or an improper paren etc.
xsystem ("$m4"
. ' --fatal-warning'
{
# Always produce traces, since even if the output is young enough,
# there is no guarantee that the traces use the same *format*
- # (e.g., `-t FOO:foo' and `-t FOO:bar' are both using the same M4
+ # (e.g., '-t FOO:foo' and '-t FOO:bar' are both using the same M4
# traces, hence the M4 traces cache is usable, but its formatting
# will yield different results).
handle_traces ($req, $output, %trace);
# -----
$help = "Usage: $0 [OPTION]... [DIRECTORY]...
-Run `autoconf' (and `autoheader', `aclocal', `automake', `autopoint'
-(formerly `gettextize'), and `libtoolize' where appropriate)
+Run 'autoconf' (and 'autoheader', 'aclocal', 'automake', 'autopoint'
+(formerly 'gettextize'), and 'libtoolize' where appropriate)
repeatedly to remake the GNU Build System files in specified
-DIRECTORIES and their subdirectories (defaulting to `.').
+DIRECTORIES and their subdirectories (defaulting to '.').
By default, it only remakes those files that are older than their
sources. If you install new versions of the GNU Build System,
-you can make `autoreconf' remake all of the files by giving it the
-`--force' option.
+you can make 'autoreconf' remake all of the files by giving it the
+'--force' option.
Operation modes:
-h, --help print this help, then exit
" . Autom4te::ChannelDefs::usage . "
-The environment variable \`WARNINGS\' is honored. Some subtools might
-support other warning types, using \`all' is encouraged.
+The environment variable 'WARNINGS' is honored. Some subtools might
+support other warning types, using 'all' is encouraged.
Library directories:
-B, --prepend-include=DIR prepend directory DIR to search path
# List of command line warning requests.
my @warning;
-# Rerun `./configure && make'?
+# Rerun './configure && make'?
my $run_make = 0;
# Recurse into subpackages
# Gettext is a bit of a problem: its macros are not necessarily
# visible to aclocal, so if we start with a completely striped down
- # package (think of a fresh CVS checkout), running `aclocal' first
+ # package (think of a fresh CVS checkout), running 'aclocal' first
# will fail: the Gettext macros are missing.
#
# Therefore, we can't use the traces to decide if we use Gettext or
# prevents one to embed AM_GNU_GETTEXT_VERSION in another *.m4, but
# anyway we don't limit the generality, since... that's what
# autopoint does. Actually, it is even more restrictive, as it
- # greps for `^AM_GNU_GETTEXT_VERSION('. We did this above, while
+ # greps for '^AM_GNU_GETTEXT_VERSION('. We did this above, while
# scanning configure.ac.
if (!$uses_gettext)
{
. join (' ',
map { ' --trace=' . $_ . ':\$n::\${::}%' }
# If you change this list, update the
- # `Autoreconf-preselections' section of autom4te.in.
+ # 'Autoreconf-preselections' section of autom4te.in.
'AC_CONFIG_AUX_DIR',
'AC_CONFIG_HEADERS',
'AC_CONFIG_SUBDIRS',
# Running autoconf. #
# ------------------ #
- # Don't try to be smarter than `autoconf', which does its own up to
+ # Don't try to be smarter than 'autoconf', which does its own up to
# date checks.
#
# We prefer running autoconf before autoheader, because (i) the
else
{
# We should always run automake, and let it decide whether it shall
- # update the file or not. In fact, the effect of `$force' is already
- # included in `$automake' via `--no-force'.
+ # update the file or not. In fact, the effect of '$force' is already
+ # included in '$automake' via '--no-force'.
xsystem ($automake);
}
# The format for this message is not free: taken from Emacs, itself
# using GNU Make's format.
- verb "Entering directory `$directory'";
+ verb "Entering directory '$directory'";
chdir $directory
or error "cannot chdir to $directory: $!";
# The format is not free: taken from Emacs, itself using GNU Make's
# format.
- verb "Leaving directory `$directory'";
+ verb "Leaving directory '$directory'";
chdir $cwd
or error "cannot chdir to $cwd: $!";
}
$ENV{'TMPDIR'} = $tmp;
parse_args;
-# Autoreconf all the given configure.ac. Unless `--no-recursive' is passed,
+# Autoreconf all the given configure.ac. Unless '--no-recursive' is passed,
# AC_CONFIG_SUBDIRS will be traversed in &autoreconf_current_directory.
$ENV{'AUTOM4TE'} = $autom4te;
for my $directory (@ARGV)
'program' => 'Checks for programs.',
);
-# $USED{KIND}{ITEM} is the list of locations where the ITEM (of KIND) was used
-# in the user package.
-# For instance $USED{function}{alloca} is the list of `file:line' where
-# `alloca (...)' appears.
+# $USED{KIND}{ITEM} is the list of locations where the ITEM (of KIND) was
+# used in the user package.
+# For instance $USED{function}{alloca} is the list of 'file:line' where
+# 'alloca (...)' appears.
my %used = ();
# $MACRO{KIND}{ITEM} is the list of macros to use to test ITEM.
my %macro = ();
# $NEEDED_MACROS{MACRO} is an array of locations requiring MACRO.
-# E.g., $NEEDED_MACROS{AC_FUNC_ALLOC} the list of `file:line' containing
-# `alloca (...)'.
+# E.g., $NEEDED_MACROS{AC_FUNC_ALLOC} the list of 'file:line' containing
+# 'alloca (...)'.
my %needed_macros =
(
'AC_PREREQ' => [$me],
Examine source files in the directory tree rooted at SRCDIR, or the
current directory if none is given. Search the source files for
common portability problems, check for incompleteness of
-`configure.ac', and create a file `$configure_scan' which is a
-preliminary `configure.ac' for that package.
+'configure.ac', and create a file '$configure_scan' which is a
+preliminary 'configure.ac' for that package.
-h, --help print this help, then exit
-V, --version print version number, then exit
'B|prepend-include=s' => \@prepend_include);
die "$me: too many arguments
-Try `$me --help' for more information.\n"
+Try '$me --help' for more information.\n"
if @ARGV > 1;
my $srcdir = $ARGV[0] || ".";
my ($kind, $word, $where) = @_;
$where ||= "$File::Find::name:$.";
if (
- # Check for all the libraries. But `-links' is certainly a
- # `find' argument, and `-le', a `test' argument.
+ # Check for all the libraries. But '-links' is certainly a
+ # 'find' argument, and '-le', a 'test' argument.
($kind eq 'library' && $word !~ /^(e|inks)$/)
# Other than libraries are to be checked only if listed in
# the Autoscan library files.
{
used ('makevar', $1);
}
- # Be sure to catch a whole word. For instance `lex$U.$(OBJEXT)'
- # is a single token. Otherwise we might believe `lex' is needed.
+ # Be sure to catch a whole word. For instance 'lex$U.$(OBJEXT)'
+ # is a single token. Otherwise we might believe 'lex' is needed.
foreach my $word (split (/\s+/))
{
# Libraries.
used ('library', $1);
}
# Tokens in the code.
- # We allow some additional characters, e.g., `+', since
- # autoscan/programs includes `c++'.
+ # We allow some additional characters, e.g., '+', since
+ # autoscan/programs includes 'c++'.
if ($word =~ /^[a-zA-Z_][\w+]*$/)
{
used ('program', $word);
# Save $_ as Find::File requires it to be preserved.
local $_ = $_;
- # Strip a useless leading `./'.
+ # Strip a useless leading './'.
$File::Find::name =~ s,^\./,,;
if ($_ ne '.' and -d $_ and
print $file "\n# Checks for libraries.\n";
foreach my $word (sort keys %{$used{'library'}})
{
- print $file "# FIXME: Replace `main' with a function in `-l$word':\n";
+ print $file "# FIXME: Replace 'main' with a function in '-l$word':\n";
print $file "AC_CHECK_LIB([$word], [main])\n";
}
}
# Find what needed macros are invoked in CONFIGURE_AC.
# I'd be very happy if someone could explain to me why sort (uniq ...)
- # doesn't work properly: I need `uniq (sort ...)'. --akim
+ # doesn't work properly: I need 'uniq (sort ...)'. --akim
my $trace_option =
join (' --trace=', '',
uniq (sort (map { s/\(.*//; $_ } keys %needed_macros)));
# separated macros. But there is no point.
foreach my $word (split (/\s|,/, $args[0]))
{
- # AC_CHECK_MEMBERS wants `struct' or `union'.
+ # AC_CHECK_MEMBERS wants 'struct' or 'union'.
if ($macro eq "AC_CHECK_MEMBERS"
&& $word =~ /^stat.st_/)
{
# -----
$help = "Usage: $0 [OPTION]... [TEMPLATE-FILE]...
-Update each TEMPLATE-FILE if given, or `configure.ac' if present,
-or else `configure.in', to the syntax of the current version of
+Update each TEMPLATE-FILE if given, or 'configure.ac' if present,
+or else 'configure.in', to the syntax of the current version of
Autoconf. The original files are backed up.
Operation modes:
delete $ac_macros{$_}
foreach (keys %au_macros);
# Don't keep M4sugar macros which are redefined by Autoconf,
- # such as `builtin', `changequote' etc. See autoconf/autoconf.m4.
+ # such as 'builtin', 'changequote' etc. See autoconf/autoconf.m4.
delete $ac_macros{$_}
foreach (keys %m4_builtins);
error "no current Autoconf macros found"
mktmpdir ('au');
handle_autoconf_macros;
-# $au_changequote -- enable the quote `[', `]' right before any AU macro.
+# $au_changequote -- enable the quote '[', ']' right before any AU macro.
my $au_changequote =
's/\b(' . join ('|', keys %au_macros) . ')\b/_au_m4_changequote([,])$1/g';
# Redefine m4_location to fix the line number.
m4_define([m4_location], [__file__:m4_eval(__line__ - _au__first_line)])
- # Move all the builtins into the `_au_' pseudo namespace
+ # Move all the builtins into the '_au_' pseudo namespace
m4_include([m4save.m4])
# _au_defun(NAME, BODY)
# above). AU macros might use AU macros, which should
# enable/disable only for the outer AU macros.
#
- # `_au_enabled' is used to this end, determining whether we really
+ # '_au_enabled' is used to this end, determining whether we really
# enable/disable.
## Disable, and process the file. ##
## ------------------------------- ##
# The AC autoquoting macros are not loaded yet, hence invoking
- # `_au_disable' would be wrong.
+ # '_au_disable' would be wrong.
_au__include([unm4.m4])
# Disable special characters, and set the first line number.
# ## ---------------------------- ##
-# ## How `autoupdate' functions. ##
+# ## How 'autoupdate' functions. ##
# ## ---------------------------- ##
#
-# The task of `autoupdate' is not trivial: the biggest difficulty being
+# The task of 'autoupdate' is not trivial: the biggest difficulty being
# that you must limit the changes to the parts that really need to be
# updated. Finding a satisfying implementation proved to be quite hard,
-# as this is the fifth implementation of `autoupdate'.
+# as this is the fifth implementation of 'autoupdate'.
#
# Below, we will use a simple example of an obsolete macro:
#
# The first implementation was only able to change the name of obsolete
# macros.
#
-# The file `acoldnames.m4' defined the old names based on the new names.
+# The file 'acoldnames.m4' defined the old names based on the new names.
# It was simple then to produce a sed script such as:
#
# s/OLD/NEW/g
# Updating merely consisted in running this script on the file to
# update.
#
-# This scheme suffers from an obvious limitation: that `autoupdate' was
+# This scheme suffers from an obvious limitation: that 'autoupdate' was
# unable to cope with new macros that just swap some of its arguments
# compared to the old macro. Fortunately, that was enough to upgrade
# from Autoconf 1 to Autoconf 2. (But I have no idea whether the
#
# The version 2.15 of Autoconf brought a vast number of changes compared
# to 2.13, so a solution was needed. One could think of extending the
-# `sed' scripts with specialized code for complex macros. However, this
+# 'sed' scripts with specialized code for complex macros. However, this
# approach is of course full of flaws:
#
# a. the Autoconf maintainers have to write these snippets, which we
# warned), and its code is the code to use when running autoconf,
# but that the very same code has to be used when running
# autoupdate. To summarize, the interface I want is
-# `AU_DEFUN(OLD-NAME, NEW-CODE)'.
+# 'AU_DEFUN(OLD-NAME, NEW-CODE)'.
#
#
# Now for the technical details.
# features, m4sugar.m4 is needed. Please note that the fact that
# Autoconf's macros are not loaded is positive on two points:
#
-# - we do get an updated `configure.ac', not a `configure'!
+# - we do get an updated 'configure.ac', not a 'configure'!
#
# - the old macros are replaced by *calls* to the new-macros, not the
# body of the new macros, since their body is not defined!!!
# (Whoa, that's really beautiful!).
#
# Additionally we need to disable the quotes when reading the input for
-# two reasons: first because otherwise `m4' will swallow the quotes of
+# two reasons: first because otherwise 'm4' will swallow the quotes of
# other macros:
#
# NEW([1, 2], 3)
# Well, in this case, when running in autoupdate code, each macro first
# reestablishes the quotes, expands itself, and disables the quotes.
#
-# Thinking a bit more, you realize that in fact, people may use `define',
-# `ifelse' etc. in their files, and you certainly don't want to process
-# them. Another example is `dnl': you don't want to remove the
+# Thinking a bit more, you realize that in fact, people may use 'define',
+# 'ifelse' etc. in their files, and you certainly don't want to process
+# them. Another example is 'dnl': you don't want to remove the
# comments. You then realize you don't want exactly to import m4sugar:
# you want to specify when it is enabled (macros active), and disabled.
# m4sugar provides m4_disable/m4_enable to this end.
# ways, the AC way, and the AU way.
#
# One first solution is to check whether acgeneral.m4 was loaded. But
-# that's definitely not cute. Another is simply to install `hooks',
-# that is to say, to keep in some place m4 knows, late `define' to be
+# that's definitely not cute. Another is simply to install 'hooks',
+# that is to say, to keep in some place m4 knows, late 'define' to be
# triggered *only* in AU mode.
#
# You first think of designing AU_DEFUN like this:
# Disable the quotes.])])
#
# but this will not work: NEW-CODE probably uses $1, $2 etc. and these
-# guys will be replaced with the argument of `Store for late AU binding'
+# guys will be replaced with the argument of 'Store for late AU binding'
# when you call it.
#
# I don't think there is a means to avoid this using this technology
# (remember that $1 etc. are *always* expanded in m4). You may also try
# to replace them with $[1] to preserve them for a later evaluation, but
-# if `Store for late AU binding' is properly written, it will remain
+# if 'Store for late AU binding' is properly written, it will remain
# quoted till the end...
#
-# You have to change technology. Since the problem is that `$1'
-# etc. should be `consumed' right away, one solution is to define now a
-# second macro, `AU_OLD-NAME', and to install a hook than binds OLD-NAME
+# You have to change technology. Since the problem is that '$1'
+# etc. should be 'consumed' right away, one solution is to define now a
+# second macro, 'AU_OLD-NAME', and to install a hook than binds OLD-NAME
# to AU_OLD-NAME. Then, autoupdate.m4 just need to run the hooks. By
# the way, the same method was used in autoheader.
#
#
# Actually, this implementation was just a clean up of the previous
# implementation: instead of defining hooks by hand, m4sugar was equipped
-# with `namespaces'. What are they?
+# with 'namespaces'. What are they?
#
# Sometimes we want to disable some *set* of macros, and restore them
# later. We provide support for this via namespaces.
# (i.e., all the definitions it holds).
#
# Technically, to define a MACRO in NAMESPACE means to define the macro
-# named `NAMESPACE::MACRO' to the VALUE. At the same time, we append
-# `undefine(NAME)' in the macro named `m4_disable(NAMESPACE)', and
-# similarly a binding of NAME to the value of `NAMESPACE::MACRO' in
-# `m4_enable(NAMESPACE)'. These mechanisms allow to bind the macro of
+# named 'NAMESPACE::MACRO' to the VALUE. At the same time, we append
+# 'undefine(NAME)' in the macro named 'm4_disable(NAMESPACE)', and
+# similarly a binding of NAME to the value of 'NAMESPACE::MACRO' in
+# 'm4_enable(NAMESPACE)'. These mechanisms allow to bind the macro of
# NAMESPACE and to unbind them at will.
#
# Of course this implementation is really inefficient: m4 has to grow
# strings which can become quickly huge, which slows it significantly.
#
-# In particular one should avoid as much as possible to use `define' for
-# temporaries. Now that `define' has quite a complex meaning, it is an
+# In particular one should avoid as much as possible to use 'define' for
+# temporaries. Now that 'define' has quite a complex meaning, it is an
# expensive operations that should be limited to macros. Use
-# `m4_define' for temporaries.
+# 'm4_define' for temporaries.
#
# Private copies of the macros we used in entering / exiting the m4sugar
# namespace. It is much more convenient than fighting with the renamed
# Those two implementations suffered from serious problems:
#
# - namespaces were really expensive, and incurred a major performance
-# loss on `autoconf' itself, not only `autoupdate'. One solution
-# would have been the limit the use of namespaces to `autoupdate', but
+# loss on 'autoconf' itself, not only 'autoupdate'. One solution
+# would have been the limit the use of namespaces to 'autoupdate', but
# that's again some complications on m4sugar, which really doesn't need
# this. So we wanted to get rid of the namespaces.
#
#
# foo([1, 2])
#
-# m4 saw 2 arguments: `[1'and `2]'. A simple solution, somewhat
+# m4 saw 2 arguments: '[1'and '2]'. A simple solution, somewhat
# fragile, is to reestablish the quotes right before all the obsolete
# macros, i.e., to use sed so that the previous text becomes
#
# 0)
#
# Grpmh. Two problems. A minor problem: it would have been much better
-# to have the `m4_eval' computed, and a major problem: you lost the
+# to have the 'm4_eval' computed, and a major problem: you lost the
# quotation in the result.
#
# Let's address the big problem first. One solution is to define any
# modern macro to rewrite its calls with the proper quotation, thanks to
-# `$@'. Again, tracing the `define's makes it possible to know which
+# '$@'. Again, tracing the 'define's makes it possible to know which
# are these macros, so you input is:
#
# divert(-1)dnl
# NEW([1, 2],[m4_eval(1 + 2)])
# NEW([0, 0],[0])
#
-# Our problem is solved, i.e., the first call to `NEW' is properly
+# Our problem is solved, i.e., the first call to 'NEW' is properly
# quoted, but introduced another problem: we changed the layout of the
# second calls, which can be a drama in the case of huge macro calls
-# (think of `AC_TRY_RUN' for instance). This example didn't show it,
+# (think of 'AC_TRY_RUN' for instance). This example didn't show it,
# but we also introduced parens to macros which did not have some:
#
# AC_INIT
# Additionally, we introduced quotes that were not there before, which is
# OK in most cases, but could change the semantics of the file.
#
-# Cruel dilemma: we do want the auto-quoting definition of `NEW' when
-# evaluating `OLD', but we don't when we evaluate the second `NEW'.
+# Cruel dilemma: we do want the auto-quoting definition of 'NEW' when
+# evaluating 'OLD', but we don't when we evaluate the second 'NEW'.
# Back to namespaces?
#
# No.
# NEW([0, 0],
# 0)
#
-# i.e., the new value of `OLD' is precomputed using the auto-quoting
-# definition of `NEW' and the m4 builtins. We'll see how afterwards,
+# i.e., the new value of 'OLD' is precomputed using the auto-quoting
+# definition of 'NEW' and the m4 builtins. We'll see how afterwards,
# let's finish with the replacement.
#
# Of course the solution above is wrong: if there were other calls to
-# `OLD' with different values, we would smash them to the same value.
+# 'OLD' with different values, we would smash them to the same value.
# But it is quite easy to generalize the scheme above:
#
# divert(-1)dnl
# NEW([0, 0],
# 0)
#
-# i.e., for each call to obsolete macros, we build an array `call =>
+# i.e., for each call to obsolete macros, we build an array 'call =>
# value', and use a macro to dispatch these values. This results in:
#
# dnl The Unbelievable Truth
# NEW([0, 0],
# 0)
#
-# In French, we say `Youpi !', which you might roughly translate as
-# `Yippee!'.
+# In French, we say 'Youpi !', which you might roughly translate as
+# 'Yippee!'.
#
#
# # First step: computation
# 0)
#
#
-# # Computing the `values' section
+# # Computing the 'values' section
# # ..............................
#
# First we need to get the list of all the AU macro uses. To this end,
-# first get the list of all the AU macros names by tracing `AU_DEFUN' in
+# first get the list of all the AU macros names by tracing 'AU_DEFUN' in
# the initialization of autoconf. This list is computed in the file
-# `au.txt' below.
+# 'au.txt' below.
#
# Then use this list to trace all the AU macro uses in the input. The
# goal is obtain in the case of our example:
#
# [define([OLD([1],[2])],]@<<@OLD([1],[2])@>>@[)]
#
-# This is the file `values.in' below.
+# This is the file 'values.in' below.
#
# We want to evaluate this with only the builtins (in fact m4sugar), the
-# auto-quoting definitions of the new macros (`new.m4'), and the
-# definition of the old macros (`old.m4'). Computing these last two
-# files is easy: it's just a matter of using the right `--trace' option.
+# auto-quoting definitions of the new macros ('new.m4'), and the
+# definition of the old macros ('old.m4'). Computing these last two
+# files is easy: it's just a matter of using the right '--trace' option.
#
-# So the content of `values.in' is:
+# So the content of 'values.in' is:
#
# include($autoconf_dir/m4sugar.m4)
# m4_include(new.m4)
#
# define([OLD([1],[2])],@<<@NEW([1, 2], [3])@>>@)
#
-# Transform `@<<@' and `@>>@' into quotes and we get
+# Transform '@<<@' and '@>>@' into quotes and we get
#
# define([OLD([1],[2])],[NEW([1, 2], [3])])
#
-# This is `values.m4'.
+# This is 'values.m4'.
#
#
-# # Computing the `dispatcher' section
+# # Computing the 'dispatcher' section
# # ..................................
#
-# The `prologue', and the `disabler' are simple and need no commenting.
+# The 'prologue', and the 'disabler' are simple and need no commenting.
#
-# To compute the `dispatcher' (`dispatch.m4'), again, it is a simple
-# matter of using the right `--trace'.
+# To compute the 'dispatcher' ('dispatch.m4'), again, it is a simple
+# matter of using the right '--trace'.
#
# Finally, the input is not exactly the input file, rather it is the
-# input file with the added `changequote'. To this end, we build
-# `quote.sed'.
+# input file with the added 'changequote'. To this end, we build
+# 'quote.sed'.
#
#
# # Putting it all together
# # .......................
#
-# We build the file `input.m4' which contains:
+# We build the file 'input.m4' which contains:
#
# divert(-1)dnl
# changequote([, ])
# And we just run m4 on it. Et voila`, Monsieur ! Mais oui, mais oui.
#
# Well, there are a few additional technicalities. For instance, we
-# rely on `changequote', `ifelse' and `defn', but we don't want to
+# rely on 'changequote', 'ifelse' and 'defn', but we don't want to
# interpret the changequotes of the user, so we simply use another name:
-# `_au_changequote' etc.
+# '_au_changequote' etc.
#
#
# # Failure of the fourth approach
#
# This approach is heavily based on traces, but then there is an obvious
# problem: non expanded code will never be seen. In particular, the body
-# of a `define' definition is not seen, so on the input
+# of a 'define' definition is not seen, so on the input
#
# define([idem], [OLD(0, [$1])])
#
-# autoupdate would never see the `OLD', and wouldn't have updated it.
-# Worse yet, if `idem(0)' was used later, then autoupdate sees that
-# `OLD' is used, computes the result for `OLD(0, 0)' and sets up a
-# dispatcher for `OLD'. Since there was no computed value for `OLD(0,
+# autoupdate would never see the 'OLD', and wouldn't have updated it.
+# Worse yet, if 'idem(0)' was used later, then autoupdate sees that
+# 'OLD' is used, computes the result for 'OLD(0, 0)' and sets up a
+# dispatcher for 'OLD'. Since there was no computed value for 'OLD(0,
# [$1])', the dispatcher would have replaced with... nothing, leading
# to
#
# OLD(1, 2)
# NEW([0, 0], [0])
#
-# you evaluate `input.m4':
+# you evaluate 'input.m4':
#
# divert(-1)
# changequote([, ])
# OLD(1, 2)
# NEW([0, 0], [0])
#
-# where `m4_disable' undefines the m4 and m4sugar, and disables the quotes
+# where 'm4_disable' undefines the m4 and m4sugar, and disables the quotes
# and comments:
#
# define([m4_disable],
# changecom(#)
# changequote()])
#
-# `m4_enable' does the converse: reestablish quotes and comments
-# --easy--, reestablish m4sugar --easy: just load `m4sugar.m4' again-- and
+# 'm4_enable' does the converse: reestablish quotes and comments
+# --easy--, reestablish m4sugar --easy: just load 'm4sugar.m4' again-- and
# reenable the builtins. This later task requires that you first save
-# the builtins. And BTW, the definition above of `m4_disable' cannot
-# work: you undefined `changequote' before using it! So you need to use
+# the builtins. And BTW, the definition above of 'm4_disable' cannot
+# work: you undefined 'changequote' before using it! So you need to use
# your privates copies of the builtins. Let's introduce three files for
# this:
#
-# `m4save.m4'
-# moves the m4 builtins into the `_au_' pseudo namespace,
-# `unm4.m4'
+# 'm4save.m4'
+# moves the m4 builtins into the '_au_' pseudo namespace,
+# 'unm4.m4'
# undefines the builtins,
-# `m4.m4'
+# 'm4.m4'
# restores them.
#
-# So `input.m4' is:
+# So 'input.m4' is:
#
# divert(-1)
# changequote([, ])
# AC definitions must be disabled in the rest of the file, and enabled
# inside AU macros.
#
-# Using `autoconf --trace' it is easy to build the files
+# Using 'autoconf --trace' it is easy to build the files
#
-# `ac.m4'
+# 'ac.m4'
# define the autoquoting AC fake macros
-# `disable.m4'
+# 'disable.m4'
# undefine the m4sugar and AC autoquoting macros.
-# `au.m4'
-# definitions of the AU macros (such as `OLD' above).
+# 'au.m4'
+# definitions of the AU macros (such as 'OLD' above).
#
-# Now, `input.m4' is:
+# Now, 'input.m4' is:
#
# divert(-1)
# changequote([, ])
Scan all of the C source FILES (or the standard input, if none are
given) and write to the standard output a sorted list of all the
-identifiers that appear in those files in `#if', `#elif', `#ifdef', or
-`#ifndef' directives. Print each identifier on a line, followed by a
+identifiers that appear in those files in '#if', '#elif', '#ifdef', or
+'#ifndef' directives. Print each identifier on a line, followed by a
space-separated list of the files in which that identifier occurs.
-h, --help print this help, then exit