自动生成 Fortran 依赖项
项目描述
依赖
用于自动生成 Fortran 依赖项的 python 脚本。
给定一组文件,fortdepend自动为程序和文件构建依赖图,并可以编写适合 Makefile 的依赖文件。fortdepend现在使用pcppPython 编写的预处理器,因此它可以确定在编译时实际使用哪些模块。
您甚至可以使用fortdepend来绘制模块依赖关系图(需要graphviz)!
ReadTheDocs上提供了完整的文档。
D. Dickinson 的原创剧本
安装
您可以使用 pip 安装 fortdepend:
pip3 install --user fortdepend
限制
fortdepend需要 Python 3。
fortdepend通过寻找匹配的program <name>/end program <name>and对来module <name>/end module <name>工作,因此不适用于仅在end没有适当标签的情况下使用的 Fortran 77 样式文件。
用法
基本用法:
fortdepend -o Makefile.dep
.f90这将查找以当前目录或当前目录结尾的所有文件,.F90并将输出写入Makefile.dep. 输出将是这样的:
test : \
moduleA.o \
moduleB.o \
moduleC.o \
moduleD.o \
programTest.o
moduleA.o :
moduleB.o : \
moduleA.o
moduleC.o : \
moduleA.o \
moduleB.o
moduleD.o : \
moduleC.o
然后,您可以通过输入以下内容来获得一个基本的 makefile 工作Makefile:
.f90.o:
gfortran -c $<
test:
gfortran $^ -o $@
include Makefile.dep
并且make test会以正确的顺序神奇地构建一切!
移动高级使用
您可以使用 指定预处理器宏-D并使用 搜索路径-I:
fortdepend -DMACRO=42 -Isome/include/dir -o Makefile.dep
将根据通常的 C99 预处理器规则替换MACROwith的实例。42这可以用于有条件地某些模块或在编译时use更改哪个模块是d。use
完整的命令行参数:
$ fortdepend --help
usage: fortdepend [-h] [-f FILES [FILES ...]] [-D NAME[=DESCRIPTION]
[NAME[=DESCRIPTION] ...]] [-b BUILD] [-o OUTPUT] [-g] [-v]
[-w] [-c] [-e EXCLUDE_FILES [EXCLUDE_FILES ...]]
[-i IGNORE_MODULES [IGNORE_MODULES ...]]
Generate Fortran dependencies
optional arguments:
-h, --help show this help message and exit
-f FILES [FILES ...], --files FILES [FILES ...]
Files to process
-D NAME[=DESCRIPTION] [NAME[=DESCRIPTION] ...]
Preprocessor define statements
-I dir Add dir to the preprocessor search path
-b BUILD, --build BUILD
Build Directory (prepended to all files in output)
-o OUTPUT, --output OUTPUT
Output file
-g, --graph Make a graph of the project
-v, --verbose explain what is done
-w, --overwrite Overwrite output file without warning
-c, --colour Print in colour
-e EXCLUDE_FILES [EXCLUDE_FILES ...], --exclude-files EXCLUDE_FILES [EXCLUDE_FILES ...]
Files to exclude
-i IGNORE_MODULES [IGNORE_MODULES ...], --ignore-modules IGNORE_MODULES [IGNORE_MODULES ...]
Modules to ignore
--skip-programs Don't include programs in the output file
-n, --no-preprocessor
Don't use the preprocessor
这是一个更高级的示例,说明如何fortdepend在您的 makefile 中使用:
# Script to generate the dependencies
MAKEDEPEND=/path/to/fortdepend
# $(DEP_FILE) is a .dep file generated by fortdepend
DEP_FILE = my_project.dep
# Source files to compile
OBJECTS = mod_file1.f90 \
mod_file2.f90
# Make sure everything depends on the .dep file
all: $(actual_executable) $(DEP_FILE)
# Make dependencies
.PHONY: depend
depend: $(DEP_FILE)
# The .dep file depends on the source files, so it automatically gets updated
# when you change your source
$(DEP_FILE): $(OBJECTS)
@echo "Making dependencies!"
cd $(SRCPATH) && $(MAKEDEPEND) -w -o /path/to/$(DEP_FILE) -f $(OBJECTS)
include $(DEP_FILE)
如果任何源文件发生更改,这将自动重建依赖文件。如果您有很多文件并且需要对它们进行预处理,您可能不喜欢这样做!
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
内置分布
fortdepend -2.1.0.tar.gz 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 5138d2740a9d4edb3742d54bbd2f05c3983f4f84d61138c051e94b50d06dc77d |
|
| MD5 | 0ec72902a0459173e46c1d26a1f9bbfb |
|
| 布莱克2-256 | 5ed6d2971f79d9424e630cad78b7dbaac9d00c264ddb4e744c778430e4abb55a |
fortdepend -2.1.0-py2.py3-none-any.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 881eb3ab93c6cb87c9e0f62847078d9372d333928a2193cc79a078681e7beec0 |
|
| MD5 | c1440a49a2e31d7a6f978bdbdcc98550 |
|
| 布莱克2-256 | deb70e28e79d472bf0873d2f7cd9b45869237b5ca6785ee33a705873a29e0212 |