:: commit db20cc758005278016d4fec8e839485318793d12

mintsuki <mintsuki@protonmail.com> — 2021-03-08 02:05

parents: a8626d6fdd

misc: Disentangle Makefiles so it builds fine with -j

diff --git a/Makefile b/Makefile
index d62e114e..f82e68cb 100644
--- a/Makefile
+++ b/Makefile
@@ -89,7 +89,7 @@ test.hdd:
 	parted -s test.hdd mklabel gpt
 	parted -s test.hdd mkpart primary 2048s 100%
 
-echfs-test: | test-clean test.hdd bootloader all
+echfs-test: | test-clean test.hdd limine-bios
 	$(MAKE) -C test
 	echfs-utils -g -p0 test.hdd quick-format 512 > part_guid
 	sed "s/@GUID@/`cat part_guid`/g" < test/limine.cfg > limine.cfg.tmp
@@ -101,7 +101,7 @@ echfs-test: | test-clean test.hdd bootloader all
 	bin/limine-install test.hdd
 	qemu-system-x86_64 -net none -smp 4 -enable-kvm -cpu host -hda test.hdd -debugcon stdio
 
-ext2-test: | test-clean test.hdd bootloader all
+ext2-test: | test-clean test.hdd limine-bios
 	$(MAKE) -C test
 	rm -rf test_image/
 	mkdir test_image
@@ -118,7 +118,7 @@ ext2-test: | test-clean test.hdd bootloader all
 	bin/limine-install test.hdd
 	qemu-system-x86_64 -net none -smp 4 -enable-kvm -cpu host -hda test.hdd -debugcon stdio
 
-fat32-test: | test-clean test.hdd bootloader all
+fat32-test: | test-clean test.hdd limine-bios
 	$(MAKE) -C test
 	rm -rf test_image/
 	mkdir test_image
@@ -135,7 +135,7 @@ fat32-test: | test-clean test.hdd bootloader all
 	bin/limine-install test.hdd
 	qemu-system-x86_64 -net none -smp 4 -enable-kvm -cpu host -hda test.hdd -debugcon stdio
 
-iso9660-test: | test-clean test.hdd bootloader
+iso9660-test: | test-clean test.hdd limine-bios
 	$(MAKE) -C test
 	rm -rf test_image/
 	mkdir -p test_image/boot
@@ -143,7 +143,7 @@ iso9660-test: | test-clean test.hdd bootloader
 	genisoimage -no-emul-boot -b boot/limine-cd.bin -boot-load-size 4 -boot-info-table -o test.iso test_image/
 	qemu-system-x86_64 -net none -smp 4 -enable-kvm -cpu host -cdrom test.iso -debugcon stdio
 
-uefi-test: ovmf | test-clean test.hdd bootloader
+uefi-test: ovmf | test-clean test.hdd limine-uefi
 	$(MAKE) -C test
 	rm -rf test_image/
 	mkdir test_image
diff --git a/decompressor/Makefile b/decompressor/Makefile
index aa9b0e80..4a2dcf78 100644
--- a/decompressor/Makefile
+++ b/decompressor/Makefile
@@ -1,7 +1,11 @@
 CC = i386-elf-gcc
 LD = i386-elf-gcc
 OBJCOPY = i386-elf-objcopy
-BUILDDIR = .
+BUILDDIR =
+
+ifeq ($(BUILDDIR), )
+	$(error BUILDDIR not specified)
+endif
 
 CFLAGS = -flto -Os -pipe -Wall -Wextra -Werror
 
@@ -28,14 +32,16 @@ INTERNAL_LDFLAGS = \
 	-static \
 	-Tlinker.ld
 
-.PHONY: all clean
+.PHONY: all clean builddir
 
 C_FILES := $(shell find -L ./ -type f -name '*.c' | sort)
 ASM_FILES := $(shell find -L ./ -type f -name '*.asm' | sort)
 OBJ := $(addprefix $(BUILDDIR)/, $(ASM_FILES:.asm=.o) $(C_FILES:.c=.o))
 HEADER_DEPS := $(addprefix $(BUILDDIR)/, $(C_FILES:.c=.d))
 
-all: | builddir $(BUILDDIR)/decompressor.bin
+all:
+	$(MAKE) builddir
+	$(MAKE) $(BUILDDIR)/decompressor.bin
 
 builddir:
 	for i in $(OBJ); do mkdir -p `dirname $$i`; done
@@ -46,10 +52,10 @@ $(BUILDDIR)/decompressor.bin: $(OBJ)
 
 -include $(HEADER_DEPS)
 
-$(addprefix $(BUILDDIR)/, %.o): %.c
+$(BUILDDIR)/%.o: %.c
 	$(CC) $(CFLAGS) $(INTERNAL_CFLAGS) -c $< -o $@
 
-$(addprefix $(BUILDDIR)/, %.o): %.asm
+$(BUILDDIR)/%.o: %.asm
 	nasm $< -f elf32 -o $@
 
 clean:
diff --git a/stage23/Makefile b/stage23/Makefile
index a9a84b46..bb4c4a65 100644
--- a/stage23/Makefile
+++ b/stage23/Makefile
@@ -1,5 +1,9 @@
-TARGET = bios
-BUILDDIR = .
+TARGET =
+BUILDDIR =
+
+ifeq ($(BUILDDIR), )
+	$(error BUILDDIR not specified)
+endif
 
 ifeq ($(TARGET), bios)
 	TOOLCHAIN=i386-elf
@@ -86,11 +90,13 @@ OBJ := $(addprefix $(BUILDDIR)/, $(ASM_FILES:.asm=.o) $(C_FILES:.c=.o))
 HEADER_DEPS := $(addprefix $(BUILDDIR)/, $(C_FILES:.c=.d))
 
 ifeq ($(TARGET), bios)
-all: | builddir everything
-.PHONY: everything
-everything: $(BUILDDIR)/limine_dbg.elf $(BUILDDIR)/limine.sys $(BUILDDIR)/stage2.bin $(BUILDDIR)/stage2.bin.gz
+all:
+	$(MAKE) builddir
+	$(MAKE) $(BUILDDIR)/limine_dbg.elf $(BUILDDIR)/limine.sys $(BUILDDIR)/stage2.bin $(BUILDDIR)/stage2.bin.gz
 else ifeq ($(TARGET), uefi)
-all: | builddir $(BUILDDIR)/BOOTX64.EFI
+all:
+	$(MAKE) builddir
+	$(MAKE) $(BUILDDIR)/BOOTX64.EFI
 endif
 
 builddir:
@@ -154,27 +160,27 @@ endif
 
 -include $(HEADER_DEPS)
 
-$(addprefix $(BUILDDIR)/, %.o): %.c
+$(BUILDDIR)/%.o: %.c
 	$(CC) $(CFLAGS) $(INTERNAL_CFLAGS) -c $< -o $@
 
 ifeq ($(TARGET), bios)
-$(addprefix $(BUILDDIR)/, %.s2.o): %.s2.c
+$(BUILDDIR)/%.s2.o: %.s2.c
 	$(CC) $(S2CFLAGS) $(INTERNAL_CFLAGS) -c $< -o $@
 endif
 
 ifeq ($(TARGET), uefi)
-$(addprefix $(BUILDDIR)/, %.32.o): %.32.c
+$(BUILDDIR)/%.32.o: %.32.c
 	$(CC32) $(CFLAGS) $(INTERNAL_CFLAGS) -c $< -o $@.32
 	$(OBJCOPY) -I elf32-i386 -O elf64-x86-64 $@.32 $@
 	rm $@.32
 endif
 
 ifeq ($(TARGET), bios)
-$(addprefix $(BUILDDIR)/, %.o): %.asm
+$(BUILDDIR)/%.o: %.asm
 	nasm $< -F dwarf -g -f elf32 -o $@
 endif
 ifeq ($(TARGET), uefi)
-$(addprefix $(BUILDDIR)/, %.o): %.asm
+$(BUILDDIR)/%.o: %.asm
 	nasm $< -F dwarf -g -f elf64 -o $@
 endif
 
tab: 248 wrap: offon