58 lines
1.0 KiB
Makefile
58 lines
1.0 KiB
Makefile
|
|
||
|
# 编译器
|
||
|
CC = arm-linux-gnueabihf-gcc
|
||
|
# C++编译器
|
||
|
CXX = arm-linux-gnueabihf-g++
|
||
|
|
||
|
# 编译选项
|
||
|
CFLAGS = -Wall -Wextra -g
|
||
|
CXXFLAGS = -Wall -Wextra -g
|
||
|
|
||
|
# 链接选项
|
||
|
LDFLAGS =
|
||
|
|
||
|
# 源文件目录
|
||
|
SRC_DIR = ./
|
||
|
|
||
|
# 头文件目录
|
||
|
INC_DIR = include
|
||
|
|
||
|
# 对象文件目录
|
||
|
OBJ_DIR = obj
|
||
|
|
||
|
# 可执行文件名
|
||
|
TARGET = com_slave
|
||
|
|
||
|
# 源文件列表
|
||
|
SOURCES = $(wildcard $(SRC_DIR)/*.c) $(wildcard $(SRC_DIR)/*.cpp)
|
||
|
|
||
|
# 对象文件列表
|
||
|
OBJECTS = $(patsubst $(SRC_DIR)/%.c,$(OBJ_DIR)/%.o,$(filter %.c,$(SOURCES))) \
|
||
|
$(patsubst $(SRC_DIR)/%.cpp,$(OBJ_DIR)/%.o,$(filter %.cpp,$(SOURCES)))
|
||
|
|
||
|
# 默认目标
|
||
|
all: $(TARGET)
|
||
|
|
||
|
# 编译规则
|
||
|
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.c
|
||
|
@mkdir -p $(OBJ_DIR)
|
||
|
$(CC) $(CFLAGS) -I$(INC_DIR) -c $< -o $@
|
||
|
|
||
|
$(OBJ_DIR)/%.o: $(SRC_DIR)/%.cpp
|
||
|
@mkdir -p $(OBJ_DIR)
|
||
|
$(CXX) $(CXXFLAGS) -I$(INC_DIR) -c $< -o $@
|
||
|
|
||
|
# 链接规则
|
||
|
$(TARGET): $(OBJECTS)
|
||
|
echo $(SOURCES)
|
||
|
$(CC) $(LDFLAGS) $(OBJECTS) -o $@
|
||
|
|
||
|
# 清理规则
|
||
|
clean:
|
||
|
rm -f $(OBJECTS) $(TARGET)
|
||
|
|
||
|
# 重置规则
|
||
|
rebuild: clean all
|
||
|
|
||
|
.PHONY: all clean rebuild
|