--- /dev/null
- ## Additional flags for configure. Keep this last in the configure
- ## invocation so the developer and user can override previous options,
- ## and let the user's flags take precedence over the developer's ones.
+## automake - create Makefile.in from Makefile.am
+## Copyright (C) 2001-2014 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
+## the Free Software Foundation; either version 2, or (at your option)
+## any later version.
+
+## This program 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.
+
+
+# ---------------------------------------- #
+# Building various distribution flavors. #
+# ---------------------------------------- #
+
+# ----------------------------------------------------------------------
+# FIXME: how and where are these old comments still relevant?
+# ----------------------------------------------------------------------
+# Note that we don't use GNU tar's '-z' option. One reason (but
+# not the only reason) is that some versions of tar (e.g., OSF1)
+# interpret '-z' differently.
+#
+# The -o option of GNU tar used to exclude empty directories. This
+# behavior was fixed in tar 1.12 (released on 1997-04-25). But older
+# versions of tar are still used (for instance NetBSD 1.6.1 ships
+# with tar 1.11.2). We do not do anything specific w.r.t. this
+# incompatibility since packages where empty directories need to be
+# present in the archive are really unusual.
+# ----------------------------------------------------------------------
+
+# TODO: this definition-oriented interface is almost good enough to offer
+# as a public API allowing the user to define and use new archive formats.
+# However, we must think carefully about possible problems before setting
+# the API in stone. So, for the moment, we keep this internal and
+# private; there will be time to make it public, once (and if) there's
+# any request from the user base.
+
+am.dist.all-formats =
+
+am.dist.all-formats += gzip
+am.dist.ext.gzip = tar.gz
+am.dist.compress-cmd.gzip = GZIP=$(GZIP_ENV) gzip -c
+am.dist.uncompress-cmd.gzip = GZIP=$(GZIP_ENV) gzip -dc
+
+am.dist.all-formats += bzip2
+am.dist.ext.bzip2 = tar.bz2
+am.dist.compress-cmd.bzip2 = BZIP2=$${BZIP2--9} bzip2 -c
+am.dist.uncompress-cmd.bzip2 = bzip2 -dc
+
+am.dist.all-formats += lzip
+am.dist.ext.lzip = tar.lz
+am.dist.compress-cmd.lzip = lzip -c $${LZIP_OPT--9}
+am.dist.uncompress-cmd.lzip = lzip -dc
+
+am.dist.all-formats += xz
+am.dist.ext.xz = tar.xz
+am.dist.compress-cmd.xz = XZ_OPT=$${XZ_OPT--e} xz -c
+am.dist.uncompress-cmd.xz = xz -dc
+
+am.dist.all-formats += zip
+am.dist.ext.zip = zip
+am.dist.create-cmd.zip = \
+ rm -f $(distdir).zip && zip -rq $(distdir).zip $(distdir)
+am.dist.extract-cmd.zip = \
+ unzip $(distdir).zip
+
+# This is namespace-safe, so it's OK to accept values from
+# the environment.
+AM_DIST_FORMATS ?= gzip
+
+am.dist.bad-targets := \
+ $(filter-out $(am.dist.all-formats),$(AM_DIST_FORMATS))
+ifdef am.dist.bad-targets
+ $(call am.fatal,Invalid distribution formats: $(am.dist.bad-targets))
+endif
+
+am.dist.all-targets = $(patsubst %,.am/dist-%,$(am.dist.all-formats))
+am.dist.default-targets = $(patsubst %,.am/dist-%,$(AM_DIST_FORMATS))
+
+am.dist.default-archives = \
+ $(foreach x,$(AM_DIST_FORMATS),$(distdir).$(am.dist.ext.$x))
+
+define am.dist.create-archive-for-format.aux
+$(or $(am.dist.create-cmd.$1), \
+ tardir=$(distdir) && $(am__tar) \
+ | $(am.dist.compress-cmd.$1) >$(distdir).$(am.dist.ext.$1))
+endef
+am.dist.create-archive-for-format = $(call $0.aux,$(strip $1))
+
+define am.dist.extract-archive-for-format.aux
+$(or $(am.dist.extract-cmd.$1), \
+ $(am.dist.uncompress-cmd.$1) $(distdir).$(am.dist.ext.$1) \
+ | $(am__untar))
+endef
+am.dist.extract-archive-for-format = $(call $0.aux,$(strip $1))
+
+# The use of this option to pass arguments to the 'gzip' invocation is
+# not only documented in the manual and useful for better compatibility
+# with mainline Automake, but also actively employed by some important
+# makefile fragments (e.g., Gnulib's 'top/maint.mk', at least up to
+# commit v0.0-7569-gec58403). So keep it.
+GZIP_ENV = --best
+
+.PHONY: $(am.dist.all-targets)
+$(am.dist.all-targets): .am/dist-%: distdir
+ $(call am.dist.create-archive-for-format,$*)
+
+ifdef SUBDIRS
+AM_RECURSIVE_TARGETS += dist dist-all
+endif
+
+.PHONY: dist dist-all
+dist dist-all: $(am.dist.default-targets)
+ $(am.dist.post-remove-distdir)
+
+
+# ---------------------------- #
+# Checking the distribution. #
+# ---------------------------- #
+
+ifdef SUBDIRS
+AM_RECURSIVE_TARGETS += distcheck
+endif
+
+# This target untars the dist file and tries a VPATH configuration. Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+.PHONY: distcheck
+distcheck: dist
+ $(call am.dist.extract-archive-for-format, \
+ $(firstword $(AM_DIST_FORMATS)))
+## Make the new source tree read-only. Distributions ought to work in
+## this case. However, make the top-level directory writable so we
+## can make our new subdirs.
+ chmod -R a-w $(distdir)
+ chmod u+w $(distdir)
+ mkdir $(distdir)/_build $(distdir)/_inst
+## Undo the write access.
+ chmod a-w $(distdir)
+## With GNU make, the following command will be executed even with "make -n",
+## due to the presence of '$(MAKE)'. That is normally all well (and '$(MAKE)'
+## is necessary for things like parallel distcheck), but here we don't want
+## execution. To avoid MAKEFLAGS parsing hassles, use a witness file that a
+## non-'-n' run would have just created.
+ test -d $(distdir)/_build || exit 0; \
+## Compute the absolute path of '_inst'. Strip any leading DOS drive
+## to allow DESTDIR installations. Otherwise "$(DESTDIR)$(prefix)" would
+## expand to "c:/temp/am-dc-5668/c:/src/package/package-1.0/_inst".
+ dc_install_base=`cd $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+## We will attempt a DESTDIR install in $dc_destdir. We don't
+## create this directory under $dc_install_base, because it would
+## create very long directory names.
+ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+ $(if $(am.dist.handle-distcheck-hook),&& $(MAKE) distcheck-hook) \
+ && cd $(distdir)/_build \
+ && ../configure --srcdir=.. --prefix="$$dc_install_base" \
+ $(if $(am.dist.handle-gettext),--with-included-gettext) \
++## Additional flags for configure.
+ $(AM_DISTCHECK_CONFIGURE_FLAGS) \
+ $(DISTCHECK_CONFIGURE_FLAGS) \
++## At the moment, the code doesn't actually support changes in these --srcdir
++## and --prefix values, so don't allow them to be overridden by the user or
++## the developer. That used to be allowed, and caused issues in practice
++## (in corner-case usages); see automake bug#14991.
++ --srcdir=.. --prefix="$$dc_install_base" \
+ && $(MAKE) \
+ && $(MAKE) dvi \
+ && $(MAKE) check \
+ && $(MAKE) install \
+ && $(MAKE) installcheck \
+ && $(MAKE) uninstall \
+ && $(MAKE) distuninstallcheck_dir="$$dc_install_base" \
+ distuninstallcheck \
+## Make sure the package has proper DESTDIR support (we could not test this
+## in the previous install/installcheck/uninstall test, because it's reasonable
+## for installcheck to fail in a DESTDIR install).
+## We make the '$dc_install_base' read-only because this is where files
+## with missing DESTDIR support are likely to be installed.
+ && chmod -R a-w "$$dc_install_base" \
+## The logic here is quite convoluted because we must clean $dc_destdir
+## whatever happens (it won't be erased by the next run of distcheck like
+## $(distdir) is).
+ && ({ \
+## Build the directory, so we can cd into it even if "make install"
+## didn't create it. Use mkdir, not $(MKDIR_P) because we want to
+## fail if the directory already exists (PR/413).
+ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+ && $(MAKE) DESTDIR="$$dc_destdir" install \
+ && $(MAKE) DESTDIR="$$dc_destdir" uninstall \
+ && $(MAKE) DESTDIR="$$dc_destdir" \
+ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+ } || { rm -rf "$$dc_destdir"; exit 1; }) \
+ && rm -rf "$$dc_destdir" \
+ && $(MAKE) dist \
+## Make sure to remove the dists we created in the test build directory.
+ && rm -f $(am.dist.default-archives) \
+ && $(MAKE) distcleancheck
+ $(am.dist.post-remove-distdir)
+ @(echo "$(distdir) archives ready for distribution: "; \
+ list='$(am.dist.default-archives)'; \
+ for i in $$list; do echo $$i; done; \
+ ) | sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
+
+# Define distuninstallcheck_listfiles and distuninstallcheck separately
+# from distcheck, so that they can be overridden by the user.
+.PHONY: distuninstallcheck
+distuninstallcheck_listfiles = find . -type f -print
+# The 'dir' file (created by install-info) might still exist after
+# uninstall, so we must be prepared to account for it. The following
+# check is not 100% strict, but is definitely good enough, and even
+# accounts for overridden $(infodir).
+am.dist.uninstallcheck-listfiles = $(distuninstallcheck_listfiles) \
+ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
+distuninstallcheck:
+ @test -n '$(distuninstallcheck_dir)' || { \
+ echo 'ERROR: trying to run $@ with an empty' \
+ '$$(distuninstallcheck_dir)' >&2; \
+ exit 1; \
+ }; \
+ cd '$(distuninstallcheck_dir)' || { \
+ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
+ exit 1; \
+ }; \
+ test `$(am.dist.uninstallcheck-listfiles) | wc -l` -eq 0 \
+ || { echo "ERROR: files left after uninstall:" ; \
+ if test -n "$(DESTDIR)"; then \
+ echo " (check DESTDIR support)"; \
+ fi ; \
+ $(distuninstallcheck_listfiles) ; \
+ exit 1; } >&2
+
+# Define '$(distcleancheck_listfiles)' and 'distcleancheck' separately
+# from distcheck, so that they can be overridden by the user.
+ifeq ($(call am.vars.is-undef,distcleancheck_listfiles),yes)
+ distcleancheck_listfiles := find . -type f -print
+endif
+.PHONY: distcleancheck
+distcleancheck: distclean
+ @if test '$(srcdir)' = . ; then \
+ echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+ exit 1 ; \
+ fi
+ @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+ || { echo "ERROR: files left in build directory after distclean:" ; \
+ $(distcleancheck_listfiles) ; \
+ exit 1; } >&2
AM_TAP_LOG_DRIVER_FLAGS = --merge
EXTRA_DIST += %D%/README %D%/ax/is %D%/ax/is_newest %D%/ax/deltree.pl
-
+
-## Will be updated later.
-TESTS =
+# Hand-written tests for stuff in 'contrib/'.
+include $(srcdir)/contrib/%D%/Makefile.inc
+# All tests, both hand-written and autogenerated.
+# IMPORTANT: This assumes that the autogenerated tests are placed
+# in the $(srcdir) as well!
+all_TESTS = \
+ $(wildcard $(srcdir)/%D%/*.sh) \
+ $(wildcard $(srcdir)/%D%/*.tap) \
+ $(wildcard $(srcdir)/%D%/pm/*.pl)
+
+# This is to ensure longer-running tests will be run earlier, which is
+# useful when running the testsuite in parallel on multicore machines.
+# Here too we assume that the autogenerated tests are placed in $(srcdir).
+long_running_TESTS = \
+ $(srcdir)/%D%/dist-many.sh \
+ $(srcdir)/%D%/parallel-tests-many.sh \
+ $(srcdir)/%D%/add-missing.tap \
+ $(srcdir)/%D%/instspc.tap \
+ $(wildcard $(srcdir)/%D%/depcomp-*.tap) \
+ $(wildcard $(srcdir)/%D%/*libtool*.sh) \
+ $(wildcard $(srcdir)/%D%/lt*.sh) \
+ $(wildcard $(srcdir)/%D%/remake*.sh)
+
+TESTS = \
+ $(long_running_TESTS) \
+ $(filter-out $(long_running_TESTS), $(all_TESTS)) \
+ $(contrib_TESTS)
+
+EXTRA_DIST += $(TESTS)
+
+# FIXME: this "expected failures" are in truth an hack used to
+# FIXME: to verify that some incorrect usages of our perl libraries
+# FIXME: raise an error. We should find a cleaner way to check that.
+perl_fake_XFAIL_TESTS = \
+ %D%/pm/Cond2.pl \
+ %D%/pm/Cond3.pl \
+ %D%/pm/DisjCon2.pl \
+ %D%/pm/DisjCon3.pl \
+ %D%/pm/Version2.pl \
+ %D%/pm/Version3.pl
+
+XFAIL_TESTS = \
+ %D%/all.sh \
+ %D%/override-suggest-local.sh \
+ %D%/comments-in-var-def.sh \
+ %D%/cond17.sh \
+ %D%/dist-srcdir2.sh \
+ %D%/gcj6.sh \
+ %D%/txinfo-nodist-info.sh \
+ %D%/override-conditional-2.sh \
+ %D%/dist-pr109765.sh \
+ %D%/instdir-cond2.sh \
+ %D%/interp3.sh \
+ %D%/java-nobase.sh \
+ %D%/objext-pr10128.sh \
+ %D%/override-conditional-pr13940.sh \
+ %D%/remake-timing-bug-pr8365.sh \
+ %D%/remake-am-pr10111.sh \
+ %D%/remake-m4-pr10111.sh \
+ %D%/subobj-vpath-pr13928.sh \
+ %D%/var-undef-append.sh \
+ $(perl_fake_XFAIL_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 ax/runtest.in.