mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-30 10:38:55 +00:00
Build-system support for creating host tools
This commit is contained in:
parent
de65c3f7cc
commit
bcbb0dabf5
@ -24,20 +24,21 @@ $(SUB_DIRS):
|
|||||||
$(VERBOSE)mkdir -p $@
|
$(VERBOSE)mkdir -p $@
|
||||||
|
|
||||||
#
|
#
|
||||||
# Make sure, that we rebuild object files after Makefile changes
|
# Make sure that we rebuild object files and host tools after Makefile changes
|
||||||
#
|
#
|
||||||
$(wildcard $(OBJECTS)): $(filter-out $(LIB_PROGRESS_LOG),$(MAKEFILE_LIST))
|
$(wildcard $(OBJECTS)) $(HOST_TOOLS): $(filter-out $(LIB_PROGRESS_LOG),$(MAKEFILE_LIST))
|
||||||
|
|
||||||
INCLUDES := $(addprefix -I,$(wildcard $(ALL_INC_DIR)))
|
INCLUDES := $(addprefix -I,$(wildcard $(ALL_INC_DIR)))
|
||||||
|
|
||||||
#
|
#
|
||||||
# If one of the 3rd-party ports used by the target changed, we need to rebuild
|
# If one of the 3rd-party ports used by the target changed, we need to rebuild
|
||||||
# all object files because they may include headers from the 3rd-party port.
|
# all object files and host tools because they may include sources from the
|
||||||
|
# 3rd-party port.
|
||||||
#
|
#
|
||||||
# The 'PORT_HASH_FILES' variable is populated as side effect of calling the
|
# The 'PORT_HASH_FILES' variable is populated as side effect of calling the
|
||||||
# 'select_from_ports' function.
|
# 'select_from_ports' function.
|
||||||
#
|
#
|
||||||
$(OBJECTS): $(PORT_HASH_FILES)
|
$(OBJECTS) $(HOST_TOOLS): $(PORT_HASH_FILES)
|
||||||
|
|
||||||
#
|
#
|
||||||
# Include dependency files for the corresponding object files except
|
# Include dependency files for the corresponding object files except
|
||||||
|
@ -21,6 +21,7 @@ CUSTOM_NM ?= $(CROSS_DEV_PREFIX)nm
|
|||||||
CUSTOM_OBJCOPY ?= $(CROSS_DEV_PREFIX)objcopy
|
CUSTOM_OBJCOPY ?= $(CROSS_DEV_PREFIX)objcopy
|
||||||
CUSTOM_RANLIB ?= $(CROSS_DEV_PREFIX)ranlib
|
CUSTOM_RANLIB ?= $(CROSS_DEV_PREFIX)ranlib
|
||||||
CUSTOM_STRIP ?= $(CROSS_DEV_PREFIX)strip
|
CUSTOM_STRIP ?= $(CROSS_DEV_PREFIX)strip
|
||||||
|
CUSTOM_HOST_CC ?= gcc
|
||||||
|
|
||||||
#
|
#
|
||||||
# GNU utilities
|
# GNU utilities
|
||||||
@ -45,6 +46,7 @@ NM = $(CUSTOM_NM)
|
|||||||
OBJCOPY = $(CUSTOM_OBJCOPY)
|
OBJCOPY = $(CUSTOM_OBJCOPY)
|
||||||
RANLIB = $(CUSTOM_RANLIB)
|
RANLIB = $(CUSTOM_RANLIB)
|
||||||
STRIP = $(CUSTOM_STRIP)
|
STRIP = $(CUSTOM_STRIP)
|
||||||
|
HOST_CC = $(CUSTOM_HOST_CC)
|
||||||
|
|
||||||
#
|
#
|
||||||
# Compiler and Linker options
|
# Compiler and Linker options
|
||||||
|
@ -109,6 +109,15 @@ message:
|
|||||||
#
|
#
|
||||||
all: $(LIB_TAG)
|
all: $(LIB_TAG)
|
||||||
|
|
||||||
|
#
|
||||||
|
# Trigger the build of host tools
|
||||||
|
#
|
||||||
|
# We make '$(LIB_TAG)' depend on the host tools to support building host tools
|
||||||
|
# from pseudo libraries with no actual source code. In this case '$(OBJECTS)'
|
||||||
|
# is empty.
|
||||||
|
#
|
||||||
|
$(LIB_TAG) $(OBJECTS): $(HOST_TOOLS)
|
||||||
|
|
||||||
$(LIB_TAG): $(LIB_A) $(LIB_SO) $(INSTALL_SO)
|
$(LIB_TAG): $(LIB_A) $(LIB_SO) $(INSTALL_SO)
|
||||||
@touch $@
|
@touch $@
|
||||||
|
|
||||||
|
@ -181,6 +181,11 @@ endif
|
|||||||
LINK_ITEMS := $(OBJECTS) $(STATIC_LIBS) $(SHARED_LIBS)
|
LINK_ITEMS := $(OBJECTS) $(STATIC_LIBS) $(SHARED_LIBS)
|
||||||
SHORT_LINK_ITEMS := $(subst $(LIB_CACHE_DIR),$$libs,$(LINK_ITEMS))
|
SHORT_LINK_ITEMS := $(subst $(LIB_CACHE_DIR),$$libs,$(LINK_ITEMS))
|
||||||
|
|
||||||
|
#
|
||||||
|
# Trigger the build of host tools
|
||||||
|
#
|
||||||
|
$(LINK_ITEMS) $(TARGET): $(HOST_TOOLS)
|
||||||
|
|
||||||
LD_CMD += -Wl,--whole-archive -Wl,--start-group
|
LD_CMD += -Wl,--whole-archive -Wl,--start-group
|
||||||
LD_CMD += $(SHORT_LINK_ITEMS)
|
LD_CMD += $(SHORT_LINK_ITEMS)
|
||||||
LD_CMD += $(EXT_OBJECTS)
|
LD_CMD += $(EXT_OBJECTS)
|
||||||
|
Loading…
Reference in New Issue
Block a user