aboutsummaryrefslogtreecommitdiff
path: root/drivers/makefile
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/makefile')
-rw-r--r--drivers/makefile20
1 files changed, 17 insertions, 3 deletions
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