mirror of
git://git.sv.gnu.org/autoconf
synced 2024-11-21 01:01:48 +08:00
* lib/Autom4te/General.pm (&getopt): Work around the `-' Getopt bug.
* bin/autoheader.in, bin/autoupdate.in (&parse_args): Adjust. * bin/autoscan.in: Use `getopt' and `find_files' etc. Add -I, --include support. * doc/autoconf.texi (autoscan Invocation): Adjust.
This commit is contained in:
parent
2d55f8a447
commit
d3f9e418ab
@ -1,3 +1,12 @@
|
||||
2001-09-05 Akim Demaille <akim@epita.fr>
|
||||
|
||||
* lib/Autom4te/General.pm (&getopt): Work around the `-' Getopt bug.
|
||||
* bin/autoheader.in, bin/autoupdate.in (&parse_args): Adjust.
|
||||
|
||||
* bin/autoscan.in: Use `getopt' and `find_files' etc.
|
||||
Add -I, --include support.
|
||||
* doc/autoconf.texi (autoscan Invocation): Adjust.
|
||||
|
||||
2001-09-05 Akim Demaille <akim@epita.fr>
|
||||
|
||||
CVS GNU M4 doesn't like `undefine(undefined)'.
|
||||
|
@ -104,17 +104,11 @@ END
|
||||
sub parse_args ()
|
||||
{
|
||||
my $srcdir;
|
||||
# F*k. Getopt seems bogus and dies when given `-' with `bundling'.
|
||||
# If fixed some day, use this: '' => sub { push @ARGV, "-" }
|
||||
my $stdin = grep /^-$/, @ARGV;
|
||||
@ARGV = grep !/^-$/, @ARGV;
|
||||
|
||||
getopt ('I|include|A|autoconf-dir|m|macrodir|l|localdir=s' => \@include,
|
||||
'f|force' => \$force,
|
||||
'W|warning' => \@warning);
|
||||
|
||||
push @ARGV, '-'
|
||||
if $stdin;
|
||||
|
||||
if (! @ARGV)
|
||||
{
|
||||
my $configure_ac = find_configure_ac;
|
||||
|
@ -42,7 +42,6 @@ use Data::Dumper;
|
||||
use Autom4te::General;
|
||||
use Autom4te::Struct;
|
||||
use Carp;
|
||||
use Getopt::Long;
|
||||
use IO::File;
|
||||
use strict;
|
||||
|
||||
|
103
bin/autoscan.in
103
bin/autoscan.in
@ -22,14 +22,12 @@
|
||||
|
||||
BEGIN
|
||||
{
|
||||
my $prefix = "@prefix@";
|
||||
my $perllibdir = $ENV{'autom4te_perllibdir'} || "@datadir@";
|
||||
unshift @INC, "$perllibdir";
|
||||
}
|
||||
|
||||
use File::Basename;
|
||||
use File::Find;
|
||||
use Getopt::Long;
|
||||
use IO::File;
|
||||
use Autom4te::General;
|
||||
use strict;
|
||||
@ -71,21 +69,13 @@ my $log = new IO::File ">$me.log"
|
||||
or die "$me: cannot open $me.log: $!\n";
|
||||
|
||||
# Autoconf and lib files.
|
||||
my $autoconf = $ENV{'AUTOCONF'} || '@autoconf_name@';
|
||||
my $datadir = $ENV{"AC_MACRODIR"} || "@datadir@";
|
||||
my $autom4te = $ENV{'AUTOM4TE'} || '@autom4te-name@';
|
||||
my $autoconf = "$autom4te --language=autoconf";
|
||||
my @include = ('@datadir@');
|
||||
|
||||
|
||||
## ------------------------ ##
|
||||
## Command line interface. ##
|
||||
## ------------------------ ##
|
||||
|
||||
|
||||
# print_usage ()
|
||||
# --------------
|
||||
# Display usage (--help).
|
||||
sub print_usage ()
|
||||
{
|
||||
print "Usage: $0 [OPTION] ... [SRCDIR]
|
||||
# $help
|
||||
# -----
|
||||
$help = "Usage: $0 [OPTION] ... [SRCDIR]
|
||||
|
||||
Examine source files in the directory tree rooted at SRCDIR, or the
|
||||
current directory if none is given. Search the source files for
|
||||
@ -93,55 +83,44 @@ common portability problems, check for incompleteness of
|
||||
`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
|
||||
-v, --verbose verbosely report processing
|
||||
|
||||
Library directories:
|
||||
-A, --autoconf-dir=ACDIR Autoconf's files location (rarely needed)
|
||||
-l, --localdir=DIR location of `aclocal.m4' and `acconfig.h'
|
||||
-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
|
||||
-I, --include=DIR look for input files in DIR. Accumulates
|
||||
|
||||
Report bugs to <bug-autoconf\@gnu.org>.\n";
|
||||
exit 0;
|
||||
}
|
||||
|
||||
|
||||
# print_version ()
|
||||
# ----------------
|
||||
# Display version (--version).
|
||||
sub print_version
|
||||
{
|
||||
print "autoscan (@PACKAGE_NAME@) @VERSION@
|
||||
# $version
|
||||
# --------
|
||||
$version = "autoscan (@PACKAGE_NAME@) @VERSION@
|
||||
Written by David J. MacKenzie.
|
||||
|
||||
Copyright 1994, 1999, 2000, 2001 Free Software Foundation, Inc.
|
||||
This is free software; see the source for copying conditions. There is NO
|
||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n";
|
||||
exit 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
## ------------------------ ##
|
||||
## Command line interface. ##
|
||||
## ------------------------ ##
|
||||
|
||||
# parse_args ()
|
||||
# -------------
|
||||
# Process any command line arguments.
|
||||
sub parse_args ()
|
||||
{
|
||||
my $srcdir;
|
||||
Getopt::Long::config ("bundling");
|
||||
Getopt::Long::GetOptions ("A|autoconf-dir|m|macrodir=s" => \$datadir,
|
||||
"h|help" => \&print_usage,
|
||||
"V|version" => \&print_version,
|
||||
"v|verbose" => \$verbose)
|
||||
or exit 1;
|
||||
getopt ("I|include|A|autoconf-dir|m|macrodir=s" => \@include);
|
||||
|
||||
die "$me: too many arguments
|
||||
Try `$me --help' for more information.\n"
|
||||
if (@ARGV > 1);
|
||||
($srcdir) = @ARGV;
|
||||
$srcdir = "."
|
||||
if !defined $srcdir;
|
||||
if @ARGV > 1;
|
||||
|
||||
print "srcdir=$srcdir\n" if $verbose;
|
||||
my $srcdir = $ARGV[0] || ".";
|
||||
|
||||
verbose "srcdir = $srcdir";
|
||||
chdir $srcdir || die "$me: cannot cd to $srcdir: $!\n";
|
||||
}
|
||||
|
||||
@ -170,7 +149,7 @@ sub init_tables ()
|
||||
my $tables_are_consistent = 1;
|
||||
foreach my $kind (@kinds)
|
||||
{
|
||||
my $file = "$datadir/autoscan/$kind";
|
||||
my $file = find_file ("autoscan/$kind", @include);
|
||||
my $table = new IO::File $file
|
||||
or die "$me: cannot open $file: $!\n";
|
||||
while ($_ = $table->getline)
|
||||
@ -189,7 +168,7 @@ sub init_tables ()
|
||||
# consistency checks.
|
||||
if (!defined $2 && exists $macro{$kind}{$word})
|
||||
{
|
||||
warn ("$datadir/autoscan/$kind:$.: "
|
||||
warn ("$file:$.: "
|
||||
. "ignoring implicit call to the generic macro for $word\n");
|
||||
$tables_are_consistent = 0;
|
||||
}
|
||||
@ -213,8 +192,8 @@ sub init_tables ()
|
||||
## ----------------------- ##
|
||||
|
||||
|
||||
# scan_c_file(FILENAME)
|
||||
# ---------------------
|
||||
# scan_c_file($FILENAME)
|
||||
# ----------------------
|
||||
sub scan_c_file ($)
|
||||
{
|
||||
my ($filename) = @_;
|
||||
@ -277,8 +256,8 @@ sub scan_c_file ($)
|
||||
}
|
||||
|
||||
|
||||
# scan_makefile(MAKEFILE-NAME)
|
||||
# ----------------------------
|
||||
# scan_makefile($MAKEFILE-NAME)
|
||||
# -----------------------------
|
||||
sub scan_makefile ($)
|
||||
{
|
||||
my ($filename) = @_;
|
||||
@ -317,8 +296,8 @@ sub scan_makefile ($)
|
||||
}
|
||||
|
||||
|
||||
# scan_sh_file(SHELL-SCRIPT-NAME)
|
||||
# -------------------------------
|
||||
# scan_sh_file($SHELL-SCRIPT-NAME)
|
||||
# --------------------------------
|
||||
sub scan_sh_file ($)
|
||||
{
|
||||
my ($filename) = @_;
|
||||
@ -477,8 +456,8 @@ sub output_libraries ($)
|
||||
}
|
||||
|
||||
|
||||
# output (CONFIGURE_SCAN)
|
||||
# -----------------------
|
||||
# output ($CONFIGURE_SCAN)
|
||||
# ------------------------
|
||||
# Print a proto configure.ac.
|
||||
sub output ($)
|
||||
{
|
||||
@ -524,8 +503,8 @@ sub output ($)
|
||||
## --------------------------------------- ##
|
||||
|
||||
|
||||
# check_configure_ac (CONFIGURE_AC)
|
||||
# ---------------------------------
|
||||
# check_configure_ac ($CONFIGURE_AC)
|
||||
# ----------------------------------
|
||||
# Use autoconf to check if all the suggested macros are included
|
||||
# in CONFIGURE_AC.
|
||||
sub check_configure_ac ($)
|
||||
@ -539,9 +518,9 @@ sub check_configure_ac ($)
|
||||
join (' -t ', '',
|
||||
uniq (sort (map { s/\(.*//; $_ } keys %needed_macros)));
|
||||
|
||||
verbose "running: $autoconf -A $datadir $trace_option $configure_ac";
|
||||
verbose "running: $autoconf $trace_option $configure_ac";
|
||||
my $traces =
|
||||
new IO::File "$autoconf -A $datadir $trace_option $configure_ac|"
|
||||
new IO::File "$autoconf $trace_option $configure_ac|"
|
||||
or die "$me: cannot open traces reading pipe: $!\n";
|
||||
|
||||
while ($_ = $traces->getline)
|
||||
@ -592,6 +571,10 @@ sub check_configure_ac ($)
|
||||
## -------------- ##
|
||||
|
||||
parse_args;
|
||||
$autoconf .= " --debug" if $debug;
|
||||
$autoconf .= " --verbose" if $verbose;
|
||||
$autoconf .= join (' --include=', '', @include);
|
||||
|
||||
my $configure_ac = find_configure_ac;
|
||||
init_tables;
|
||||
scan_files;
|
||||
|
@ -33,6 +33,7 @@ use strict;
|
||||
|
||||
# Lib files.
|
||||
my $autom4te = $ENV{'AUTOM4TE'} || '@autom4te-name@';
|
||||
my $autoconf = "$autom4te --language=autoconf";
|
||||
# We need to find m4sugar.
|
||||
my @include = ('@datadir@');
|
||||
my $force = 0;
|
||||
@ -42,35 +43,32 @@ my $m4 = $ENV{"M4"} || "@M4@";
|
||||
|
||||
# $HELP
|
||||
# -----
|
||||
$help = <<"END";
|
||||
Usage: $0 [OPTION] ... [TEMPLATE-FILE...]
|
||||
$help = "Usage: $0 [OPTION] ... [TEMPLATE-FILE...]
|
||||
|
||||
Update the TEMPLATE-FILE... if given, or \`configure.ac\' if present,
|
||||
or else \`configure.in\', to the syntax of the current version of
|
||||
Update the 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:
|
||||
-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
|
||||
-d, --debug don't remove temporary files
|
||||
-I, --include=DIR look for input files in DIR. Accumulates
|
||||
-f, --force consider all the files are obsolete
|
||||
|
||||
Report bugs to <bug-autoconf\@gnu.org>.
|
||||
END
|
||||
";
|
||||
|
||||
# $VERSION
|
||||
# --------
|
||||
$version = <<"END";
|
||||
autoupdate (@PACKAGE_NAME@) @VERSION@
|
||||
$version = "autoupdate (@PACKAGE_NAME@) @VERSION@
|
||||
Written by David J. MacKenzie and Akim Demaille.
|
||||
|
||||
Copyright 1994, 1999, 2000, 2001 Free Software Foundation, Inc.
|
||||
This is free software; see the source for copying conditions. There is NO
|
||||
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
END
|
||||
|
||||
";
|
||||
|
||||
## ---------- ##
|
||||
## Routines. ##
|
||||
@ -83,16 +81,10 @@ END
|
||||
sub parse_args ()
|
||||
{
|
||||
my $srcdir;
|
||||
# F*k. Getopt seems bogus and dies when given `-' with `bundling'.
|
||||
# If fixed some day, use this: '' => sub { push @ARGV, "-" }
|
||||
my $update_stdin = grep /^-$/, @ARGV;
|
||||
@ARGV = grep !/^-$/, @ARGV;
|
||||
|
||||
getopt ('I|include|A|autoconf-dir|m|macrodir|l|localdir=s' => \@include,
|
||||
'f|force' => \$force);
|
||||
|
||||
push @ARGV, '-'
|
||||
if $update_stdin;
|
||||
|
||||
if (! @ARGV)
|
||||
{
|
||||
my $configure_ac = find_configure_ac;
|
||||
@ -109,8 +101,8 @@ sub parse_args ()
|
||||
|
||||
my @m4_builtins;
|
||||
|
||||
# HANDLE_M4_SYMBOLS ()
|
||||
# --------------------
|
||||
# &handle_m4_symbols ()
|
||||
# ---------------------
|
||||
# Create the following $tmp files:
|
||||
# m4.m4 -- enable the m4 builtins.
|
||||
# unm4.m4 -- disable the m4 builtins.
|
||||
@ -243,11 +235,10 @@ sub handle_autoconf_macros ()
|
||||
## -------------- ##
|
||||
|
||||
parse_args;
|
||||
my $autoconf = "$autom4te --language=autoconf ";
|
||||
$autoconf .= join (' --include=', '', @include);
|
||||
$autoconf .= " --debug" if $debug;
|
||||
$autoconf .= " --force" if $force;
|
||||
$autoconf .= " --verbose" if $verbose;
|
||||
$autoconf .= join (' --include=', '', @include);
|
||||
|
||||
mktmpdir ('au');
|
||||
handle_m4_macros;
|
||||
|
@ -1061,15 +1061,10 @@ Print the version number of Autoconf and exit.
|
||||
Print the names of the files it examines and the potentially interesting
|
||||
symbols it finds in them. This output can be voluminous.
|
||||
|
||||
@item --autoconf-dir=@var{dir}
|
||||
@itemx -A @var{dir}
|
||||
@evindex AC_MACRODIR
|
||||
Override the location where the installed Autoconf data files are looked
|
||||
for. You can also set the @code{AC_MACRODIR} environment variable to a
|
||||
directory; this option overrides the environment variable.
|
||||
|
||||
This option is rarely needed and dangerous; it is only used when one
|
||||
plays with different versions of Autoconf simultaneously.
|
||||
@item --include=@var{dir}
|
||||
@itemx -I @var{dir}
|
||||
Also look for input files in @var{dir}. Multiple invocations
|
||||
accumulate. Latest directories are looking in first.
|
||||
@end table
|
||||
|
||||
@node ifnames Invocation
|
||||
|
@ -153,13 +153,19 @@ sub find_file ($@)
|
||||
}
|
||||
|
||||
|
||||
# getopt (%OPTIONS)
|
||||
# -----------------
|
||||
# getopt (%OPTION)
|
||||
# ----------------
|
||||
# Handle the %OPTION, plus all the common options.
|
||||
# Work around Getopt bugs wrt `-'.
|
||||
sub getopt (%)
|
||||
{
|
||||
my (%option) = @_;
|
||||
use Getopt::Long;
|
||||
|
||||
# F*k. Getopt seems bogus and dies when given `-' with `bundling'.
|
||||
# If fixed some day, use this: '' => sub { push @ARGV, "-" }
|
||||
my $stdin = grep /^-$/, @ARGV;
|
||||
@ARGV = grep !/^-$/, @ARGV;
|
||||
%option = (%option,
|
||||
"h|help" => sub { print $help; exit 0 },
|
||||
"V|version" => sub { print $version; exit 0 },
|
||||
@ -170,6 +176,9 @@ sub getopt (%)
|
||||
Getopt::Long::Configure ("bundling");
|
||||
GetOptions (%option)
|
||||
or exit 1;
|
||||
|
||||
push @ARGV, '-'
|
||||
if $stdin;
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.24.
|
||||
.TH AUTOHEADER "1" "August 2001" "GNU Autoconf 2.52e" FSF
|
||||
.TH AUTOHEADER "1" "September 2001" "GNU Autoconf 2.52e" FSF
|
||||
.SH NAME
|
||||
autoheader \- Create a template header for configure
|
||||
.SH SYNOPSIS
|
||||
|
@ -1,5 +1,5 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.24.
|
||||
.TH AUTOM4TE "1" "August 2001" "GNU Autoconf 2.52e" FSF
|
||||
.TH AUTOM4TE "1" "September 2001" "GNU Autoconf 2.52e" FSF
|
||||
.SH NAME
|
||||
autom4te \- Generate files and scripts thanks to M4
|
||||
.SH SYNOPSIS
|
||||
|
@ -1,5 +1,5 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.24.
|
||||
.TH AUTOSCAN "1" "August 2001" "GNU Autoconf 2.52e" FSF
|
||||
.TH AUTOSCAN "1" "September 2001" "GNU Autoconf 2.52e" FSF
|
||||
.SH NAME
|
||||
autoscan \- Generate a preliminary configure.in
|
||||
.SH SYNOPSIS
|
||||
@ -20,13 +20,12 @@ print version number, then exit
|
||||
.TP
|
||||
\fB\-v\fR, \fB\-\-verbose\fR
|
||||
verbosely report processing
|
||||
.SS "Library directories:"
|
||||
.TP
|
||||
\fB\-A\fR, \fB\-\-autoconf\-dir\fR=\fIACDIR\fR
|
||||
Autoconf's files location (rarely needed)
|
||||
\fB\-d\fR, \fB\-\-debug\fR
|
||||
don't remove temporary files
|
||||
.TP
|
||||
\fB\-l\fR, \fB\-\-localdir\fR=\fIDIR\fR
|
||||
location of `aclocal.m4' and `acconfig.h'
|
||||
\fB\-I\fR, \fB\-\-include\fR=\fIDIR\fR
|
||||
look for input files in DIR. Accumulates
|
||||
.SH AUTHOR
|
||||
Written by David J. MacKenzie.
|
||||
.PP
|
||||
|
@ -1,5 +1,5 @@
|
||||
.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.24.
|
||||
.TH AUTOUPDATE "1" "August 2001" "GNU Autoconf 2.52e" FSF
|
||||
.TH AUTOUPDATE "1" "September 2001" "GNU Autoconf 2.52e" FSF
|
||||
.SH NAME
|
||||
autoupdate \- Update a configure.in to a newer Autoconf
|
||||
.SH SYNOPSIS
|
||||
|
Loading…
Reference in New Issue
Block a user