aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
-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