# 编译器与工具配置 CC := gcc AR := ar CFLAGS := -Wall -O2 -fPIC -MMD # 启用优化、位置无关代码和依赖生成 ARFLAGS := rcs # 静态库打包选项 # 文件与目标 SRC := $(wildcard *.c) # 所有源文件 OBJS := $(patsubst %.c,%.o,$(SRC)) # 目标文件 DEPS := $(OBJS:.o=.d) # 依赖文件 TARGET := libdtl.a # 最终库文件 # 默认目标 all: $(TARGET) # 生成静态库 $(TARGET): $(OBJS) $(AR) $(ARFLAGS) $@ $^ # 编译目标文件(支持多线程) %.o: %.c $(CC) $(CFLAGS) -c $< -o $@ # 包含自动生成的依赖文件 -include $(DEPS) # 清理 clean: rm -f $(OBJS) $(DEPS) $(TARGET) # 声明伪目标 .PHONY: all clean