summaryrefslogtreecommitdiff
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
parent48eeff4e9bd12a52dcb4b552b2784836a2390321 (diff)
Support fall-back dependency tracking
-rw-r--r--build/bootstrap.make32
-rw-r--r--odb/makefile5
2 files changed, 27 insertions, 10 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)
diff --git a/odb/makefile b/odb/makefile
index 095fc17..4e844b9 100644
--- a/odb/makefile
+++ b/odb/makefile
@@ -118,9 +118,8 @@ $(gen): cli_options += \
--include-prefix odb \
--guard-prefix ODB
-$(call include-dep,$(cxx_pod))
-$(call include-dep,$(cxx_dod))
-$(call include-dep,$(cxx_cod))
+$(call include-dep,$(cxx_pod) $(cxx_dod) $(cxx_cod),\
+$(cxx_pobj) $(cxx_dobj) $(cxx_cobj),$(gen))
# Alias for default target.
#