atpg-ls/makefile

35 lines
796 B
Makefile
Raw Permalink Normal View History

2023-03-21 08:14:37 +00:00
# 定义源文件列表
2023-03-21 08:36:53 +00:00
SOURCES := $(wildcard *.c) $(wildcard *.cpp) $(wildcard CCAnr/*.cpp)
2023-03-21 08:14:37 +00:00
# 将源文件列表转换为目标文件列表
OBJECTS := $(addprefix build/,$(SOURCES:%=%.o))
# 声明编译器和编译选项
CC := gcc
CXX := g++
2023-03-22 02:37:08 +00:00
CFLAGS := -O0 -g -Wall -Wextra -MMD -MP
CXXFLAGS := -O0 -g -Wall -Wextra -MMD -MP
2023-03-21 08:14:37 +00:00
# 默认目标,编译所有目标文件
atpg: $(OBJECTS)
$(CXX) $(CXXFLAGS) $^ -o $@
# 生成目标文件的规则
build/%.o: % | build
$(CC) $(CFLAGS) -c $< -o $@
build/%.o: %.cpp | build
$(CXX) $(CXXFLAGS) -c $< -o $@
# 包含依赖文件
-include $(OBJECTS:.o=.d)
# 如果需要,则递归创建源文件的目录结构
build:
mkdir -p $(sort $(dir $(OBJECTS)))
# 清除所有目标文件和build目录
clean:
rm -rf build $(OBJECTS)
.PHONY: clean all