BASE := kernel loader PSNS term PCI
BASE := $(addprefix base/,$(BASE))

base/kernel := kernel.elf
base/loader := loader.sus
base/PSNS := psns
base/term := term
base/PCI := pci



STORAGE := AHCI ramblock block ISO9660 StrifeFS VFS
STORAGE := $(addprefix storage/,$(STORAGE))

storage/AHCI := ahci
storage/ramblock := ramblock
storage/block := block
storage/ISO9660 := ISO9660
storage/StrifeFS := strifefs
storage/VFS := vfs



BOOTPROGRAMS := init
BOOTPROGRAMS := $(addprefix programs/,$(BOOTPROGRAMS))

programs/init := init



PROGRAMS := splash users registry switcher keyboard shell tests coreutils
PROGRAMS := $(addprefix programs/,$(PROGRAMS))

programs/splash := splash
programs/users := users
programs/registry := registry
programs/switcher := switcher
programs/keyboard := keyboard
programs/shell := shell
programs/tests := tests
programs/coreutils := {ls,mkdir,mkfile,append,cat,useradd,userinfo,usermod,su,mem,aclget,acltree,acladd}



# What goes where?
IMGBOOT := $(BASE) $(STORAGE) $(BOOTPROGRAMS)
IMGBIN := $(PROGRAMS)
