aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
authorUwe Kleine-König <uwe@kleine-koenig.org>2017-09-14 20:45:40 +0200
committerLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2017-11-10 10:13:37 +0100
commit5844e1713cf68cb24a1692bb6ac2e776f4e87ce0 (patch)
tree752168b1782112ecc9825ea4cbbed759313990bc
parent325817fe36eceabcd3bdc3a21d84dcb394d7e68e (diff)
downloadsparse-dev-5844e1713cf68cb24a1692bb6ac2e776f4e87ce0.tar.gz
build: only generate version.h when needed
This way version.h isn't generated when running $(make clean) but only when lib.c is about to be compiled. This simplifies packaging for Debian because the package building programs abort when there are additional files after $(make clean). Signed-off-by: Uwe Kleine-König <uwe@kleine-koenig.org> Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
-rw-r--r--Makefile22
1 files changed, 14 insertions, 8 deletions
diff --git a/Makefile b/Makefile
index 975b5e72..ce57ed3c 100644
--- a/Makefile
+++ b/Makefile
@@ -1,13 +1,5 @@
VERSION=0.5.1
-# Generating file version.h if current version has changed
-SPARSE_VERSION:=$(shell git describe 2>/dev/null || echo '$(VERSION)')
-VERSION_H := $(shell cat version.h 2>/dev/null)
-ifneq ($(lastword $(VERSION_H)),"$(SPARSE_VERSION)")
-$(info $(shell echo ' GEN 'version.h))
-$(shell echo '#define SPARSE_VERSION "$(SPARSE_VERSION)"' > version.h)
-endif
-
OS = linux
@@ -199,6 +191,18 @@ cflags += $($(*)-cflags) $(CPPFLAGS) $(CFLAGS)
selfcheck: $(OBJS:.o=.sc)
+SPARSE_VERSION:=$(shell git describe 2>/dev/null || echo '$(VERSION)')
+lib.o: version.h
+version.h: FORCE
+ @echo '#define SPARSE_VERSION "$(SPARSE_VERSION)"' > version.h.tmp
+ @if cmp -s version.h version.h.tmp; then \
+ rm version.h.tmp; \
+ else \
+ echo ' GEN '$@; \
+ mv version.h.tmp version.h; \
+ fi
+
+
clean: clean-check
rm -f *.[oa] .*.d *.so $(PROGRAMS) $(SLIB_FILE) pre-process.h version.h
@@ -220,3 +224,5 @@ clean-check:
-o -name "*.c.error.got" \
-o -name "*.c.error.diff" \
\) -exec rm {} \;
+
+.PHONY: FORCE