2
0
mirror of git://git.sv.gnu.org/autoconf synced 2025-03-19 14:40:24 +08:00

* configure.ac: Also find tested executables in bin.

* bin/autoconf.in, bin/autoheader.in, bin/autoreconf.in,
* bin/autoscan.in, autoupdate.in: Use exclusively the name of the
installed peer executables, only PATH is allowed to resolve it.
Pass `autoconf_dir' via options, not via invisible envvars.
* lib/Autom4te/General.pm (&find_peer): Remove.
* lib/autotest/general.m4 (AT_INIT): `AUTOTEST_PATH=a:b' gives
`abuild:asrc:bbuild:bsrc', not `abuild:bbuild:asrc:bsrc'.
* man/Makefile.am: Let help2man rely on PATH instead of trying to
find the executables for it.
* tests/Makefile.am: Major cleanup.  Too lazy to document...
* tests/atlocal.in: Remove all the obscure envvar manipulations.
We only need PERL.
* tests/atspecific.m4, tests/tools.at: Passing --localdir is
indeed related to running the test suite, while passing
--autoconf-dir and others is related to running non installed
Autoconf executables.  So don't do that, leave it to...
* tests/autoconf, tests/autoheader, tests/autom4te, tests/autoupdate,
* tests/autoscan: New.
* tests/atspecific.m4 (AT_CHECK_M4SUGAR, AT_CHECK_M4SH): Don't
refer to library files: rely on --language.
This commit is contained in:
Akim Demaille 2001-08-31 13:30:11 +00:00
parent 8f108edc8e
commit 1b9b5dd33a
19 changed files with 209 additions and 219 deletions

@ -1,3 +1,27 @@
2001-08-31 Akim Demaille <akim@epita.fr>
* configure.ac: Also find tested executables in bin.
* bin/autoconf.in, bin/autoheader.in, bin/autoreconf.in,
* bin/autoscan.in, autoupdate.in: Use exclusively the name of the
installed peer executables, only PATH is allowed to resolve it.
Pass `autoconf_dir' via options, not via invisible envvars.
* lib/Autom4te/General.pm (&find_peer): Remove.
* lib/autotest/general.m4 (AT_INIT): `AUTOTEST_PATH=a:b' gives
`abuild:asrc:bbuild:bsrc', not `abuild:bbuild:asrc:bsrc'.
* man/Makefile.am: Let help2man rely on PATH instead of trying to
find the executables for it.
* tests/Makefile.am: Major cleanup. Too lazy to document...
* tests/atlocal.in: Remove all the obscure envvar manipulations.
We only need PERL.
* tests/atspecific.m4, tests/tools.at: Passing --localdir is
indeed related to running the test suite, while passing
--autoconf-dir and others is related to running non installed
Autoconf executables. So don't do that, leave it to...
* tests/autoconf, tests/autoheader, tests/autom4te, tests/autoupdate,
* tests/autoscan: New.
* tests/atspecific.m4 (AT_CHECK_M4SUGAR, AT_CHECK_M4SH): Don't
refer to library files: rely on --language.
2001-08-29 Akim Demaille <akim@epita.fr>
* bin/autom4te.in, lib/autom4te.in, bin/autoconf.in:

