aboutsummaryrefslogtreecommitdiff
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
commit11a820f082e03a0cebc63f8dcdf83fa0454f7471 (patch)
tree44264ed01eaa6ba24ba25d722cf0a6d2c347d127
parentb7e9e829b581b1dfd171211efc3a8b2acb9bad90 (diff)
Support fall-back dependency tracking
-rw-r--r--build/bootstrap.make17
-rw-r--r--odb/tracer/makefile8
2 files changed, 20 insertions, 5 deletions
diff --git a/build/bootstrap.make b/build/bootstrap.make
index 09d2864..12e28db 100644
--- a/build/bootstrap.make
+++ b/build/bootstrap.make
@@ -46,12 +46,27 @@ $(error dist_prefix is not set)
endif
endif
-# Don't include dependency info for certain targets.
+# 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 disfigure dist),)
include-dep =
endif
diff --git a/odb/tracer/makefile b/odb/tracer/makefile
index bf03eb5..3e76532 100644
--- a/odb/tracer/makefile
+++ b/odb/tracer/makefile
@@ -32,8 +32,6 @@ $(odb_tracer.l.cpp-options): $(odb.l.cpp-options)
$(cxx_obj) $(cxx_od): $(odb_tracer.l.cpp-options) $(out_base)/details/config.h
-$(call include-dep,$(cxx_od))
-
$(out_base)/details/config.h:
@echo '// file : odb/tracer/details/config.h' >$@
@echo '// author : automatically generated' >>$@
@@ -44,6 +42,8 @@ $(out_base)/details/config.h:
@echo '' >>$@
@echo '#endif // ODB_TRACER_DETAILS_CONFIG_H' >>$@
+$(call include-dep,$(cxx_od),$(cxx_obj),$(out_base)/details/config.h)
+
# Convenience alias for default target.
#
$(out_base)/: $(odb_tracer.l)
@@ -60,8 +60,8 @@ $(dist): export interface_version = $(shell sed -e \
$(dist):
$(call dist-data,$(sources) $(headers) details/config.h.in)
- $(call meta-vc9proj,$(src_base)/libodb-tracer-vc9.vcproj)
- $(call meta-vc10proj,$(src_base)/libodb-tracer-vc10.vcxproj)
+ $(call meta-vc9proj,libodb-tracer-vc9.vcproj)
+ $(call meta-vc10proj,libodb-tracer-vc10.vcxproj)
$(call meta-automake)
# Clean.