这是 makedepf90 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
makedepf90 - 为 Fortran 源文件创建 Makefile 依赖项列表。
概要
制作depf90 [-h[-V[-W|-W失踪[-W困惑[-m fmt[-u 模块名[-d 文件[-r
排除[-R 文件 排除[-固定| - 自由[-o 可执行文件名称[-可可[-D 您的姓名[-b 径]
[-I 路径 1:路径 2:...[-nosrc] 源文件
商品描述
制作depf90 是一个自动创建依赖列表和编译规则的程序
对于 Makefile。
最初的想法是为 Fortran 提供与
gcc -MM *.c
为 C. 现在 makedepf90 实际上取代了这个功能,让我想知道
如果我也应该扩展 makedepf90 以支持 C 和 C++ ;-)。
制作depf90 同时支持 模块, 包括:s, CPP(1) 的#include:s, f90ppr(1) $包括:沙
COCO(1) ??包括 和设置文件。
制作depf90 读取命令行上给出的 Fortran 源文件,并写入依赖项
列出标准输出; 对于每个文件,它使用以下格式写入一行:
目标 : 先决条件
目标 是将作为文件编译结果的文件 -c 选项,
和 先决条件 是编译文件所需的文件。 此外, 制作depf90
可以选择创建链接最终所需的依赖行和 make-rule
可执行文件。
Fortran语言 依赖
编译文件所需的文件,即 先决条件 该文件是:
- 源文件本身
- 包含有关 USEd 模块的接口信息的文件,由编译器同时创建
编译模块(通常命名为 模块名.mod 或类似的东西,此后
被称为 mod文件).
- 包含文件(包括包含的文件和从这些模块使用的模块的 mod 文件)
包含文件)。
- 可可 设置文件,如果 COCO(1) 正在使用并且设置文件存在。
由于不同的编译器对 mod 文件使用不同的命名约定,列出它们
在依赖项列表中导致不可移植的 makefile。 因此这是常见的做法
列出目标文件(文件名.o) 对应于包含 USEd 的源文件
模块代替。 这是默认行为 制作depf90. 要改变这一点,请使用 -m
选项(例如 -m “%m.mod” 如果您的编译器命名 mod 文件 模块名.mod)
在工作目录中找不到的包含文件将不会在依赖项中列出
列表,假设它们是(很少更改)库的一部分而不是程序的一部分。
未找到定义的模块的 mod-files 也不会被相同的
原因。
配置
这些选项可以在命令行的任何位置以任何顺序给出。 之间的空间
option 及其参数是可选的。 选项不能分组(-硬件 不一样
作为 -h -W).
-h or - 帮帮我
将简短的帮助消息打印到标准输出并退出。
-V or - 版
将版本和版权信息打印到标准输出并退出
-W or -W失踪
打印有关缺少模块和包含文件的警告
-W困惑
混淆时打印警告(由于 makedepf90 本身的错误,或
因为你的源文件中有奇怪的东西)。 如果 makedepf90 遗漏了一些
依赖,或者做其他奇怪的事情,这个选项可能会给出一些关于什么的想法
继续。
-m fmt 告诉 制作depf90 mod文件将具有格式名称 fmt. fmt 可能含有
修饰符 %f HPMC胶囊 文件名 (没有文件名.后缀), %m HPMC胶囊 模块名 (在
小写), %M HPMC胶囊 模块名称 (大写)和 %% 为了 '%'。 默认值为“%fo”。
-u 模块名
忽略所有命名的模块 模块名.
-d 文件
使所有目标依赖于 文件.
-r 排除
添加 排除 (由制表符缩进)到除给定规则的行之外的所有依赖行
与 -R 选项。
排除 可能包含以下修饰符: %f 对于源文件的名称
(无后缀)依赖行是为,和 %% 为了 '%'。
-R '图案' '规则'
编译匹配shell模式的文件 模式 使用规则 排除。在 模式,
可以使用以下通配符: * = 任意数量的任意字符, ? = 任何
性格和 [ABC] = 任何一个 a, b or c. 请注意,模式匹配是
由...执行 制作depf90,不是外壳。 所以 模式 应该包含在
引号 (" or ')。 对于 排除 应用相同的规则 -r 以上。
请注意,“-r 排除“和”-R '*' 排除“。 在里面
前案 排除 将仅应用于未使用任何规则的行 -R,而
在后一种情况下, 排除 将应用于 所有 线。
-固定 / - 自由
将文件视为固定/免费源格式。 如果给出两个选项,则后者
用来。 默认:带后缀的文件 。F, 。F, 。为了, 。为了 or .ftn 被视为
固定格式和 .f90, .F90, .f95 or .F95 被视为自由格式。
-o 姓名
这个选项会导致 制作depf90 定义 Makefile 宏 离岸价=目标文件,
以及用于创建可执行文件的最终链接过程的依赖行 + 规则
姓名. 要设置链接规则,请使用选项 -l.
-l 排除
使用 VHDL 语言编写 排除 链接可执行文件时。 默认是
$(FC) -o $@ $(FFLAGS) $(LDFLAGS) $(离岸价) $(库).
此选项无效,除非 -o 用来。
-可可 寻找 COCO(1) 设置文件 (COCO ??include:s 自动支持)。 这个
选项暗示 - 自由.
-D 您的姓名
定义预处理器符号 您的姓名.
-b 径
依赖树和链接规则将假设对象放置在 径。 这是
如果构建将目标文件放在与源不同的目录中,则很有用
文件。
-I 路径列表
在 路径列表, 如果在当前工作中没有找到
目录。 这里, 路径列表 是冒号分隔的路径名列表。
-nosrc 不要在先决条件中列出源文件。
示例
基础版 用法
这是一个基本的例子 制作depf90 一起使用 使(1). 创建一个名为
生成文件 具有以下内容:
----------------------
# FC = 要使用的编译器
FC=f90
# 编译器选项
标志=-O
# 在这里列出程序使用的库
图书馆=
# 后缀规则:首先丢弃所有旧的后缀-
# 规则,然后创建新的用于编译
# *.f90-文件。
.后缀:
.后缀:.f90 .o
.f90.o:
$(FC) -c $(FFLAGS) $
# 在下面包含 makedepf90 创建的依赖列表
包括 .depend
# 目标 'clean' 用于删除对象 - *.mod- 和其他
# 不需要的文件
清洁:
rm -f *.o *.mod 核心
# 使用 makedepf90 创建依赖列表。 所有文件
# 需要编译以构建程序,
# 即除了包含文件之外的所有源文件,都应该
# 在命令行中给出 makedepf90。
#
# '-o' 选项的参数将是
# 运行'make'时的结果程序,在这种情况下
# 'foobar'
依赖 .depend:
makedepf90 -o foobar *.f90 > .depend
-----------------------
(注意所有缩进的行都应该用制表符缩进,而不是空格)
有了这个makefile,命令 使 应该执行编译和所需的所有命令
链接程序 foobar 在工作目录中的所有 *.f90 文件中。
依赖列表 。依靠 将(重新)创建,如果 。依靠 不存在,或者如果
命令 使 依赖 正在运行。 每次更改时都应执行此操作
影响文件依赖关系的程序(例如,如果添加了新的源文件
到项目)。
例如: 通过 可可
如果您使用预处理器,事情可能会变得更加复杂。 如果幸运的话,
您的编译器支持您的预处理器并自动在您的代码上运行它,但如果
它没有,您必须给出命令来自己运行预处理器。 下面是一个
Makefile 的示例 COCO(1)-用户。
-----------------------
FC=f90
标志=-O
预处理器=可可
.后缀:
.后缀:.f .f90 .o
# 以.f90结尾的文件直接编译...
.f90.o:
$(FC) -c $(FFLAGS) $
# ... 而那些以 .f 结尾的先被预处理。
.fo:
$(预处理器)$*; $(FC) -c $(FFLAGS) $*.f90
包括 .depend
清洁:
rm -f *.o *.mod 核心
依赖 .depend:
makedepf90 -coco -o foobar *.f90 *.f > .depend
-----------------------
注意: 的一些实现 使(1) 不会执行任何命令——甚至不会 使 依赖
— 使用上面的 Makefile,除非存在一个名为 。依靠. 为了克服这个
问题,要么运行 制作depf90 手动,或首先创建一个空的 。依靠 文件
命令 触摸 。依靠.
诊断
大多数错误和警告消息都是不言自明的,但其中一些可能需要一些
进一步解释:
警告: 递归 限制 达到 in 文件 文件名
递归解析include文件时,makedepf90已经达到递归限制。
可能的原因是:要么你有一些 真 复杂的系统包括
文件,或者您有递归包含(例如包含自身的包含文件)。
在后一种情况下; 修复它,您的 Fortran 编译器也不会喜欢它。
使用 onworks.net 服务在线使用 makedepf90