YACBA/Makefile
Lain Iwakura 5e333cffc1
upload
2025-06-22 20:03:39 +03:00

39 lines
813 B
Makefile

ASM = nasm
CC = clang
LD = ld
ASMFLAGS = -f bin
CFLAGS = -m32 -ffreestanding -nostdlib -nodefaultlibs -fno-builtin -fno-stack-protector -target i386-pc-none-elf
LDFLAGS = -arch i386 -static -e _main -T linker.ld
ifeq ($(shell uname),Darwin)
LDFLAGS = -arch i386 -static -e _main
else
LDFLAGS = -m elf_i386 -T linker.ld
endif
all: os.bin
bootloader.bin: bootloader.asm gdt.asm print32.asm switch_pm.asm
$(ASM) $(ASMFLAGS) bootloader.asm -o bootloader.bin
kernel.o: kernel.c
$(CC) $(CFLAGS) -c kernel.c -o kernel.o
kernel.bin: kernel.o
$(LD) $(LDFLAGS) kernel.o -o kernel.bin
os.bin: bootloader.bin kernel.bin
cat bootloader.bin kernel.bin > os.bin
truncate -s 1440K os.bin
clean:
rm -f *.bin *.o
test: os.bin
qemu-system-i386 -fda os.bin
usb: os.bin
./create_usb.sh
.PHONY: all clean test usb