Build: Added support for out-of-tree Arch
Introduces the ARCH_ROOT argument, similar to BOARD_ROOT and SOC_ROOT. This enables support for out-of-tree architectures. The ARCH_ROOT out-of-tree layout is expected to be the following: * ${ARCH_ROOT}/arch/${ARCH}/ * ${ARCH_ROOT}/include/arch/${ARCH}/ (Optional) Signed-off-by: Klaus Petersen <kape@oticon.com>
This commit is contained in:
parent
9f1acfe2fd
commit
c66cb76fed
6 changed files with 13 additions and 4 deletions
|
@ -59,7 +59,7 @@ zephyr_library_named(zephyr)
|
|||
|
||||
zephyr_include_directories(
|
||||
kernel/include
|
||||
arch/${ARCH}/include
|
||||
${ARCH_DIR}/${ARCH}/include
|
||||
include
|
||||
include/drivers
|
||||
${PROJECT_BINARY_DIR}/include/generated
|
||||
|
@ -690,7 +690,7 @@ gen_kobj(KOBJ_INCLUDE_PATH)
|
|||
|
||||
set(OFFSETS_LIB offsets)
|
||||
|
||||
set(OFFSETS_C_PATH ${ZEPHYR_BASE}/arch/${ARCH}/core/offsets/offsets.c)
|
||||
set(OFFSETS_C_PATH ${ARCH_DIR}/${ARCH}/core/offsets/offsets.c)
|
||||
set(OFFSETS_H_PATH ${PROJECT_BINARY_DIR}/include/generated/offsets.h)
|
||||
|
||||
add_library( ${OFFSETS_LIB} OBJECT ${OFFSETS_C_PATH})
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
add_definitions(-D__ZEPHYR_SUPERVISOR__)
|
||||
|
||||
add_subdirectory(common)
|
||||
add_subdirectory(${ARCH})
|
||||
add_subdirectory(${ARCH_DIR}/${ARCH} arch/${ARCH})
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
# overriden (by defining symbols in multiple locations)
|
||||
|
||||
# Note: $ARCH might be a glob pattern
|
||||
source "arch/$(ARCH)/Kconfig"
|
||||
source "$(ARCH_DIR)/$(ARCH)/Kconfig"
|
||||
|
||||
choice
|
||||
prompt "Architecture"
|
||||
|
|
|
@ -255,6 +255,12 @@ else()
|
|||
set(SOC_DIR ${SOC_ROOT}/soc)
|
||||
endif()
|
||||
|
||||
if(NOT ARCH_ROOT)
|
||||
set(ARCH_DIR ${ZEPHYR_BASE}/arch)
|
||||
else()
|
||||
set(ARCH_DIR ${ARCH_ROOT}/arch)
|
||||
endif()
|
||||
|
||||
# Use BOARD to search for a '_defconfig' file.
|
||||
# e.g. zephyr/boards/arm/96b_carbon_nrf51/96b_carbon_nrf51_defconfig.
|
||||
# When found, use that path to infer the ARCH we are building for.
|
||||
|
|
|
@ -30,6 +30,7 @@ set(ENV{ARCH} ${ARCH})
|
|||
set(ENV{BOARD_DIR} ${BOARD_DIR})
|
||||
set(ENV{SOC_DIR} ${SOC_DIR})
|
||||
set(ENV{PROJECT_BINARY_DIR} ${PROJECT_BINARY_DIR})
|
||||
set(ENV{ARCH_DIR} ${ARCH_DIR})
|
||||
|
||||
add_custom_target(
|
||||
menuconfig
|
||||
|
@ -43,6 +44,7 @@ add_custom_target(
|
|||
SOC_DIR=$ENV{SOC_DIR}
|
||||
PROJECT_BINARY_DIR=$ENV{PROJECT_BINARY_DIR}
|
||||
ZEPHYR_TOOLCHAIN_VARIANT=${ZEPHYR_TOOLCHAIN_VARIANT}
|
||||
ARCH_DIR=$ENV{ARCH_DIR}
|
||||
${PYTHON_EXECUTABLE} ${ZEPHYR_BASE}/scripts/kconfig/menuconfig.py ${KCONFIG_ROOT}
|
||||
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/kconfig
|
||||
USES_TERMINAL
|
||||
|
|
|
@ -142,6 +142,7 @@ add_custom_target(
|
|||
KERNELVERSION=${KERNELVERSION}
|
||||
BOARD_DIR=boards/*/*/
|
||||
ARCH=*
|
||||
ARCH_DIR=arch/
|
||||
SOC_DIR=soc/
|
||||
SRCARCH=x86
|
||||
KCONFIG_TURBO_MODE=${KCONFIG_TURBO_MODE}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue