From 35b72965850d91005fd8b326ec5ae58f01bdafd9 Mon Sep 17 00:00:00 2001 From: Matheus Date: Thu, 14 May 2026 22:32:31 -0300 Subject: [PATCH] Makefile: add download target --- Makefile | 29 +++++++++++++++++++++++++---- README.md | 14 ++++++++------ kernel-src/Makefile | 2 +- 3 files changed, 34 insertions(+), 11 deletions(-) diff --git a/Makefile b/Makefile index 98c01ac4..30fc2820 100644 --- a/Makefile +++ b/Makefile @@ -8,11 +8,16 @@ DISKNAME=$(JINX_DIR)/hdd.img LIMINEDIR=$(JINX_DIR)/host-pkgs/limine/usr/local/share/limine/ KERNEL=$(JINX_DIR)/builds/astral/astral QEMUFLAGS=\ - -M q35 \ - -m 2g \ - -smp cpus=4 \ + -M q35,i8042=off \ + -m 8g \ + -smp cpus=1 \ -debugcon file:/dev/stdout \ -netdev user,id=net0 -device virtio-net,netdev=net0 \ + -device qemu-xhci,id=input-xhci \ + -device usb-hub,bus=input-xhci.0,port=1 \ + -device usb-kbd,bus=input-xhci.0,port=1.1 \ + -device usb-hub,bus=input-xhci.0,port=2 \ + -device usb-tablet,bus=input-xhci.0,port=2.1 \ -object filter-dump,id=f1,netdev=net0,file=netdump.dat QEMUISOFLAGS=-cdrom $(ISO) QEMUDISKFLAGS=-drive file=$(DISKNAME),if=none,id=disk \ @@ -25,7 +30,7 @@ INITRDTYPE=minimal MINIMALPACKAGES=mlibc bash coreutils openrc distro-files vim nano mount shadow sudo xbps net-base fastfetch limine dosfstools e2fsprogs parted netinfo systrace findutils sed -.PHONY: all kernel clean clean-kernel iso img initrd full minimal disk distro-minimal distro-full +.PHONY: all kernel clean clean-kernel iso img initrd full minimal disk distro-minimal distro-full download all: $(JINX_DIR)/.astral_ok git submodule update --init --recursive @@ -101,6 +106,16 @@ initrd: rm $(INITRD)-$(INITRDTYPE) && \ make $(INITRD)-$(INITRDTYPE) +# ------ download targets ------ + +download-full: + cd $(JINX_DIR) && \ + ../jinx/jinx download '*' + +download-minimal: + cd $(JINX_DIR) && \ + ../jinx/jinx download $(MINIMALPACKAGES) + # ------ disk targets ------ disk: disk-$(DISTROTYPE) @@ -115,6 +130,12 @@ disk-minimal: distro-minimal ../jinx/jinx install minimalsysroot $(MINIMALPACKAGES) && \ ../gendisk.sh 1900m minimalsysroot $(DISKNAME) +# ------ download targets ------ + +download: $(JINX_DIR)/.astral_ok + cd $(JINX_DIR) && \ + ../jinx/jinx download '*' + # ------ clean targets ------ clean-kernel: diff --git a/README.md b/README.md index 0fc40d2b..d6f904b4 100644 --- a/README.md +++ b/README.md @@ -24,15 +24,17 @@ Astral is a 64 bit operating system with its own kernel written in C for the x86 - Installation program - Fully self hosting +## Running +If you built it from source, run ``make run-kvm`` or ``make run-disk-kvm`` + +There are prebuilt images and instructions at https://astral-os.org/about.html. + ## Building -The build process only needs xorriso, curl, zstd, fakeroot and bsdtar on the host. If you wish to use the ``make img`` option, you will need mtools. All other needed packages will be installed/built on the container. +The build process dependencies are specified [here](https://github.com/Mintsuki/Jinx/blob/1c40ceb62e09befc5172d1caf53e3e440a19f624/README.md). If you wish to use the ``make img`` option, you will need mtools. All other needed packages will be installed/built on a container. + +It is highly recommended you download pre-built packages from the official repository by running ``make download``. This greatly reduces the compilation time as it will only need to build the host tools. To build the project, run ``make``. This will create a file named ``astral.iso`` After this, if you wish to create an ext2 disk image, run ``make disk`` - -## Running -If you built it from source, run ``make run-kvm`` or ``make run-disk-kvm`` - -There are prebuilt images and instructions at https://astral-os.org/about.html. diff --git a/kernel-src/Makefile b/kernel-src/Makefile index da8b9cf0..45d8a771 100644 --- a/kernel-src/Makefile +++ b/kernel-src/Makefile @@ -12,7 +12,7 @@ PRINTFOPTS=-DPRINTF_DISABLE_SUPPORT_FLOAT FLANTERMINCDIR=$(shell pwd)/flanterm/src UACPIINCDIR=$(shell pwd)/io/acpi/uacpi/include UACPIOPTS=-DUACPI_OVERRIDE_LIBC -DUACPI_KERNEL_INITIALIZATION -DUACPI_NATIVE_ALLOC_ZEROED -KERNELCONFIG=#-DX86_64_ENABLE_E9 -DENABLE_PROFILING #-DSYSCALL_LOGGING +KERNELCONFIG=-DX86_64_ENABLE_E9 #-DENABLE_PROFILING#-DSYSCALL_LOGGING CFLAGS=-g -ffreestanding -mcmodel=kernel -O2 -mno-red-zone -mgeneral-regs-only -mno-mmx -mno-sse -mno-sse2 -nostdlib -Wall -MMD -I "$(INCDIR)" -I "$(ARCHINCDIR)" -I "$(FLANTERMINCDIR)" -I "$(UACPIINCDIR)" $(UACPIOPTS) $(PRINTFOPTS) $(KERNELCONFIG) $(FLANTERMOPTS) -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -std=gnu17 -Wno-error=implicit-function-declaration ASFLAGS=-felf64 DEPS=$(CSOURCES:.c=.d)