genode/repos/base-fiasco/lib/mk/kernel-fiasco.inc
2023-05-30 12:03:25 +02:00

67 lines
2.1 KiB
PHP

L4_SRC_DIR := $(call select_from_ports,fiasco)/src/kernel/fiasco/fiasco/snapshot
FIASCO_BUILD_DIR = $(shell pwd)/build
FIASCO = $(FIASCO_BUILD_DIR)/fiasco
FIASCO_SRC = $(L4_SRC_DIR)/kernel/fiasco
KERNEL_BUILD_OUTPUT_FILTER = 2>&1 | sed "s/^/ [fiasco] /"
KERNEL_CFLAGS = -std=gnu89 \
-fno-tree-loop-distribute-patterns \
$(CWARN)
KERNEL_CXXFLAGS = -std=gnu++98 \
-fno-delete-null-pointer-checks \
-fno-tree-loop-distribute-patterns \
-Wno-address-of-packed-member \
$(CXXWARN)
$(FIASCO_BUILD_DIR):
$(VERBOSE_MK) MAKEFLAGS= $(MAKE) SYSTEM_TARGET="$(CROSS_DEV_PREFIX)" \
$(VERBOSE_DIR) -C $(FIASCO_SRC) BUILDDIR=$@ \
$(KERNEL_BUILD_OUTPUT_FILTER)
$(VERBOSE)cp $(KERNEL_CONFIG) $@/globalconfig.out
$(VERBOSE_MK) MAKEFLAGS= $(MAKE) SYSTEM_TARGET="$(CROSS_DEV_PREFIX)" \
$(VERBOSE_DIR) -C $@ oldconfig \
$(KERNEL_BUILD_OUTPUT_FILTER)
$(VERBOSE)cp $(KERNEL_CONFIG) $@/globalconfig.out
$(FIASCO): $(FIASCO_BUILD_DIR)
$(VERBOSE_MK) MAKEFLAGS= \
CFLAGS="$(KERNEL_CFLAGS)" \
CXXFLAGS="$(KERNEL_CXXFLAGS)" \
$(MAKE) SYSTEM_TARGET="$(CROSS_DEV_PREFIX)" \
$(VERBOSE_DIR) -C $(FIASCO_BUILD_DIR) \
$(KERNEL_BUILD_OUTPUT_FILTER)
#
# Sigma0 and bootstrap are provided as L4 packages
#
# We build them within the L4 build directory created by the 'syscall-fiasco'
# library.
#
LIBS += syscall-fiasco
PKGS = l4sys/lib \
uclibc/lib/uclibc \
uclibc/lib/include \
crtx \
l4util/lib \
cxx \
sigma0/server \
bootstrap
L4_BUILD_DIR := $(LIB_CACHE_DIR)/syscall-fiasco
include $(REP_DIR)/lib/mk/l4_pkg.inc
#
# Execute the rules in this file only at the second build stage when we know
# about the complete build settings, e.g., 'CROSS_DEV_PREFIX'.
#
ifeq ($(called_from_lib_mk),yes)
all: $(FIASCO)
endif