@ -86,6 +86,7 @@ if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
# Variables.
: ${autoconf_dir=${AC_MACRODIR=@datadir@}}
: ${AUTOM4TE=@autom4te-name@}
debug=false
force=false
dir=`echo "$0" | sed -e 's,[^\\/]*$,,'`
@ -97,16 +98,6 @@ outfile=
status=0
verbose=:
# We test "$dir/autom4te" in case we are in the build tree, in which case
# the names are not transformed yet.
for autom4te in "$AUTOM4TE" \
"$dir/@autom4te-name@" \
"$dir/autom4te" \
"@bindir@/@autom4te-name@"; do
test -f "$autom4te" && break
done
# Parse command line.
while test $# -gt 0 ; do
optarg=`expr "x$1" : 'x--[^=]*=\(.*\)' \| \
@ -223,17 +214,13 @@ esac
# Unless specified, the output is stdout.
test -z "$outfile" && outfile=-
# Propagate -A.
if test -n "$autoconf_dir"; then
export AC_MACRODIR=$autoconf_dir
fi
# Running autom4te.
run_autom4te="$autom4te "\
run_autom4te="$AUTOM4TE "\
`$verbose "--verbose "`\
`$debug && echo "--debug "`\
`$force && echo "--force "`\
"--language=autoconf "\
"--include=$autoconf_dir "\
"--include=$localdir "\
`test -n "$warnings" && echo "--warning=$warnings "`\
"--output=$outfile "\

@ -79,15 +79,8 @@ if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
# Variables.
: ${autoconf_dir=${AC_MACRODIR=@datadir@}}
: ${AUTOCONF=@autoconf-name@}
dir=`echo "$0" | sed -e 's,[^/]*$,,'`
# We test "$dir/autoconf" in case we are in the build tree, in which case
# the names are not transformed yet.
for autoconf in "$AUTOCONF" \
"$dir/@autoconf-name@" \
"$dir/autoconf" \
"@bindir@/@autoconf-name@"; do
test -f "$autoconf" && break
done
debug=false
localdir=.
force=false
@ -260,10 +253,9 @@ case $# in
esac
# Set up autoconf.
autoconf="$autoconf -l $localdir "\
autoconf="$AUTOCONF -A $autoconf_dir -l $localdir "\
`$verbose "--verbose "`\
`$debug && echo "--debug "`
export autoconf_dir
# ----------------------- #
# Real work starts here. #

@ -1,7 +1,7 @@
#! @SHELL@
# -*- shell-script -*-
# autoreconf - remake all Autoconf configure scripts in a directory tree
# Copyright 1994, 1999, 2000 Free Software Foundation, Inc.
# Copyright 1994, 1999, 2000, 2001 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
@ -91,6 +91,13 @@ if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
# Variables.
: ${autoconf_dir=${AC_MACRODIR=@datadir@}}
: ${AUTOCONF=@autoconf-name@}
: ${AUTOHEADER=@autoheader-name@}
# Looking for automake.
: ${AUTOMAKE=automake}
# Looking for aclocal.
: ${ACLOCAL=aclocal}
debug=false
dir=`echo "$0" | sed -e 's,[^\\/]*$,,'`
force=false
@ -104,28 +111,6 @@ status=0
symlink=false
verbose=:
# Looking for autoconf.
# We test "$dir/autoconf" in case we are in the build tree, in which case
# the names are not transformed yet.
for autoconf in "$AUTOCONF" \
"$dir/@autoconf-name@" \
"$dir/autoconf" \
"@bindir@/@autoconf-name@"; do
test -f "$autoconf" && break
done
# Looking for autoheader.
for autoheader in "$AUTOHEADER" \
"$dir/@autoheader-name@" \
"$dir/autoheader" \
"@bindir@/@autoheader-name@"; do
test -f "$autoheader" && break
done
# Looking for automake.
: ${automake=${AUTOMAKE=automake}}
# Looking for aclocal.
: ${aclocal=${ACLOCAL=aclocal}}
# Parse command line.
while test $# -gt 0; do
optarg=`expr "x$1" : 'x--[^=]*=\(.*\)' \| \
@ -189,7 +174,7 @@ while test $# -gt 0; do
# Options of Automake.
--cygnus | --foreign | --gnits | --gnu | --include-deps | -i )
automake="$automake $1"; shift ;;
AUTOMAKE="$AUTOMAKE $1"; shift ;;
-- ) # Stop option processing.
shift; break ;;
@ -213,22 +198,22 @@ fi
# If verbose, say what you are going to use.
if test $verbose = echo; then
$autoconf --version |
$AUTOCONF --version |
sed "s,.*)\(.*\)$,$me: using autoconf\1: $autoconf,;1q" >&2
$autoheader --version |
$AUTOHEADER --version |
sed "s,.*)\(.*\)$,$me: using autoheader\1: $autoheader,;1q" >&2
$automake --version |
$AUTOMAKE --version |
sed "s,.*)\(.*\)$,$me: using automake\1: $automake,;1q" >&2
$aclocal --version |
$ACLOCAL --version |
sed "s,.*)\(.*\)$,$me: using aclocal\1: $aclocal,;1q" >&2
fi
# Dispatch autoreconf's option to the tools.
# --localdir
autoconf="$autoconf -l $localdir"
autoheader="$autoheader -l $localdir"
autoconf="$AUTOCONF -A $autoconf_dir -l $localdir"
autoheader="$AUTOHEADER -A $autoconf_dir -l $localdir"
# --force
$force || automake="$automake --no-force"
$force || AUTOMAKE="$AUTOMAKE --no-force"
$force &&
{
autoconf="$autoconf --force"
@ -238,15 +223,13 @@ $force &&
autoconf="$autoconf `$verbose --verbose`"
autoheader="$autoheader `$verbose --verbose`"
automake="$automake `$verbose --verbose`"
aclocal="$aclocal `$verbose --verbose`"
aclocal="$ACLOCAL `$verbose --verbose`"
# --debug
$debug &&
{
autoconf="$autoconf --debug"
autoheader="$autoheader --debug"
}
# --macrodir
export autoconf_dir
# --install and --symlink
if $install; then
automake="$automake --add-missing `$symlink || echo --copy`"

@ -71,7 +71,7 @@ my $log = new IO::File ">$me.log"
or die "$me: cannot open $me.log: $!\n";
# Autoconf and lib files.
my $autoconf = find_peer ('autoconf', "@bindir@", 'autoconf-name');
my $autoconf = $ENV{'AUTOCONF'} || '@autoconf_name@';
my $datadir = $ENV{"AC_MACRODIR"} || "@datadir@";

@ -37,7 +37,7 @@ use strict;
# Lib files.
my $autoconf_dir = $ENV{"AC_MACRODIR"} || "@datadir@";
my $autoconf = find_peer ('autoconf', "@bindir@", 'autoconf-name');
my $autoconf = $ENV{'AUTOCONF'} || '@autoconf-name@';
my $localdir = '.';
# m4.
my $m4 = $ENV{"M4"} || "@M4@";

@ -28,7 +28,9 @@ AC_CONFIG_AUX_DIR(config)
AM_INIT_AUTOMAKE(autoconf, 2.52c)
# Initialize the test suite.
AC_CONFIG_TESTDIR(tests, bin)
# Some of our bins are location independant, e.g., ifnames.
# We don't need wrappers for them.
AC_CONFIG_TESTDIR(tests, tests:bin)
AC_PATH_PROG(EXPR, expr)
# We use a path for GNU m4 so even if users have another m4 first in

@ -28,7 +28,7 @@ use strict;
use vars qw (@ISA @EXPORT);
@ISA = qw (Exporter);
@EXPORT = qw (&find_configure_ac &find_peer &mktmpdir &mtime
@EXPORT = qw (&find_configure_ac &mktmpdir &mtime
&uniq &verbose &xsystem
$me $verbose $debug $tmp);
@ -104,44 +104,6 @@ sub find_configure_ac ()
}
# $PEER_PATH
# find_peer($PEER, $BINDIR, $PEER-NAME)
# -------------------------------------
# Look for $PEER executables: autoconf, autoheader etc.
# $BINDIR is @bindir@, and $PEER-NAME the transformed peer name
# (when configured with --transform-program-names etc.).
# We could have it AC_SUBST'ed in here, but it then means General.pm
# is in builddir, hence more paths to adjust etc. Yick.
sub find_peer ($$$)
{
my ($peer, $bindir, $peer_name) = @_;
my $res = undef;
my $PEER = uc $peer;
my $dir = dirname ($0);
# We test "$dir/autoconf" in case we are in the build tree, in which case
# the names are not transformed yet.
foreach my $file ($ENV{"$PEER"} || '',
"$dir/$peer_name",
"$dir/$peer",
"$bindir/$peer_name")
{
# FIXME: This prevents passing options... Maybe run --version?
if (-x $file)
{
$res = $file;
last;
}
}
# This is needed because perl's '-x' isn't a smart as bash's; that
# is, it won't find `autoconf.sh' etc.
$res ||= $peer;
return $res;
}
# mktmpdir ($SIGNATURE)
# ---------------------
# Create a temporary directory which name is based on $SIGNATURE.

@ -259,39 +259,28 @@ at_IFS_save=$IFS
IFS=$PATH_SEPARATOR
at_sep=
at_path=
# Build first.
for at_dir in $AUTOTEST_PATH; do
for at_dir in $AUTOTEST_PATH $PATH
do
case $at_dir in
[[\\/]]* | ?:[[\\/]]* )
at_dir=`(cd "$at_dir" && pwd) 2>/dev/null` ;;
if test -d "$at_dir"; then
at_path="$at_path$at_sep$at_dir"
at_sep=$PATH_SEPARATOR
fi
;;
* )
at_dir=`(cd "$top_builddir/$at_dir" && pwd) 2>/dev/null` ;;
at_build_dir=`(cd "$top_builddir/$at_dir" && pwd) 2>/dev/null`
if test -d "$at_build_dir"; then
at_path="$at_path$at_sep$at_build_dir"
at_sep=$PATH_SEPARATOR
fi
at_src_dir=`(cd "$top_srcdir/$at_dir" && pwd) 2>/dev/null`
if test -d "$at_src_dir"; then
at_path="$at_path$at_sep$at_src_dir"
at_sep=$PATH_SEPARATOR
fi
;;
esac
if test -d "$at_dir"; then
at_path="$at_path$at_sep$at_dir"
at_sep=$PATH_SEPARATOR
fi
done
# Then source.
for at_dir in $AUTOTEST_PATH; do
case $at_dir in
[[\\/]]* | ?:[[\\/]]* )
at_dir=`(cd "$at_dir" && pwd) 2>/dev/null` ;;
* )
at_dir=`(cd "$top_srcdir/$at_dir" && pwd) 2>/dev/null` ;;
esac
if test -d "$at_dir"; then
at_path="$at_path$at_sep$at_dir"
at_sep=$PATH_SEPARATOR
fi
done
# And finally PATH.
for at_dir in $PATH; do
at_dir=`(cd "$at_dir" && pwd) 2>/dev/null`
if test -d "$at_dir"; then
at_path="$at_path$at_sep$at_dir"
at_sep=$PATH_SEPARATOR
fi
done
IFS=$at_IFS_save
PATH=$at_path

@ -45,17 +45,10 @@ config.sub.1: $(srcdir)/config.sub.x $(top_srcdir)/config/config.sub
SUFFIXES = .x .1
.x.1:
test -f $(top_builddir)/bin/$* && prog=$(top_builddir)/bin/$*; \
test -f $(top_srcdir)/config/$* && prog=$(top_srcdir)/config/$*; \
if test -n "$$prog"; then \
echo "Updating man page $@"; \
autom4te_perllibdir="$(top_srcdir)/lib" \
AUTOM4TE_CFG="$(top_builddir)/lib/autom4te.cfg" \
$(HELP2MAN) \
echo "Updating man page $@"
PATH=$(top_builddir)/bin:$(top_srcdir)/config:$$PATH ;\
export PATH ;\
$(HELP2MAN) \
--include=$(srcdir)/$*.x \
--include=$(srcdir)/common.x \
--output=$@ $$prog; \
else \
echo "WARNING: The man page $@ cannot be updated yet."; \
echo " Retry once the corresponding executable is built."; \
fi
--output=$@ $*

@ -18,73 +18,95 @@
## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
## 02111-1307, USA.
AUTOMAKE_OPTIONS = gnits
# We don't actually distribute the testsuite, since one only
# needs m4 to build it, m4 being required anyway to install Autoconf.
EXTRA_DIST = $(WRAPPERS) $(TESTSUITE_AT) atspecific.m4 aclocal.m4 mktests.sh \
atlocal.in
SUITE_GENERATED = \
# Running the uninstalled scripts.
WRAPPERS = autoconf autoheader autoreconf autom4te autoupdate
DISTCLEANFILES = atconfig atlocal $(TESTSUITE)
TESTSUITE_GENERATED_AT = \
aclang.at acc.at acfortran.at \
acgeneral.at acstatus.at \
acautoheader.at acautoupdate.at \
acspecific.at acfunctions.at acheaders.at actypes.at \
aclibs.at acprograms.at
SUITE = suite.at \
TESTSUITE_HAND_AT = \
suite.at \
m4sugar.at m4sh.at \
base.at tools.at torture.at \
compile.at \
$(SUITE_GENERATED) \
semantics.at \
foreign.at
# We don't actually distribute the testsuite, since one only
# needs m4 to build it, m4 being required anyway to install Autoconf.
# atlocal.in is to be listed, since Automake doesn't see it...
EXTRA_DIST = README \
atspecific.m4 aclocal.m4 \
atlocal.in $(SUITE) mktests.sh
TESTSUITE_AT = $(TESTSUITE_GENERATED_AT) $(TESTSUITE_HAND_AT)
TESTSUITE = ./testsuite
check-local: atconfig atlocal testsuite
$(SHELL) testsuite
AUTOM4TE = AUTOM4TE_CFG='$(top_builddir)/lib/autom4te.cfg' \
AC_MACRODIR='$(top_srcdir)/lib' \
../bin/autom4te
# Run the non installed autom4te.
AUTOM4TE = $(srcdir)/autom4te
AUTOTEST = $(AUTOM4TE) --language=autotest
testsuite: $(top_srcdir)/lib/m4sugar/m4sugar.m4 \
$(top_srcdir)/lib/m4sugar/m4sh.m4 \
$(top_srcdir)/lib/autotest/autotest.m4 \
$(top_srcdir)/lib/autotest/general.m4 \
atspecific.m4 \
$(SUITE)
$(AUTOM4TE) --language=autotest -I $(srcdir) -I $(top_srcdir)/lib \
suite.at -o $@.tmp
$(TESTSUITE_AT)
$(AUTOTEST) -I $(srcdir) suite.at -o $@.tmp
mv $@.tmp $@
# The files which contains macro we check for syntax. Don't use $(top_srcdir)
# here since below we explicitly `cd' to $srcdir. As for the dependencies,
# thanks God for VPATH. Hm...
MACRO_FILES = $(top_srcdir)/lib/autoconf/general.m4 \
$(top_srcdir)/lib/autoconf/status.m4 \
$(top_srcdir)/lib/autoconf/autoheader.m4 \
$(top_srcdir)/lib/autoconf/autoupdate.m4 \
$(top_srcdir)/lib/autoconf/specific.m4 \
$(top_srcdir)/lib/autoconf/functions.m4 \
$(top_srcdir)/lib/autoconf/lang.m4 \
$(top_srcdir)/lib/autoconf/c.m4 \
$(top_srcdir)/lib/autoconf/fortran.m4 \
$(top_srcdir)/lib/autoconf/headers.m4 \
$(top_srcdir)/lib/autoconf/libs.m4 \
$(top_srcdir)/lib/autoconf/types.m4 \
$(top_srcdir)/lib/autoconf/programs.m4
atconfig: $(top_builddir)/config.status
cd $(top_builddir) && ./config.status tests/$@
$(SUITE_GENERATED): mktests.sh $(MACRO_FILES)
cd $(srcdir) && ./mktests.sh $(MACRO_FILES)
atlocal: $(srcdir)/atlocal.in $(top_builddir)/config.status
cd $(top_builddir) && ./config.status tests/$@
clean-local:
$(SHELL) $(TESTSUITE) --clean
rm -rf autom4te.cache
check-local: atconfig atlocal $(TESTSUITE)
$(SHELL) $(TESTSUITE)
# Run the test suite on the *installed* tree.
installcheck-local:
$(SHELL) $(TESTSUITE) AUTOTEST_PATH=$(exec_prefix)/bin
DISTCLEANFILES = atconfig atlocal testsuite
## ------------------ ##
## Maintainer rules. ##
## ------------------ ##
MAINTAINERCLEANFILES = Makefile.in $(TESTSUITE_GENERATED_AT)
## Producing the test files.
# The files which contains macro we check for syntax. Don't use $(top_srcdir)
# here since below we explicitly `cd' to $srcdir. As for the dependencies,
# thanks God for VPATH. Hm...
autoconfdir = $(top_srcdir)/lib/autoconf
AUTOCONF_FILES = $(autoconfdir)/general.m4 \
$(autoconfdir)/status.m4 \
$(autoconfdir)/autoheader.m4 \
$(autoconfdir)/autoupdate.m4 \
$(autoconfdir)/specific.m4 \
$(autoconfdir)/functions.m4 \
$(autoconfdir)/lang.m4 \
$(autoconfdir)/c.m4 \
$(autoconfdir)/fortran.m4 \
$(autoconfdir)/headers.m4 \
$(autoconfdir)/libs.m4 \
$(autoconfdir)/types.m4 \
$(autoconfdir)/programs.m4
$(TESTSUITE_GENERATED_AT): mktests.sh $(AUTOCONF_FILES)
cd $(srcdir) && ./mktests.sh $(AUTOCONF_FILES)
## maintainer-check ##
maintainer-check: maintainer-check-posix maintainer-check-c++
@ -109,7 +131,3 @@ maintainer-check-posix: expr
# Try using G++ as a C compiler.
maintainer-check-c++:
CC=g++ make check
clean-local:
./testsuite --clean
-rm -rf autom4te.cache

@ -1,20 +1,7 @@
# -*- shell-script -*-
# @configure_input@
# Configurable variable values for building test suites.
# Configurable variable values for Autoconf test suite.
# Copyright 2000, 2001 Free Software Foundation, Inc.
# We need GNU m4, and Perl.
M4='@M4@'
# We need Perl.
PERL='@PERL@'
# Be sure to use the non installed Perl modules.
# We need no special protection for the subtools (e.g., autoheader runs
# autoconf which runs autom4te) because by themselves, they try to use
# subtools from the same directory (i.e., foo/autoheader will run
# foo/autoconf etc.).
AC_MACRODIR=$top_srcdir/lib
export AC_MACRODIR
autom4te_perllibdir=$top_srcdir/lib
export autom4te_perllibdir
autom4te_cfg=$top_builddir/lib
export autom4te_cfg

@ -27,7 +27,7 @@
# ----------------------------------------------------------
m4_define([AT_CHECK_M4SUGAR],
[AT_CLEANUP_FILES([script.4s script autom4te.cache])dnl
AT_CHECK([autom4te -I $top_srcdir/lib m4sugar/m4sugar.m4 script.s4g -o script $1],
AT_CHECK([autom4te --language=m4sugar script.s4g -o script $1],
m4_default([$2], [0]), [$3], [$4])])
@ -35,7 +35,7 @@ AT_CHECK([autom4te -I $top_srcdir/lib m4sugar/m4sugar.m4 script.s4g -o script $1
# -------------------------------------------------------
m4_define([AT_CHECK_M4SH],
[AT_CLEANUP_FILES([script.as script autom4te.cache])dnl
AT_CHECK([autom4te -I $top_srcdir/lib m4sugar/m4sh.m4 script.as -o script $1],
AT_CHECK([autom4te --language=m4sh script.as -o script $1],
m4_default([$2], [0]), [$3], [$4])])
@ -65,7 +65,7 @@ AC_STATE_SAVE(after)
# -----------------------------------------------------------
m4_define([AT_CHECK_AUTOCONF],
[AT_CLEANUP_FILES(configure.in configure autom4te.cache)dnl
AT_CHECK([autoconf --autoconf-dir ../lib -l $at_srcdir $1],
AT_CHECK([autoconf --localdir=$srcdir $1],
m4_default([$2], [0]), [$3], [$4])])
@ -73,7 +73,7 @@ AT_CHECK([autoconf --autoconf-dir ../lib -l $at_srcdir $1],
# -------------------
m4_define([AT_CHECK_AUTOHEADER],
[AT_CLEANUP_FILES(config.hin)dnl
AT_CHECK([autoheader --autoconf-dir ../lib -l $at_srcdir], 0, [], [])])
AT_CHECK([autoheader --localdir=$srcdir], 0, [], [])])
# AT_CHECK_CONFIGURE(END-COMMAND,
@ -125,7 +125,7 @@ m4_define([AT_CHECK_DEFINES],
# AT_CHECK_AUTOUPDATE
# -------------------
m4_define([AT_CHECK_AUTOUPDATE],
[AT_CHECK([autoupdate --autoconf-dir $at_top_srcdir/lib], 0,
[AT_CHECK([autoupdate], 0,
[], [autoupdate: `configure.ac' is updated
])])
@ -147,8 +147,9 @@ AT_CHECK_ENV
])# _AT_CHECK_AC_MACRO
# AT_CHECK_MACRO(MACRO, [MACRO-USE], [ADDITIONAL-CMDS], [AUTOCONF-FLAGS])
# -----------------------------------------------------------------------
# AT_CHECK_MACRO(MACRO, [MACRO-USE], [ADDITIONAL-CMDS],
# [AUTOCONF-FLAGS = -W obsolete])
# -----------------------------------------------------
# Create a minimalist configure.ac running the macro named
# NAME-OF-THE-MACRO, check that autoconf runs on that script,
# and that the shell runs correctly the configure.

8
tests/autoconf Executable file

@ -0,0 +1,8 @@
#! /bin/sh
# Running `autoheader' as if it were installed.
me=`echo "$0" | sed -e 's,.*[\\/],,'`
. ./atconfig
exec ../bin/$me --autoconf-dir ../lib ${1+"$@"}

8
tests/autoheader Executable file

@ -0,0 +1,8 @@
#! /bin/sh
# Running `autoheader' as if it were installed.
me=`echo "$0" | sed -e 's,.*[\\/],,'`
. ./atconfig
exec ../bin/$me --autoconf-dir ../lib ${1+"$@"}

18
tests/autom4te Executable file

@ -0,0 +1,18 @@
#! /bin/sh
# Running `autom4te' as if it were installed.
. ./atconfig
# Be sure to use the non installed Perl modules.
# We need no special protection for the subtools (e.g., autoheader runs
# autoconf which runs autom4te) because by themselves, they try to use
# subtools from the same directory (i.e., foo/autoheader will run
# foo/autoconf etc.).
autom4te_perllibdir=$top_srcdir/lib
export autom4te_perllibdir
AUTOM4TE_CFG=$top_builddir/lib/autom4te.cfg
export AUTOM4TE_CFG
# We might need files from build (frozen files), in addition of src files.
exec ../bin/autom4te -I ../lib -I $top_srcdir/lib ${1+"$@"}

8
tests/autoreconf Executable file

@ -0,0 +1,8 @@
#! /bin/sh
# Running `autoheader' as if it were installed.
me=`echo "$0" | sed -e 's,.*[\\/],,'`
. ./atconfig
exec ../bin/$me --autoconf-dir ../lib ${1+"$@"}

14
tests/autoupdate Executable file

@ -0,0 +1,14 @@
#! /bin/sh
# Running `autoupdate' as if it were installed.
. ./atconfig
# Be sure to use the non installed Perl modules.
# We need no special protection for the subtools (e.g., autoheader runs
# autoconf which runs autom4te) because by themselves, they try to use
# subtools from the same directory (i.e., foo/autoheader will run
# foo/autoconf etc.).
autom4te_perllibdir=$top_srcdir/lib
export autom4te_perllibdir
exec ../bin/autoupdate --autoconf-dir ../lib ${1+"$@"}

@ -234,8 +234,7 @@ AT_CHECK_AUTOCONF([[-t define | sed -n '$p']],
# dive into obscure feature interaction...
# Note that using `-i' means we need the *.m4 files, not the *.m4f files,
# hence we need srcdir, not builddir.
AT_CHECK_AUTOCONF([[--autoconf-dir $at_top_srcdir/lib -t define:'$1' -i|
sed -n '$p']],
AT_CHECK_AUTOCONF([[-t define:'$1' -i| sed -n '$p']],
0,
[[active
]])
@ -390,7 +389,7 @@ AC_CONFIG_HEADERS(config.h)
AC_DEFINE(this, "whatever you want.")
]])
AT_CHECK([autoheader --autoconf-dir ../lib -<configure.ac], 0,
AT_CHECK([autoheader -<configure.ac], 0,
[[/* config.h.in. Generated automatically from Standard input by autoheader. */
/* Define this to whatever you want. */
#undef this
@ -404,7 +403,7 @@ AC_CONFIG_HEADERS(config.h)
AC_DEFINE(that, "whatever you want.")
]])
AT_CHECK([autoheader --autoconf-dir ../lib -<configure.ac], 1, [],
AT_CHECK([autoheader -<configure.ac], 1, [],
[autoheader: No template for symbol `that'
])
@ -432,7 +431,7 @@ AH_BOTTOM([Bottom2 from configure.ac.])
# Yes, that's right: the `middle' part of `acconfig.h' is still before
# the AH_TOP part. But so what, you're not supposed to use the two
# together.
AT_CHECK([autoheader --autoconf-dir ../lib -<configure.ac], 0,
AT_CHECK([autoheader -<configure.ac], 0,
[[/* config.h.in. Generated automatically from Standard input by autoheader. */
/* Top from acconfig.h. */
@ -485,7 +484,7 @@ AC_OUTPUT
AT_CHECK_AUTOUPDATE
AT_CHECK([cat configure.ac], 0, [expout])
# Checking that `autoupdate' is idempotent
AT_CHECK([autoupdate --autoconf-dir $at_top_srcdir/lib], 0, [],
AT_CHECK([autoupdate], 0, [],
[autoupdate: `configure.ac' is unchanged
])
AT_CHECK([cat configure.ac], 0, [expout])
@ -528,16 +527,13 @@ cat >expout <<EOF
AC_PREREQ($at_version)
EOF
AT_CHECK([echo "AC_PREREQ(1.0)" |
autoupdate --autoconf-dir $at_top_srcdir/lib -],
AT_CHECK([echo "AC_PREREQ(1.0)" | autoupdate -],
0, [expout], [])
AT_CHECK([echo "AC_PREREQ($at_version)" |
autoupdate --autoconf-dir $at_top_srcdir/lib -],
AT_CHECK([echo "AC_PREREQ($at_version)" | autoupdate -],
0, [expout], [])
AT_CHECK([echo "AC_PREREQ(999.99)" |
autoupdate --autoconf-dir $at_top_srcdir/lib -],
AT_CHECK([echo "AC_PREREQ(999.99)" | autoupdate -],
1, [], [ignore])
AT_CLEANUP