diff --git a/repos/base-linux/lib/mk/core-linux.inc b/repos/base-linux/lib/mk/core-linux.inc new file mode 100644 index 0000000000..2d6bcd3db2 --- /dev/null +++ b/repos/base-linux/lib/mk/core-linux.inc @@ -0,0 +1,69 @@ +GEN_CORE_DIR := $(BASE_DIR)/src/core +LIBS := syscall-linux +BOARD ?= unknown + +SRC_CC := main.cc \ + platform.cc \ + platform_thread.cc \ + platform_services.cc \ + pd_session_component.cc \ + ram_dataspace_support.cc \ + rom_session_component.cc \ + cpu_session_component.cc \ + cpu_session_support.cc \ + cpu_thread_component.cc \ + pd_session_support.cc \ + dataspace_component.cc \ + native_pd_component.cc \ + native_cpu_component.cc \ + capability_space.cc \ + rpc_cap_factory_linux.cc \ + ram_dataspace_factory.cc \ + core_rpc_cap_alloc.cc \ + io_mem_session_component.cc \ + irq_session_component.cc \ + signal_source_component.cc \ + signal_transmitter_proxy.cc \ + signal_receiver.cc \ + trace_session_component.cc \ + thread_linux.cc \ + stack_area.cc \ + core_log.cc \ + core_log_out.cc \ + default_log.cc \ + env_reinit.cc \ + heartbeat.cc \ + thread.cc \ + thread_myself.cc + +INC_DIR += $(REP_DIR)/src/core/include \ + $(GEN_CORE_DIR)/include \ + $(REP_DIR)/src/platform \ + $(REP_DIR)/src/include \ + $(BASE_DIR)/src/include + +vpath main.cc $(GEN_CORE_DIR) +vpath pd_session_component.cc $(GEN_CORE_DIR) +vpath core_log.cc $(GEN_CORE_DIR) +vpath cpu_session_component.cc $(GEN_CORE_DIR) +vpath cpu_session_support.cc $(GEN_CORE_DIR) +vpath cpu_thread_component.cc $(GEN_CORE_DIR) +vpath pd_upgrade_ram_quota.cc $(GEN_CORE_DIR) +vpath pd_session_support.cc $(GEN_CORE_DIR) +vpath capability_space.cc $(GEN_CORE_DIR) +vpath ram_dataspace_factory.cc $(GEN_CORE_DIR) +vpath signal_source_component.cc $(GEN_CORE_DIR) +vpath signal_transmitter_proxy.cc $(GEN_CORE_DIR) +vpath signal_receiver.cc $(GEN_CORE_DIR) +vpath trace_session_component.cc $(GEN_CORE_DIR) +vpath default_log.cc $(GEN_CORE_DIR) +vpath heartbeat.cc $(GEN_CORE_DIR) +vpath thread.cc $(BASE_DIR)/src/lib/base +vpath thread_myself.cc $(BASE_DIR)/src/lib/base +vpath trace.cc $(BASE_DIR)/src/lib/base +vpath env_reinit.cc $(REP_DIR)/src/lib/base +vpath dataspace_component.cc $(REP_DIR)/src/core/spec/$(BOARD) +vpath io_mem_session_component.cc $(REP_DIR)/src/core/spec/$(BOARD) +vpath irq_session_component.cc $(REP_DIR)/src/core/spec/$(BOARD) +vpath platform_services.cc $(REP_DIR)/src/core/spec/$(BOARD) +vpath %.cc $(REP_DIR)/src/core diff --git a/repos/base-linux/lib/mk/core-linux.mk b/repos/base-linux/lib/mk/core-linux.mk new file mode 100644 index 0000000000..fdd624a174 --- /dev/null +++ b/repos/base-linux/lib/mk/core-linux.mk @@ -0,0 +1 @@ +include $(REP_DIR)/lib/mk/core-linux.inc diff --git a/repos/base-linux/lib/mk/spec/x86/core-linux.mk b/repos/base-linux/lib/mk/spec/x86/core-linux.mk new file mode 100644 index 0000000000..579835c140 --- /dev/null +++ b/repos/base-linux/lib/mk/spec/x86/core-linux.mk @@ -0,0 +1,7 @@ +include $(REP_DIR)/lib/mk/core-linux.inc + +SRC_CC += io_port_session_support.cc \ + io_port_session_component.cc + +vpath io_port_session_support.cc $(GEN_CORE_DIR)/spec/x86 +vpath io_port_session_component.cc $(REP_DIR)/src/core/spec/$(BOARD) diff --git a/repos/base-linux/recipes/src/base-linux/content.mk b/repos/base-linux/recipes/src/base-linux/content.mk index ac1fcf25cf..f63694205a 100644 --- a/repos/base-linux/recipes/src/base-linux/content.mk +++ b/repos/base-linux/recipes/src/base-linux/content.mk @@ -8,8 +8,8 @@ lib/import src/ld: content: for spec in x86_32 x86_64 arm; do \ mv lib/mk/spec/$$spec/ld-linux.mk lib/mk/spec/$$spec/ld.mk; done; - sed -i "s/core-linux/core/" src/core/linux/target.mk - sed -i "s/BOARD.*unknown/BOARD := linux/" src/core/linux/target.mk + sed -i "/TARGET/s/core-linux/core/" src/core/linux/target.mk + sed -i "s/BOARD.*unknown/BOARD := linux/" lib/mk/core-linux.inc sed -i "s/ld-linux/ld/" src/lib/ld/linux/target.mk sed -i "s/linux_timer_drv/timer/" src/timer/linux/target.mk rm -rf src/lib/initramfs diff --git a/repos/base-linux/src/core/linux/target.mk b/repos/base-linux/src/core/linux/target.mk index cd5a59b3fc..fba745472a 100644 --- a/repos/base-linux/src/core/linux/target.mk +++ b/repos/base-linux/src/core/linux/target.mk @@ -1,83 +1,10 @@ -TARGET = core-linux -REQUIRES = linux -LIBS = cxx base-linux-common syscall-linux startup-linux +TARGET := core-linux +REQUIRES := linux +LIBS := cxx base-linux-common startup-linux core-linux +BOARD ?= unknown -BOARD ?= unknown +include $(BASE_DIR)/src/core/version.inc -GEN_CORE_DIR = $(BASE_DIR)/src/core - -SRC_CC = main.cc \ - platform.cc \ - platform_thread.cc \ - platform_services.cc \ - pd_session_component.cc \ - ram_dataspace_support.cc \ - rom_session_component.cc \ - cpu_session_component.cc \ - cpu_session_support.cc \ - cpu_thread_component.cc \ - pd_session_support.cc \ - dataspace_component.cc \ - native_pd_component.cc \ - native_cpu_component.cc \ - capability_space.cc \ - rpc_cap_factory_linux.cc \ - ram_dataspace_factory.cc \ - core_rpc_cap_alloc.cc \ - io_mem_session_component.cc \ - io_port_session_component.cc \ - io_port_session_support.cc \ - irq_session_component.cc \ - signal_source_component.cc \ - signal_transmitter_proxy.cc \ - signal_receiver.cc \ - trace_session_component.cc \ - thread_linux.cc \ - stack_area.cc \ - core_log.cc \ - core_log_out.cc \ - default_log.cc \ - env_reinit.cc \ - heartbeat.cc \ - thread.cc \ - thread_myself.cc - -INC_DIR += $(REP_DIR)/src/core/include \ - $(GEN_CORE_DIR)/include \ - $(REP_DIR)/src/platform \ - $(REP_DIR)/src/include \ - $(BASE_DIR)/src/include - -LD_TEXT_ADDR ?= 0x01000000 -LD_SCRIPT_STATIC = $(BASE_DIR)/src/ld/genode.ld \ - $(call select_from_repositories,src/ld/stack_area.ld) - -include $(GEN_CORE_DIR)/version.inc - -vpath main.cc $(GEN_CORE_DIR) -vpath pd_session_component.cc $(GEN_CORE_DIR) -vpath core_log.cc $(GEN_CORE_DIR) -vpath cpu_session_component.cc $(GEN_CORE_DIR) -vpath cpu_session_support.cc $(GEN_CORE_DIR) -vpath cpu_thread_component.cc $(GEN_CORE_DIR) -vpath pd_upgrade_ram_quota.cc $(GEN_CORE_DIR) -vpath pd_session_support.cc $(GEN_CORE_DIR) -vpath capability_space.cc $(GEN_CORE_DIR) -vpath ram_dataspace_factory.cc $(GEN_CORE_DIR) -vpath signal_source_component.cc $(GEN_CORE_DIR) -vpath signal_transmitter_proxy.cc $(GEN_CORE_DIR) -vpath signal_receiver.cc $(GEN_CORE_DIR) -vpath trace_session_component.cc $(GEN_CORE_DIR) -vpath default_log.cc $(GEN_CORE_DIR) -vpath heartbeat.cc $(GEN_CORE_DIR) -vpath io_port_session_support.cc $(GEN_CORE_DIR)/spec/x86 -vpath thread.cc $(BASE_DIR)/src/lib/base -vpath thread_myself.cc $(BASE_DIR)/src/lib/base -vpath trace.cc $(BASE_DIR)/src/lib/base -vpath env_reinit.cc $(REP_DIR)/src/lib/base -vpath dataspace_component.cc $(REP_DIR)/src/core/spec/$(BOARD) -vpath io_mem_session_component.cc $(REP_DIR)/src/core/spec/$(BOARD) -vpath irq_session_component.cc $(REP_DIR)/src/core/spec/$(BOARD) -vpath io_port_session_component.cc $(REP_DIR)/src/core/spec/$(BOARD) -vpath platform_services.cc $(REP_DIR)/src/core/spec/$(BOARD) -vpath %.cc $(REP_DIR)/src/core +LD_TEXT_ADDR ?= 0x01000000 +LD_SCRIPT_STATIC = $(BASE_DIR)/src/ld/genode.ld \ + $(call select_from_repositories,src/ld/stack_area.ld)