diff --git a/BUGS b/BUGS index 4cb53fcc..87f3a1f3 100644 --- a/BUGS +++ b/BUGS @@ -45,3 +45,11 @@ The handling is being revamped, and has not been tested enough to be trusted. We are *extremely* interested in your comments and experience with this being-built new semantics. Nonetheless it is way too soon to use this version even for beta releases. + +** make distcheck +Always fails. Don't even try. But once installed Autoconf is usable. + +** make check +Might fail if you have an old version of 2.52c installed on your +machine. Please, then run make install before. But once installed +Autoconf is usable. diff --git a/ChangeLog b/ChangeLog index 7f293366..75dab4ec 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,16 @@ +2001-08-29 Akim Demaille + + * lib/autom4te.in: New. + * lib/Makefile.am (edit, autom4te.cfg): New. + * bin/autom4te.in (BEGIN): Simplify. + Rely on `AC_MACRODIR' in addition of `autom4te_perllibdir'. + (&load_configuration): New. Use it. + (&parse_args): Support --mode, --set, and --melt. + * bin/autoconf.in: Simplify and adjust. + * tests/Makefile.am (AUTOMAKE): Use --set. + * tests/atlocal.in: Adjust. + * BUGS: distcheck and check are weak. + 2001-08-29 Akim Demaille * lib/autotest/general.m4: Use diff --git a/bin/Makefile.am b/bin/Makefile.am index 005e787a..360b18a4 100644 --- a/bin/Makefile.am +++ b/bin/Makefile.am @@ -46,10 +46,9 @@ edit = sed \ -e 's,@VERSION\@,$(VERSION),g' \ -e 's,@PACKAGE_NAME\@,$(PACKAGE_NAME),g' -## All the scripts below depend on configure.ac so that they are rebuilt +## All the files below depend on configure.ac so that they are rebuilt ## when the Autoconf version changes. Unfortunately, suffix rules cannot -## have additional dependencies, so we have to use explicit rules for -## every script. +## have additional dependencies, so we have to use explicit rules. autoconf: $(srcdir)/autoconf.in $(top_srcdir)/configure.ac rm -f autoconf autoconf.tmp diff --git a/bin/autoconf.in b/bin/autoconf.in index 49169663..00f5df57 100644 --- a/bin/autoconf.in +++ b/bin/autoconf.in @@ -223,36 +223,29 @@ esac # Unless specified, the output is stdout. test -z "$outfile" && outfile=- -# Preselected macros: for autoheader and automake. -for i in AC_CONFIG_HEADERS AH_OUTPUT AC_DEFINE_TRACE_LITERAL \ - AC_SUBST AC_LIBSOURCE -do - preselect="$preselect--preselect $i " -done - +# Propagate -A. +if test -n "$autoconf_dir"; then + export AC_MACRODIR=$autoconf_dir +fi # Running autom4te. run_autom4te="$autom4te "\ `$verbose "--verbose "`\ `$debug && echo "--debug "`\ `$force && echo "--force "`\ -"--normalize "\ -"--include $autoconf_dir --include $localdir "\ -"--warning syntax,$warnings "\ -"$preselect"\ -"autoconf/autoconf.m4"`$initialization || echo f`" "\ +"--set=autoconf "\ +"--include=$localdir "\ +`test -n "$warnings" && echo "--warning=$warnings "`\ +"--output=$outfile "\ +`$initialization && echo "--melt "`\ `test -f "$autoconf_dir/acsite.m4" && echo "$autoconf_dir/acsite.m4"`" "\ `test -f "$localdir/aclocal.m4" && echo "$localdir/aclocal.m4"` # Autom4te expansion. eval set dummy "$traces" shift -$verbose "$me: running $run_autom4te "${1+"$@"}" $infile --output $outfile" >&2 -$run_autom4te ${1+"$@"} $infile --output $outfile || +$verbose "$me: running $run_autom4te "${1+"$@"}" $infile" >&2 +$run_autom4te ${1+"$@"} $infile || { (exit 1); exit 1; } -if test -z "$traces" && test "x$outfile" != x-; then - chmod +x $outfile -fi - (exit $status); exit $status diff --git a/bin/autom4te.in b/bin/autom4te.in index b4e83a97..421f8b02 100644 --- a/bin/autom4te.in +++ b/bin/autom4te.in @@ -26,9 +26,10 @@ eval 'exec @PERL@ -S $0 ${1+"$@"}' BEGIN { - my $prefix = "@prefix@"; - my $perllibdir = $ENV{'autom4te_perllibdir'} || "@datadir@"; - unshift @INC, "$perllibdir"; + my $datadir = ($ENV{'autom4te_perllibdir'} + || $ENV{'AC_MACRODIR'} + || '@datadir@'); + unshift @INC, "$datadir"; } ## --------- ## @@ -235,6 +236,25 @@ use File::Basename; use IO::File; use strict; +# Configuration file. +my $datadir = $ENV{'AC_MACRODIR'} || '@datadir@'; +my $autom4te_cfg = $ENV{'AUTOM4TE_CFG'} || "$datadir/autom4te.cfg"; + +# $SET{$SET} is the list of automatic options for $SET. +my %set; +my $set; + +my $output = '-'; + +# Should we normalize the output? +my $normalize = 0; + +# Mode of the output file except for traces. +my $mode = "0666"; + +# If melt, don't use frozen files. +my $melt = 0; + # Names of the cache directory, cache directory index, trace cache # prefix, and output cache prefix. my $cache = "$me.cache"; @@ -253,11 +273,6 @@ my %trace; # FIXME: What about `sinclude'? my @preselect = ('include', 'm4_pattern_allow', 'm4_pattern_forbid'); -my $output = '-'; - -# Should we normalize the output? -my $normalize = 0; - # Autom4te's default warnings, and the actual list of warnings. my @my_warning = ('syntax'); my @warning; @@ -394,6 +409,15 @@ Operation modes: --normalize smash successive empty lines -f, --force don\'t rely on cached values -W, --warnings=CATEGORY report the warnings falling in CATEGORY + -s, --set=SET specify the set of M4 macros to use + -m, --mode=OCTAL change the non trace output file mode (0666) + -M, --melt don\'t use M4 frozen files + +Sets include: + \`Autoconf\' create Autoconf configure scripts + \`Autotest\' create Autotest test suites + \`M4sh\' create M4sh shell scripts + \`M4sugar\' create M4sugar output Warning categories include: \`cross\' cross compilation issues @@ -437,6 +461,46 @@ EOF } +# load_configuration () +# --------------------- +# Load the configuration file. +sub load_configuration () +{ + use Text::ParseWords; + + my $cfg = new IO::File ($autom4te_cfg) + or die "$me: cannot read $autom4te_cfg: $!\n"; + my $set; + while ($_ = $cfg->getline) + { + chomp; + # Comments. + next + if /^\s*(\#.*)?$/; + + my @words = shellwords ($_); + my $type = shift @words; + if ($type eq 'begin-set:') + { + $set = lc $words[0]; + } + elsif ($type eq 'end-set:') + { + die "$me: $autom4te_cfg:$.: end-set mismatch: $set\n" + if $set ne lc $words[0]; + } + elsif ($type eq 'args:') + { + push @{$set{$set}}, @words; + } + else + { + die "$me: $autom4te_cfg:$.: unknown directive: $type\n"; + } + } +} + + # parse_args () # ------------- # Process any command line arguments. @@ -444,18 +508,36 @@ sub parse_args () { my @trace; - Getopt::Long::config ("bundling"); + # We want to look for the early options, which should not be found + # in the configuration file. Prepend to the user arguments. + Getopt::Long::Configure ("bundling", "pass_through"); + GetOptions ( + "h|help" => \&print_usage, + "V|version" => \&print_version, + + "s|set=s" => \$set, + "v|verbose" => \$verbose, + "d|debug" => \$debug, + ) + or exit 1; + Getopt::Long::Configure ("defaults"); + unshift @ARGV, @{$set{$set}} + if $set; + + verbose "arguments: @ARGV\n" + if $debug; + + # Process the arguments for real this time. + Getopt::Long::Configure ("bundling"); GetOptions ( # Operation modes: - "h|help" => \&print_usage, - "V|version" => \&print_version, - "v|verbose" => \$verbose, - "d|debug" => \$debug, "o|output=s" => \$output, "normalize" => \$normalize, "f|force" => \$force, "W|warnings=s" => \@warning, + "m|mode=s" => \$mode, + "M|melt" => \$melt, # Library directories: "I|include=s" => \@include, @@ -495,6 +577,9 @@ Try `$me --help' for more information.\n" die "$me: the first file only can be frozen\n" if grep { /\.m4f/ } @ARGV[1 .. $#ARGV]; + $ARGV[0] =~ s/\.m4f$/.m4/ + if $melt; + # We don't want to depend upon m4's --include to find the top level # files. Try to get a canonical name, as it's part of the key for caching. for (my $i = 0; $i < $#ARGV; ++$i) @@ -572,9 +657,21 @@ sub handle_output ($$) verbose "forbidden tokens: $forbidden"; verbose "allowed tokens: $allowed"; - # Read the (cached) raw M4 output, produce the actual result. - my $out = new IO::File (">$output") - or die "$me: cannot create $output: $!\n"; + # Read the (cached) raw M4 output, produce the actual result. We + # have to use the 2nd arg to have IO::File honor the third, but then + # stdout is to be handled by hand :(. Don't use fdopen as it means + # we will close STDOUT, which we already do in END. + my $out = new IO::File; + if ($output eq '-') + { + $out->open (">$output"); + } + else + { + $out->open($output, O_CREAT | O_WRONLY | O_TRUNC, oct ($mode)) + } + die "$me: cannot create $output: $!\n" + unless $out; my $in = new IO::File ($ocache . $req->id) or die "$me: cannot read $ocache" . $req->id . ": $!\n"; @@ -956,6 +1053,7 @@ sub up_to_date_p ($) ## -------------- ## mktmpdir ('t4'); +load_configuration; parse_args; # We need our cache directory. diff --git a/lib/Makefile.am b/lib/Makefile.am index fba820ab..def354b9 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -1,3 +1,28 @@ ## Process this file with automake to create Makefile.in SUBDIRS = Autom4te m4sugar autoconf autotest autoscan +nodist_pkgdata_DATA = autom4te.cfg +EXTRA_DIST = autom4te.in + +edit = sed \ + -e 's,@SHELL\@,$(SHELL),g' \ + -e 's,@PERL\@,$(PERL),g' \ + -e 's,@bindir\@,$(bindir),g' \ + -e 's,@datadir\@,$(pkgdatadir),g' \ + -e 's,@prefix\@,$(prefix),g' \ + -e 's,@autoconf-name\@,'`echo autoconf | sed '$(transform)'`',g' \ + -e 's,@autoheader-name\@,'`echo autoheader | sed '$(transform)'`',g' \ + -e 's,@autom4te-name\@,'`echo autom4te | sed '$(transform)'`',g' \ + -e 's,@M4\@,$(M4),g' \ + -e 's,@AWK\@,$(AWK),g' \ + -e 's,@VERSION\@,$(VERSION),g' \ + -e 's,@PACKAGE_NAME\@,$(PACKAGE_NAME),g' + +# All the files below depend on configure.ac so that they are rebuilt +# when the Autoconf version changes. Unfortunately, suffix rules +# cannot have additional dependencies, so we have to use explicit rules. + +autom4te.cfg: $(top_srcdir)/configure.ac $(srcdir)/autom4te.in + rm -f autom4te.cfg autom4te.tmp + $(edit) $(srcdir)/autom4te.in >autom4te.tmp + mv autom4te.tmp autom4te.cfg diff --git a/lib/Makefile.in b/lib/Makefile.in index 334faa23..6a270b33 100644 --- a/lib/Makefile.in +++ b/lib/Makefile.in @@ -65,10 +65,29 @@ PERL = @PERL@ VERSION = @VERSION@ SUBDIRS = Autom4te m4sugar autoconf autotest autoscan +nodist_pkgdata_DATA = autom4te.cfg +EXTRA_DIST = autom4te.in + +edit = sed \ + -e 's,@SHELL\@,$(SHELL),g' \ + -e 's,@PERL\@,$(PERL),g' \ + -e 's,@bindir\@,$(bindir),g' \ + -e 's,@datadir\@,$(pkgdatadir),g' \ + -e 's,@prefix\@,$(prefix),g' \ + -e 's,@autoconf-name\@,'`echo autoconf | sed '$(transform)'`',g' \ + -e 's,@autoheader-name\@,'`echo autoheader | sed '$(transform)'`',g' \ + -e 's,@autom4te-name\@,'`echo autom4te | sed '$(transform)'`',g' \ + -e 's,@M4\@,$(M4),g' \ + -e 's,@AWK\@,$(AWK),g' \ + -e 's,@VERSION\@,$(VERSION),g' \ + -e 's,@PACKAGE_NAME\@,$(PACKAGE_NAME),g' + subdir = lib mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs CONFIG_CLEAN_FILES = DIST_SOURCES = +DATA = $(nodist_pkgdata_DATA) + RECURSIVE_TARGETS = info-recursive dvi-recursive install-info-recursive \ uninstall-info-recursive all-recursive install-data-recursive \ @@ -87,6 +106,23 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status CONFIG_HEADERS= CONFIG_LINKS= \ CONFIG_FILES=$(subdir)/$@ $(SHELL) ./config.status uninstall-info-am: +install-nodist_pkgdataDATA: $(nodist_pkgdata_DATA) + @$(NORMAL_INSTALL) + $(mkinstalldirs) $(DESTDIR)$(pkgdatadir) + @list='$(nodist_pkgdata_DATA)'; for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " $(INSTALL_DATA) $$d$$p $(DESTDIR)$(pkgdatadir)/$$f"; \ + $(INSTALL_DATA) $$d$$p $(DESTDIR)$(pkgdatadir)/$$f; \ + done + +uninstall-nodist_pkgdataDATA: + @$(NORMAL_UNINSTALL) + @list='$(nodist_pkgdata_DATA)'; for p in $$list; do \ + f="`echo $$p | sed -e 's|^.*/||'`"; \ + echo " rm -f $(DESTDIR)$(pkgdatadir)/$$f"; \ + rm -f $(DESTDIR)$(pkgdatadir)/$$f; \ + done # This directory's subdirectories are mostly independent; you can cd # into them and run `make' without going through this Makefile. @@ -216,9 +252,10 @@ distdir: $(DISTFILES) done check-am: all-am check: check-recursive -all-am: Makefile +all-am: Makefile $(DATA) installdirs: installdirs-recursive installdirs-am: + $(mkinstalldirs) $(DESTDIR)$(pkgdatadir) install: install-recursive install-exec: install-exec-recursive @@ -259,7 +296,7 @@ info: info-recursive info-am: -install-data-am: +install-data-am: install-nodist_pkgdataDATA install-exec-am: @@ -277,7 +314,7 @@ mostlyclean: mostlyclean-recursive mostlyclean-am: mostlyclean-generic -uninstall-am: uninstall-info-am +uninstall-am: uninstall-info-am uninstall-nodist_pkgdataDATA uninstall-info: uninstall-info-recursive @@ -288,14 +325,23 @@ uninstall-info: uninstall-info-recursive install-data install-data-am install-data-recursive \ install-exec install-exec-am install-exec-recursive \ install-info install-info-am install-info-recursive install-man \ - install-recursive install-strip installcheck installcheck-am \ - installdirs installdirs-am installdirs-recursive \ - maintainer-clean maintainer-clean-generic \ + install-nodist_pkgdataDATA install-recursive install-strip \ + installcheck installcheck-am installdirs installdirs-am \ + installdirs-recursive maintainer-clean maintainer-clean-generic \ maintainer-clean-recursive mostlyclean mostlyclean-generic \ mostlyclean-recursive tags tags-recursive uninstall \ uninstall-am uninstall-info-am uninstall-info-recursive \ - uninstall-recursive + uninstall-nodist_pkgdataDATA uninstall-recursive + +# All the files below depend on configure.ac so that they are rebuilt +# when the Autoconf version changes. Unfortunately, suffix rules +# cannot have additional dependencies, so we have to use explicit rules. + +autom4te.cfg: $(top_srcdir)/configure.ac $(srcdir)/autom4te.in + rm -f autom4te.cfg autom4te.tmp + $(edit) $(srcdir)/autom4te.in >autom4te.tmp + mv autom4te.tmp autom4te.cfg # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: diff --git a/lib/autom4te.in b/lib/autom4te.in new file mode 100644 index 00000000..a373d579 --- /dev/null +++ b/lib/autom4te.in @@ -0,0 +1,136 @@ +# Definition of macro sets. -*- Makefile -*- +# +# Copyright 2001 Free Software Foundation, Inc. +# +# This file is part of GNU Autoconf. +# +# GNU Autoconf 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 2, or (at your option) +# any later version. +# +# GNU Autoconf 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 autoconf; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. + +## ---------- ## +## Autoconf. ## +## ---------- ## + +begin-set: "Autoconf" +# patterns: "*.ac" +# patterns: "configure.in" +args: --include @datadir@ +args: autoconf/autoconf.m4f +args: --mode 777 +args: --warning syntax +args: --normalize +# Wanted by autoheader +args: --preselect AC_CONFIG_HEADERS +args: --preselect AH_OUTPUT +args: --preselect AC_DEFINE_TRACE_LITERAL +# Wanted by Automake +args: --preselect AC_LIBSOURCE +args: --preselect AC_SUBST +# Wanted by autoscan +args: --preselect AC_CHECK_FUNCS +args: --preselect AC_CHECK_HEADERS +args: --preselect AC_CHECK_LIB +args: --preselect AC_CHECK_TYPES +args: --preselect AC_C_CONST +args: --preselect AC_C_INLINE +args: --preselect AC_DECL_SYS_SIGLIST +args: --preselect AC_FUNC_ALLOCA +args: --preselect AC_FUNC_CHOWN +args: --preselect AC_FUNC_ERROR_AT_LINE +args: --preselect AC_FUNC_FNMATCH +args: --preselect AC_FUNC_FORK +args: --preselect AC_FUNC_FSEEKO +args: --preselect AC_FUNC_GETGROUPS +args: --preselect AC_FUNC_GETLOADAVG +args: --preselect AC_FUNC_GETPGRP +args: --preselect AC_FUNC_LSTAT +args: --preselect AC_FUNC_MALLOC +args: --preselect AC_FUNC_MEMCMP +args: --preselect AC_FUNC_MKTIME +args: --preselect AC_FUNC_MMAP +args: --preselect AC_FUNC_OBSTACK +args: --preselect AC_FUNC_SETPGRP +args: --preselect AC_FUNC_SETVBUF_REVERSED +args: --preselect AC_FUNC_STAT +args: --preselect AC_FUNC_STRCOLL +args: --preselect AC_FUNC_STRERROR_R +args: --preselect AC_FUNC_STRFTIME +args: --preselect AC_FUNC_STRTOD +args: --preselect AC_FUNC_UTIME_NULL +args: --preselect AC_FUNC_VPRINTF +args: --preselect AC_FUNC_WAIT3 +args: --preselect AC_HEADER_DIRENT +args: --preselect AC_HEADER_MAJOR +args: --preselect AC_HEADER_STAT +args: --preselect AC_HEADER_STDC +args: --preselect AC_HEADER_SYS_WAIT +args: --preselect AC_HEADER_TIME +args: --preselect AC_PATH_X +args: --preselect AC_PROG_AWK +args: --preselect AC_PROG_CC +args: --preselect AC_PROG_CPP +args: --preselect AC_PROG_CXX +args: --preselect AC_PROG_GCC_TRADITIONAL +args: --preselect AC_PROG_INSTALL +args: --preselect AC_PROG_LEX +args: --preselect AC_PROG_LN_S +args: --preselect AC_PROG_MAKE_SET +args: --preselect AC_PROG_RANLIB +args: --preselect AC_PROG_YACC +args: --preselect AC_STRUCT_ST_BLOCKS +args: --preselect AC_STRUCT_TIMEZONE +args: --preselect AC_STRUCT_TM +args: --preselect AC_TYPE_MODE_T +args: --preselect AC_TYPE_OFF_T +args: --preselect AC_TYPE_PID_T +args: --preselect AC_TYPE_SIGNAL +args: --preselect AC_TYPE_SIZE_T +args: --preselect AC_TYPE_UID_T +end-set: "Autoconf" + +## -------- ## +## Autotest ## +## -------- ## + +begin-set: "Autotest" +# patterns: *.at +args: --include @datadir@ +args: autotest/autotest.m4 +args: --mode 777 +args: --warning syntax +end-set: "Autotest" + +## ---- ## +## M4sh ## +## ---- ## + +begin-set: "M4sh" +# patterns: *.as +args: --include @datadir@ +args: m4sugar/m4sh.m4 +args: --mode 777 +args: --warning syntax +end-set: "M4sh" + +## ------- ## +## M4sugar ## +## ------- ## + +begin-set: "M4sugar" +# patterns: *.msh +args: --include @datadir@ +args: m4sugar/m4sugar.m4 +args: --warning syntax +end-set: "M4sugar" diff --git a/man/Makefile.am b/man/Makefile.am index 895ba20d..c422f170 100644 --- a/man/Makefile.am +++ b/man/Makefile.am @@ -50,6 +50,7 @@ SUFFIXES = .x .1 if test -n "$$prog"; then \ echo "Updating man page $@"; \ autom4te_perllibdir="$(top_srcdir)/lib" \ + AUTOM4TE_CFG="$(top_builddir)/lib/autom4te.cfg" \ $(HELP2MAN) \ --include=$(srcdir)/$*.x \ --include=$(srcdir)/common.x \ diff --git a/man/Makefile.in b/man/Makefile.in index a78c1d61..4b10c128 100644 --- a/man/Makefile.in +++ b/man/Makefile.in @@ -260,6 +260,7 @@ config.sub.1: $(srcdir)/config.sub.x $(top_srcdir)/config/config.sub if test -n "$$prog"; then \ echo "Updating man page $@"; \ autom4te_perllibdir="$(top_srcdir)/lib" \ + AUTOM4TE_CFG="$(top_builddir)/lib/autom4te.cfg" \ $(HELP2MAN) \ --include=$(srcdir)/$*.x \ --include=$(srcdir)/common.x \ diff --git a/man/autom4te.1 b/man/autom4te.1 index e9be5e89..6872f93e 100644 --- a/man/autom4te.1 +++ b/man/autom4te.1 @@ -34,6 +34,28 @@ don't rely on cached values .TP \fB\-W\fR, \fB\-\-warnings\fR=\fICATEGORY\fR report the warnings falling in CATEGORY +.TP +\fB\-s\fR, \fB\-\-set\fR=\fISET\fR +specify the set of M4 macros to use +.TP +\fB\-m\fR, \fB\-\-mode\fR=\fIOCTAL\fR +change the non trace output file mode (0666) +.TP +\fB\-M\fR, \fB\-\-melt\fR +don't use M4 frozen files +.SS "Sets include:" +.TP +`Autoconf' +create Autoconf configure scripts +.TP +`Autotest' +create Autotest test suites +.TP +`M4sh' +create M4sh shell scripts +.TP +`M4sugar' +create M4sugar output .SS "Warning categories include:" .TP `cross' diff --git a/tests/Makefile.am b/tests/Makefile.am index 26758a8a..42d85f1a 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -45,19 +45,19 @@ EXTRA_DIST = README \ check-local: atconfig atlocal testsuite $(SHELL) testsuite -AUTOM4TE = autom4te_perllibdir='$(top_srcdir)/lib' ../bin/autom4te +AUTOM4TE = AUTOM4TE_CFG='$(top_builddir)/lib/autom4te.cfg' \ + AC_MACRODIR='$(top_srcdir)/lib' \ + ../bin/autom4te 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) -I $(srcdir) -I $(top_srcdir)/lib \ - autotest/autotest.m4 suite.at -o $@.tmp - chmod +x $@.tmp + $(AUTOM4TE) --set=autotest -I $(srcdir) -I $(top_srcdir)/lib \ + 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... diff --git a/tests/Makefile.in b/tests/Makefile.in index c727218d..07d08e74 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -91,7 +91,10 @@ EXTRA_DIST = README \ atlocal.in $(SUITE) mktests.sh -AUTOM4TE = autom4te_perllibdir='$(top_srcdir)/lib' ../bin/autom4te +AUTOM4TE = AUTOM4TE_CFG='$(top_builddir)/lib/autom4te.cfg' \ + AC_MACRODIR='$(top_srcdir)/lib' \ + ../bin/autom4te + # 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, @@ -119,7 +122,7 @@ subdir = tests mkinstalldirs = $(SHELL) $(top_srcdir)/config/mkinstalldirs CONFIG_CLEAN_FILES = DIST_SOURCES = -DIST_COMMON = README Makefile.am Makefile.in +DIST_COMMON = README Makefile.am Makefile.in configure configure.ac all: all-am .SUFFIXES: @@ -242,9 +245,8 @@ testsuite: $(top_srcdir)/lib/m4sugar/m4sugar.m4 \ $(top_srcdir)/lib/autotest/general.m4 \ atspecific.m4 \ $(SUITE) - $(AUTOM4TE) -I $(srcdir) -I $(top_srcdir)/lib \ - autotest/autotest.m4 suite.at -o $@.tmp - chmod +x $@.tmp + $(AUTOM4TE) --set=autotest -I $(srcdir) -I $(top_srcdir)/lib \ + suite.at -o $@.tmp mv $@.tmp $@ $(SUITE_GENERATED): mktests.sh $(MACRO_FILES) diff --git a/tests/atlocal.in b/tests/atlocal.in index c4e6302c..e594b480 100644 --- a/tests/atlocal.in +++ b/tests/atlocal.in @@ -12,5 +12,9 @@ PERL='@PERL@' # 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