OBJS_$(d) := $(filter %.o, $(SRCS_$(d):.c=.o)) OBJS_$(d) += $(filter %.o, $(SRCS_$(d):.s=.o)) OBJS_$(d) := $(patsubst $(SRC_DIR)/%, $(OBJ_DIR)/%, $(OBJS_$(d))) DEPS_$(d) := $(OBJS_$(d):.o=.d) # Binary building OBJS += $(OBJS_$(d)) DEPS += $(DEPS_$(d)) LIBS_$(d) := $(patsubst $(SRC_DIR)/%, $(OBJ_DIR)/%, $(LIBS_$(d))) LIBS += $(LIBS_$(d)) BINS_$(d) := $(patsubst $(SRC_DIR)/%, $(OBJ_DIR)/%, $(BINS_$(d))) BINS += $(BINS_$(d)) # Testing infrastructure UNIT_$(d) := $(CHECK_$(d):.c=.o) UNIT_$(d) := $(patsubst %(SRC_DIR)/%, $(OBJ_DIR)/%, $(UNIT_$(d))) OBJS += $(UNIT_$(d)) TEST_$(d) := $(patsubst $(SRC_DIR)/%, $(TEST_DIR)/%, $(TEST_$(d):.c=)) TEST += $(TEST_$(d))