]> git.ipfire.org Git - thirdparty/automake.git/commitdiff
[ng] tests: add "spy" test for '.PHONY' support
authorStefano Lattarini <stefano.lattarini@gmail.com>
Mon, 16 Apr 2012 12:22:08 +0000 (14:22 +0200)
committerStefano Lattarini <stefano.lattarini@gmail.com>
Mon, 16 Apr 2012 12:22:08 +0000 (14:22 +0200)
Some make implementations (especially Solaris make) have some problems
in '.PHONY' support, and this has had the consequence that mainstream
Automake hadn't been able to fully take advantage of the '.PHONY'
semantics to simplify some of its idioms or recipes.  Since we now
want to assume and take advantage of such semantics, we add a new "spy"
test case verifying that they truly hold GNU make, to avoid unwelcome
surprises.

* t/spy-phony.sh: New test.
* t/list-of-tests.mk: Add it.

Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
t/list-of-tests.mk
t/spy-phony.sh [new file with mode: 0755]

index dd2109eca87505789a497ba80e7fd8c076fdda39..02e89ecc9a373b5014c3440e5b846c55ee8d765d 100644 (file)
@@ -980,6 +980,7 @@ t/spell2.sh \
 t/spell3.sh \
 t/spelling.sh \
 t/spy.sh \
+t/spy-phony.sh \
 t/spy-rm.tap \
 t/spy-vpath-rewrite.sh \
 t/stdinc.sh \
diff --git a/t/spy-phony.sh b/t/spy-phony.sh
new file mode 100755 (executable)
index 0000000..4e42819
--- /dev/null
@@ -0,0 +1,57 @@
+#! /bin/sh
+# Copyright (C) 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/>.
+
+# Check that the '.PHONY' semantics we expect truly hold.
+
+am_create_testdir=empty
+. ./defs || Exit 1
+
+cat > Makefile <<'END'
+.PHONY: pdir pfile
+pdir rdir:
+       echo foo > $@/foo
+pfile rfile:
+       echo bar >$@
+.PHONY: other
+other:
+       echo baz >> dummy
+indirect: other
+       echo run > $@
+END
+
+: > rfile
+mkdir rdir
+$MAKE rdir rfile
+test ! -s rfile
+test ! -f rdir/foo
+
+: > pfile
+mkdir pdir
+$MAKE pdir pfile
+test "`cat pfile`" = bar
+test "`cat pdir/foo`" = foo
+
+$MAKE other
+test "`cat dummy`" = baz
+$MAKE other
+test "`cat dummy`" = "baz${nl}baz"
+
+echo not run > indirect
+$MAKE indirect
+test "`cat indirect`" = run
+test "`cat dummy`" = "baz${nl}baz${nl}baz"
+
+: