40 lines
756 B
Makefile
40 lines
756 B
Makefile
OBJECTS = loader.o framebuffer.o io.o kmain.o
|
|
|
|
CC = gcc
|
|
CFLAGS = -m32 -nostdlib -nostdinc -fno-builtin -fno-stack-protector \
|
|
-nostartfiles -nodefaultlibs -c #-Wall -Wextra -Werror -c
|
|
|
|
LDFLAGS = -T link.ld -melf_i386
|
|
|
|
AS = nasm
|
|
ASFLAGS = -f elf
|
|
|
|
all: kernel.elf
|
|
|
|
kernel.elf: $(OBJECTS)
|
|
ld $(LDFLAGS) $^ -o $@
|
|
|
|
%.o: %.c
|
|
$(CC) $(CFLAGS) $< -o $@
|
|
|
|
%.o: %.s
|
|
$(AS) $(ASFLAGS) $< -o $@
|
|
|
|
os.iso: kernel.elf
|
|
cp kernel.elf iso/boot/kernel.elf
|
|
mkisofs -R \
|
|
-b boot/grub/stage2_eltorito \
|
|
-no-emul-boot \
|
|
-boot-load-size 4 \
|
|
-A os \
|
|
-input-charset UTF-8 \
|
|
-quiet \
|
|
-boot-info-table \
|
|
-o os.iso \
|
|
iso
|
|
|
|
run: os.iso
|
|
qemu-system-i386 -cdrom $< -serial stdio #-d cpu
|
|
|
|
clean:
|
|
rm *.o kernel.elf os.iso
|