build-system: use a shell variable for TMPFILE in debian-snapshot
authorDavid Bremner <bremner@debian.org>
Sun, 18 Dec 2011 03:16:51 +0000 (23:16 -0400)
committerDavid Bremner <bremner@debian.org>
Sun, 18 Dec 2011 10:39:53 +0000 (06:39 -0400)
Aaron Ecay points out in
id:"1324136185-4509-1-git-send-email-aaronecay@gmail.com" that the
mktemp in

     debian-snapshot: TMPFILE := $(shell mktemp)

Is being evaluated for every target. As best I can tell, this is
because make is evaluating the right hand side, even though it is not
doing the assignment.

Of course, it isn't quite as nice to edit with the line continuations,
but it is ideomatic make.

Makefile.local

index 5108a0cc60393eda486088cd50620eeb34545a48..97f397ff2d238ca99bbb735488ccd06dd0c40d4b 100644 (file)
@@ -139,15 +139,16 @@ pre-release:
        mv $(TAR_FILE) $(DEB_TAR_FILE) releases
 
 .PHONY: debian-snapshot
-debian-snapshot: TMPFILE := $(shell mktemp)
 debian-snapshot:
        make VERSION=$(VERSION) clean
-       cp debian/changelog $(TMPFILE)
-       EDITOR=/bin/true dch -b -v $(VERSION)+1 -D UNRELEASED 'test build, not for upload'
-       echo '3.0 (native)' > debian/source/format
-       debuild -us -uc
-       mv -f $(TMPFILE) debian/changelog
-       echo '3.0 (quilt)' > debian/source/format
+       TMPFILE=$$(mktemp /tmp/notmuch.XXXXXX);         \
+         cp debian/changelog $${TMPFILE};              \
+         EDITOR=/bin/true dch -b -v $(VERSION)+1       \
+           -D UNRELEASED 'test build, not for upload'; \
+         echo '3.0 (native)' > debian/source/format;   \
+         debuild -us -uc;                              \
+         mv -f $${TMPFILE} debian/changelog;           \
+         echo '3.0 (quilt)' > debian/source/format
 
 .PHONY: release-message
 release-message: