+Sat Feb 10 16:45:07 1996 Tom Tromey <tromey@creche.cygnus.com>
+
+ * automake.in (scan_configure): Delete everything after "]". Test
+ acoutput.test.
+
+ * configure.in (AC_OUTPUT): Create tests/Makefile.
+ * Makefile.am (SUBDIRS): New macro.
+
+ * automake.in (handle_texinfo): Put $vtexi on texi_deps. From Jim
+ Meyering.
+
+ * configure.in (AC_OUTPUT): Ensure automake is executable.
+
Thu Feb 8 15:30:29 1996 Tom Tromey <tromey@creche.cygnus.com>
* automake.in (handle_subdirs): Error if directory in SUBDIRS does
AUTOMAKE_OPTIONS = gnits
+SUBDIRS = tests
+
bin_SCRIPTS = automake
info_TEXINFOS = automake.texi
# SUBDIRS = intl po
AUTOMAKE_OPTIONS = gnits
+SUBDIRS = tests
+
bin_SCRIPTS = automake
info_TEXINFOS = automake.texi
# SUBDIRS = intl po
rm -f $(pkgdatadir)/$$p; \
done
-ID: $(HEADERS) $(SOURCES)
- here=`pwd` && cd $(srcdir) && mkid -f $$here/ID $(SOURCES) $(HEADERS)
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run `make' without going through this Makefile.
+# To change the values of `make' variables: instead of editing Makefiles,
+# (1) if the variable is set in `config.status', edit `config.status'
+# (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+
+@SET_MAKE@
+
+all-recursive install-data-recursive install-exec-recursive \
+installdirs-recursive install-recursive uninstall-recursive \
+check-recursive installcheck-recursive info-recursive dvi-recursive \
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive: $(CONFIG_HEADER) Makefile
+ for subdir in $(SUBDIRS); do \
+ target=`echo $@ | sed s/-recursive//`; \
+ echo making $$target in $$subdir; \
+ (cd $$subdir && $(MAKE) $$target) \
+ || case "$(MFLAGS)" in *k*) fail=yes;; *) exit 1;; esac; \
+ done && test -z "$$fail"
tags: TAGS
TAGS:
- here=`pwd` && cd $(srcdir) && etags $(ETAGS_ARGS) $(SOURCES) $(HEADERS) -o $$here/TAGS
+ tags=; \
+ here=`pwd`; \
+ for subdir in $(SUBDIRS); do \
+ (cd $$subdir && $(MAKE) TAGS); \
+ test -f $$subdir/TAGS && { \
+ tags="$$tags -i $$here/$$subdir/TAGS"; \
+ } \
+ done; \
+ test -z "$(ETAGS_ARGS)$(CONFIG_HEADER)$(SOURCES)$(HEADERS)$$tags" \
+ || etags $(ETAGS_ARGS) $$tags $(CONFIG_HEADER) $(SOURCES) $(HEADERS)
mostlyclean-tags:
|| ln $(srcdir)/$$file $(distdir)/$$file 2> /dev/null \
|| cp -p $(srcdir)/$$file $(distdir)/$$file; \
done
+ for subdir in $(SUBDIRS); do \
+ test -d $(distdir)/$$subdir \
+ || mkdir $(distdir)/$$subdir \
+ || exit 1; \
+ chmod 777 $(distdir)/$$subdir; \
+ (cd $$subdir && $(MAKE) dist) || exit 1; \
+ done
@for dir in $(DIST_SUBDIRS); do \
echo copying directory $$dir; \
tar chf - $$dir | (cd $(distdir) && tar xBpf -); \
chmod -R a+r $(distdir)
tar chozf $(distdir).tar.gz $(distdir)
rm -rf $(distdir)
-all: info $(SCRIPTS) $(DATA)
+all: info $(SCRIPTS) $(DATA) all-recursive
+
+info: $(INFO_DEPS) info-recursive
-info: $(INFO_DEPS)
+dvi: $(DVIS) dvi-recursive
-dvi: $(DVIS)
+check: check-recursive
-check: all
+installcheck: installcheck-recursive
-installcheck:
+install-exec-am: install-binSCRIPTS
-install-exec: install-binSCRIPTS
+install-data-am: install-info install-pkgdataDATA
-install-data: install-info install-pkgdataDATA
+uninstall-am: uninstall-binSCRIPTS uninstall-info uninstall-pkgdataDATA uninstall-recursive
-install: install-exec install-data
+install-exec: install-exec-recursive install-exec-am
+
+install-data: install-data-recursive install-data-am
+
+install: install-recursive install-exec-am install-data-am
@:
-uninstall: uninstall-binSCRIPTS uninstall-info uninstall-pkgdataDATA
+uninstall: uninstall-recursive uninstall-am
-installdirs:
+installdirs: installdirs-recursive
$(top_srcdir)/mkinstalldirs $(bindir) $(infodir) $(pkgdatadir)
maintainer-clean-generic:
test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
-mostlyclean: mostlyclean-binSCRIPTS mostlyclean-vti mostlyclean-info \
+mostlyclean-am: mostlyclean-binSCRIPTS mostlyclean-vti mostlyclean-info \
mostlyclean-tags mostlyclean-generic
-clean: clean-binSCRIPTS clean-vti clean-info clean-tags clean-generic \
- mostlyclean
+clean-am: clean-binSCRIPTS clean-vti clean-info clean-tags \
+ clean-generic mostlyclean-am
-distclean: distclean-binSCRIPTS distclean-vti distclean-info \
- distclean-tags distclean-generic clean
- rm -f config.status
+distclean-am: distclean-binSCRIPTS distclean-vti distclean-info \
+ distclean-tags distclean-generic clean-am
-maintainer-clean: maintainer-clean-binSCRIPTS maintainer-clean-vti \
+maintainer-clean-am: maintainer-clean-binSCRIPTS maintainer-clean-vti \
maintainer-clean-info maintainer-clean-tags maintainer-clean-generic \
- distclean
+ distclean-am
+
+mostlyclean: mostlyclean-am mostlyclean-recursive
+
+clean: clean-am clean-recursive
+
+distclean: distclean-am distclean-recursive
+ rm -f config.status
+
+maintainer-clean: maintainer-clean-am maintainer-clean-recursive
@echo "This command is intended for maintainers to use;"
@echo "it deletes files that may require special tools to rebuild."
rm -f config.status
clean-binSCRIPTS maintainer-clean-binSCRIPTS uninstall-binSCRIPTS \
mostlyclean-vti distclean-vti clean-vti maintainer-clean-vti \
install-info uninstall-info mostlyclean-info distclean-info \
- clean-info maintainer-clean-info uninstall-pkgdataDATA tags \
- mostlyclean-tags distclean-tags clean-tags maintainer-clean-tags \
- dist all info dvi check installcheck install-exec install-data \
- install uninstall installdirs mostlyclean-generic distclean-generic \
- clean-generic maintainer-clean-generic clean mostlyclean distclean \
+ clean-info maintainer-clean-info uninstall-pkgdataDATA \
+ install-data-recursive uninstall-data-recursive \
+ install-exec-recursive uninstall-exec-recursive \
+ installdirs-recursive uninstalldirs-recursive all-recursive \
+ check-recursive installcheck-recursive info-recursive dvi-recursive \
+ mostlyclean-recursive distclean-recursive clean-recursive \
+ maintainer-clean-recursive tags mostlyclean-tags distclean-tags \
+ clean-tags maintainer-clean-tags dist all info dvi check \
+ installcheck install-exec-am install-data-am uninstall-am \
+ install-exec install-data install uninstall installdirs \
+ mostlyclean-generic distclean-generic clean-generic \
+ maintainer-clean-generic clean mostlyclean distclean \
maintainer-clean
New in 0.30:
* Bug fixes
* configure.in scanner knows about AC_PATH_XTRA, AC_OUTPUT ":" syntax
+* Beginnings of a test suite
\f
New in 0.29:
* Many bug fixes
* Must rewrite am_install_var. Should break into multiple functions.
This will allow the callers to be a little smarter.
* Rewrite clean targets.
+* Expand test suite.
+
+Consider using Ulrich's test suite idea
+If so, also allow support for Cygnus-style dejagnu-based test suites
+via an option
Think about ways to make automake fit better with Cygnus-style trees.
Internationalize. [ gettext doesn't have the necessary machinery yet ]
am_error should use printf-style arguments (for eventual gettext scheme)
-write test suite
-
François says the ordering of files in a distribution should be as follows:
* README
* source files
# If user specified file_TEXINFOS, then use that as explicit
# dependency list.
@texi_deps = ();
- push (@texi_deps, $info_cursor);
+ push (@texi_deps, $info_cursor, $vtexi);
if (defined $contents{$infobase . "_TEXINFOS"})
{
push (@texi_deps, "\$" . $infobase . '_TEXINFOS');
}
if ($in_ac_output)
{
- s/\]//;
+ s/\].*$//;
$in_ac_output = 0 if s/[\),]//;
# Look at potential Makefile.am's.
ALL_LINGUAS=
+echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
+set dummy ${MAKE-make}; ac_make=$2
+if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ cat > conftestmake <<\EOF
+all:
+ @echo 'ac_maketemp="${MAKE}"'
+EOF
+# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=`
+if test -n "$ac_maketemp"; then
+ eval ac_cv_prog_make_${ac_make}_set=yes
+else
+ eval ac_cv_prog_make_${ac_make}_set=no
+fi
+rm -f conftestmake
+fi
+if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+ SET_MAKE=
+else
+ echo "$ac_t""no" 1>&6
+ SET_MAKE="MAKE=${MAKE-make}"
+fi
+
if test "$program_transform_name" = s,x,x,; then
program_transform_name=
else
ac_given_srcdir=$srcdir
ac_given_INSTALL="$INSTALL"
-trap 'rm -fr `echo "Makefile automake" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+trap 'rm -fr `echo "Makefile automake tests/Makefile" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
EOF
cat >> $CONFIG_STATUS <<EOF
s%@mandir@%$mandir%g
s%@PACKAGE@%$PACKAGE%g
s%@VERSION@%$VERSION%g
+s%@SET_MAKE@%$SET_MAKE%g
s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
s%@INSTALL_DATA@%$INSTALL_DATA%g
s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
EOF
cat >> $CONFIG_STATUS <<EOF
-CONFIG_FILES=\${CONFIG_FILES-"Makefile automake"}
+CONFIG_FILES=\${CONFIG_FILES-"Makefile automake tests/Makefile"}
EOF
cat >> $CONFIG_STATUS <<\EOF
for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
rm -f conftest.subs
-
+chmod +x automake
exit 0
EOF
chmod +x $CONFIG_STATUS
AC_DEFINE_UNQUOTED(VERSION, "$VERSION")
ALL_LINGUAS=
+AC_PROG_MAKE_SET
AC_ARG_PROGRAM
fp_PROG_INSTALL
dnl
-AC_OUTPUT([Makefile automake])
+AC_OUTPUT([Makefile automake tests/Makefile], [chmod +x automake])
dnl intl/Makefile po/Makefile.in],
dnl [sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile])
AUTOMAKE_OPTIONS = gnits
+SUBDIRS = tests
+
bin_SCRIPTS = automake
info_TEXINFOS = automake.texi
# SUBDIRS = intl po
--- /dev/null
+testSubDir
+Makefile
--- /dev/null
+Sat Feb 10 17:08:39 1996 Tom Tromey <tromey@creche.cygnus.com>
+
+ * mdate.test, vtexi.test, acoutput.test: New files.
+
+ * Started.
+
--- /dev/null
+## Process this file with automake to create Makefile.in
+
+AUTOMAKE_OPTIONS = gnits
+
+## FIXME Ulrich has suggested implementing this in Automake.
+## Perhaps he is right.
+TESTS = mdate.test vtexi.test acoutput.test
+
+check-local:
+ @failed=0; all=0; \
+ srcdir=$(srcdir); export srcdir; \
+ for tst in $(TESTS); do \
+ all=`expr $$all + 1`; \
+## FIXME use $(SHELL) here? That is what Ulrich suggests. Maybe
+## a new macro, $(TEST_SHELL), a la $(CONFIG_SHELL)?
+## For now we just execute the file directly; this allows test files
+## which are compiled -- a possibly useful feature.
+ if test -f $$tst; then dir=.; \
+ else dir="$(srcdir)"; fi; \
+ $$dir/$$tst || failed=`expr $$failed + 1`; \
+ done; \
+ if test "$$failed" -eq 0; then \
+ echo "All $$all tests passed"; \
+ else \
+ echo "$$failed of $$all tests failed"; \
+ fi
--- /dev/null
+# Makefile.in generated automatically by automake 0.30 from Makefile.am
+
+# Copyright (C) 1994, 1995, 1996 Free Software Foundation, Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+
+
+SHELL = /bin/sh
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ..
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+AUTOMAKE_OPTIONS = gnits
+
+TESTS = mdate.test vtexi.test acoutput.test
+DIST_COMMON = ChangeLog Makefile.am Makefile.in
+
+
+PACKAGE = @PACKAGE@
+VERSION = @VERSION@
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(BUILT_SOURCES) $(HEADERS) \
+ $(TEXINFOS) $(INFOS) $(MANS) $(DIST_OTHER) $(DATA)
+DEP_DISTFILES = $(DIST_COMMON) $(SOURCES) $(BUILT_SOURCES) $(HEADERS) \
+ $(TEXINFOS) $(INFO_DEPS) $(MANS) $(DIST_OTHER) $(DATA)
+default: all
+
+
+$(srcdir)/Makefile.in: Makefile.am
+ cd $(top_srcdir) && automake $(subdir)/Makefile
+
+Makefile: $(top_builddir)/config.status Makefile.in
+ cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= ./config.status
+tags: TAGS
+TAGS:
+
+
+subdir = tests
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+dist: $(DEP_DISTFILES)
+ @for file in `cd $(srcdir) && echo $(DISTFILES)`; do \
+ test -f $(distdir)/$$file \
+ || ln $(srcdir)/$$file $(distdir)/$$file 2> /dev/null \
+ || cp -p $(srcdir)/$$file $(distdir)/$$file; \
+ done
+all:
+
+info:
+
+dvi:
+
+check: all check-local
+
+installcheck:
+
+install: all
+ @:
+
+uninstall:
+
+installdirs:
+
+
+mostlyclean-generic:
+ test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+ test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ rm -f Makefile $(DISTCLEANFILES)
+ rm -f config.cache config.log $(CONFIG_HEADER) stamp-h
+
+maintainer-clean-generic:
+ test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+ test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+mostlyclean: mostlyclean-generic
+
+clean: clean-generic mostlyclean
+
+distclean: distclean-generic clean
+ rm -f config.status
+
+maintainer-clean: maintainer-clean-generic distclean
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+
+.PHONY: default tags dist all info dvi check-local check installcheck \
+ install uninstall installdirs mostlyclean-generic distclean-generic \
+ clean-generic maintainer-clean-generic clean mostlyclean distclean \
+ maintainer-clean
+
+
+check-local:
+ @failed=0; all=0; \
+ srcdir=$(srcdir); export srcdir; \
+ for tst in $(TESTS); do \
+ all=`expr $$all + 1`; \
+ if test -f $$tst; then dir=.; \
+ else dir="$(srcdir)"; fi; \
+ $$dir/$$tst || failed=`expr $$failed + 1`; \
+ done; \
+ if test "$$failed" -eq 0; then \
+ echo "All $$all tests passed"; \
+ else \
+ echo "$$failed of $$all tests failed"; \
+ fi
+.SUFFIXES:
+
+# 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:
--- /dev/null
+#!/bin/sh
+
+# Test for bug when AC_OUTPUT has 2 args on the same line, eg:
+# AC_OUTPUT([Makefile automake tests/Makefile],[chmod +x automake])
+
+. $srcdir/defs
+
+cat > configure.in << 'END'
+AC_ARG_PROGRAM
+AC_PROG_INSTALL
+AC_OUTPUT([Makefile], [true])
+END
+
+: > Makefile.am
+
+$AUTOMAKE
--- /dev/null
+# -*- ksh -*-
+# Defines for Automake testing environment.
+# Tom Tromey <tromey@cygnus.com>
+
+# Ensure $srcdir set correctly.
+test -f $srcdir/defs || {
+ echo "defs: installation error" 1>&2
+ exit 1
+}
+
+# If srcdir is relative, we need to modify it.
+case "$srcdir" in
+ /*)
+ ;;
+
+ *)
+ srcdir="../$srcdir"
+ ;;
+esac
+
+rm -rf testSubDir > /dev/null 2>&1
+mkdir testSubDir
+cd testSubDir
+
+# FIXME: build appropriate environment in test directory.
+# Eg create configure.in, touch all necessary files, etc.
+cat > configure.in << 'END'
+AC_ARG_PROGRAM
+AC_PROG_INSTALL
+AC_OUTPUT(Makefile)
+END
+
+: > install-sh
+: > mkinstalldirs
+
+# See how redirections should work.
+test -z "$VERBOSE" && {
+ exec > /dev/null 2>&1
+}
+
+# See how Automake should be run.
+AUTOMAKE="$srcdir/../automake --amdir=$srcdir/.."
--- /dev/null
+#!/bin/sh
+
+# Test that mdate-sh is required when Texinfo used and version.texi needed.
+
+. $srcdir/defs
+
+cat > Makefile.am << 'END'
+info_TEXINFOS = textutils.texi
+END
+
+cat > textutils.texi << 'END'
+@include version.texi
+END
+
+# Required when using Texinfo.
+: > texinfo.tex
+
+$AUTOMAKE 2>&1 > /dev/null | grep 'required file.*mdate-sh' > /dev/null 2>&1
--- /dev/null
+#!/bin/sh
+
+# Test for bug reported by Jim Meyering:
+# When I ran automake-0.29 on textutils,
+# I noticed that doc/Makefile.in had
+# textutils.info: textutils.texi
+# instead of
+# textutils.info: textutils.texi version.texi
+
+. $srcdir/defs
+
+cat > Makefile.am << 'END'
+info_TEXINFOS = textutils.texi
+END
+
+cat > textutils.texi << 'END'
+@include version.texi
+END
+
+# Required when using Texinfo.
+: > mdate-sh
+: > texinfo.tex
+
+$AUTOMAKE || {
+ exit 1
+}
+
+grep '^textutils\.info: textutils\.texi version\.texi$' Makefile.in \
+ > /dev/null 2>&1