From c2e15306b380f0be2c01baf8124409f304800898 Mon Sep 17 00:00:00 2001 From: Matheus Date: Sun, 30 Apr 2023 22:57:35 -0300 Subject: [PATCH] Makefile: initrd creation --- .gitignore | 2 ++ Makefile | 17 +++++++++++++++-- limine.cfg | 4 ++-- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 63cdc0e8..5ca74bd8 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,5 @@ kernel-src/include/limine.h kernel-src/include/printf.h kernel-src/io/printf.c kernel-src/flanterm +sysroot +minimalsysroot diff --git a/Makefile b/Makefile index bf120050..28c117d4 100644 --- a/Makefile +++ b/Makefile @@ -3,8 +3,10 @@ ISO=astral.iso LIMINEDIR=$(shell pwd)/host-pkgs/limine/usr/local/share/limine/ KERNEL=$(shell pwd)/pkgs/astral/boot/astral QEMUFLAGS=-cdrom $(ISO) -m 2G -smp cpus=2 -no-shutdown -no-reboot -monitor stdio -debugcon file:/dev/stdout -serial file:/dev/stdout # hacky but works :') +INITRD=$(shell pwd)/iso/initrd +DISTROTYPE=full -.PHONY: all kernel clean clean-kernel iso +.PHONY: all kernel clean clean-kernel iso initrd full minimal all: jinx make kernel @@ -15,11 +17,22 @@ jinx: curl https://raw.githubusercontent.com/mintsuki/jinx/trunk/jinx > jinx chmod +x jinx -$(ISO): limine.cfg liminebg.bmp $(KERNEL) +$(ISO): limine.cfg liminebg.bmp $(KERNEL) initrd mkdir -p $(ISODIR) cp $(KERNEL) liminebg.bmp limine.cfg $(LIMINEDIR)/limine.sys $(LIMINEDIR)/limine-cd.bin $(LIMINEDIR)/limine-cd-efi.bin $(ISODIR) 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 $(ISODIR) -o $(ISO) +initrd: + make $(DISTROTYPE) + +full: + ./jinx sysroot + cd sysroot; tar -cf $(INITRD) * + +minimal: + ./jinx install minimalsysroot mlibc + cd minimalsysroot; tar -cf $(INITRD) * + kernel: rm -f builds/astral.configured rm -f builds/astral.installed diff --git a/limine.cfg b/limine.cfg index 2cc7faab..d1ce2b07 100644 --- a/limine.cfg +++ b/limine.cfg @@ -6,6 +6,6 @@ TIMEOUT=5 :Astral PROTOCOL=limine KERNEL_PATH=boot:///astral -#MODULE_PATH=boot:///initrd -#KERNEL_CMDLINE= +MODULE_PATH=boot:///initrd +KERNEL_CMDLINE= COMMENT="The Astral operating system"