summaryrefslogtreecommitdiff
path: root/t/spy-double-colon.sh
diff options
context:
space:
mode:
Diffstat (limited to 't/spy-double-colon.sh')
-rw-r--r--t/spy-double-colon.sh106
1 files changed, 0 insertions, 106 deletions
diff --git a/t/spy-double-colon.sh b/t/spy-double-colon.sh
deleted file mode 100644
index ea4714850..000000000
--- a/t/spy-double-colon.sh
+++ /dev/null
@@ -1,106 +0,0 @@
-#! /bin/sh
-# Copyright (C) 2003-2015 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 whether double colon rules work. The Unix V7 make manual
-# mentions double-colon rules, but POSIX does not. They seem to be
-# supported by all Make implementation as far as we can tell. This test
-# case is a spy: we want to detect if there exist implementations where
-# these do not work. We might use these rules to simplify the rebuild
-# rules (instead of the $? hack).
-
-# Tom Tromey write:
-# | In the distant past we used :: rules extensively.
-# | Fran?ois convinced me to get rid of them:
-# |
-# | Thu Nov 23 18:02:38 1995 Tom Tromey <tromey@cambric>
-# | [ ... ]
-# | * subdirs.am: Removed "::" rules
-# | * header.am, libraries.am, mans.am, texinfos.am, footer.am:
-# | Removed "::" rules
-# | * scripts.am, programs.am, libprograms.am: Removed "::" rules
-# |
-# |
-# | I no longer remember the rationale for this. It may have only been a
-# | belief that they were unportable.
-
-# On a related topic, the Autoconf manual has the following text:
-# | 'VPATH' and double-colon rules
-# | Any assignment to 'VPATH' causes Sun 'make' to only execute
-# | the first set of double-colon rules. (This comment has been
-# | here since 1994 and the context has been lost. It's probably
-# | about SunOS 4. If you can reproduce this, please send us a
-# | test case for illustration.)
-
-# We already know that overlapping ::-rule like
-#
-# a :: b
-# echo rule1 >> $@
-# a :: c
-# echo rule2 >> $@
-# a :: b c
-# echo rule3 >> $@
-#
-# do not work equally on all platforms. It seems that in all cases
-# Make attempts to run all matching rules. However at least GNU Make,
-# NetBSD Make, and FreeBSD Make will detect that $@ was updated by the
-# first matching rule and skip remaining matches (with the above
-# example that means that unless 'a' was declared PHONY, only "rule1"
-# will be appended to 'a' if both b and c have changed). Other
-# implementations like OSF1 Make and HP-UX Make do not perform such a
-# check and execute all matching rules whatever they do ("rule1",
-# "rule2", abd "rule3" will all be appended to 'a' if b and c have
-# changed).
-
-# So it seems only non-overlapping ::-rule may be portable. This is
-# what we check now.
-
-. test-init.sh
-
-cat >Makefile <<\EOF
-a :: b
- echo rule1 >> $@
-a :: c
- echo rule2 >> $@
-EOF
-
-touch b c
-$sleep
-: > a
-$MAKE
-test x"$(cat a)" = x
-$sleep
-touch b
-$MAKE
-test "$(cat a)" = "rule1"
-# Ensure a is strictly newer than b, so HP-UX make does not execute rule2.
-$sleep
-: > a
-$sleep
-touch c
-$MAKE
-test "$(cat a)" = "rule2"
-
-# Unfortunately, the following is not portable to FreeBSD/NetBSD/OpenBSD
-# make, see explanation above.
-
-#: > a
-#$sleep
-#touch b c
-#$MAKE
-#grep rule1 a
-#grep rule2 a
-
-: