OSDN Git Service

Rework defective package build time-stamping logic.
authorKeith Marshall <keithmarshall@users.sourceforge.net>
Wed, 19 Jun 2013 14:35:53 +0000 (15:35 +0100)
committerKeith Marshall <keithmarshall@users.sourceforge.net>
Wed, 19 Jun 2013 14:35:53 +0000 (15:35 +0100)
ChangeLog
Makefile.in

index 14bfb06..63da559 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2013-06-19  Keith Marshall  <keithmarshall@users.sourceforge.net>
+
+       Rework defective package build time-stamping logic.
+
+       * Makefile.in (%.time): Make it explicitly touch its target; the
+       2013-05-15 changes, to reduce redundancy, didn't work as expected.
+       (%.tag): Add a side effect; make it also explicitly touch %.time.
+       (%.tagged.time): This is now redundant; remove it.
+
 2013-06-14  Keith Marshall  <keithmarshall@users.sourceforge.net>
 
        Collect distributable package files in user specified directory.
index c30d14d..cf757d0 100644 (file)
@@ -249,20 +249,21 @@ sinclude *.d
 %.$(OBJEXT): %.ico
        echo $* ICON $*.ico | $(RC) -I ${srcdir}/icons -o $@
 
-# Release tagging...
+# Release tagging; note that, whereas %.time is nominally updated as
+# a side effect of %.tag, we also must provide an explicit rule which
+# will update it directly.  This ensures that we may INDIRECTLY force
+# a dependency on the TIME when %.tag is updated, WITHOUT creating an
+# explicit dependency on %.tag itself.
 #
 time-stamp:
-%.tagged.time: time-stamp
-       > $*.time
-
-%.time: %.tagged.time
-
-%.tag: %.tagged.time
+%.time:; > $@
+%.tag: time-stamp
        >> $@; tag=`date +%Y%m%d`; \
          tag=`awk -F- -v today=$$tag ' \
            BEGIN { tag = 1 } $$1 == today { tag += $$2 } \
            END { print today "-" tag }' $@`; \
          echo $$tag > $@
+       > $*.time
 
 %.c: %.c.in
        $(VERSION_SCRIPT) $< > $@