53 lines
1.1 KiB
Makefile
53 lines
1.1 KiB
Makefile
# Makefile for TLUSTY extracted modules
|
|
# 使用大内存模型支持大型 COMMON 数组
|
|
|
|
FC = gfortran
|
|
FFLAGS = -O3 -fno-automatic -mcmodel=large
|
|
|
|
# 编译输出目录
|
|
BUILD_DIR = build
|
|
|
|
# 目标可执行文件
|
|
MAIN = $(BUILD_DIR)/tlusty_extracted
|
|
|
|
# 所有 .f 源文件
|
|
SRCS = $(wildcard *.f)
|
|
|
|
# 目标文件(放在build目录)
|
|
OBJS = $(patsubst %.f,$(BUILD_DIR)/%.o,$(notdir $(SRCS)))
|
|
|
|
# 默认目标
|
|
all: $(BUILD_DIR) $(MAIN)
|
|
@echo "=========================================="
|
|
@echo "编译成功: $(MAIN)"
|
|
@echo "=========================================="
|
|
|
|
# 创建build目录
|
|
$(BUILD_DIR):
|
|
mkdir -p $(BUILD_DIR)
|
|
|
|
# 链接所有目标文件
|
|
$(MAIN): $(OBJS)
|
|
$(FC) $(FFLAGS) -o $@ $(OBJS)
|
|
|
|
# 编译规则
|
|
$(BUILD_DIR)/%.o: %.f | $(BUILD_DIR)
|
|
$(FC) $(FFLAGS) -c $< -o $@
|
|
|
|
# 清理
|
|
clean:
|
|
rm -rf $(BUILD_DIR)
|
|
|
|
# 只编译不链接(检查语法)
|
|
compile-only: $(OBJS)
|
|
@echo "所有文件编译完成(未链接)"
|
|
|
|
# 统计信息
|
|
stats:
|
|
@echo "=== 编译统计 ==="
|
|
@echo "源文件数: $(words $(SRCS))"
|
|
@echo "目标文件数: $(words $(OBJS))"
|
|
@wc -l *.f | tail -1
|
|
|
|
.PHONY: all clean compile-only stats
|