From 807f06710110cc0e6ec126d5dba3f23ede6d2263 Mon Sep 17 00:00:00 2001 From: kamkow1 Date: Sun, 7 Dec 2025 18:51:43 +0100 Subject: [PATCH] Add help target to list available targets --- Makefile | 20 +++++++++++++------- build/make.help | 7 +++++++ kernel/Makefile | 4 ++-- platform/make.i386_pc | 37 +++++++++++++++++++++++++++---------- 4 files changed, 49 insertions(+), 19 deletions(-) create mode 100644 build/make.help diff --git a/Makefile b/Makefile index e1ef0ab..fb8c101 100644 --- a/Makefile +++ b/Makefile @@ -1,13 +1,19 @@ include build/make.config +include build/make.help srctree := $(PWD) -all: - $(make) -C $(srctree)/kernel srctree=$(srctree) all - -clean: - $(make) -C $(srctree)/kernel srctree=$(srctree) clean - include platform/make.$(platform) -.PHONY: all clean +kernel: + $(make) -C $(srctree)/kernel srctree=$(srctree) all + +clean: platform_clean + $(make) -C $(srctree)/kernel srctree=$(srctree) clean + +.hidden: + +help: + $(call print_help) + +.PHONY: all clean help diff --git a/build/make.help b/build/make.help new file mode 100644 index 0000000..22f7311 --- /dev/null +++ b/build/make.help @@ -0,0 +1,7 @@ +define print_help +@make -pqR : 2>/dev/null \ + | awk -v RS= -F: '/^# File/,/^# Finished Make data base/ {if ($$1 !~ "^[#.]") {print $$1}}' \ + | sort \ + | grep -E -v -e '^[^[:alnum:]]' -e '^$@$$' \ + | xargs -I _ echo _ +endef diff --git a/kernel/Makefile b/kernel/Makefile index e4a211d..406bf7d 100644 --- a/kernel/Makefile +++ b/kernel/Makefile @@ -17,6 +17,6 @@ $(srctree)/out/kernel.elf: $(o_files) $(cc) $(kernel_cflags) -c -o $@ $< clean: - -rm $(srctree)/out/kernel.elf $(o_files) + -rm -f $(srctree)/out/kernel.elf $(o_files) -.PHONY: all clean +.PHONY: all diff --git a/platform/make.i386_pc b/platform/make.i386_pc index b74e5f6..97fdd38 100644 --- a/platform/make.i386_pc +++ b/platform/make.i386_pc @@ -1,27 +1,44 @@ $(srctree)/out/i386_pc/mop3.iso: $(srctree)/out/kernel.elf - rm -rf $(srctree)/out/i386_pc/tmp - mkdir -p $(srctree)/out/i386_pc/tmp mkdir -p $(srctree)/out/i386_pc/tmp/iso/boot/grub cp $(srctree)/out/kernel.elf $(srctree)/out/i386_pc/tmp/iso/boot cp $(srctree)/platform/i386_pc/grub.cfg $(srctree)/out/i386_pc/tmp/iso/boot/grub grub-mkrescue -o $(srctree)/out/i386_pc/mop3.iso $(srctree)/out/i386_pc/tmp/iso -QEMU_EXTRA ?= +boot ?= iso -QEMU_OPTS := -M pc \ - -cdrom $(srctree)/out/i386_pc/mop3.iso \ - -serial mon:stdio \ - $(QEMU_EXTRA) +qemu_extra ?= + +qemu_opts := -M pc \ + -serial mon:stdio \ + $(QEMU_EXTRA) + +ifeq ($(boot),iso) +qemu_opts += -cdrom $(srctree)/out/i386_pc/mop3.iso +endif ifeq ($(debug),1) -QEMU_OPTS += -gdb tcp::5557 -S +qemu_opts += -gdb tcp::5557 -S endif i386_pc_qemu: $(srctree)/out/i386_pc/mop3.iso - qemu-system-i386 $(QEMU_OPTS) + qemu-system-i386 $(qemu_opts) i386_pc_bochs: $(srctree)/out/i386_pc/mop3.iso rm -f $(srctree)/bochs.log -bochs -f $(srctree)/platform/i386_pc/bochsrc.txt -q -.PHONY: i386_pc_qemu i386_pc_bochs +i386_pc_cleandirs: + rm -rf $(srctree)/out/i386_pc/tmp + +i386_pc_prepdirs: + mkdir -p $(srctree)/out/i386_pc/tmp + +i386_pc_images: i386_pc_cleandirs i386_pc_prepdirs \ + $(srctree)/out/i386_pc/mop3.iso \ + $(srctree)/out/i386_pc/mop3.img + +platform_clean: i386_pc_cleandirs + -rm -f $(srctree)/out/i386_pc/mop3.iso \ + $(srctree)/out/i386_pc/mop3.img + +.PHONY: i386_pc_qemu i386_pc_bochs i386_pc_images platform_clean