diff options
| author | Ada Christine <adachristine18@gmail.com> | 2026-05-18 18:20:37 +0000 |
|---|---|---|
| committer | Ada Christine <adachristine18@gmail.com> | 2026-05-18 18:20:37 +0000 |
| commit | c8a25997dae70b7083725ebaa030ff363134a191 (patch) | |
| tree | abf7c2cc6a91ec9a1cd8a4a4d661e428b86c5dfd | |
| parent | 9fbfc6e951e565ef98c49c1dcfc4b6a39514f17d (diff) | |
build and debug system
| -rw-r--r-- | Makefile | 27 | ||||
| -rwxr-xr-x | debug.sh | 33 | ||||
| -rwxr-xr-x | qemu.sh | 47 |
3 files changed, 74 insertions, 33 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..f1305e1 --- /dev/null +++ b/Makefile @@ -0,0 +1,27 @@ +BOOT_DIR := loader +BOOT_FILE := $(BOOT_DIR)/loader.efi + +CORE_DIR := kc/core +CORE_FILE := $(CORE_DIR)/kernel.os + +TARGETS := $(BOOT_FILE) $(CORE_FILE) +DIRS := $(BOOT_DIR) $(CORE_DIR) + +DIRS_CLEAN := $(addprefix clean-,$(DIRS)) +DIRS_DISTCLEAN := $(addprefix dist,$(DIRS_CLEAN)) + +all: $(TARGETS) +clean: $(DIRS_CLEAN) +distclean: $(DIRS_DISTCLEAN) + +$(DIRS_CLEAN): clean-%: + $(MAKE) -C $* clean + +$(DIRS_DISTCLEAN): distclean-%: + $(MAKE) -C $* distclean + +$(TARGETS): + $(MAKE) -C $(dir $@) + +.PHONY: all clean distclean $(TARGETS) $(DIRS) $(DIRS_CLEAN) $(DIRS_DISTCLEAN) + diff --git a/debug.sh b/debug.sh deleted file mode 100755 index dd662a6..0000000 --- a/debug.sh +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/env bash - -make -C kc/core && -make -C kc/boot && -make -C loader && - -BOOT_DIR=EFI/BOOT -BOOT_FILE=BOOTX64.EFI -SYS_DIR=adasoft/sophia -OVMF_DIR=/usr/share/ovmf/x64 - -LOADER_FILE=loader/loader.efi - -SHIM_FILE=kc/boot/efi.os -KERNEL_FILE=kc/core/kernel.os - -tempdir=$(mktemp -d) && -rundir=${tempdir}/run && - -cp ${OVMF_DIR}/OVMF_VARS.fd ${tempdir} && - -mkdir -p ${rundir}/${BOOT_DIR} ${rundir}/${SYS_DIR} && -cp ${LOADER_FILE} ${rundir}/${BOOT_DIR}/${BOOT_FILE} && -cp ${SHIM_FILE} ${KERNEL_FILE} ${rundir}/${SYS_DIR} && - -qemu-system-x86_64 -d int \ - -drive if=pflash,format=raw,unit=0,file=/usr/share/ovmf/x64/OVMF_CODE.fd,readonly=on \ - -drive if=pflash,format=raw,unit=1,file=${tempdir}/OVMF_VARS.fd \ - -net none -drive file=fat:rw:${rundir} -monitor stdio \ - -serial file:sophia.log -no-shutdown -no-reboot -s -S - -rm -rf ${tempdir} - @@ -0,0 +1,47 @@ +#!/usr/bin/env bash + +BOOT_DIR=loader +BOOT_FILE=${BOOT_DIR}/loader.efi + +SHIM_DIR=kc/boot +SHIM_FILE=${SHIM_DIR}/efi.os + +CORE_DIR=kc/core +CORE_FILE=${CORE_DIR}/kernel.os + +FIRMWARE_DIR=/usr/share/ovmf/x64 +FIRMWARE_FILE=${FIRMWARE_DIR}/OVMF_CODE.4m.fd +FIRMWARE_VARS=${FIRMWARE_DIR}/OVMF_VARS.4m.fd + +INSTALL_PREFIX=adasoft/sophia + +make && + +tempdir=$(mktemp -d) && +rundir=${tempdir}/run + +varsfile=${tempdir}/$(basename ${FIRMWARE_VARS}) + +efidir=${rundir}/efi +efibootdir=${efidir}/boot +bootdir=${efidir}/adasoft/sophia +bootfile=${efibootdir}/BOOTX64.EFI +servdir=${rundir}/adasoft/sophia + +mkdir -p ${efidir} ${efibootdir} && +mkdir -p ${bootdir} ${servdir} && + +cp ${FIRMWARE_VARS} ${varsfile} && +cp ${BOOT_FILE} ${bootdir} && +cp ${BOOT_FILE} ${bootfile} && +cp ${SHIM_FILE} ${servdir} && +cp ${CORE_FILE} ${servdir} && + +qemu-system-x86_64 -d int \ + -drive if=pflash,format=raw,unit=0,file=${FIRMWARE_FILE},readonly=on \ + -drive if=pflash,format=raw,unit=1,file=${varsfile} \ + -net none -drive file=fat:rw:${rundir} -monitor stdio \ + -serial file:sophia.log -no-shutdown -no-reboot -s + +rm -rf ${tempdir} + |
