| # |
| # 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 |
| ) |