os/Makefile
2024-07-11 08:57:44 +02:00

51 lines
880 B
Makefile

ARCHDIR=../arch/i686
CFLAGS=-O2 \
-std=gnu99 \
-ffreestanding \
-Wall -Wextra \
-I $(INCLUDEDIR)
KERNEL_OBJS=kernel.o
LIB_OBJS=bootstrap.o \
tty.o\
strlib.o\
interrupt.o
OBJS=$(KERNEL_OBJS) $(LIB_OBJS)
LDFLAGS=$(OBJS) \
-ffreestanding \
-O2 \
-nostdlib \
-lgcc
INCLUDEDIR=../include
all:
mkdir build || true
cp Makefile build
$(MAKE) -C build test-kernel-qemu
architecture:
i686-elf-as $(ARCHDIR)/bootstrap.s -o bootstrap.o
i686-elf-gcc -c $(ARCHDIR)/tty.c -o tty.o $(CFLAGS)
i686-elf-gcc -c $(ARCHDIR)/interrupt.c -o interrupt.o $(CFLAGS)
i686-elf-gcc -c $(ARCHDIR)/strlib.c -o strlib.o $(CFLAGS)
kernel:
i686-elf-gcc -c ../kernel/kernel.c -o kernel.o $(CFLAGS)
myos-bin: architecture kernel
i686-elf-gcc -T $(ARCHDIR)/linker.ld -o myos.bin $(LDFLAGS)
grub-file --is-x86-multiboot myos.bin
test-kernel-qemu: myos-bin
qemu-system-i386 -kernel myos.bin