summaryrefslogtreecommitdiff
path: root/t/remake-makefile-vpath.sh
diff options
context:
space:
mode:
authorStefano Lattarini <stefano.lattarini@gmail.com>2012-10-26 12:52:35 +0200
committerStefano Lattarini <stefano.lattarini@gmail.com>2012-10-26 14:22:27 +0200
commit926ab5b475fe77960a81ea608ea1948dc7d3b4b6 (patch)
treef964a7290e3b1e4d3071aa01e3a07ecc8051842c /t/remake-makefile-vpath.sh
parent83caec4ed340657634fff930f45d2c9e4d60007c (diff)
downloadautomake-926ab5b475fe77960a81ea608ea1948dc7d3b4b6.tar.gz
tests: rename some test to more expressive names
* t/remake.sh: Rename ... * t/remake-subdir-grepping.sh: ... like this. * t/remake8a.sh: Rename ... * t/remake-makefile-intree.sh: ... like this, and adjust comments. * t/remake8b.sh: Rename ... * t/remake-makefile-vpath.sh: ... like this, and adjust comments. * t/remake9a.sh: Rename ... * t/remake-after-configure-ac.sh: ... like this, and adjust comments. * t/remake9b.sh: Rename ... * t/remake-after-makefile-am.sh: ... like this, and adjust comments. * t/remake9c.sh: Rename ... * t/remake-after-acinclude-m4.sh: ... like this, and adjust comments. * t/remake9d.sh: Rename ... * t/remake-after-aclocal-m4.sh: ... like this, and adjust comments. * t/remake10a.sh: Rename ... * t/remake-include-configure.sh: ... like this, and adjust comments. * t/remake10b.sh: Rename ... * t/remake-include-makefile.sh: ... like this, and adjust comments. * t/remake10c.sh: Rename ... * t/remake-include-aclocal.sh: ... like this, and adjust comments. * t/list-of-tests.mk: Adjust. Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Diffstat (limited to 't/remake-makefile-vpath.sh')
-rwxr-xr-xt/remake-makefile-vpath.sh192
1 files changed, 192 insertions, 0 deletions
diff --git a/t/remake-makefile-vpath.sh b/t/remake-makefile-vpath.sh
new file mode 100755
index 000000000..7e37fe856
--- /dev/null
+++ b/t/remake-makefile-vpath.sh
@@ -0,0 +1,192 @@
+#! /bin/sh
+# Copyright (C) 2010-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/>.
+
+# Test basic remake rules for Makefiles, for a *VPATH build*.
+# This testcase checks dependency of generated Makefile from Makefile.am,
+# configure.ac, acinclude.m4, aclocal.m4, and extra m4 files considered
+# by aclocal.
+# Keep this in sync with sister test 'remake-makefile-instree.sh', which
+# performs the same checks for a in-tree build.
+
+. ./defs || exit 1
+
+mv -f configure.ac configure.stub
+
+cat > Makefile.am <<'END'
+all-local: foo
+foo:
+ echo '!Foo!' >$@
+check-local:
+ cat foo
+ grep '!Foo!' foo
+CLEANFILES = foo
+END
+
+cat configure.stub - > configure.ac <<'END'
+AC_OUTPUT
+END
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE
+
+mkdir build
+cd build
+srcdir='..' # To make syncing with remake-makefile-intree.sh easier.
+
+$srcdir/configure
+
+$MAKE
+cat foo
+grep '!Foo!' foo
+$MAKE distcheck
+
+rm -f foo
+
+# Modify just Makefile.am.
+
+$sleep
+
+cat > $srcdir/Makefile.am <<'END'
+all-local: bar
+bar:
+ echo '!Baz!' >$@
+check-local:
+ cat bar
+ grep '!Baz!' bar
+ test ! -r $(srcdir)/foo
+ test ! -r foo
+CLEANFILES = bar
+END
+
+using_gmake || $MAKE Makefile
+$MAKE
+cat bar
+grep '!Baz!' bar
+test ! -e foo
+$MAKE distcheck
+
+rm -f bar
+
+# Modify Makefile.am and configure.ac.
+
+$sleep
+
+cat > $srcdir/Makefile.am <<'END'
+check-local:
+ cat quux
+ grep '!Zardoz!' quux
+ test ! -r $(srcdir)/bar
+ test ! -r bar
+END
+
+cat $srcdir/configure.stub - > $srcdir/configure.ac <<'END'
+AC_CONFIG_FILES([quux])
+AC_SUBST([QUUX], [Zardoz])
+AC_OUTPUT
+END
+
+cat > $srcdir/quux.in <<'END'
+!@QUUX@!
+END
+
+using_gmake || $MAKE Makefile
+$MAKE
+cat quux
+grep '!Zardoz!' quux
+test ! -e bar
+$MAKE distcheck
+
+rm -f quux
+
+# Modify Makefile.am to add a directory of extra m4 files
+# considered by aclocal.
+
+$sleep
+
+mkdir $srcdir/m4
+
+cat > $srcdir/Makefile.am <<'END'
+ACLOCAL_AMFLAGS = -I m4
+check-local:
+ cat quux
+ grep '%Foo%' quux
+ test x'$(QUUX)' = x'%Foo%'
+END
+
+$MAKE # This should place aclocal flags in Makefile.
+grep '.*-I m4' Makefile # Sanity check.
+
+# Modify configure.ac and aclocal.m4.
+
+$sleep
+
+cat $srcdir/configure.stub - > $srcdir/configure.ac <<'END'
+AC_CONFIG_FILES([quux])
+MY_CUSTOM_MACRO
+AC_OUTPUT
+END
+
+cat >> $srcdir/aclocal.m4 <<'END'
+AC_DEFUN([MY_CUSTOM_MACRO], [AC_SUBST([QUUX], [%Foo%])])
+END
+
+$MAKE
+cat quux
+grep '%Foo%' quux
+$MAKE distcheck
+
+# Modify Makefile.am, remove aclocal.m4, and add a new m4 file to
+# the directory of extra m4 files considered by aclocal. This new
+# file should now provide a macro required by configure.ac and that
+# was previously provided by aclocal.m4.
+
+$sleep
+
+sed 's/%Foo%/%Bar%/g' $srcdir/Makefile.am > t
+mv -f t $srcdir/Makefile.am
+cat $srcdir/Makefile.am
+rm -f $srcdir/aclocal.m4
+cat > $srcdir/m4/blah.m4 <<'END'
+AC_DEFUN([MY_CUSTOM_MACRO], [AC_SUBST([QUUX], [%Bar%])])
+END
+
+$MAKE
+cat quux
+grep '%Bar%' quux
+$MAKE distcheck
+
+# Modify Makefile.am, remove all the extra m4 files to considered
+# by aclocal, and add an acinclude.m4 file. This last file should
+# now provide a macro required by configure.ac, and that was
+# previously provided by the extra m4 files considered by aclocal.
+
+$sleep
+
+rm -f $srcdir/m4/*.m4
+sed 's/%Bar%/%Quux%/g' $srcdir/Makefile.am > t
+mv -f t $srcdir/Makefile.am
+cat $srcdir/Makefile.am
+cat > $srcdir/acinclude.m4 <<'END'
+AC_DEFUN([MY_CUSTOM_MACRO], [AC_SUBST([QUUX], [%Quux%])])
+END
+
+$MAKE
+cat quux
+grep '%Quux%' quux
+$MAKE distcheck
+
+: