CXX_OBJ = string/integerview.o string/memory.o \ memory/allocator.o \ stdlib/abort.o stdlib/console.o stdlib/virtual.o CXX_OBJ := $(addprefix $(OBJ_DIR)/, $(CXX_OBJ)) CXX_DEP = $(CXX_OBJ:%.o=%.d) CXX_JSON = $(CXX_OBJ:.o=.json) 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 " GEN $@" @echo [ > $@ @cat $(CXX_JSON) >> $@ @echo ] >> $@ clean: @rm -f $(CXX_OBJ) $(CXX_TEST_OBJ) $(OBJ_DIR)/libk.a