Initial commit
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
GCCPARAMS = -m32 -fno-pie -nostdlib -fstrength-reduce -fomit-frame-pointer -finline-functions -fno-builtin -nostdinc
|
||||
ASPARAMS = -f elf32
|
||||
LDPARAMS = -m elf_i386
|
||||
|
||||
#BUILD_NUMBER_FILE=build-number.txt
|
||||
|
||||
objects = obj/start.o \
|
||||
obj/main.o \
|
||||
obj/scrn.o \
|
||||
obj/gdt.o \
|
||||
obj/idt.o \
|
||||
obj/isrs.o \
|
||||
obj/irq.o \
|
||||
obj/timer.o \
|
||||
obj/kb.o
|
||||
|
||||
run: kernel.iso
|
||||
qemu-system-x86_64 -cdrom kernel.iso &
|
||||
|
||||
obj/%.o: src/%.c
|
||||
mkdir -p $(@D)
|
||||
gcc $(GCCPARAMS) -c -o $@ $<
|
||||
|
||||
obj/%.o: src/%.asm
|
||||
mkdir -p $(@D)
|
||||
nasm $(ASPARAMS) -o $@ $<
|
||||
|
||||
kernel.bin: linker.ld $(objects)
|
||||
mkdir obj/bin
|
||||
ld $(LDPARAMS) -T $< -o obj/bin/$@ $(objects)
|
||||
#https://www.linuxjournal.com/content/add-auto-incrementing-build-number-your-build-process
|
||||
#include buildnumber.mak
|
||||
|
||||
kernel.iso: kernel.bin
|
||||
mkdir iso
|
||||
mkdir iso/boot
|
||||
mkdir iso/boot/grub
|
||||
cp obj/bin/kernel.bin iso/boot/kernel.bin
|
||||
echo 'menuentry SDOS {' > iso/boot/grub/grub.cfg
|
||||
echo ' multiboot /boot/kernel.bin' >> iso/boot/grub/grub.cfg
|
||||
echo ' boot' >> iso/boot/grub/grub.cfg
|
||||
echo '}' >> iso/boot/grub/grub.cfg
|
||||
grub-mkrescue --output=kernel.iso iso
|
||||
rm -rf iso
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
rm -rf obj kernel.iso
|
||||
Reference in New Issue
Block a user