mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-28 09:38:53 +00:00
35cf48cdc8
Issue #1082
69 lines
2.2 KiB
PHP
69 lines
2.2 KiB
PHP
#
|
|
# Create prerequisites for building Genode for OKL4
|
|
#
|
|
# Prior building Genode programs for OKL4, the kernel bindings needed are
|
|
# symlinked to the build directory.
|
|
#
|
|
|
|
#
|
|
# Execute the rules in this file only at the second build stage when we know
|
|
# about the complete build settings, e.g., the 'CROSS_DEV_PREFIX'.
|
|
#
|
|
ifeq ($(called_from_lib_mk),yes)
|
|
|
|
#
|
|
# Make OKL4 kernel API headers available to the Genode build system
|
|
#
|
|
# We have to create a symbolic link of OKL's 'include/l4' directory into our
|
|
# local build directory. If we just added the original 'iguana/include'
|
|
# directory to the include-search locations, we would pollute the include
|
|
# search space with all Iguana include files, not just the OKL4 API includes.
|
|
#
|
|
|
|
OKL4_L4_INCLUDES = arch.h cache.h caps.h config.h interrupt.h ipc.h kdebug.h \
|
|
macros.h map.h memregion.h message.h misc.h mutex.h \
|
|
pagefault.h procdesc.h profile.h schedule.h security.h \
|
|
space.h thread.h time.h types.h utcb.h
|
|
|
|
OKL4_INCLUDE_SYMLINKS += $(addprefix $(BUILD_BASE_DIR)/include/l4/,$(OKL4_L4_INCLUDES))
|
|
OKL4_INCLUDE_SYMLINKS += $(addprefix $(BUILD_BASE_DIR)/include/,compat bootinfo)
|
|
|
|
OKL4_INCLUDE_DIRS = $(sort $(dir $(OKL4_INCLUDE_SYMLINKS)))
|
|
|
|
# make sure to create the 'include/l4' directory before the symbolic links
|
|
all: $(OKL4_INCLUDE_SYMLINKS)
|
|
|
|
$(OKL4_INCLUDE_SYMLINKS): $(filter-out $(wildcard $(OKL4_INCLUDE_DIRS)), $(OKL4_INCLUDE_DIRS))
|
|
|
|
$(OKL4_INCLUDE_DIRS):
|
|
$(VERBOSE)mkdir -p $@
|
|
|
|
$(OKL4_DIR):
|
|
$(VERBOSE)$(ECHO) "--> Please, execute 'make prepare' in $(REP_DIR)"
|
|
$(VERBOSE)$(ECHO) "--> before compiling Genode apps for OKL4."
|
|
$(VERBOSE)exit 1
|
|
|
|
$(OKL4_DIR)/%: $(filter-out $(wildcard $(OKL4_DIR)), $(OKL4_DIR))
|
|
|
|
$(BUILD_BASE_DIR)/include/l4/%.h: $(OKL4_DIR)/libs/l4/include/%.h
|
|
$(VERBOSE)ln -sf $< $@
|
|
|
|
$(BUILD_BASE_DIR)/include/compat: $(OKL4_DIR)/libs/compat/include/compat
|
|
$(VERBOSE)ln -sf $< $@
|
|
|
|
$(BUILD_BASE_DIR)/include/bootinfo: $(OKL4_DIR)/libs/bootinfo/include
|
|
$(VERBOSE)ln -sf $< $@
|
|
|
|
endif
|
|
|
|
#
|
|
# Create symlink to elfweaver so that the run tool can use it from within the
|
|
# build directory.
|
|
#
|
|
HOST_TOOLS += $(BUILD_BASE_DIR)/tool/okl4/elfweaver
|
|
|
|
$(BUILD_BASE_DIR)/tool/okl4/elfweaver:
|
|
mkdir -p $(dir $@)
|
|
ln -sf $(OKL4_DIR)/tools/pyelf/elfweaver $@
|
|
|