diff options
author | Aqua-sama <aqua@iserlohn-fortress.net> | 2021-03-25 22:37:33 +0200 |
---|---|---|
committer | Aqua-sama <aqua@iserlohn-fortress.net> | 2021-03-25 22:37:33 +0200 |
commit | bf69f336c3fb680e31a5bb43450739b0b06d95e1 (patch) | |
tree | 2e14ca86442c5aafa40c3a436c0596327faaee85 /libk/makefile | |
parent | makefile: add clang-tidy target (diff) | |
download | kernel.cpp-bf69f336c3fb680e31a5bb43450739b0b06d95e1.tar.xz |
makefile: make makefile recursive
Diffstat (limited to 'libk/makefile')
-rw-r--r-- | libk/makefile | 39 |
1 files changed, 36 insertions, 3 deletions
diff --git a/libk/makefile b/libk/makefile index b2a91c1..9063f72 100644 --- a/libk/makefile +++ b/libk/makefile @@ -1,5 +1,38 @@ -CXX_OBJ += libk/string/string.o libk/string/integerview.o \ - libk/stdlib/abort.o libk/stdlib/console.o libk/stdlib/memory.o +CXX_OBJ = string/string.o string/integerview.o \ + stdlib/abort.o stdlib/console.o stdlib/memory.o +CXX_OBJ := $(addprefix $(OBJ_DIR)/, $(CXX_OBJ)) +CXX_DEP = $(CXX_OBJ:%.o=%.d) +CXX_JSON = $(CXX_OBJ:.o=.json) -CXX_TEST_OBJ += libk/test/types.o libk/test/string.o libk/test/result.o libk/test/quicksort.o +TEST_CXX_OBJ = test/types.o test/string.o test/result.o test/quicksort.o +TEST_CXX_OBJ := $(addprefix $(OBJ_DIR)/, $(TEST_CXX_OBJ)) +TEST_CXX_DEP = $(TEST_CXX_OBJ:%.o=%.d) +.PHONY: all test clean +all: $(OBJ_DIR)/libk.a +test: $(TEST_CXX_OBJ) + +-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 $@ + +%/libk.a: $(CXX_OBJ) + @echo " AR $(@F)" + @$(AR) $(AR_FLAGS) rcs $@ $(CXX_OBJ) + +# constexpr tests +-include $(TEST_CXX_DEP) +$(TEST_CXX_OBJ): $(OBJ_DIR)/%.o : %.cc + @mkdir -p $(@D) + @echo " TEST $<" + @$(TEST_CXX) -target $(TARGET) $(TEST_CXX_FLAGS) $(CXX_INCLUDE) -MMD -c $< -o $@ + +compile_commands.json: $(CXX_JSON) + @echo [ > $@ + @cat $(CXX_JSON) >> $@ + @echo ] >> $@ + +clean: + @rm -f $(CXX_OBJ) $(CXX_TEST_OBJ) $(OBJ_DIR)/libk.a |