aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoreschnett <eschnett@83718e91-0e4f-0410-abf4-91180603181f>2014-03-01 04:26:44 +0000
committereschnett <eschnett@83718e91-0e4f-0410-abf4-91180603181f>2014-03-01 04:26:44 +0000
commitf26e37c7b6605ee4e7839389c0e595a80cd2ca94 (patch)
treed8fcb3b85e26ab9e67bbed4837a06594f5c49e7e
parentd9b8db774585c8bc4d5456fbcac0b1b055462a2c (diff)
Use order-only prerequisites to avoid spuriously recreating tarballs
Use order-only prerequisites to avoid recreating tarballs and git repositories when thorn Formaline's library changes. git-svn-id: http://svn.cactuscode.org/arrangements/CactusUtils/Formaline/trunk@244 83718e91-0e4f-0410-abf4-91180603181f
-rw-r--r--src/make.configuration.deps29
1 files changed, 16 insertions, 13 deletions
diff --git a/src/make.configuration.deps b/src/make.configuration.deps
index cfbeae4..313fc24 100644
--- a/src/make.configuration.deps
+++ b/src/make.configuration.deps
@@ -36,6 +36,8 @@ CACTUS_CONFIGS_DIR ?= $(CCTK_HOME)/configs
#install-Formaline-utils: $(CCTK_LIBDIR)/$(LIBNAME_PREFIX)$(CCTK_LIBNAME_PREFIX)Formaline$(LIBNAME_SUFFIX)
#.PHONY: install-Formaline-utils
FORMALINE-UTILS = $(CCTK_LIBDIR)/$(LIBNAME_PREFIX)$(CCTK_LIBNAME_PREFIX)Formaline$(LIBNAME_SUFFIX)
+# NOTE: This dependency means that all tarballs and the git repo are
+# recreated from scratch when lib_thornFormaline.a changes!
@@ -70,7 +72,7 @@ $(FRM-LIB): $(FRM-OBJS)
# (generates also $(TOP)/CONFIG-ID)
.PRECIOUS: $(TOP)/BUILD-ID
.PHONY: $(TOP)/BUILD-ID
-$(TOP)/BUILD-ID: $(CCTK_LIBDIR)/$(LIBNAME_PREFIX)$(CCTK_LIBNAME_PREFIX)Formaline$(LIBNAME_SUFFIX) $(FORMALINE-UTILS)
+$(TOP)/BUILD-ID: $(CCTK_LIBDIR)/$(LIBNAME_PREFIX)$(CCTK_LIBNAME_PREFIX)Formaline$(LIBNAME_SUFFIX) | $(FORMALINE-UTILS)
config=`echo "$(EXE:cactus_%=%)" | $(TR_C) -d '[:alnum:]+-._]'` && \
hostname=`$(FORMALINE_BIN_DIR)/gethostname.pl` && \
user="$$USER" && \
@@ -104,7 +106,7 @@ $(TARBALL_DIR)/build-id.c: $(TOP)/BUILD-ID
$(TARBALL_DIR)/cactus-meta.o: $(TARBALL_DIR)/cactus-meta.c
cd $(TARBALL_DIR) && $(CC) $(CFLAGS) -c -o $@ $^
-$(TARBALL_DIR)/cactus-meta.c: $(TARBALL_DIR)/config-Cactus.c $(TARBALL_DIR)/flesh-Cactus.c $(patsubst %,$(TARBALL_DIR)/thorn-%.c,$(notdir $(THORNS))) $(FORMALINE-UTILS)
+$(TARBALL_DIR)/cactus-meta.c: $(TARBALL_DIR)/config-Cactus.c $(TARBALL_DIR)/flesh-Cactus.c $(patsubst %,$(TARBALL_DIR)/thorn-%.c,$(notdir $(THORNS))) | $(FORMALINE-UTILS)
$(FORMALINE_BIN_DIR)/makemetablob.pl CactusConfig Cactus $(notdir $(THORNS)) > $@
.PRECIOUS: $(TARBALL_DIR)/cactus-meta.c $(TARBALL_DIR)/cactus-meta.o
@@ -123,7 +125,7 @@ $(TARBALL_DIR)/config-Cactus.o: $(TARBALL_DIR)/config-Cactus.c
$(CC) $(CFLAGS) -c $(^:%.c=%-????.c) && \
$(CC) $(CFLAGS) -c $^
-$(TARBALL_DIR)/config-Cactus.c: $(TARBALL_DIR)/config-Cactus.tar.gz $(CCTK_HOME)/arrangements/CactusUtils/Formaline/src/util/VERSION $(FORMALINE-UTILS)
+$(TARBALL_DIR)/config-Cactus.c: $(TARBALL_DIR)/config-Cactus.tar.gz $(CCTK_HOME)/arrangements/CactusUtils/Formaline/src/util/VERSION | $(FORMALINE-UTILS)
$(RM) -f $(@:%.c=%-????.c)
$(FORMALINE_BIN_DIR)/makeblob.pl $(@:%.c=%) '' CactusConfig < $<
@@ -186,7 +188,7 @@ $(TARBALL_DIR)/flesh-Cactus.o: $(TARBALL_DIR)/flesh-Cactus.c
$(CC) $(CFLAGS) -c $(^:%.c=%-????.c) && \
$(CC) $(CFLAGS) -c $^
-$(TARBALL_DIR)/flesh-Cactus.c: $(TARBALL_DIR)/flesh-Cactus.tar.gz $(CCTK_HOME)/arrangements/CactusUtils/Formaline/src/util/VERSION $(FORMALINE-UTILS)
+$(TARBALL_DIR)/flesh-Cactus.c: $(TARBALL_DIR)/flesh-Cactus.tar.gz $(CCTK_HOME)/arrangements/CactusUtils/Formaline/src/util/VERSION | $(FORMALINE-UTILS)
$(RM) -f $(@:%.c=%-????.c)
$(FORMALINE_BIN_DIR)/makeblob.pl $(@:%.c=%) '' Cactus < $<
@@ -197,7 +199,7 @@ $(TARBALL_DIR)/flesh-Cactus.tar.gz: $(TARBALL_DIR)/flesh-Cactus.files
# This dependency means that the tarball for the flesh is only updated
# if the flesh is actually recompiled. This does not catch changes to
# files that do not influence the executable.
-$(TARBALL_DIR)/flesh-Cactus.files: $(CCTK_LIBDIR)/$(LIBNAME_PREFIX)$(CCTK_LIBNAME_PREFIX)$(FLESHLIB)$(LIBNAME_SUFFIX) $(TARBALL_DIR)/flesh-Cactus.ccldeps $(CONFIG)/make.thornlist
+$(TARBALL_DIR)/flesh-Cactus.files: $(CCTK_LIBDIR)/$(LIBNAME_PREFIX)$(CCTK_LIBNAME_PREFIX)$(FLESHLIB)$(LIBNAME_SUFFIX) $(TARBALL_DIR)/flesh-Cactus.ccldeps #$(CONFIG)/make.thornlist
cd $(CCTK_HOME) && \
find CONTRIBUTORS COPYRIGHT Makefile lib/ src/ \
-name 'CVS' -prune -o \
@@ -243,7 +245,7 @@ $(TARBALL_DIR)/thorn-%.o: $(TARBALL_DIR)/thorn-%.c
$(CC) $(CFLAGS) -c $(patsubst $(TARBALL_DIR)/%, %, $(^:%.c=%-????.c)) && \
$(CC) $(CFLAGS) -c $(patsubst $(TARBALL_DIR)/%, %, $^)
-$(TARBALL_DIR)/thorn-%.c: $(TARBALL_DIR)/thorn-%.tar.gz $(CCTK_HOME)/arrangements/CactusUtils/Formaline/src/util/VERSION $(FORMALINE-UTILS)
+$(TARBALL_DIR)/thorn-%.c: $(TARBALL_DIR)/thorn-%.tar.gz $(CCTK_HOME)/arrangements/CactusUtils/Formaline/src/util/VERSION | $(FORMALINE-UTILS)
cd $(TARBALL_DIR) && $(RM) -f $(@:$(TARBALL_DIR)/%.c=%-????.c)
$(FORMALINE_BIN_DIR)/makeblob.pl $(@:%.c=%) $(patsubst %/,%,$(dir $(filter %/$(@:$(TARBALL_DIR)/thorn-%.c=%),$(THORNS)))) $(@:$(TARBALL_DIR)/thorn-%.c=%) < $<
@@ -377,19 +379,20 @@ BUILD-ID-FILE = $(TOP)/BUILD-ID
CONFIG-ID-FILE = $(TOP)/CONFIG-ID
.PHONY: git-push-everything
-git-push-everything: git-commit-everything $(BUILD-ID-FILE) $(FORMALINE-UTILS)
+git-push-everything: git-commit-everything $(BUILD-ID-FILE) | $(FORMALINE-UTILS)
{ \
'$(GIT-BIN)/git-init-master-repo.pl' '$(GIT)' '$(GIT-MASTER-REPO)' && \
eval "$$('$(GIT-BIN)/git-get-localdir.pl' '$(GIT)')" && \
if [ -e "$(CCTK_HOME)/cactus.config" ]; then \
- . "$(CCTK_HOME)/cactus.config"; \
+ export 'CCTK_HOME=$(CCTK_HOME)' && \
+ . '$(CCTK_HOME)/cactus.config'; \
fi && \
- export CACTUS_LOCAL_GIT_REPO CACTUS_CENTRAL_GIT_REPO && \
+ export CACTUS_LOCAL_GIT_REPO CACTUS_CENTRAL_GIT_REPO CACTUS_CENTRAL_SSH_ID && \
'$(GIT-BIN)/git-push-everything.pl' '$(GIT)' '$(GIT-REPO)' '$(GIT-MASTER-REPO)'; \
} || echo "Formaline: WARNING: Error while pushing to master repository"
.PHONY: git-commit-everything
-git-commit-everything: $(GIT-TAG-DIR)/flesh-Cactus.git-tag $(GIT-THORNS:%=$(GIT-TAG-DIR)/thorn-%.git-tag) $(BUILD-ID-FILE) git-rm-unused-thorns $(FORMALINE-UTILS)
+git-commit-everything: $(GIT-TAG-DIR)/flesh-Cactus.git-tag $(GIT-THORNS:%=$(GIT-TAG-DIR)/thorn-%.git-tag) $(BUILD-ID-FILE) git-rm-unused-thorns | $(FORMALINE-UTILS)
{ \
'$(GIT-BIN)/git-commit-everything.pl' '$(GIT)' '$(GIT-REPO)' '$(GIT-ROOT)' "$$(cat $(BUILD-ID-FILE))" "$$(cat $(CONFIG-ID-FILE))"; \
} || echo "Formaline: WARNING: Error while committing to repository"
@@ -397,13 +400,13 @@ git-commit-everything: $(GIT-TAG-DIR)/flesh-Cactus.git-tag $(GIT-THORNS:%=$(GIT-
# Wait until after thorn Formaline has been built, so that its
# utilities are available
.PHONY: git-rm-unused-thorns
-git-rm-unused-thorns: $(CCTK_LIBDIR)/$(LIBNAME_PREFIX)$(CCTK_LIBNAME_PREFIX)Formaline$(LIBNAME_SUFFIX) $(FORMALINE-UTILS)
+git-rm-unused-thorns: $(CCTK_LIBDIR)/$(LIBNAME_PREFIX)$(CCTK_LIBNAME_PREFIX)Formaline$(LIBNAME_SUFFIX) | $(FORMALINE-UTILS)
{ \
'$(GIT-BIN)/git-rm-unused-thorns.pl' '$(GIT)' '$(GIT-REPO)' '$(GIT-ROOT)' $(THORNS); \
} || echo "Formaline: WARNING: Error while removing unused thorns"
.PRECIOUS: $(GIT-TAG-DIR)/flesh-Cactus.git-tag
-$(GIT-TAG-DIR)/flesh-Cactus.git-tag: $(TARBALL_DIR)/flesh-Cactus.files $(FORMALINE-UTILS)
+$(GIT-TAG-DIR)/flesh-Cactus.git-tag: $(TARBALL_DIR)/flesh-Cactus.files | $(FORMALINE-UTILS)
mkdir -p $(GIT-TAG-DIR)
{ \
'$(GIT-BIN)/git-init-repo.pl' '$(GIT)' '$(GIT-REPO)' && \
@@ -414,7 +417,7 @@ $(GIT-TAG-DIR)/flesh-Cactus.git-tag: $(TARBALL_DIR)/flesh-Cactus.files $(FORMALI
} || echo "Formaline: WARNING: Error while adding flesh to git repository"
.PRECIOUS: $(GIT-TAG-DIR)/thorn-%.git-tag
-$(GIT-TAG-DIR)/thorn-%.git-tag: $(TARBALL_DIR)/thorn-%.files $(FORMALINE-UTILS)
+$(GIT-TAG-DIR)/thorn-%.git-tag: $(TARBALL_DIR)/thorn-%.files | $(FORMALINE-UTILS)
mkdir -p $(GIT-TAG-DIR)
{ \
'$(GIT-BIN)/git-init-repo.pl' '$(GIT)' '$(GIT-REPO)' && \