build: prepare copygrub nasm -felf32 src/bootload/boot.asm -o build/boot.o # entrypoint for grub #nasm -felf32 src/kernel/driverdriver.asm -o build/drivdriv.o # driver code for drivers 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 src/kernel/stdlib.c -o build/stdlib.o -ffreestanding -O2 -Wall -Wextra -m32 # stdlib gcc -c src/kernel/graphics.c -o build/graphics.o -ffreestanding -O2 -Wall -Wextra -m32 # VGA graphics 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 -z noexecstack -m32 -T linker.ld -o build/linked -ffreestanding -O2 -nostdlib build/graphics.o build/boot.o build/kernel.o build/registrar.o build/stdlib.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