farmbot-arduino-firmware/lib/template.Makefile

46 lines
1.7 KiB
Makefile

# Someone will thank me later for this.
# Find and replace DEP_NAME with the name of your dependency.
DEP_DEP_NAME_BUILD_DIR := $(FBARDUINO_FIRMWARE_LIB_BUILD_DIR)/DEP_NAME
DEP_DEP_NAME := $(DEP_DEP_NAME_BUILD_DIR)/DEP_NAME.a
DEP_DEP_NAME_SRC_DIR := $(ARDUINO_INSTALL_DIR)/libraries/DEP_NAME/src
DEP_DEP_NAME_CFLAGS := \
-I$(DEP_DEP_NAME_SRC_DIR)
DEP_DEP_NAME_CFLAGS := -I$(DEP_DEP_NAME_SRC_DIR)
DEP_DEP_NAME_LDFLAGS := $(DEP_DEP_NAME_BUILD_DIR)/DEP_NAME.a -L$(DEP_DEP_NAME_BUILD_DIR) -lm
DEP_DEP_NAME_ASM_SRC := $(call rwildcard, $(DEP_DEP_NAME_SRC_DIR), *.S)
DEP_DEP_NAME_ASM_OBJ := $(DEP_DEP_NAME_ASM_SRC:.S=.o)
DEP_DEP_NAME_C_SRC := $(call rwildcard, $(DEP_DEP_NAME_SRC_DIR), *.c)
DEP_DEP_NAME_C_OBJ := $(DEP_DEP_NAME_C_SRC:.c=.o)
DEP_DEP_NAME_CXX_SRC := $(call rwildcard, $(DEP_DEP_NAME_SRC_DIR), *.cpp)
DEP_DEP_NAME_CXX_OBJ := $(DEP_DEP_NAME_CXX_SRC:.cpp=.o)
DEP_DEP_NAME_ALL_OBJ := $(DEP_DEP_NAME_ASM_OBJ) $(DEP_DEP_NAME_C_SRC) $(DEP_DEP_NAME_CXX_OBJ)
DEP_DEP_NAME_SRC := $(DEP_SERVO_ASM_SRC) $(DEP_SERVO_C_SRC) $(CXX_SRC)
DEP_DEP_NAME_OBJ := $(patsubst $(DEP_DEP_NAME_SRC_DIR)/%,$(DEP_DEP_NAME_BUILD_DIR)/%,$(DEP_DEP_NAME_ALL_OBJ))
DEP_DEP_NAME_DIRS := $(sort $(dir $(DEP_DEP_NAME_OBJ)))
ARDUINO_DEP_DEP_NAME_CXX_FLAGS_P := $(DEP_CORE_CXX_FLAGS_P) $(DEP_DEP_NAME_CFLAGS)
$(DEP_DEP_NAME): $(DEP_CORE) $(DEP_DEP_NAME_BUILD_DIR) $(DEP_DEP_NAME_OBJ)
$(AR) rcs $(DEP_DEP_NAME) $(DEP_DEP_NAME_OBJ)
$(DEP_DEP_NAME_BUILD_DIR)/%.o: $(DEP_DEP_NAME_SRC_DIR)/%.cpp
$(CXX) $(ARDUINO_DEP_DEP_NAME_CXX_FLAGS_P) $< -o $@
$(DEP_DEP_NAME_BUILD_DIR):
$(MKDIR_P) $(DEP_DEP_NAME_DIRS)
dep_DEP_NAME: $(DEP_DEP_NAME)
dep_DEP_NAME_clean:
$(RM) $(DEP_DEP_NAME_OBJ)
$(RM) $(DEP_DEP_NAME)