Merge branch 'preproc' into maint
[platform/upstream/automake.git] / Makefile.am
index 8fea72e..2e05561 100644 (file)
@@ -2,7 +2,7 @@
 
 ## Makefile for Automake.
 
-# Copyright (C) 1995-2012 Free Software Foundation, Inc.
+# Copyright (C) 1995-2013 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
@@ -69,17 +69,16 @@ EXTRA_DIST += \
   $(AUTOMAKESOURCES) \
   bootstrap.sh \
   GNUmakefile \
-  maint.mk \
-  syntax-checks.mk \
-  HACKING
+  HACKING \
+  PLANS
 
-## Make versioned links.  We only run the transform on the root name;
-## then we make a versioned link with the transformed base name.  This
-## seemed like the most reasonable approach.
+# Make versioned links.  We only run the transform on the root name;
+# then we make a versioned link with the transformed base name.  This
+# seemed like the most reasonable approach.
 install-exec-hook:
        @$(POST_INSTALL)
        @for p in $(bin_SCRIPTS); do \
-         f="`echo $$p|sed '$(transform)'`"; \
+         f=`echo $$p | sed '$(transform)'`; \
          fv="$$f-$(APIVERSION)"; \
          rm -f "$(DESTDIR)$(bindir)/$$fv"; \
          echo " $(LN) '$(DESTDIR)$(bindir)/$$f' '$(DESTDIR)$(bindir)/$$fv'"; \
@@ -88,26 +87,31 @@ install-exec-hook:
 
 uninstall-hook:
        @for p in $(bin_SCRIPTS); do \
-         f="`echo $$p|sed '$(transform)'`"; \
+         f=`echo $$p | sed '$(transform)'`; \
          fv="$$f-$(APIVERSION)"; \
          rm -f "$(DESTDIR)$(bindir)/$$fv"; \
        done
 
-## These files depend on Makefile so they are rebuilt if $(VERSION),
-## $(datadir) or other do_subst'ituted variables change.
+# These files depend on Makefile so they are rebuilt if $(VERSION),
+# $(datadir) or other do_subst'ituted variables change.
 automake: automake.in
 aclocal: aclocal.in
-automake aclocal: Makefile
-       $(AM_V_at)rm -f $@ $@-t
-       $(AM_V_GEN)in=$@.in; $(do_subst) <$(srcdir)/$@.in >$@-t
+automake aclocal: Makefile lib/gen-perl-protos
+       $(AM_V_GEN)rm -f $@ $@-t $@-t2 \
+## Common substitutions.
+         && in=$@.in && $(do_subst) <$(srcdir)/$$in >$@-t \
+## Auto-compute prototypes of perl subroutines.
+         && $(PERL) -w $(srcdir)/lib/gen-perl-protos $@-t > $@-t2 \
+         && mv -f $@-t2 $@-t \
 ## We can't use '$(generated_file_finalize)' here, because currently
 ## Automake contains occurrences of unexpanded @substitutions@ in
 ## comments, and that is perfectly legit.
-       $(AM_V_at)chmod a+x,a-w $@-t && mv -f $@-t $@
+         && chmod a+x,a-w $@-t && mv -f $@-t $@
+EXTRA_DIST += lib/gen-perl-protos
 
-## The master location for INSTALL is lib/INSTALL.
-## This is where "make fetch" will install new versions.
-## Make sure we also update this copy.
+# The master location for INSTALL is lib/INSTALL.
+# This is where "make fetch" will install new versions.
+# Make sure we also update this copy.
 INSTALL: lib/INSTALL
        $(AM_V_GEN)cp $(srcdir)/lib/INSTALL $@
 
@@ -117,8 +121,8 @@ maintainer-clean-local:
        rm -rf .autom4te.cache
 
 # So that automake won't complain about the missing ChangeLog.
-# The real rule for ChangeLog generation is now in maint.mk (as
-# it is maintainer-specific).
+# The real rule for ChangeLog generation is now in maintainer/maint.mk
+# (as it is maintainer-specific).
 ChangeLog:
 
 
@@ -131,9 +135,9 @@ dist_pkgvdata_DATA = \
   lib/INSTALL \
   lib/texinfo.tex
 
-## These must all be executable when installed.  However, if we use
-## _SCRIPTS, then the program transform will be applied, which is not
-## what we want.  So we make them executable by hand.
+# These must all be executable when installed.  However, if we use
+# _SCRIPTS, then the program transform will be applied, which is not
+# what we want.  So we make them executable by hand.
 dist_script_DATA = \
   lib/config.guess \
   lib/config.sub \
@@ -141,7 +145,6 @@ dist_script_DATA = \
   lib/mdate-sh \
   lib/missing \
   lib/mkinstalldirs \
-  lib/elisp-comp \
   lib/ylwrap \
   lib/depcomp \
   lib/compile \
@@ -190,6 +193,7 @@ dist_perllib_DATA = \
   lib/Automake/Getopt.pm \
   lib/Automake/Item.pm \
   lib/Automake/ItemDef.pm \
+  lib/Automake/Language.pm \
   lib/Automake/Location.pm \
   lib/Automake/Options.pm \
   lib/Automake/Rule.pm \
@@ -267,14 +271,13 @@ dist_automake_ac_DATA = \
   m4/ar-lib.m4 \
   m4/as.m4 \
   m4/auxdir.m4 \
-  m4/ccstdc.m4 \
   m4/cond.m4 \
   m4/cond-if.m4 \
   m4/depend.m4 \
   m4/depout.m4 \
   m4/dmalloc.m4 \
+  m4/extra-recurs.m4 \
   m4/gcj.m4 \
-  m4/header.m4 \
   m4/init.m4 \
   m4/install-sh.m4 \
   m4/lead-dot.m4 \
@@ -285,11 +288,8 @@ dist_automake_ac_DATA = \
   m4/minuso.m4 \
   m4/missing.m4 \
   m4/mkdirp.m4 \
-  m4/obsol-gt.m4 \
-  m4/obsol-lt.m4 \
   m4/obsolete.m4 \
   m4/options.m4 \
-  m4/protos.m4 \
   m4/python.m4 \
   m4/runlog.m4 \
   m4/sanity.m4 \
@@ -300,6 +300,9 @@ dist_automake_ac_DATA = \
   m4/upc.m4 \
   m4/vala.m4
 
+automake_internal_acdir = $(automake_acdir)/internal
+dist_automake_internal_ac_DATA = m4/internal/ac-config-macro-dirs.m4
+
 dist_system_ac_DATA = m4/acdir/README
 
 # We build amversion.m4 here, instead of from config.status,
@@ -336,11 +339,12 @@ AM_TAP_LOG_DRIVER_FLAGS = --merge
 
 EXTRA_DIST += t/README t/ax/is t/ax/is_newest
 
-TESTS = ## Will be updated later.
+## Will be updated later.
+TESTS =
 
 # Some testsuite-influential variables should be overridable from the
 # test scripts, but not from the environment.
-# Keep this in sync with the similar list in 'runtest.in'.
+# Keep this in sync with the similar list in 't/ax/runtest.in'.
 AM_TESTS_ENVIRONMENT = \
   for v in \
     required \
@@ -392,12 +396,17 @@ $(srcdir)/t/testsuite-part.am:
        $(AM_V_at)mv -f t/testsuite-part.tmp $@
 EXTRA_DIST += gen-testsuite-part
 
-## The dependecies declared here are not truly complete, but such
-## completeness would cause more issues than it would solve.  See
-## automake bug#11347.
+# The dependecies declared here are not truly complete, but such
+# completeness would cause more issues than it would solve.  See
+# automake bug#11347.
 $(generated_TESTS): $(srcdir)/gen-testsuite-part
 $(srcdir)/t/testsuite-part.am: $(srcdir)/gen-testsuite-part Makefile.am
 
+# Hand-written tests for stuff in 'contrib/'.
+include $(srcdir)/contrib/t/local.am
+TESTS += $(contrib_TESTS)
+EXTRA_DIST += $(contrib_TESTS)
+
 # Static dependencies valid for each test case (also further
 # extended later).  Note that use 'noinst_' rather than 'check_'
 # as the prefix, because we really want them to be built by
@@ -429,7 +438,8 @@ EXTRA_DIST += t/ax/test-defs.in
 CLEANFILES += t/ax/test-defs.sh
 nodist_noinst_DATA = t/ax/test-defs.sh
 
-noinst_SCRIPTS = # Will be updated soon.
+## Will be updated soon.
+noinst_SCRIPTS =
 
 t/ax/shell-no-trail-bslash: t/ax/shell-no-trail-bslash.in Makefile
        $(AM_V_at)rm -f $@ $@-t
@@ -442,14 +452,25 @@ EXTRA_DIST += t/ax/shell-no-trail-bslash.in
 CLEANFILES += t/ax/shell-no-trail-bslash
 noinst_SCRIPTS += t/ax/shell-no-trail-bslash
 
-runtest: runtest.in Makefile
+t/ax/cc-no-c-o: t/ax/cc-no-c-o.in Makefile
        $(AM_V_at)rm -f $@ $@-t
-       $(AM_V_GEN)in=runtest.in \
+       $(AM_V_GEN)in=t/ax/cc-no-c-o.in \
          && $(MKDIR_P) t/ax \
-         && $(do_subst) <$(srcdir)/runtest.in >$@-t \
+         && $(do_subst) <$(srcdir)/$$in >$@-t \
          && chmod a+x $@-t
        $(generated_file_finalize)
-EXTRA_DIST += runtest.in
+EXTRA_DIST += t/ax/cc-no-c-o.in
+CLEANFILES += t/ax/cc-no-c-o
+noinst_SCRIPTS += t/ax/cc-no-c-o
+
+runtest: t/ax/runtest.in Makefile
+       $(AM_V_at)rm -f $@ $@-t
+       $(AM_V_GEN)in=t/ax/runtest.in \
+         && $(MKDIR_P) t/ax \
+         && $(do_subst) <$(srcdir)/$$in >$@-t \
+         && chmod a+x $@-t
+       $(generated_file_finalize)
+EXTRA_DIST += t/ax/runtest.in
 CLEANFILES += runtest
 noinst_SCRIPTS += runtest
 
