]> git.ipfire.org Git - thirdparty/autoconf.git/commitdiff
* lib/autom4te.in: New.
authorAkim Demaille <akim@epita.fr>
Wed, 29 Aug 2001 09:52:49 +0000 (09:52 +0000)
committerAkim Demaille <akim@epita.fr>
Wed, 29 Aug 2001 09:52:49 +0000 (09:52 +0000)
* 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.

14 files changed:
BUGS
ChangeLog
bin/Makefile.am
bin/autoconf.in
bin/autom4te.in
lib/Makefile.am
lib/Makefile.in
lib/autom4te.in [new file with mode: 0644]
man/Makefile.am
man/Makefile.in
man/autom4te.1
tests/Makefile.am
tests/Makefile.in
tests/atlocal.in

diff --git a/BUGS b/BUGS
index 4cb53fccfea37fd06c564e575ae4ccf4c746959c..87f3a1f3d675789dacee9b76f811c958f0cb1578 100644 (file)
--- 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.
index 7f293366fbf48c04882dc99efdddefedd1407533..75dab4ecfc8047159509dab8ae7e9285e09506d2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2001-08-29  Akim Demaille  <akim@epita.fr>
+
+       * 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  <akim@epita.fr>
 
        * lib/autotest/general.m4: Use
index 005e787ac2efcf7ab195f0f3bb32a752cccc2043..360b18a4d8a58c7dbe8ba5afbc81bb90c32407a4 100644 (file)
@@ -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
index 49169663376fd30220f923d484d2c8f3338e3cd3..00f5df57157eda6ab05d0a58ffc2cd79386bfbfa 100644 (file)
@@ -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
index b4e83a974265ced6be24799a25fc4f790d75c81f..421f8b02da4adfb75e01fc21f328030635978170 100644 (file)
@@ -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.
index fba820abb07a65ea6530ef7c740599cf311fd264..def354b982eae07311f2bf4f9dbfe1616a565c79 100644 (file)
@@ -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
index 334faa23d32e4914608d552885bea06bae721bf6..6a270b33720efdd8981c30cd582dedbc29320ec0 100644 (file)
@@ -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 (file)
index 0000000..a373d57
--- /dev/null
@@ -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"
index 895ba20d40b1854579c10fc025c34206c23a9c8c..c422f17026c298c5e6a911967436dd004d52e7c2 100644 (file)
@@ -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 \
index a78c1d61070042de4d46f5f9629ff2c92a4fcb8d..4b10c1288b9e295a2c6e20cc298b57c4cbcf07d6 100644 (file)
@@ -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 \
index e9be5e8923cfd8d32ee0d38dd72e8e6bed75595d..6872f93e055521a0f47f3330c614c307dbe06181 100644 (file)
@@ -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'
index 26758a8aa5904b16af190efd4511611d6f83accc..42d85f1a3366a4e3506ef91d7a48950c6c5485fc 100644 (file)
@@ -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...
index c727218dba2fd3e1ae0a7d4a011e1f5e416db107..07d08e74a5d8bc44fa8811efa6784391b5ab9730 100644 (file)
@@ -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)
index c4e6302cf3d6689591b79ece7c96fe940a86b7fe..e594b48068931b7dac06efea01ff481bedfd187f 100644 (file)
@@ -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