240 lines
9.8 KiB
Plaintext
240 lines
9.8 KiB
Plaintext
cabal-version: 3.0
|
|
|
|
--
|
|
-- Copyright 2014, General Dynamics C4 Systems
|
|
--
|
|
-- SPDX-License-Identifier: GPL-2.0-only
|
|
--
|
|
|
|
name: SEL4
|
|
version: 13
|
|
build-type: Custom
|
|
license: GPL-2.0-only
|
|
author: Philip Derrin et. al., NICTA
|
|
synopsis: Executable specification for the seL4 Kernel
|
|
tested-with: GHC == 9.2.8
|
|
homepage: http://sel4.systems/
|
|
|
|
custom-setup
|
|
setup-depends:
|
|
base == 4.16.*,
|
|
Cabal == 3.6.3.*
|
|
|
|
Flag FFI
|
|
description: Include the C language bindings
|
|
default: True
|
|
|
|
Flag ArchArm
|
|
description: Include ARM modules and platforms
|
|
default: False
|
|
|
|
Flag ArchArmHyp
|
|
description: Include ARM (with Hypervisor Extensions) modules and platforms
|
|
default: False
|
|
|
|
Flag ArchX64
|
|
description: Include x86 64-bit modules and platforms
|
|
default: False
|
|
|
|
Flag ArchRiscV
|
|
description: Include RISC-V 64-bit modules and platforms
|
|
default: False
|
|
|
|
Flag ArchAArch64
|
|
description: Include AArch 64-bit modules and platforms
|
|
default: False
|
|
|
|
Library
|
|
exposed-modules: SEL4
|
|
SEL4.Machine.Target
|
|
build-depends: mtl==2.2.*, base==4.16.*, array, containers, transformers
|
|
|
|
if flag(FFI)
|
|
-- FFIBindings currently relies on POSIX signal handlers. This could
|
|
-- be fixed.
|
|
build-depends: unix
|
|
exposed-modules: Simulation.FFIBindings
|
|
include-dirs: include
|
|
install-includes: sel4model.h gic.h
|
|
else
|
|
build-depends: unix
|
|
include-dirs: include
|
|
|
|
other-modules: SEL4.API
|
|
SEL4.API.Syscall
|
|
SEL4.API.Faults
|
|
SEL4.API.Failures
|
|
SEL4.API.Types
|
|
SEL4.API.Types.Universal
|
|
SEL4.API.Invocation
|
|
SEL4.API.InvocationLabels
|
|
SEL4.Kernel
|
|
SEL4.Kernel.BootInfo
|
|
SEL4.Kernel.VSpace
|
|
SEL4.Kernel.CSpace
|
|
SEL4.Kernel.Init
|
|
SEL4.Kernel.Thread
|
|
SEL4.Kernel.FaultHandler
|
|
SEL4.Kernel.Hypervisor
|
|
SEL4.Object
|
|
SEL4.Object.ObjectType
|
|
SEL4.Object.CNode
|
|
SEL4.Object.Endpoint
|
|
SEL4.Object.TCB
|
|
SEL4.Object.Instances
|
|
SEL4.Object.Structures
|
|
SEL4.Object.Interrupt
|
|
SEL4.Object.Notification
|
|
SEL4.Object.Untyped
|
|
SEL4.Model
|
|
SEL4.Model.StateData
|
|
SEL4.Model.PSpace
|
|
SEL4.Model.Failures
|
|
SEL4.Model.Preemption
|
|
SEL4.Model.Syscall
|
|
SEL4.Machine
|
|
SEL4.Machine.RegisterSet
|
|
SEL4.Machine.Hardware
|
|
SEL4.Config
|
|
Data.BinaryTree
|
|
Data.Helpers
|
|
Data.WordLib
|
|
|
|
if flag(ArchArm)
|
|
other-modules:
|
|
SEL4.Machine.Hardware.ARM.KZM
|
|
SEL4.Machine.Hardware.ARM.Exynos4210
|
|
SEL4.Machine.Hardware.ARM.Sabre
|
|
SEL4.Machine.Hardware.ARM.Callbacks
|
|
SEL4.Machine.Hardware.GICInterface
|
|
SEL4.Machine.Hardware.MCTInterface
|
|
SEL4.Machine.Hardware.MPTimerInterface
|
|
|
|
SEL4.API.Types.ARM
|
|
SEL4.API.InvocationLabels.ARM
|
|
SEL4.API.Invocation.ARM
|
|
SEL4.API.Faults.ARM
|
|
SEL4.API.Failures.ARM
|
|
SEL4.Kernel.VSpace.ARM
|
|
SEL4.Kernel.Thread.ARM
|
|
SEL4.Kernel.Hypervisor.ARM
|
|
SEL4.Object.ObjectType.ARM
|
|
SEL4.Object.Structures.ARM
|
|
SEL4.Object.Interrupt.ARM
|
|
SEL4.Object.Instances.ARM
|
|
SEL4.Object.TCB.ARM
|
|
SEL4.Model.StateData.ARM
|
|
SEL4.Model.PSpace.ARM
|
|
SEL4.Machine.RegisterSet.ARM
|
|
SEL4.Machine.Hardware.ARM
|
|
|
|
if flag(ArchArmHyp)
|
|
other-modules:
|
|
SEL4.Machine.Hardware.ARM.TK1
|
|
SEL4.Machine.Hardware.ARM.Callbacks
|
|
|
|
SEL4.API.Types.ARM
|
|
SEL4.API.InvocationLabels.ARM
|
|
SEL4.API.Invocation.ARM
|
|
SEL4.API.Faults.ARM
|
|
SEL4.API.Failures.ARM
|
|
SEL4.Kernel.VSpace.ARM
|
|
SEL4.Kernel.Thread.ARM
|
|
SEL4.Kernel.Hypervisor.ARM
|
|
SEL4.Object.ObjectType.ARM
|
|
SEL4.Object.Structures.ARM
|
|
SEL4.Object.Interrupt.ARM
|
|
SEL4.Object.Instances.ARM
|
|
SEL4.Object.VCPU.ARM
|
|
SEL4.Object.TCB.ARM
|
|
SEL4.Model.StateData.ARM
|
|
SEL4.Model.PSpace.ARM
|
|
SEL4.Machine.RegisterSet.ARM
|
|
SEL4.Machine.Hardware.ARM
|
|
|
|
if flag(ArchX64)
|
|
other-modules:
|
|
|
|
SEL4.API.Types.X64
|
|
SEL4.API.InvocationLabels.X64
|
|
SEL4.API.Invocation.X64
|
|
SEL4.API.Failures.X64
|
|
SEL4.API.Faults.X64
|
|
SEL4.Kernel.VSpace.X64
|
|
SEL4.Kernel.Thread.X64
|
|
SEL4.Kernel.Hypervisor.X64
|
|
SEL4.Object.ObjectType.X64
|
|
SEL4.Object.Structures.X64
|
|
SEL4.Object.Interrupt.X64
|
|
SEL4.Object.Instances.X64
|
|
SEL4.Object.IOPort.X64
|
|
SEL4.Object.TCB.X64
|
|
SEL4.Model.StateData.X64
|
|
SEL4.Model.PSpace.X64
|
|
SEL4.Machine.RegisterSet.X64
|
|
SEL4.Machine.Hardware.X64
|
|
|
|
SEL4.Machine.Hardware.X64.PC99
|
|
|
|
if flag(ArchRiscV)
|
|
other-modules:
|
|
SEL4.API.Types.RISCV64
|
|
SEL4.API.InvocationLabels.RISCV64
|
|
SEL4.API.Invocation.RISCV64
|
|
SEL4.API.Failures.RISCV64
|
|
SEL4.API.Faults.RISCV64
|
|
SEL4.Kernel.VSpace.RISCV64
|
|
SEL4.Kernel.Thread.RISCV64
|
|
SEL4.Kernel.Hypervisor.RISCV64
|
|
SEL4.Object.ObjectType.RISCV64
|
|
SEL4.Object.Structures.RISCV64
|
|
SEL4.Object.Interrupt.RISCV64
|
|
SEL4.Object.Instances.RISCV64
|
|
SEL4.Object.TCB.RISCV64
|
|
SEL4.Model.StateData.RISCV64
|
|
SEL4.Model.PSpace.RISCV64
|
|
SEL4.Machine.RegisterSet.RISCV64
|
|
SEL4.Machine.Hardware.RISCV64
|
|
|
|
SEL4.Machine.Hardware.RISCV64.HiFive
|
|
|
|
if flag(ArchAArch64)
|
|
other-modules:
|
|
SEL4.API.Types.AARCH64
|
|
SEL4.API.InvocationLabels.AARCH64
|
|
SEL4.API.Invocation.AARCH64
|
|
SEL4.API.Failures.AARCH64
|
|
SEL4.API.Faults.AARCH64
|
|
SEL4.Kernel.VSpace.AARCH64
|
|
SEL4.Kernel.Thread.AARCH64
|
|
SEL4.Kernel.Hypervisor.AARCH64
|
|
SEL4.Object.ObjectType.AARCH64
|
|
SEL4.Object.Structures.AARCH64
|
|
SEL4.Object.Interrupt.AARCH64
|
|
SEL4.Object.Instances.AARCH64
|
|
SEL4.Object.VCPU.AARCH64
|
|
SEL4.Object.TCB.AARCH64
|
|
SEL4.Model.StateData.AARCH64
|
|
SEL4.Model.PSpace.AARCH64
|
|
SEL4.Machine.RegisterSet.AARCH64
|
|
SEL4.Machine.Hardware.AARCH64
|
|
|
|
SEL4.Machine.Hardware.AARCH64.TX2
|
|
|
|
hs-source-dirs: src
|
|
ghc-prof-options: -auto-all -fprof-auto
|
|
ghc-options: -Wall -Werror -O2 -fno-warn-unused-do-bind
|
|
-fno-warn-missing-signatures -fno-warn-orphans
|
|
-fno-spec-constr -fno-warn-name-shadowing
|
|
-fno-warn-unrecognised-pragmas
|
|
-fno-warn-unused-binds
|
|
-fno-warn-unused-imports -fno-warn-unused-matches
|
|
-fno-warn-incomplete-record-updates
|
|
-fno-warn-incomplete-uni-patterns
|
|
|
|
cpp-options:
|
|
-- set via Setup.hs hook
|
|
|
|
Default-Language: Haskell98
|
|
|