floridos-mirror/FloridOS/build.fish
2026-05-14 16:21:33 +03:00

44 lines
No EOL
1.6 KiB
Fish

#!/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