diff options
Diffstat (limited to 't/subcond3.sh')
-rwxr-xr-x | t/subcond3.sh | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/t/subcond3.sh b/t/subcond3.sh new file mode 100755 index 000000000..e84aa4114 --- /dev/null +++ b/t/subcond3.sh @@ -0,0 +1,90 @@ +#! /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 + AC_SUBST setup from the manual. +# Lots of lines here are duplicated in subcond2.test. + +. ./defs || Exit 1 + +cat >>configure.ac <<'END' +if test "$want_opt" = yes; then + MAYBE_OPT=opt +else + MAYBE_OPT= +fi +AC_SUBST([MAYBE_OPT]) +AC_CONFIG_FILES([src/Makefile opt/Makefile]) +AC_OUTPUT +END + +cat >Makefile.am << 'END' +SUBDIRS = src $(MAYBE_OPT) +DIST_SUBDIRS = src 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. + +test-build: all + test -f src/result + if test -n "$(MAYBE_OPT)"; then \ + test -f opt/result || exit 1; \ + : > $(top_builddir)/../../sanity2 || exit 1; \ + else \ + test ! -f opt/result || exit 1; \ + : > $(top_builddir)/../../sanity1 || exit 1; \ + fi + +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 |