diff --git a/Makefile b/Makefile index bc74b047..2a18707f 100644 --- a/Makefile +++ b/Makefile @@ -1,15 +1,24 @@ DESTDIR = PREFIX = /usr/local -OS := $(shell uname) CC = cc OBJCOPY = objcopy CFLAGS = -O2 -pipe -Wall -Wextra -.PHONY: all toolchain stage2 stage2-clean decompressor decompressor-clean limine install clean echfs-test ext2-test fat32-test test.img +.PHONY: all clean install toolchain stage2 stage2-clean decompressor decompressor-clean limine limine-clean test.img echfs-test ext2-test fat32-test all: limine-install +limine-install: limine.bin limine-install.c + $(OBJCOPY) -I binary -O default limine.bin limine.o + $(CC) $(CFLAGS) limine.o limine-install.c -o limine-install + +clean: + rm -f limine.o limine-install + +install: all + install -s limine-install $(DESTDIR)$(PREFIX)/bin/ + toolchain: cd toolchain && ./make_toolchain.sh -j`nproc` @@ -29,28 +38,14 @@ limine: stage2 decompressor gzip -n -9 < stage2/stage2.bin > stage2/stage2.bin.gz cd bootsect && nasm bootsect.asm -fbin -o ../limine.bin -clean: stage2-clean decompressor-clean - rm -f limine-install - -limine-install: limine.bin limine-install.c - $(OBJCOPY) -I binary -O default limine.bin limine.o - $(CC) $(CFLAGS) limine.o limine-install.c -o limine-install - -install: all - install -s limine-install $(DESTDIR)$(PREFIX)/bin/ +limine-clean: stage2-clean decompressor-clean + rm -f stage2/stage2.bin.gz test.img: rm -f test.img dd if=/dev/zero bs=1M count=0 seek=64 of=test.img -ifeq ($(OS), Linux) parted -s test.img mklabel msdos parted -s test.img mkpart primary 2048s 100% -else ifeq ($(OS), FreeBSD) - sudo mdconfig -a -t vnode -f test.img -u md9 - sudo gpart create -s mbr md9 - sudo gpart add -a 4k -t '!14' md9 - sudo mdconfig -d -u md9 -endif echfs-test: limine-install test.img $(MAKE) -C test @@ -82,26 +77,16 @@ fat32-test: limine-install test.img $(MAKE) -C test rm -rf test_image/ mkdir test_image -ifeq ($(OS), Linux) sudo losetup -Pf --show test.img > loopback_dev sudo partprobe `cat loopback_dev` sudo mkfs.fat -F 32 `cat loopback_dev`p1 sudo mount `cat loopback_dev`p1 test_image -else ifeq ($(OS), FreeBSD) - sudo mdconfig -a -t vnode -f test.img -u md9 - sudo newfs_msdos -F 32 /dev/md9s1 - sudo mount -t msdosfs /dev/md9s1 test_image -endif sudo mkdir test_image/boot sudo cp test/test.elf test_image/boot/ sudo cp test/limine.cfg test_image/ sync sudo umount test_image/ -ifeq ($(OS), Linux) sudo losetup -d `cat loopback_dev` -else ifeq ($(OS), FreeBSD) - sudo mdconfig -d -u md9 -endif rm -rf test_image loopback_dev ./limine-install test.img qemu-system-x86_64 -hda test.img -debugcon stdio