Add support for order-only dependencies
This commit is contained in:
parent
7191a7394a
commit
a6f4554656
2 changed files with 22 additions and 0 deletions
12
libraries.mk
12
libraries.mk
|
@ -21,6 +21,9 @@ endif
|
||||||
#
|
#
|
||||||
# - $(1)_CXXFLAGS: additional C++ compiler flags.
|
# - $(1)_CXXFLAGS: additional C++ compiler flags.
|
||||||
#
|
#
|
||||||
|
# - $(1)_ORDER_AFTER: a set of targets on which the object files of
|
||||||
|
# this libraries will have an order-only dependency.
|
||||||
|
#
|
||||||
# - $(1)_LIBS: the symbolic names of other libraries on which this
|
# - $(1)_LIBS: the symbolic names of other libraries on which this
|
||||||
# library depends.
|
# library depends.
|
||||||
#
|
#
|
||||||
|
@ -89,6 +92,8 @@ define build-library
|
||||||
$(1)_LDFLAGS_USE_INSTALLED += -L$$(DESTDIR)$$($(1)_INSTALL_DIR) -l$$(patsubst lib%,%,$$(strip $$($(1)_NAME)))
|
$(1)_LDFLAGS_USE_INSTALLED += -L$$(DESTDIR)$$($(1)_INSTALL_DIR) -l$$(patsubst lib%,%,$$(strip $$($(1)_NAME)))
|
||||||
ifeq ($(SET_RPATH_TO_LIBS), 1)
|
ifeq ($(SET_RPATH_TO_LIBS), 1)
|
||||||
$(1)_LDFLAGS_USE_INSTALLED += -Wl,-rpath,$$($(1)_INSTALL_DIR)
|
$(1)_LDFLAGS_USE_INSTALLED += -Wl,-rpath,$$($(1)_INSTALL_DIR)
|
||||||
|
else
|
||||||
|
$(1)_LDFLAGS_USE_INSTALLED += -Wl,-rpath-link,$$($(1)_INSTALL_DIR)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifdef $(1)_FORCE_INSTALL
|
ifdef $(1)_FORCE_INSTALL
|
||||||
|
@ -118,6 +123,13 @@ define build-library
|
||||||
# Make each object file depend on the common dependencies.
|
# Make each object file depend on the common dependencies.
|
||||||
$$(foreach obj, $$($(1)_OBJS), $$(eval $$(obj): $$($(1)_COMMON_DEPS) $$(GLOBAL_COMMON_DEPS)))
|
$$(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.
|
# Include .dep files, if they exist.
|
||||||
$(1)_DEPS := $$(foreach fn, $$($(1)_OBJS), $$(call filename-to-dep, $$(fn)))
|
$(1)_DEPS := $$(foreach fn, $$($(1)_OBJS), $$(call filename-to-dep, $$(fn)))
|
||||||
-include $$($(1)_DEPS)
|
-include $$($(1)_DEPS)
|
||||||
|
|
10
programs.mk
10
programs.mk
|
@ -12,6 +12,9 @@ programs-list :=
|
||||||
#
|
#
|
||||||
# - $(1)_CXXFLAGS: additional C++ compiler flags.
|
# - $(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
|
# - $(1)_LIBS: the symbolic names of libraries on which this program
|
||||||
# depends.
|
# depends.
|
||||||
#
|
#
|
||||||
|
@ -59,6 +62,13 @@ define build-program
|
||||||
# Make each object file depend on the common dependencies.
|
# Make each object file depend on the common dependencies.
|
||||||
$$(foreach obj, $$($(1)_OBJS), $$(eval $$(obj): $$($(1)_COMMON_DEPS) $$(GLOBAL_COMMON_DEPS)))
|
$$(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.
|
# Include .dep files, if they exist.
|
||||||
$(1)_DEPS := $$(foreach fn, $$($(1)_OBJS), $$(call filename-to-dep, $$(fn)))
|
$(1)_DEPS := $$(foreach fn, $$($(1)_OBJS), $$(call filename-to-dep, $$(fn)))
|
||||||
-include $$($(1)_DEPS)
|
-include $$($(1)_DEPS)
|
||||||
|
|
Loading…
Reference in a new issue