33 lines
1.0 KiB
Makefile
33 lines
1.0 KiB
Makefile
build: build/os.bin
|
|
@echo "Build succeded"
|
|
|
|
run: build/os.bin
|
|
qemu-system-x86_64 -drive file=build/os.bin,format=raw,index=0,media=disk
|
|
|
|
build/os.bin: build/boot.bin build/kernel.bin build/zeroes.bin
|
|
cat build/boot.bin build/kernel.bin build/zeroes.bin > build/os.bin
|
|
|
|
build/kernel.bin: build/kernel_entry.o build/kernel.o build/mem.o build/print.o
|
|
i386-elf-ld -o build/kernel.bin -Ttext 0x1000 build/kernel_entry.o build/kernel.o build/mem.o build/print.o --oformat binary
|
|
|
|
build/kernel.o: src/kernel.c
|
|
i386-elf-gcc -ffreestanding -m32 -c -o build/kernel.o src/kernel.c
|
|
|
|
build/mem.o: src/mem.c
|
|
i386-elf-gcc -ffreestanding -m32 -c -o build/mem.o src/mem.c
|
|
|
|
build/print.o: src/print.c
|
|
i386-elf-gcc -ffreestanding -m32 -c -o build/print.o src/print.c
|
|
|
|
build/kernel_entry.o: src/kernel_entry.asm
|
|
nasm -f elf -o build/kernel_entry.o src/kernel_entry.asm
|
|
|
|
build/boot.bin: src/boot.asm
|
|
nasm -f bin -o build/boot.bin src/boot.asm
|
|
|
|
build/zeroes.bin:
|
|
dd if=/dev/zero of=build/zeroes.bin bs=1 count=10240
|
|
|
|
clean:
|
|
@rm build/* 2>/dev/null || true
|