com_slave/makefile

58 lines
1.0 KiB
Makefile
Raw Normal View History

2025-02-15 13:41:40 +00:00
# 编译器
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