You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

50 lines
1.4 KiB
Makefile

.PHONY: all rebuild clean spotless newimage
all: tos.sys
rebuild: clean all
run:
qemu-system-x86_64 -vga std -smp 8 -m 256 -drive id=disk,file=bmfs.image,format=raw,if=none -device ahci,id=ahci -device ide-drive,drive=disk,bus=ahci.0 -name "LLL"
tos.sys: vm.bin pure64.sys
dd if=/dev/zero of=kernel.bin bs=1M count=1
dd if=vm.bin of=kernel.bin bs=512 conv=notrunc
dd if=heap.bin of=kernel.bin seek=256 bs=512 conv=notrunc
./bmfs bmfs.image write kernel.bin
cat pure64.sys kernel64.sys > tos.sys
dd if=tos.sys of=bmfs.image bs=512 seek=16 conv=notrunc
vm.bin: vm.o vm-loader.o heap.bin
gcc -T vm.ld -o vm.bin -ffreestanding -O3 -nostdlib vm-loader.o vm.o -lgcc -mno-red-zone
vm.o: vm.c prescheme.h
gcc -O3 -o vm.o -c vm.c -nostdlib -nostartfiles -nodefaultlibs -mno-red-zone -std=gnu99 -ffreestanding
vm.c: ev.scm ps-macros.scm packages.scm terminal.scm
scheme48 -i ps-vm-compiler.image < compile-vm.scm
vm-loader.o: vm-loader.asm
nasm -f elf64 vm-loader.asm -o vm-loader.o
heap.bin: heap-writer.scm ev.scm ev-runtime.scm ev-environment.scm
csi -s heap-writer.scm
heap-debug.bin: heap-writer.scm ev.scm ev-runtime.scm ev-environment.scm
csi -D debug -s heap-writer.scm
newimage:
dd if=/dev/zero of=bmfs.image bs=1M count=8
./bmfs bmfs.image format /force
dd if=bmfs_mbr.sys of=bmfs.image bs=512 conv=notrunc
./bmfs bmfs.image create kernel.bin 1
make clean
clean:
rm -f *.o *.so *.bin tos.sys heap-writer vm.c
spotless:
rm -f bmfs.image
make clean