50 lines
1.2 KiB
Makefile
50 lines
1.2 KiB
Makefile
.PHONY: all clean prepare cleanall iso base
|
|
|
|
all:
|
|
make -C kernel all
|
|
|
|
prepare:
|
|
if [ ! -d limine ]; then \
|
|
mkdir limine; \
|
|
cd limine; \
|
|
git init; \
|
|
git remote add origin https://github.com/limine-bootloader/limine.git; \
|
|
git fetch origin 9246bb78f446962aae5b0a291db4be32f9866ba6; \
|
|
git reset --hard FETCH_HEAD; \
|
|
make; \
|
|
fi
|
|
|
|
cleanall:
|
|
make clean
|
|
rm -rf limine
|
|
rm -rf littlefs-fuse
|
|
|
|
clean:
|
|
make -C kernel clean
|
|
rm -f mop2.iso base.img
|
|
|
|
base:
|
|
@rm -f base.img
|
|
@rm -rf base_root
|
|
@mkdir -p base_root
|
|
mklittlefs -c base_root -b 4096 -s $$((1<<20)) base.img
|
|
|
|
iso:
|
|
@rm -rf iso_root
|
|
@mkdir -p iso_root/boot
|
|
@cp -v kernel/mop2 iso_root/boot
|
|
@cp -v base.img iso_root
|
|
@mkdir -p iso_root/boot/limine
|
|
@cp -v limine.conf limine/limine-bios.sys limine/limine-bios-cd.bin \
|
|
limine/limine-uefi-cd.bin iso_root/boot/limine
|
|
@mkdir -p iso_root/EFI/BOOT
|
|
@cp -v limine/BOOTX64.EFI iso_root/EFI/BOOT
|
|
@cp -v limine/BOOTIA32.EFI iso_root/EFI/BOOT
|
|
@xorriso -as mkisofs -R -r -J -b boot/limine/limine-bios-cd.bin \
|
|
-no-emul-boot -boot-load-size 4 -boot-info-table -hfsplus \
|
|
-apm-block-size 2048 --efi-boot boot/limine/limine-uefi-cd.bin \
|
|
-efi-boot-part --efi-boot-image --protective-msdos-label \
|
|
iso_root -o mop2.iso
|
|
@./limine/limine bios-install mop2.iso
|
|
|