build provenance and version_control.F90
源码基线:LMDZ.COMMON-6.3\LMDZ.COMMON。 Mars 运行参与度:必经构建层。
当前机制
makelmdz_fcm 在构建时生成:
libf/misc/version_control.F90
关键位置:
| 行号 | 符号/变量 | 作用 |
|---|---|---|
makelmdz_fcm:590 |
version_F90file |
生成目标。 |
makelmdz_fcm:593 |
default_filename |
默认输出 pgrm_version_control.txt。 |
makelmdz_fcm:641 |
MODULE version_control |
运行时模块。 |
makelmdz_fcm:677 |
print_pgrm_version |
--version [file] 调用入口。 |
输出包括编译命令、日期、用户、主机、当前目录,以及 Git/SVN metadata、status、diff 信息。这个信息被编译进二进制,不依赖运行目录仍是源码仓库。
关联构建变化
| 变化 | 影响 |
|---|---|
SUFF_DIR |
build config 目录 suffix 与可执行 suffix 分离。 |
| debug suffix | debug build 可进入独立配置目录。 |
-clean |
清理 build 产物和 dimensions.h。 |
| failure cleanup | fcm build 失败后移除 stale .lock 并失败退出。 |
bld.cfg |
%CONFIG_NAME 使用 %{ARCH}%{SUFF_DIR},且不再包含 src::evolution %EVOLUTION。 |
复现清单
- 保存完整编译命令和
--version输出。 - 保存实际 arch 与 suffix 展开后的 build 目录。
- 不再把
libf/evolution当作 当前 COMMON 构建输入。 - 构建失败后重试前,确认
.lock和dimensions.h清理状态。