first commit
This commit is contained in:
27
makefile
Normal file
27
makefile
Normal file
@@ -0,0 +1,27 @@
|
||||
build: prepare copygrub
|
||||
nasm -felf32 src/bootload/boot.asm -o build/boot.o # entrypoint for grub
|
||||
|
||||
gcc -c src/kernel/entry.c -o build/kernel.o -ffreestanding -O2 -Wall -Wextra -m32 # kernel
|
||||
gcc -c src/kernel/registrar.c -o build/registrar.o -ffreestanding -O2 -Wall -Wextra -m32 # registrar
|
||||
|
||||
gcc -c initrd/vga/main.c -o build/initrddir/vga_graph -ffreestanding -O2 -Wall -Wextra -m32 # initrd/vga driver
|
||||
|
||||
tar -czf build/initrd build/initrddir/* # build initrd
|
||||
|
||||
gcc -m32 -T linker.ld -o build/linked -ffreestanding -O2 -nostdlib build/boot.o build/kernel.o build/registrar.o -fno-pie -fno-pic -no-pie # link
|
||||
|
||||
cp build/linked build/grub/boot/kernel # copy kernel over to grub template
|
||||
cp build/initrd build/grub/boot/JPOS.initrd # copy initrd to grub template
|
||||
|
||||
grub-mkrescue /usr/lib/grub/i386-pc -o build/live.iso build/grub # create final image
|
||||
test: build
|
||||
qemu-system-i386 \
|
||||
-boot d \
|
||||
-cdrom build/live.iso
|
||||
copygrub:
|
||||
cp grubtemplate -r build/grub
|
||||
prepare: clean
|
||||
mkdir build
|
||||
mkdir build/initrddir
|
||||
clean:
|
||||
-rm -rf build
|
||||
Reference in New Issue
Block a user