Files
my-os-project2/Makefile

49 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=10
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
@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