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 "amd64/trap.c", "amd64/trapentry.S", "amd64/machine.c", "amd64/pci.c", "amd64/pmap.c", "amd64/lapic.c", "amd64/ioapic.c", "amd64/irq.c", "dev/x86/debugcons.c", "dev/x86/vgacons.c", "dev/x86/ide.c", ] src_common = [ "kern/debug.c", "kern/libc.c", "kern/palloc.c", "kern/printf.c", "kern/spinlock.c", "dev/ahci.c", "dev/console.c", "dev/pci.c", ] if (env["ARCH"] == "amd64"): src.append(src_amd64) src.append(src_common) kern_env.Append(LINKFLAGS = ['-N', '-nostdlib']) kern_env.Append(CPPFLAGS = ['-ffreestanding', '-fno-builtin', '-nostdinc', '-mno-red-zone', '-mcmodel=kernel']) # '-target', 'amd64-orion-eabi' kern_env.Append(CPPPATH = ['#include', '#sys/include']) kern_env.Program("castor", src)