summaryrefslogtreecommitdiff
path: root/t/subdir-am-cond.sh
diff options
context:
space:
mode:
authorStefano Lattarini <stefano.lattarini@gmail.com>2012-06-14 22:47:28 +0200
committerStefano Lattarini <stefano.lattarini@gmail.com>2012-06-14 22:51:38 +0200
commitb72e9747b2493362fc43030c500d3f4e881a2c06 (patch)
tree859c8f3d43326c94151fdbc4b9e1d1fce576c2b3 /t/subdir-am-cond.sh
parent6f01c1e0c1629265b0f96142b7922ef074e2763a (diff)
downloadautomake-b72e9747b2493362fc43030c500d3f4e881a2c06.tar.gz
subdirs: enhance coverage, tweak and rename few tests
* t/subdir5.sh: Rename ... * t/subdir-add-pr46.sh: ... like this. * t/subdir8.sh: Rename ... * t/subdir-add2-pr46.sh: ... like this. * t/cond2.sh: Rename ... * t/subdir-cond-err.sh: ... like this. * t/subdir9.sh: Rename ... * t/subdir-with-slash.sh: ... like this; improve heading comments. * t/subcond.sh: Rename ... * t/subdir-cond-gettext.sh: ... like this; improve m4 quoting. * t/subcond2.sh: Rename ... * t/subdir-am-cond.sh: ... like this; adjust heading comments. * t/subcond3.sh: Rename ... * t/subdir-ac-subst.sh: ... like this; adjust heading comments. * t/subdir2.sh: Rename ... * t/subdir-subsub.sh: ... like this; enhance so that it also runs './configure' and 'make'. * t/subdir-order.sh: New test, check that the $(SUDBIRS) entries are processed in the order they are specified. * doc/automake.texi: Adjust references to tests. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Diffstat (limited to 't/subdir-am-cond.sh')
-rwxr-xr-xt/subdir-am-cond.sh91
1 files changed, 91 insertions, 0 deletions
diff --git a/t/subdir-am-cond.sh b/t/subdir-am-cond.sh
new file mode 100755
index 000000000..7f5e34a62
--- /dev/null
+++ b/t/subdir-am-cond.sh
@@ -0,0 +1,91 @@
+#! /bin/sh
+# Copyright (C) 2002-2012 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.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# The for conditional SUBDIRS.
+# SUBDIRS + AM_CONDITIONAL setup from the manual.
+# Lots of lines here are duplicated in subdir-ac-subst.test.
+
+. ./defs || Exit 1
+
+cat >>configure.ac <<'END'
+AM_CONDITIONAL([COND_OPT], [test "$want_opt" = yes])
+AC_CONFIG_FILES([src/Makefile opt/Makefile])
+AC_OUTPUT
+END
+
+cat >Makefile.am << 'END'
+if COND_OPT
+ MAYBE_OPT = opt
+endif
+SUBDIRS = src $(MAYBE_OPT)
+
+# Testing targets.
+#
+# We want to ensure that
+# - src/source and opt/source are always distributed.
+# - src/result is always built
+# - opt/result is built conditionally
+#
+# We rely on 'distcheck' to run 'check-local' and use
+# 'sanity1' and 'sanity2' as evidences that test-build was run.
+
+if COND_OPT
+test-build: all
+ test -f src/result
+ test -f opt/result
+ : > $(top_builddir)/../../sanity2
+else
+test-build: all
+ test -f src/result
+ test ! -f opt/result
+ : > $(top_builddir)/../../sanity1
+endif
+
+test-dist: distdir
+ test -f $(distdir)/src/source
+ test -f $(distdir)/opt/source
+
+check-local: test-build test-dist
+END
+
+mkdir src opt
+: > src/source
+: > opt/source
+
+cat >src/Makefile.am << 'END'
+EXTRA_DIST = source
+all-local: result
+CLEANFILES = result
+
+result: source
+ cp $(srcdir)/source result
+END
+
+# We want in opt/ the same Makefile as in src/. Let's exercise 'include'.
+cat >opt/Makefile.am << 'END'
+include ../src/Makefile.am
+END
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE --add-missing
+./configure
+$MAKE distcheck
+test -f sanity1
+DISTCHECK_CONFIGURE_FLAGS=want_opt=yes $MAKE distcheck
+test -f sanity2
+
+: