48 lines
1.2 KiB
Makefile
48 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
|
|
|
|
clean:
|
|
make -C kernel clean
|
|
rm -f mop2.iso base.img
|
|
|
|
base:
|
|
dd if=/dev/zero of=base.img bs=1M count=32
|
|
mformat -F -i base.img ::
|
|
mcopy -i base.img Makefile ::
|
|
mdir -i base.img ::
|
|
|
|
iso:
|
|
rm -rf iso_root
|
|
mkdir -p iso_root/boot
|
|
cp -v kernel/mop2 iso_root/boot
|
|
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
|
|
|