-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
30 lines (29 loc) · 1.3 KB
/
Makefile
File metadata and controls
30 lines (29 loc) · 1.3 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
.PHONY: clean run grub-floppy linux
linux: build build/spacebar.o
gcc -ggdb -lncurses -o spacebar linux/* spacebar.c
kernel.bin: build/loader.o build/term.o build/kbd.o build/io.o build/string.o build/spacebar.o build/sbos.o
ld -melf_i386 -T sbos/linker.ld -o kernel.bin build/loader.o build/term.o build/kbd.o build/io.o build/string.o build/sbos.o build/spacebar.o
build:
mkdir build
build/loader.o: build
nasm -f elf -o build/loader.o sbos/loader.s
build/sbos.o: build
gcc -m32 -o build/sbos.o -c sbos/sbos.c -Wall -Wextra -nostdlib -nostartfiles -nodefaultlibs
build/term.o: build
gcc -m32 -o build/term.o -c sbos/term.c -Wall -Wextra -nostdlib -nostartfiles -nodefaultlibs
build/io.o: build
gcc -m32 -o build/io.o -c sbos/io.c -Wall -Wextra -nostdlib -nostartfiles -nodefaultlibs
build/kbd.o: build
gcc -m32 -o build/kbd.o -c sbos/kbd.c -Wall -Wextra -nostdlib -nostartfiles -nodefaultlibs
build/string.o: build
gcc -m32 -o build/string.o -c sbos/string.c -Wall -Wextra -nostdlib -nostartfiles -nodefaultlibs
build/spacebar.o:
gcc -m32 -o build/spacebar.o -c spacebar.c -Wall -Wextra -nostdlib -nostartfiles -nodefaultlibs
clean:
-rm -rf build/
-rm -f kernel.bin
-rm -f spacebar
run: kernel.bin
qemu-system-i386 -kernel kernel.bin
grub-floppy: kernel.bin
cat grub/stage1 grub/stage2 grub/pad kernel.bin > sbos.img