21 lines
728 B
Bash
Executable File
21 lines
728 B
Bash
Executable File
#!/bin/sh
|
|
|
|
# needs to be configured in boot.s as well
|
|
LDADDR=0x100000
|
|
BNAME=32.com
|
|
|
|
[ "$1" = "init" ] && for i in tool/*.c; do cc $i -O3 -o $(echo "$i" | sed 's/\.c$//') | true; done &&
|
|
tool/genisr > include/isr.i
|
|
|
|
[ "$1" = "clean" ] && rm obj/* $BNAME
|
|
|
|
[ "$1" = "prog" ] && for i in src/*.s; do nasm -felf $i; done &&
|
|
for i in src/*.c; do i386-elf-gcc -c $i -ffreestanding -Iinclude -Os | true; done &&
|
|
mv *.o src/*.o obj &&
|
|
i386-elf-ld -o obj/kernel -Ttext $LDADDR obj/entry.o $(ls obj/*.o | grep -v entry.o) --oformat binary &&
|
|
cat obj/boot obj/kernel > $BNAME
|
|
|
|
[ -z "$1" ] && nasm boot/boot.s -o obj/boot | true && $0 prog | true
|
|
|
|
[ "$1" = "all" ] && ./b clean | true && ./b | true && dosbox-x $BNAME | true
|