#!/usr/bin/fish # 1. Setup - Let's get the folders right echo "๐Ÿงน Cleaning up..." rm -rf build/iso_root mkdir -p build/iso_root/boot # 2. Compile - The most important part echo "๐Ÿ”จ Compiling Kernel..." gcc -ffreestanding -fno-stack-protector -fno-pic -m64 -Isrc/include -c src/kernel/kernel.c -o build/kernel.o or begin echo "โŒ Kernel compilation failed! Check your code." exit 1 end echo "๐Ÿ”จ Compiling Launcher..." gcc -ffreestanding -fno-stack-protector -fno-pic -m64 -Isrc/include -c src/userspace/launcher/main.c -o build/launcher.o gcc -ffreestanding -fno-stack-protector -fno-pic -m64 -Isrc/include -c src/userspace/bridge/loadable.c -o build/bridge.o # 3. Link - Turning code into binaries echo "๐Ÿ”— Linking everything..." ld -nostdlib -static -m elf_x86_64 -z max-page-size=0x1000 -T src/kernel/linker.ld build/kernel.o -o build/kernel.elf ld -nostdlib -static -m elf_x86_64 build/launcher.o build/bridge.o -o build/launcher.fpf # 4. Deployment - Move files to the ISO root echo "๐Ÿ“‚ Moving binaries to ISO root..." cp build/kernel.elf build/iso_root/boot/ cp build/launcher.fpf build/iso_root/boot/ cp limine/limine.conf build/iso_root/boot/ cp limine/limine-bios.sys build/iso_root/boot/ cp limine/limine-bios-cd.bin build/iso_root/boot/ # 5. Build ISO echo "๐Ÿ’ฟ Creating ISO..." xorriso -as mkisofs -b boot/limine-bios-cd.bin \ -no-emul-boot -boot-load-size 4 -boot-info-table \ build/iso_root -o build/florid_os.iso if test -f build/florid_os.iso echo "โœ… SUCCESS! ISO created: build/florid_os.iso" echo "๐Ÿš€ Run: qemu-system-x86_64 -cdrom build/florid_os.iso" else echo "โŒ ISO failed. Make sure xorriso is installed." end