Ensure that empty directory variables work with empty content variables.
authorRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Sat, 28 Mar 2009 17:03:15 +0000 (18:03 +0100)
committerRalf Wildenhues <Ralf.Wildenhues@gmx.de>
Sat, 28 Mar 2009 17:03:15 +0000 (18:03 +0100)
This test ensures that, if both $(wheredir) and $(where_HOW) are
the empty string, then the `install' and `uninstall' rules behave
sanely, for several directory variables `wheredir' and several
primaries `HOW'.
* tests/instdir.test: New test.
* tests/Makefile.am: Update.

Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
ChangeLog
tests/Makefile.am
tests/Makefile.in
tests/instdir.test [new file with mode: 0755]

index 2ae89ef..113e16f 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2009-03-28  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       Ensure that empty directory variables work with empty content variables.
+       This test ensures that, if both $(wheredir) and $(where_HOW) are
+       the empty string, then the `install' and `uninstall' rules behave
+       sanely, for several directory variables `wheredir' and several
+       primaries `HOW'.
+       * tests/instdir.test: New test.
+       * tests/Makefile.am: Update.
+
 2009-03-23  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
        Use --tag=FC with libtool also for .f90 files.
index 8a65684..4b32ad0 100644 (file)
@@ -309,6 +309,7 @@ instsh2.test \
 instsh3.test \
 instdat.test \
 instdat2.test \
+instdir.test \
 instexec.test \
 instfail.test \
 instfail-info.test \
index 32744ba..e1df612 100644 (file)
@@ -464,6 +464,7 @@ instsh2.test \
 instsh3.test \
 instdat.test \
 instdat2.test \
+instdir.test \
 instexec.test \
 instfail.test \
 instfail-info.test \
diff --git a/tests/instdir.test b/tests/instdir.test
new file mode 100755 (executable)
index 0000000..ceed66c
--- /dev/null
@@ -0,0 +1,71 @@
+#! /bin/sh
+# Copyright (C) 2009  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/>.
+
+# If $(foodir) is the empty string, then nothing should be installed there.
+# This test only ensures this if $(foo_PRIMARY) is also empty, see
+# instdir2.test and siblings instdir-*.test for nonempty contents.
+
+. ./defs || Exit 1
+
+set -e
+
+cat >>configure.in <<'END'
+AC_SUBST([foodir], ['${datadir}'/foo])
+AC_OUTPUT
+END
+
+cat >Makefile.am <<'END'
+bin_SCRIPTS =
+nobase_bin_SCRIPTS =
+data_DATA =
+nobase_data_DATA =
+include_HEADERS =
+nobase_include_HEADERS =
+foo_DATA =
+nobase_foo_DATA =
+bardir = $(datadir)/bar
+bar_DATA =
+nobase_bar_DATA =
+man1_MANS =
+man_MANS =
+notrans_man1_MANS =
+notrans_man_MANS =
+END
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE --add-missing
+
+instdir=`pwd`/inst
+destdir=`pwd`/dest
+mkdir build
+cd build
+../configure --prefix="$instdir"
+$MAKE
+
+bindir= datadir= includedir= foodir= bardir= man1dir= man2dir=
+export bindir datadir includedir foodir bardir man1dir man2dir
+
+$MAKE -e install
+test ! -d "$instdir"
+$MAKE -e install DESTDIR="$destdir"
+test ! -d "$instdir"
+test ! -d "$destdir"
+$MAKE -e uninstall > stdout || { cat stdout; Exit 1; }
+cat stdout
+grep 'rm -f' stdout && Exit 1
+$MAKE -e uninstall DESTDIR="$destdir"
+: