Now that we know that what bothers HP-UX make is same-timestamp prereqs, we can fix the age-old spurious spy.test failures for good, and even add a test for a target out of date wrt. several rules. Yay! This means that, at least in theory, we could use double-colon rules for something eventually, if the need arises.
I'll wait a day or so before pushing to maint. Cheers, Ralf tests: allow double-colon spy.test to work with HP-UX make. * tests/spy.test: Fix comment typos. Ensure prerequisites we do not want to depend on are strictly older than the target. Also test with a target out of date wrt. more than one rule. diff --git a/tests/spy.test b/tests/spy.test index 79673d5..f4bd6ef 100755 --- a/tests/spy.test +++ b/tests/spy.test @@ -16,8 +16,8 @@ # 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 we can tell. This test case -# is a spy: we want to detect if there exist implementations where +# 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). @@ -85,8 +85,18 @@ $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 +: > a +$sleep +touch b c +$MAKE +grep rule1 a +grep rule2 a + +: