From 6eefbd0e736c3334e9b1b8141feb0430a5f247c1 Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Tue, 30 Mar 2021 22:49:06 +0300 Subject: Makefile: build targets properly from subdirs --- makefile | 37 ++++++++++++++++--------------------- 1 file changed, 16 insertions(+), 21 deletions(-) (limited to 'makefile') diff --git a/makefile b/makefile index 6f49e6d..9d525d8 100644 --- a/makefile +++ b/makefile @@ -1,35 +1,30 @@ -include .config -OBJ_DIR != echo $(CONFIG_OBJ_DIR) -include toolchain.makefile +include common.mk -.PHONY: all libk libd clean test tidy todo run menuconfig -all: $(OBJ_DIR)/src/glitch.elf +.PHONY: all help libk libd clean test tidy todo run menuconfig +all: $(OBJ_DIR)/glitch.elf -LIBS := $(OBJ_DIR)/libk.a $(OBJ_DIR)/libd.a -LD_FLAGS := $(LD_FLAGS) --library-path $(CURDIR)/$(OBJ_DIR) +help: + @echo prefix $(prefix) + @echo "CONFIG_BUILD_DIR $(CONFIG_OBJ_DIR)" + @echo "CONFIG_ARCH $(CONFIG_ARCH)" -export AR AR_FLAGS AS AS_FLAGS NM SED \ - CXX CXX_FLAGS CXX_INCLUDE TARGET \ - TEST_CXX TEST_CXX_FLAGS \ - LD LD_FLAGS - -$(OBJ_DIR)/src/glitch.elf: libk libd - @make -C src OBJ_DIR=$(CURDIR)/$(OBJ_DIR)/src $(CURDIR)/$(OBJ_DIR)/src/glitch.elf +$(OBJ_DIR)/glitch.elf: libk libd + @make -C src libk: - @make -C libk OBJ_DIR=$(CURDIR)/$(OBJ_DIR)/libk $(CURDIR)/$(OBJ_DIR)/libk.a + @make -C libk libd: - @make -C drivers OBJ_DIR=$(CURDIR)/$(OBJ_DIR)/drivers $(CURDIR)/$(OBJ_DIR)/libd.a + @make -C drivers compile_commands: @make -C libk OBJ_DIR=$(CURDIR)/$(OBJ_DIR)/libk compile_commands.json clean: - @rm -rf $(OBJ_DIR)/isodir $(LIBS) - @make -C src OBJ_DIR=$(CURDIR)/$(OBJ_DIR)/src clean - @make -C libk OBJ_DIR=$(CURDIR)/$(OBJ_DIR)/libk clean - @make -C drivers OBJ_DIR=$(CURDIR)/$(OBJ_DIR)/drivers clean + @rm -rf $(OBJ_DIR)/isodir + @make -C src clean + @make -C libk clean + @make -C drivers clean @make -C tools/kconfig OBJ_DIR=$(CURDIR)/$(OBJ_DIR)/kconfig clean # testing @@ -40,7 +35,7 @@ todo: @grep TODO -r libk/ src/ drivers/ # disk image -$(OBJ_DIR)/glitch.iso: $(OBJ_DIR)/src/glitch.elf grub/grub.cfg +$(OBJ_DIR)/glitch.iso: $(OBJ_DIR)/glitch.elf grub/grub.cfg @mkdir -p $(OBJ_DIR)/isodir/boot/grub $(GRUB_FILE) --is-x86-multiboot2 $< @cp $< $(OBJ_DIR)/isodir/boot/glitch.elf -- cgit v1.2.1