1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215
|
#! @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-2023 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 <https://www.gnu.org/licenses/>.
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
(comma-separated list accepted)
" . 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 <bug-autoconf\@gnu.org>.
The full documentation for Autoconf can be read via 'info autoconf',
or on the Web at <https://www.gnu.org/software/autoconf/manual/>.
";
# $VERSION
# --------
$version = "autoconf (@PACKAGE_NAME@) @VERSION@
Copyright (C) @RELEASE_YEAR@ Free Software Foundation, Inc.
License GPLv3+/Autoconf: GNU GPL version 3 or later
<https://gnu.org/licenses/gpl.html>, <https://gnu.org/licenses/exceptions.html>
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:
|