summaryrefslogtreecommitdiff
path: root/t/insthook.sh
diff options
context:
space:
mode:
Diffstat (limited to 't/insthook.sh')
-rwxr-xr-xt/insthook.sh77
1 files changed, 77 insertions, 0 deletions
diff --git a/t/insthook.sh b/t/insthook.sh
new file mode 100755
index 000000000..23bc4e03e
--- /dev/null
+++ b/t/insthook.sh
@@ -0,0 +1,77 @@
+#! /bin/sh
+# Copyright (C) 2003-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/>.
+
+# Make sure the install-exec-hook example we give in the manual works.
+
+. ./defs || Exit 1
+
+cat >>configure.ac <<'EOF'
+AC_PROG_LN_S
+AC_OUTPUT
+EOF
+
+cat >Makefile.am <<'END'
+dist_bin_SCRIPTS = foo
+
+install-exec-hook:
+ cd "$(DESTDIR)$(bindir)" && \
+ mv -f foo foo-$(VERSION) && \
+ $(LN_S) foo-$(VERSION) foo
+
+installcheck-local:
+ test -f "$(bindir)/foo"
+ test -f "$(bindir)/foo-$(VERSION)"
+ : > $(top_srcdir)/../ok
+
+uninstall-hook:
+ rm -f $(DESTDIR)$(bindir)/foo-$(VERSION)
+END
+
+echo 1 > foo
+
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE
+
+./configure
+$MAKE distcheck
+# Sanity check to make sure installcheck-local was run.
+test -f ok
+
+# Make sure that installing a second version doesn't erase the first
+# one. (This is error prone since 'foo' symlinks to 'foo-1.0' and the
+# second version will overwrite 'foo'. Hopefully 'install' and 'install-sh'
+# are smart enough to erase the 'foo' symlink before installing the new
+# version.)
+./configure "--bindir=`pwd`/bin"
+$MAKE install
+echo 2 > foo
+VERSION=2.0 $MAKE -e install
+grep 1 bin/foo-1.0
+grep 2 bin/foo-2.0
+grep 2 bin/foo
+
+# install-hook is an error.
+cat >>Makefile.am <<EOF
+install-hook:
+ echo test
+EOF
+
+AUTOMAKE_fails
+grep install-data-hook stderr
+grep install-exec-hook stderr
+
+: