# # Copyright 2017, Data61 # Commonwealth Scientific and Industrial Research Organisation (CSIRO) # ABN 41 687 119 230. # # This software may be distributed and modified according to the terms of # the BSD 2-Clause license. Note that NO WARRANTY is provided. # See "LICENSE_BSD2.txt" for details. # # @TAG(DATA61_BSD) # cmake_minimum_required(VERSION 3.7.2) project(libsel4platsupport C ASM) set(configure_string "") config_option( LibSel4PlatSupportUseDebugPutChar LIB_SEL4_PLAT_SUPPORT_USE_SEL4_DEBUG_PUTCHAR "Redirect putchar() to seL4_DebugPutchar()" DEFAULT ON DEPENDS "KernelPrinting" DEFAULT_DISABLED OFF ) config_option( LibSel4PlatSupportStart LIB_SEL4_PLAT_SUPPORT_START "Supply _start entry point. Emit _start with a default definition that sets up a \ stack and does what's required to enter main()." DEFAULT OFF ) config_option( LibSel4SupportSel4Start LIB_SEL4_PLAT_SUPPORT_SEL4_START "Supply _sel4_start entry point. Emit a _sel4_start that sets up a stack and does \ what's required to enter a regular _start routine" DEFAULT ON ) mark_as_advanced(LibSel4PlatSupportUseDebugPutChar LibSel4PlatSupportStart LibSel4SupportSel4Start) add_config_library(sel4platsupport "${configure_string}") if(KernelArchRiscV) set(kernel_arch arm) else() set(kernel_arch ${KernelArch}) endif() file( GLOB deps src/*.c src/cspace/*.c src/arch/${kernel_arch}/*.c src/plat/${KernelPlatform}/*.c src/mach/${KernelArmMach}/*.c src/sel4_arch/${KernelSel4Arch}/*.S src/arch/${kernel_arch}/*.S ) list(SORT deps) add_library(sel4platsupport STATIC EXCLUDE_FROM_ALL ${deps}) target_include_directories( sel4platsupport PUBLIC include "arch_include/${kernel_arch}" plat_include/${KernelPlatform} ) if(NOT "${KernelArmMach}" STREQUAL "") target_include_directories(sel4platsupport PUBLIC include "mach_include/${KernelArmMach}") endif() target_link_libraries( sel4platsupport PUBLIC muslc sel4 sel4runtime sel4simple utils sel4vspace platsupport sel4simple-default PRIVATE sel4platsupport_Config sel4muslcsys_Config sel4_autoconf )