@@ -514,8 +535,19 @@ check-no-trailing-backslash-in-recipes:
          CONFIG_SHELL='$(abs_top_builddir)/t/ax/shell-no-trail-bslash'
 .PHONY: check-no-trailing-backslash-in-recipes
 
+# Some compilers out there (hello, MSVC) still choke on "-c -o" being
+# passed together on the command line.  Run the whole testsuite faking
+# the presence of such a compiler, to help catch regressions that would
+# otherwise only present themselves later "in the wild".  See also the
+# long discussion about automake bug#13378.
+check-cc-no-c-o:
+       $(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) check \
+         CC='$(abs_top_builddir)/t/ax/cc-no-c-o' \
+         GNU_CC='$(abs_top_builddir)/t/ax/cc-no-c-o'
+.PHONY: check-cc-no-c-o
+
 ## Checking the list of tests.
-test_subdirs = t t/pm
+test_subdirs = t t/pm contrib/t
 include $(srcdir)/t/CheckListOfTests.am
 
 # Run the testsuite with the installed aclocal and automake.
@@ -535,13 +567,16 @@ EXTRA_DIST += $(perf_TESTS)
 clean-local: clean-local-check
 .PHONY: clean-local-check
 clean-local-check:
-       -set x t/*.dir; shift; \
-        if test "$$#,$$1" = "1,*.dir"; then \
-          : there is no test directory to clean; \
-        else \
-          find "$$@" -type d ! -perm -700 -exec chmod u+rwx {} ';'; \
-          rm -rf "$$@"; \
-        fi;
+## Directories candidate to be test directories match this wildcard.
+       @globs='t/*.dir t/*/*.dir */t/*.dir */t/*/*.dir'; \
+## The 'nullglob' bash option is not portable, so use perl.
+       dirs=`$(PERL) -e "print join(' ', glob('$$globs'));"` || exit 1; \
+       if test -n "$$dirs"; then \
+## Errors in find are acceptable, errors in rm are not.
+           find $$dirs -type d ! -perm -700 -exec chmod u+rwx {} ';'; \
+           echo " rm -rf $$dirs"; \
+           rm -rf $$dirs || exit 1; \
+       fi
 
 
 ## ---------------- ##
@@ -612,7 +647,7 @@ dist_doc_DATA = $(srcdir)/doc/amhello-1.0.tar.gz
 # aclocal-$(APIVERSION) and automake-$(APIVERSION) are generated by
 # configure in 't/wrap'.
 $(srcdir)/doc/amhello-1.0.tar.gz: $(amhello_sources) $(srcdir)/configure.ac
-       $(AM_V_GEN): \
+       $(AM_V_GEN)tmp=amhello-output.tmp \
          && PATH="$(abs_top_builddir)/t/wrap$(PATH_SEPARATOR)$$PATH" \
          && export PATH \
          && $(am__cd) $(srcdir)/doc/amhello \
@@ -623,11 +658,21 @@ $(srcdir)/doc/amhello-1.0.tar.gz: $(amhello_sources) $(srcdir)/configure.ac
          && AUTORECONF='$(am_AUTORECONF)' && export AUTORECONF \
          && AUTOHEADER='$(am_AUTOHEADER)' && export AUTOHEADER \
          && AUTOUPDATE='$(am_AUTOUPDATE)' && export AUTOUPDATE \
-         && $(am_AUTORECONF) -vfi \
-         && ./configure \
-         && $(MAKE) $(AM_MAKEFLAGS) distcheck \
-         && $(MAKE) $(AM_MAKEFLAGS) distclean \
-         && rm -rf $(amhello_configury) \
+         && ( \
+           { $(AM_V_P) || exec 5>&2 >$$tmp 2>&1; } \
+             && $(am_AUTORECONF) -vfi \
+             && ./configure \
+             && $(MAKE) $(AM_MAKEFLAGS) distcheck \
+             && $(MAKE) $(AM_MAKEFLAGS) distclean \
+             || { \
+               if $(AM_V_P); then :; else \
+                 echo "$@: recipe failed." >&5; \
+                 echo "See file '`pwd`/$$tmp' for details" >&5; \
+               fi; \
+               exit 1; \
+             } \
+         ) \
+         && rm -rf $(amhello_configury) $$tmp \
          && mv -f amhello-1.0.tar.gz ..
 
 
@@ -661,3 +706,14 @@ EXTRA_DIST += \
   old/ChangeLog.09 \
   old/ChangeLog.11 \
   old/TODO
+
+## ---------------------------------------- ##
+##  Maintainer-specific files and scripts.  ##
+## ---------------------------------------- ##
+  
+EXTRA_DIST += \
+  maintainer/am-ft \
+  maintainer/am-xft \
+  maintainer/rename-tests \
+  maintainer/maint.mk \
+  maintainer/syntax-checks.mk