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) $(HWH): .config @echo " GEN $@" @echo \/\* autogenerated hardware description \*\/ > $(HWH) @echo \#pragma once >> $(HWH) ifdef CONFIG_video0_enable @echo \#define HAS_VIDEO0 >> $(HWH) @echo $(CONFIG_VIDEO0_CLASS) video0\; >> $(HWH) @echo constexpr bool video0_console = true\; >> $(HWH) endif ifdef CONFIG_serial0_enable @echo \#define HAS_SERIAL0 >> $(HWH) @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