mirror of
https://github.com/genodelabs/genode.git
synced 2025-06-16 22:28:18 +00:00
Imported Genode release 11.11
This commit is contained in:
committed by
Christian Helmuth
parent
6bcc9aef0e
commit
da4e1feaa5
74
base-codezero/src/kernel/target.mk
Normal file
74
base-codezero/src/kernel/target.mk
Normal file
@ -0,0 +1,74 @@
|
||||
TARGET = codezero
|
||||
|
||||
-include $(BUILD_BASE_DIR)/etc/codezero.conf
|
||||
ifeq ($(wildcard $(CODEZERO_DIR)),)
|
||||
$(error No valid kernel configured in 'etc/codezero.conf')
|
||||
endif
|
||||
|
||||
include $(REP_DIR)/lib/mk/codezero_cml.inc
|
||||
|
||||
TOOL_CHAIN_DIR = $(dir $(CROSS_DEV_PREFIX))
|
||||
CODEZERO_DST_DIR = $(BUILD_BASE_DIR)/kernel/codezero
|
||||
CODEZERO_BUILD_DIR = $(CODEZERO_DST_DIR)/build
|
||||
|
||||
.PHONY: $(TARGET)
|
||||
|
||||
MIRROR_COPY := conts/baremetal/empty conts/userlibs \
|
||||
build.py include SConstruct src loader
|
||||
|
||||
MIRROR_SYMLINK := scripts tools
|
||||
|
||||
update_copy = $(VERBOSE)tar c -C $(CODEZERO_DIR) $(MIRROR_COPY) | tar x -C $(CODEZERO_DST_DIR)
|
||||
|
||||
ifneq ($(VERBOSE),)
|
||||
CODEZERO_STDOUT := > /dev/null
|
||||
endif
|
||||
|
||||
#
|
||||
# Environment variables passed to the Codezero build system
|
||||
#
|
||||
BUILD_ENV = PATH=$(dir $(CROSS_DEV_PREFIX)):$$PATH
|
||||
|
||||
#
|
||||
# Local copy of the CML file used for supplying the configuration
|
||||
# to the Codezero build system.
|
||||
#
|
||||
LOCAL_CONFIG_CML := $(shell pwd)/config.cml
|
||||
|
||||
$(TARGET): $(CODEZERO_BUILD_DIR)
|
||||
$(MSG_BUILD)kernel
|
||||
$(update_copy)
|
||||
$(VERBOSE)cd $(CODEZERO_DST_DIR); $(BUILD_ENV) ./build.py $(CODEZERO_STDOUT)
|
||||
|
||||
#
|
||||
# Mirror the parts of the Codezero source tree that are relevant for building
|
||||
# the kernel
|
||||
#
|
||||
$(CODEZERO_DST_DIR): $(CODEZERO_DIR)
|
||||
$(VERBOSE)test -d $@ || mkdir -p $@
|
||||
$(VERBOSE)for d in $(MIRROR_SYMLINK); do ln -sf $(realpath $^)/$$d $@/$$d; done
|
||||
|
||||
$(CODEZERO_BUILD_DIR): $(CODEZERO_DST_DIR) $(CODEZERO_CML)
|
||||
$(update_copy)
|
||||
$(VERBOSE)cp $(CODEZERO_CML) $(LOCAL_CONFIG_CML)
|
||||
@#
|
||||
@# Create copy of the CML config in the local build directory to update
|
||||
@# the tool chain parameters according to the CROSS_DEV_PREFIX configured
|
||||
@# for Genode.
|
||||
@#
|
||||
$(VERBOSE)sed -i "/TOOLCHAIN_USERSPACE/s/\".*\"/\"$(notdir $(CROSS_DEV_PREFIX))\"/" $(LOCAL_CONFIG_CML)
|
||||
$(VERBOSE)sed -i "/TOOLCHAIN_KERNEL/s/\".*\"/\"$(notdir $(CROSS_DEV_PREFIX))\"/" $(LOCAL_CONFIG_CML)
|
||||
$(VERBOSE)cd $(CODEZERO_DST_DIR); $(BUILD_ENV) ./build.py -C -b -f $(LOCAL_CONFIG_CML) $(CODEZERO_STDOUT)
|
||||
|
||||
clean cleanall: clean_codezero
|
||||
|
||||
#
|
||||
# Make sure to execute the 'clean_codezero' rule prior the generic clean
|
||||
# rule in 'prg.mk' because the generic rule will attempt to remove $(TARGET)
|
||||
# file, which is a directory in our case.
|
||||
#
|
||||
clean_prg_objects: clean_codezero
|
||||
|
||||
clean_codezero:
|
||||
$(VERBOSE)rm -f $(LOCAL_CONFIG_CML)
|
||||
$(VERBOSE)rm -rf $(CODEZERO_DST_DIR)
|
Reference in New Issue
Block a user