diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2014-08-07T14·10+0200 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2014-08-07T14·10+0200 |
commit | a6f4554656d24d488627c713274e2cae82fc51d3 (patch) | |
tree | b029180a17e41b6a6a386ad7644cb53ed058f5d5 /programs.mk | |
parent | 7191a7394a3091ed2856508674f84f3a87eda5a6 (diff) |
Add support for order-only dependencies
Diffstat (limited to 'programs.mk')
-rw-r--r-- | programs.mk | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/programs.mk b/programs.mk index b6de0689404c..72afdf95251b 100644 --- a/programs.mk +++ b/programs.mk @@ -12,6 +12,9 @@ programs-list := # # - $(1)_CXXFLAGS: additional C++ compiler flags. # +# - $(1)_ORDER_AFTER: a set of targets on which the object files of +# this program will have an order-only dependency. +# # - $(1)_LIBS: the symbolic names of libraries on which this program # depends. # @@ -59,6 +62,13 @@ define build-program # Make each object file depend on the common dependencies. $$(foreach obj, $$($(1)_OBJS), $$(eval $$(obj): $$($(1)_COMMON_DEPS) $$(GLOBAL_COMMON_DEPS))) + # Make each object file have order-only dependencies on the common + # order-only dependencies. This includes the order-only dependencies + # of libraries we're depending on. + $(1)_ORDER_AFTER_CLOSED = $$($(1)_ORDER_AFTER) $$(foreach lib, $$($(1)_LIBS), $$($$(lib)_ORDER_AFTER_CLOSED)) + + $$(foreach obj, $$($(1)_OBJS), $$(eval $$(obj): | $$($(1)_ORDER_AFTER_CLOSED) $$(GLOBAL_ORDER_AFTER))) + # Include .dep files, if they exist. $(1)_DEPS := $$(foreach fn, $$($(1)_OBJS), $$(call filename-to-dep, $$(fn))) -include $$($(1)_DEPS) |