From bf69f336c3fb680e31a5bb43450739b0b06d95e1 Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Thu, 25 Mar 2021 22:37:33 +0200 Subject: makefile: make makefile recursive --- drivers/makefile | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'drivers') diff --git a/drivers/makefile b/drivers/makefile index 9405f0b..6a80fec 100644 --- a/drivers/makefile +++ b/drivers/makefile @@ -1,6 +1,7 @@ -CXX_OBJ += drivers/cga.o \ - drivers/serial.o \ - drivers/keyboard.o +CXX_OBJ = cga.o serial.o keyboard.o +CXX_OBJ := $(addprefix $(OBJ_DIR)/, $(CXX_OBJ)) +CXX_DEP = $(CXX_OBJ:%.o=%.d) +CXX_JSON = $(CXX_OBJ:.o=.json) HWH := drivers/hardware.h autogen := $(autogen) $(HWH) @@ -19,3 +20,16 @@ ifdef CONFIG_serial0_enable @echo $(CONFIG_SERIAL0_CLASS) serial0\; >> $(HWH) @echo constexpr bool serial0_console = true\; >> $(HWH) endif + +-include $(CXX_DEP) +$(CXX_OBJ) : $(OBJ_DIR)/%.o : %.cc + @mkdir -p $(@D) + @echo " CXX $<" + @$(CXX) -target $(TARGET) $(CXX_FLAGS) $(CXX_INCLUDE) -MMD -MJ$(subst .o,.json,$@) -c $< -o $@ + +%/libd.a: $(CXX_OBJ) + @echo " AR $(@F)" + @$(AR) $(AR_FLAGS) rcs $@ $(CXX_OBJ) + +clean: + @rm -f $(CXX_OBJ) $(CXX_TEST_OBJ) $(OBJ_DIR)/libd.a -- cgit v1.2.1