metal-cos/sys/SConscript

142 lines
3.1 KiB
Python
Raw Normal View History

2014-02-12 21:47:13 +00:00
import sys
Import('env')
kern_env = env.Clone()
src = [ ]
src_amd64 = [
# Multiboot requires multiboot.S to be the first file
"amd64/multiboot.S",
"amd64/mbentry.c",
# AMD64
2014-07-13 20:36:43 +00:00
"amd64/debug.c",
2014-07-13 23:52:18 +00:00
"amd64/disasm.c",
"amd64/ioapic.c",
"amd64/irq.c",
"amd64/lapic.c",
2014-02-12 21:47:13 +00:00
"amd64/machine.c",
2015-02-16 01:00:55 +00:00
"amd64/mp.c",
"amd64/mpboot.S",
"amd64/pci.c",
"amd64/pmap.c",
2014-10-12 20:17:18 +00:00
"amd64/support.S",
"amd64/switch.S",
"amd64/thread.c",
2014-07-25 03:25:17 +00:00
"amd64/time.c",
"amd64/trap.c",
"amd64/trapentry.S",
# Devices
"dev/x86/debugcons.c",
2014-08-20 02:05:57 +00:00
"dev/x86/ps2.c",
2014-11-22 22:35:18 +00:00
"dev/x86/rtc.c",
2014-07-13 20:04:14 +00:00
"dev/x86/sercons.c",
"dev/x86/vgacons.c",
2014-02-12 21:47:13 +00:00
]
src_arm64 = [
# Multiboot requires multiboot.S to be the first file
2023-11-09 16:54:56 +00:00
"arm64/locore.S",
"arm64/mbentry.c",
2023-11-09 16:54:56 +00:00
# ARM64
"arm64/debug.c",
"arm64/disasm.c",
2024-10-31 14:45:03 +00:00
"arm64/trap.c",
"arm64/machine.c",
"arm64/mp.c",
"arm64/pci.c",
"arm64/pmap.c",
"arm64/support.S",
"arm64/switch.S",
"arm64/thread.c",
2024-10-31 14:45:03 +00:00
"arm64/timer.c",
"arm64/trapentry.S",
2024-10-04 05:55:19 +00:00
"arm64/pdcache.c",
2024-10-31 14:45:03 +00:00
"arm64/gic.c",
# Devices
2023-11-30 21:28:53 +00:00
"dev/arm64/uart.c",
2024-09-25 20:07:50 +00:00
# Metal
"arm64/metal.c",
"arm64/paging.c",
"arm64/mrt/init.c",
"arm64/mrt/paging.c",
2024-11-19 19:00:13 +00:00
"arm64/mrt/priv.c"
]
2014-02-12 21:47:13 +00:00
src_common = [
2014-10-14 20:58:34 +00:00
"kern/copy.c",
2023-10-20 20:57:02 +00:00
"kern/critical.c",
2022-12-10 04:51:45 +00:00
"kern/bufcache.c",
"kern/cv.c",
2014-07-04 00:36:31 +00:00
"kern/debug.c",
"kern/disk.c",
2014-08-08 20:55:12 +00:00
"kern/handle.c",
2014-11-25 00:17:17 +00:00
"kern/ktime.c",
"kern/ktimer.c",
2014-02-12 21:47:13 +00:00
"kern/libc.c",
2014-07-28 00:09:31 +00:00
"kern/loader.c",
"kern/mutex.c",
2015-01-01 03:31:25 +00:00
"kern/nic.c",
2014-02-12 21:47:13 +00:00
"kern/palloc.c",
"kern/printf.c",
2023-08-21 22:39:26 +00:00
"kern/process.c",
"kern/sched.c",
2015-01-18 21:48:16 +00:00
"kern/semaphore.c",
"kern/sga.c",
2014-09-05 06:26:02 +00:00
"kern/slab.c",
2014-07-10 22:55:32 +00:00
"kern/spinlock.c",
2014-07-28 21:35:00 +00:00
"kern/syscall.c",
2014-11-25 20:07:14 +00:00
"kern/sysctl.c",
"kern/thread.c",
"kern/vfs.c",
"kern/vfsuio.c",
2023-08-30 16:49:23 +00:00
"kern/waitchannel.c",
2023-10-20 20:57:02 +00:00
"kern/xmem.c",
"dev/ahci.c",
"dev/console.c",
"dev/e1000.c",
"dev/pci.c",
"dev/ide.c",
"fs/o2fs/o2fs.c",
2014-02-12 21:47:13 +00:00
]
src_contrib = [
'contrib/libfdt/fdt.c',
'contrib/libfdt/fdt_addresses.c',
'contrib/libfdt/fdt_check.c',
'contrib/libfdt/fdt_empty_tree.c',
'contrib/libfdt/fdt_overlay.c',
'contrib/libfdt/fdt_ro.c',
'contrib/libfdt/fdt_rw.c',
'contrib/libfdt/fdt_strerror.c',
'contrib/libfdt/fdt_sw.c',
'contrib/libfdt/fdt_wip.c',
]
2014-02-12 21:47:13 +00:00
if (env["ARCH"] == "amd64"):
src.append(src_amd64)
2014-07-18 20:37:46 +00:00
ldscript = "#sys/amd64/kernel.lds"
elif (env["ARCH"] == "arm64"):
src.append(src_arm64)
ldscript = "#sys/arm64/kernel.lds"
src.append(src_common)
src.append(src_contrib)
2014-02-12 21:47:13 +00:00
kern_env.Append(LINKFLAGS = ['-T', ldscript[1:], '-nostdlib'])
2014-10-14 19:39:26 +00:00
kern_env.Append(CPPFLAGS = ['-D_KERNEL'])
2014-02-12 21:47:13 +00:00
kern_env.Append(CPPFLAGS = ['-ffreestanding', '-fno-builtin', '-nostdinc',
2024-10-04 05:55:19 +00:00
'-mno-red-zone', '-std=c2x', "-Wno-c2x-extensions"])
if env["ARCH"] == "amd64":
kern_env.Append(CPPFLAGS = ['-mno-mmx', '-mno-sse', '-mcmodel=large'])
# '-target', 'amd64-orion-eabi'
elif env["ARCH"] == "arm64":
2024-10-04 05:55:19 +00:00
kern_env.Append(CPPFLAGS = ['-mcmodel=large'])
2014-07-22 06:43:01 +00:00
kern_env.Append(CPPPATH = ['#build/include'])
2014-02-12 21:47:13 +00:00
2014-07-18 20:37:46 +00:00
kernel = kern_env.Program("castor", src)
Depends(kernel, ldscript)
2014-02-12 21:47:13 +00:00