#! @PERL@ # -*- Perl -*- # @configure_input@ eval 'case $# in 0) exec @PERL@ -S "$0";; *) exec @PERL@ -S "$0" "$@";; esac' if 0; # autoconf -- create 'configure' using m4 macros. # Copyright (C) 1992-1994, 1996, 1999-2017, 2020-2022 Free Software # Foundation, Inc. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see . use 5.006; use strict; use warnings FATAL => 'all'; BEGIN { my $pkgdatadir = $ENV{'autom4te_perllibdir'} || '@pkgdatadir@'; unshift @INC, $pkgdatadir; # Override SHELL. On DJGPP SHELL may not be set to a shell # that can handle redirection and quote arguments correctly, # e.g.: COMMAND.COM. For DJGPP always use the shell that configure # has detected. $ENV{'SHELL'} = '@SHELL@' if ($^O eq 'dos'); } use Autom4te::ChannelDefs; use Autom4te::Channels qw(msg); use Autom4te::General; # Lib files. my $autom4te = $ENV{'AUTOM4TE'} || '@bindir@/@autom4te-name@'; my $trailer_m4 = $ENV{'trailer_m4'} || '@pkgdatadir@/autoconf/trailer.m4'; # $HELP # ----- $help = "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 to the standard output if TEMPLATE-FILE is given, else into 'configure'. 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 -f, --force consider all files obsolete -o, --output=FILE save output in FILE (stdout is the default) -W, --warnings=CATEGORY report the warnings falling in CATEGORY " . Autom4te::ChannelDefs::usage . " Library directories: -B, --prepend-include=DIR prepend directory DIR to search path -I, --include=DIR append directory DIR to search path Tracing: -t, --trace=MACRO[:FORMAT] report the list of calls to MACRO -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. Report bugs to . GNU Autoconf home page: . General help using GNU software: . "; # $VERSION # -------- $version = "autoconf (@PACKAGE_NAME@) @VERSION@ Copyright (C) @RELEASE_YEAR@ Free Software Foundation, Inc. License GPLv3+/Autoconf: GNU GPL version 3 or later , This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by David J. MacKenzie and Akim Demaille. "; ## ---------- ## ## Routines. ## ## ---------- ## my $infile; my $outfile; my @autom4te_options; my @traces; # parse_args () # ------------- # Process any command line arguments. sub parse_args () { getopt ( # Arguments passed as-is to autom4te. 'I|include=s' => sub { push @autom4te_options, '--include='.$_[1] }, 'B|prepend-include=s' => sub { push @autom4te_options, '--prepend-include='.$_[1] }, 'W|warnings=s' => sub { push @autom4te_options, '--warnings='.$_[1] }, # Arguments processed (somewhat) in this program. 'i|initialization' => sub { push @autom4te_options, '--melt' }, 't|trace=s' => sub { push @traces, '--trace='.$_[1] }, 'o|output=s' => \$outfile, ); # Also pass down certain options that were processed into their own # variables by Autom4te::General::getopt. push @autom4te_options, '--debug' if $debug; push @autom4te_options, '--force' if $force; push @autom4te_options, '--verbose' if $verbose; # Find the input file. if (@ARGV == 0) { $outfile = 'configure' if !$outfile && !@traces; if (-f 'configure.ac') { $infile = 'configure.ac'; if (-f 'configure.in') { msg 'obsolete', q(both 'configure.ac' and 'configure.in' are present); msg 'obsolete', q(proceeding with 'configure.ac'); } } elsif (-f 'configure.in') { $infile = 'configure.in'; } else { fatal 'no input file'; } } elsif (@ARGV == 1) { $infile = $ARGV[0]; } else { fatal "invalid number of arguments.\n" . "Try '$me --help' for more information."; } # Unless already set, the output is stdout. $outfile = '-' if !$outfile; } ## -------------- ## ## Main program. ## ## -------------- ## parse_args; # Construct the autom4te invocation. # $autom4te might contain additional command line options; word-split it # exactly as the shell would. my @autom4te_command = split /[ \t\n]+/, $autom4te; push @autom4te_command, @autom4te_options; push @autom4te_command, '--language=autoconf', "--output=$outfile", @traces; # Don't read trailer.m4 if we are tracing. # trailer.m4 is read _before_ $infile, despite the name, # because putting it afterward screws up autom4te's location tracing. push @autom4te_command, $trailer_m4 if !@traces; push @autom4te_command, $infile; print {*STDERR} $me, ': running ', join (" ", map { shell_quote($_) } @autom4te_command), "\n" if $verbose; exec {$autom4te_command[0]} @autom4te_command; ### Setup "GNU" style for perl-mode and cperl-mode. ## Local Variables: ## perl-indent-level: 2 ## perl-continued-statement-offset: 2 ## perl-continued-brace-offset: 0 ## perl-brace-offset: 0 ## perl-brace-imaginary-offset: 0 ## perl-label-offset: -2 ## cperl-indent-level: 2 ## cperl-brace-offset: 0 ## cperl-continued-brace-offset: 0 ## cperl-label-offset: -2 ## cperl-extra-newline-before-brace: t ## cperl-merge-trailing-else: nil ## cperl-continued-statement-offset: 2 ## End: