Makefile: add a minimal distro target

This commit is contained in:
Matheus
2022-10-13 13:33:54 -03:00
parent 55f15a903a
commit 040380ff25
+13 -5
View File
@@ -1,8 +1,7 @@
.phony: all kernel initrd rebuildkernel .phony: all kernel initrd rebuildkernel minimaliso minimalinitrd
all: jinx all: jinx
LDFLAGS="" CFLAGS="" ./jinx build-all LDFLAGS="" CFLAGS="" ./jinx build-all
./jinx sysroot make fullinitrd
make initrd
make sysdisk.iso make sysdisk.iso
rebuildkernel: rebuildkernel:
@@ -12,6 +11,9 @@ jinx:
curl https://raw.githubusercontent.com/mintsuki/jinx/trunk/jinx > jinx curl https://raw.githubusercontent.com/mintsuki/jinx/trunk/jinx > jinx
chmod +x jinx chmod +x jinx
minimaliso:
make minimalinitrd
make sysdisk.iso
XCC=x86_64-elf-gcc XCC=x86_64-elf-gcc
@@ -29,10 +31,16 @@ ISO=$(PWD)/boot/$(TARGET)/iso
SRCDIR=$(PWD)/src/ SRCDIR=$(PWD)/src/
OBJDIR=$(PWD)/bin/ OBJDIR=$(PWD)/bin/
initrd: fullinitrd:
./jinx sysroot
rm -f $(INITRD) rm -f $(INITRD)
cd sysroot; tar -cf $(INITRD) * cd sysroot; tar -cf $(INITRD) *
minimalinitrd:
./jinx install minsysroot bash mlibc coreutils distro-files init mlibc-headers
rm -f $(INITRD)
cd minsysroot; tar -cf $(INITRD) *
#TODO make it so we don't need to rebuild everything when a header is changed #TODO make it so we don't need to rebuild everything when a header is changed
export OBJDIR SRCDIR LDFLAGS CFLAGS INCLUDEDIR TARGET XCC export OBJDIR SRCDIR LDFLAGS CFLAGS INCLUDEDIR TARGET XCC
@@ -50,7 +58,7 @@ sysdisk.iso: $(ISO)
mkdir -p $(ISO) mkdir -p $(ISO)
cp liminebg.bmp limine.cfg limine/limine.sys limine/limine-cd.bin limine/limine-cd-efi.bin $(ISO) cp liminebg.bmp limine.cfg limine/limine.sys limine/limine-cd.bin limine/limine-cd-efi.bin $(ISO)
xorriso -as mkisofs -b limine-cd.bin -no-emul-boot -boot-load-size 4 -boot-info-table --efi-boot limine-cd-efi.bin -efi-boot-part --efi-boot-image --protective-msdos-label $(ISO) -o sysdisk.iso xorriso -as mkisofs -b limine-cd.bin -no-emul-boot -boot-load-size 4 -boot-info-table --efi-boot limine-cd-efi.bin -efi-boot-part --efi-boot-image --protective-msdos-label $(ISO) -o sysdisk.iso
run: run:
qemu-system-x86_64 -cdrom sysdisk.iso -m 8G -smp cpus=6 qemu-system-x86_64 -cdrom sysdisk.iso -m 8G -smp cpus=6