sel4: explicit vpath for each file in core

The pattern rule picked up the wrong platform_services.cc in the
depot-archive case only because the archive integrates generic and
sel4-specific source files into REP_DIR.
This commit is contained in:
Christian Helmuth 2018-04-18 16:42:08 +02:00
parent 169d5bc376
commit a25ec92a30
5 changed files with 80 additions and 77 deletions

View File

@ -1,66 +1,54 @@
GEN_CORE_DIR = $(BASE_DIR)/src/core
GEN_CORE_DIR = $(dir $(call select_from_repositories,src/core/main.cc))
BASE_REP_DIR = $(GEN_CORE_DIR)/../..
SRC_CC += \
main.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 \
rpc_cap_factory.cc \
ram_dataspace_factory.cc \
pd_session_support.cc \
io_mem_session_component.cc \
io_mem_session_support.cc \
thread_start.cc \
platform_thread.cc \
platform_pd.cc \
platform_services.cc \
platform.cc \
dataspace_component.cc \
region_map_component.cc \
irq_session_component.cc \
signal_source_component.cc \
signal_transmitter_proxy.cc \
signal_receiver.cc \
trace_session_component.cc \
core_region_map.cc \
core_mem_alloc.cc \
core_rpc_cap_alloc.cc \
core_log.cc core_log_out.cc default_log.cc \
dump_alloc.cc \
stack_area.cc \
capability_space.cc \
pager.cc
GEN_SRC_CC += \
core_log.cc \
core_mem_alloc.cc \
core_rpc_cap_alloc.cc \
cpu_session_component.cc \
cpu_session_support.cc \
cpu_thread_component.cc \
dataspace_component.cc \
default_log.cc \
dump_alloc.cc \
io_mem_session_component.cc \
main.cc \
pd_session_component.cc \
pd_session_support.cc \
platform_thread.cc \
ram_dataspace_factory.cc \
region_map_component.cc \
rom_session_component.cc \
signal_receiver.cc \
signal_transmitter_proxy.cc \
trace_session_component.cc
REP_SRC_CC += \
capability_space.cc \
core_log_out.cc \
core_region_map.cc \
io_mem_session_support.cc \
irq_session_component.cc \
pager.cc \
platform.cc \
platform_pd.cc \
platform_thread.cc \
ram_dataspace_support.cc \
rpc_cap_factory.cc \
signal_source_component.cc \
stack_area.cc \
thread_start.cc
SRC_CC += $(GEN_SRC_CC) $(REP_SRC_CC)
LIBS += base-sel4-common syscall-sel4 cxx
INC_DIR += $(REP_DIR)/src/core/include $(GEN_CORE_DIR)/include \
$(REP_DIR)/src/include $(BASE_DIR)/src/include
$(REP_DIR)/src/include $(BASE_REP_DIR)/src/include
include $(GEN_CORE_DIR)/version.inc
vpath main.cc $(GEN_CORE_DIR)
vpath pd_session_component.cc $(GEN_CORE_DIR)
vpath rom_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_session_support.cc $(GEN_CORE_DIR)
vpath pd_upgrade_ram_quota.cc $(GEN_CORE_DIR)
vpath region_map_component.cc $(GEN_CORE_DIR)
vpath io_mem_session_component.cc $(GEN_CORE_DIR)
vpath io_mem_session_support.cc $(GEN_CORE_DIR)
vpath trace_session_component.cc $(GEN_CORE_DIR)
vpath signal_transmitter_proxy.cc $(GEN_CORE_DIR)
vpath signal_receiver.cc $(GEN_CORE_DIR)
vpath ram_dataspace_factory.cc $(GEN_CORE_DIR)
vpath dataspace_component.cc $(GEN_CORE_DIR)
vpath core_mem_alloc.cc $(GEN_CORE_DIR)
vpath core_rpc_cap_alloc.cc $(GEN_CORE_DIR)
vpath dump_alloc.cc $(GEN_CORE_DIR)
vpath default_log.cc $(GEN_CORE_DIR)
vpath %.cc $(REP_DIR)/src/core
_vpath = $(foreach f,$(1),$(eval vpath $(f) $(2)))
$(call _vpath,$(GEN_SRC_CC),$(GEN_CORE_DIR))
$(call _vpath,$(REP_SRC_CC),$(REP_DIR)/src/core)

View File

@ -1,8 +1,13 @@
SRC_CC += $(addprefix spec/arm/, boot_info.cc thread.cc platform.cc irq.cc \
vm_space.cc platform_thread.cc)
GEN_SRC_CC = platform_services.cc
REP_SRC_CC = \
spec/arm/boot_info.cc \
spec/arm/irq.cc \
spec/arm/platform.cc \
spec/arm/platform_thread.cc \
spec/arm/thread.cc \
spec/arm/vm_space.cc
INC_DIR += $(REP_DIR)/src/core/spec/arm
include $(REP_DIR)/lib/mk/core-sel4.inc
vpath platform_services.cc $(GEN_CORE_DIR)

View File

@ -1,13 +1,18 @@
SRC_CC += $(addprefix spec/x86_32/, boot_info.cc thread.cc platform.cc \
platform_pd.cc vm_space.cc)
SRC_CC += $(addprefix spec/x86/, irq.cc vm_space.cc platform_thread.cc)
GEN_SRC_CC = \
spec/x86/platform_services.cc \
spec/x86/io_port_session_component.cc
SRC_CC += io_port_session_component.cc
SRC_CC += io_port_session_support.cc
REP_SRC_CC = \
spec/x86/io_port_session_support.cc \
spec/x86/irq.cc \
spec/x86/platform_thread.cc \
spec/x86/vm_space.cc \
spec/x86_32/boot_info.cc \
spec/x86_32/platform.cc \
spec/x86_32/platform_pd.cc \
spec/x86_32/thread.cc \
spec/x86_32/vm_space.cc
INC_DIR += $(REP_DIR)/src/core/spec/x86
include $(REP_DIR)/lib/mk/core-sel4.inc
vpath io_port_session_component.cc $(GEN_CORE_DIR)/spec/x86
vpath platform_services.cc $(GEN_CORE_DIR)/spec/x86

View File

@ -1,13 +1,18 @@
SRC_CC += $(addprefix spec/x86_64/, boot_info.cc thread.cc platform.cc \
platform_pd.cc vm_space.cc)
SRC_CC += $(addprefix spec/x86/, irq.cc vm_space.cc platform_thread.cc)
GEN_SRC_CC = \
spec/x86/platform_services.cc \
spec/x86/io_port_session_component.cc
SRC_CC += io_port_session_component.cc
SRC_CC += io_port_session_support.cc
REP_SRC_CC = \
spec/x86/io_port_session_support.cc \
spec/x86/irq.cc \
spec/x86/platform_thread.cc \
spec/x86/vm_space.cc \
spec/x86_64/boot_info.cc \
spec/x86_64/platform.cc \
spec/x86_64/platform_pd.cc \
spec/x86_64/thread.cc \
spec/x86_64/vm_space.cc
INC_DIR += $(REP_DIR)/src/core/spec/x86
include $(REP_DIR)/lib/mk/core-sel4.inc
vpath io_port_session_component.cc $(GEN_CORE_DIR)/spec/x86
vpath platform_services.cc $(GEN_CORE_DIR)/spec/x86