aboutsummaryrefslogtreecommitdiff
path: root/build
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2010-09-14 19:04:14 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2010-09-14 19:04:14 +0200
commitbccebbfb3557b47382d0aa998b110e542607d30b (patch)
tree20cb200e2419e26bccc097ecbe842044a42e9af0 /build
parent48eeff4e9bd12a52dcb4b552b2784836a2390321 (diff)
Support fall-back dependency tracking
Diffstat (limited to 'build')
-rw-r--r--build/bootstrap.make32
1 files changed, 25 insertions, 7 deletions
diff --git a/build/bootstrap.make b/build/bootstrap.make
index d38ede4..1c5a4a3 100644
--- a/build/bootstrap.make
+++ b/build/bootstrap.make
@@ -26,18 +26,16 @@ $(call include,$(bld_root)/cxx/configuration.make)
# Aliases
#
-.PHONY: $(out_base)/ \
- $(out_base)/.dist \
- $(out_base)/.clean \
- $(out_base)/.cleandoc
+.PHONY: $(out_base)/ \
+ $(out_base)/.dist \
+ $(out_base)/.clean
ifdef %interactive%
-.PHONY: dist clean cleandoc
+.PHONY: dist clean
dist: $(out_base)/.dist
clean: $(out_base)/.clean
-cleandoc: $(out_base)/.cleandoc
endif
@@ -75,10 +73,30 @@ endef
endif
+# If we don't have dependency auto-generation then we need to manually
+# make sure that generated files are generated before C++ file are
+# compiler. To do this we make the object files ($2) depend in order-
+# only on generated files ($3).
+#
+ifeq ($(cxx_id),generic)
+
+define include-dep
+$(if $2,$(eval $2: | $3))
+endef
+
+else
+
+define include-dep
+$(call -include,$1)
+endef
+
+endif
+
# Don't include dependency info for certain targets.
#
-ifneq ($(filter $(MAKECMDGOALS),clean cleandoc disfigure dist),)
+ifneq ($(filter $(MAKECMDGOALS),clean disfigure dist),)
include-dep =
endif
+
.DEFAULT_GOAL := $(def_goal)