]> git.ipfire.org Git - thirdparty/automake.git/commitdiff
* tests/subst3.test: New test.
authorRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Wed, 30 Jan 2008 20:40:57 +0000 (21:40 +0100)
committerRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Wed, 30 Jan 2008 20:40:57 +0000 (21:40 +0100)
* tests/Makefile.am: Update.

ChangeLog
tests/Makefile.am
tests/Makefile.in
tests/subst3.test [new file with mode: 0755]

index d07b135967dbf9c0f1654eaa91384d3cfaad8f79..becda79899a3a046bb4b9888b06448b2d1b324a2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2008-01-30  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
+       * tests/subst3.test: New test.
+       * tests/Makefile.am: Update.
+
        * tests/instsh2.test: Split off testing of `install-sh -C' ...
        * tests/instsh3.test: ... to this new test, requiring non-root.
        * tests/Makefile.am: Adjust.
index 8405c7ac03b8e51ce9b112c980ffd372c0302e58..42a330ffd438cd30c6cbe77360a2d9be31e6fe47 100644 (file)
@@ -545,6 +545,7 @@ subpkg2.test \
 subpkg3.test \
 subst.test \
 subst2.test \
+subst3.test \
 substref.test \
 substre2.test \
 substtarg.test \
index 1bcb573ef93618c0e35ac655c79ff497cb8feb9b..8a10b4b6b8e0b6d370adaf097103bbb0a946bc2d 100644 (file)
@@ -694,6 +694,7 @@ subpkg2.test \
 subpkg3.test \
 subst.test \
 subst2.test \
+subst3.test \
 substref.test \
 substre2.test \
 substtarg.test \
diff --git a/tests/subst3.test b/tests/subst3.test
new file mode 100755 (executable)
index 0000000..b0f5b43
--- /dev/null
@@ -0,0 +1,177 @@
+#! /bin/sh
+# Copyright (C) 2001, 2002, 2004, 2005, 2006, 2007, 2008  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 3, 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 installation with substitutions.  This test is based on nobase.test.
+
+required='gcc'
+. ./defs || exit 1
+
+set -e
+
+cat >> configure.in <<'EOF'
+AC_PROG_CC
+AC_PROG_RANLIB
+if test -n "$doit"; then
+  AC_SUBST([basehdr], [sub/base.h])
+  AC_SUBST([nobasehdr], [sub/nobase.h])
+  AC_SUBST([basedata], [sub/base.dat])
+  AC_SUBST([nobasedata], [sub/nobase.dat])
+  AC_SUBST([basescript], [sub/base.sh])
+  AC_SUBST([nobasescript], [sub/nobase.sh])
+  AC_SUBST([baseprog], ['sub/base$(EXEEXT)'])
+  AC_SUBST([nobaseprog], ['sub/nobase$(EXEEXT)'])
+  AC_SUBST([baselib], [sub/libbase.a])
+  AC_SUBST([nobaselib], [sub/libnobase.a])
+fi
+AC_OUTPUT
+EOF
+
+cat > Makefile.am << 'EOF'
+foodir = $(prefix)/foo
+fooexecdir = $(prefix)/foo
+
+foo_HEADERS = @basehdr@
+nobase_foo_HEADERS = @nobasehdr@
+EXTRA_HEADERS = sub/base.h sub/nobase.h
+
+dist_foo_DATA = @basedata@
+nobase_dist_foo_DATA = @nobasedata@
+
+dist_fooexec_SCRIPTS = @basescript@
+nobase_dist_fooexec_SCRIPTS = @nobasescript@
+EXTRA_SCRIPTS = sub/base.sh sub/nobase.sh
+
+fooexec_PROGRAMS = @baseprog@
+nobase_fooexec_PROGRAMS = @nobaseprog@
+EXTRA_PROGRAMS = sub/base sub/nobase
+sub_base_SOURCES = source.c
+sub_nobase_SOURCES = source.c
+
+fooexec_LIBRARIES = @baselib@
+nobase_fooexec_LIBRARIES = @nobaselib@
+EXTRA_LIBRARIES = sub/libbase.a sub/libnobase.a
+sub_libbase_a_SOURCES = source.c
+sub_libnobase_a_SOURCES = source.c
+
+test-install-data: install-data
+       test   -f inst/foo/sub/nobase.h
+       test ! -f inst/foo/nobase.h
+       test   -f inst/foo/base.h
+       test   -f inst/foo/sub/nobase.dat
+       test ! -f inst/foo/nobase.dat
+       test   -f inst/foo/base.dat
+       test ! -f inst/foo/sub/pnobase.sh
+       test ! -f inst/foo/pbase.sh
+       test ! -f inst/foo/sub/pnobase$(EXEEXT)
+       test ! -f inst/foo/pbase$(EXEEXT)
+       test ! -f inst/foo/sub/libnobase.a
+       test ! -f inst/foo/libbase.a
+
+test-install-exec: install-exec
+       test   -f inst/foo/sub/pnobase.sh
+       test ! -f inst/foo/pnobase.sh
+       test   -f inst/foo/pbase.sh
+       test   -f inst/foo/sub/pnobase$(EXEEXT)
+       test ! -f inst/foo/pnobase$(EXEEXT)
+       test   -f inst/foo/pbase$(EXEEXT)
+       test   -f inst/foo/sub/libnobase.a
+       test ! -f inst/foo/libnobase.a
+       test   -f inst/foo/libbase.a
+
+test-install-nothing-data: install-data
+       test ! -f inst/foo/sub/nobase.h
+       test ! -f inst/foo/nobase.h
+       test ! -f inst/foo/base.h
+       test ! -f inst/foo/sub/nobase.dat
+       test ! -f inst/foo/nobase.dat
+       test ! -f inst/foo/base.dat
+       test ! -f inst/foo/sub/pnobase.sh
+       test ! -f inst/foo/pbase.sh
+       test ! -f inst/foo/sub/pnobase$(EXEEXT)
+       test ! -f inst/foo/pbase$(EXEEXT)
+       test ! -f inst/foo/sub/libnobase.a
+       test ! -f inst/foo/libbase.a
+
+test-install-nothing-exec: install-exec
+       test ! -f inst/foo/sub/pnobase.sh
+       test ! -f inst/foo/pnobase.sh
+       test ! -f inst/foo/pbase.sh
+       test ! -f inst/foo/sub/pnobase$(EXEEXT)
+       test ! -f inst/foo/pnobase$(EXEEXT)
+       test ! -f inst/foo/pbase$(EXEEXT)
+       test ! -f inst/foo/sub/libnobase.a
+       test ! -f inst/foo/libnobase.a
+       test ! -f inst/foo/libbase.a
+EOF
+
+mkdir sub
+
+: > sub/base.h
+: > sub/nobase.h
+: > sub/base.dat
+: > sub/nobase.dat
+: > sub/base.sh
+: > sub/nobase.sh
+
+cat >source.c <<'EOF'
+int
+main (int argc, char *argv[])
+{
+  return 0;
+}
+EOF
+cp source.c source2.c
+
+rm -f install-sh
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE -a --copy
+./configure --prefix "`pwd`/inst" --program-prefix=p doit=yes
+
+$MAKE
+$MAKE test-install-data
+$MAKE test-install-exec
+$MAKE uninstall
+$MAKE clean
+
+test `find inst/foo -type f -print | wc -l` = 0
+
+./configure --prefix "`pwd`/inst" --program-prefix=p doit=
+
+$MAKE
+$MAKE test-install-nothing-data
+$MAKE test-install-nothing-exec
+$MAKE uninstall
+
+
+# Likewise, in a VPATH build.
+
+$MAKE distclean
+mkdir build
+cd build
+../configure --prefix "`pwd`/inst" --program-prefix=p doit=yes
+$MAKE
+$MAKE test-install-data
+$MAKE test-install-exec
+$MAKE uninstall
+test `find inst/foo -type f -print | wc -l` = 0
+
+../configure --prefix "`pwd`/inst" --program-prefix=p doit=
+$MAKE
+$MAKE test-install-nothing-data
+$MAKE test-install-nothing-exec