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
|