gfortran生成对模块文件的依赖

时间:2019-03-16 05:44:30

标签: makefile fortran dependencies gfortran

我想使用gfortran为Makefile生成合适的规则,并提供使用模块的源。

例如,如果在src1.f90

program prog
  use module1
  ...
end program

mod_mymods.f90

module module1
 ...
end module module1

我想生成一条类似

的行
src1.f90: mod_mymods.f90

有可能吗?

this是否建议gfortran> = 4.5可以做到?

请注意,找到此类依赖项的唯一方法是解析所有f90文件,直到use module1module module1之间存在匹配为止。 或者,可以维护源文件<->模块的索引,并使make保持最新。

找到的替代品是:

https://www.geos.ed.ac.uk/homes/hcp/fmkmf

https://www.reddit.com/r/fortran/comments/8n3tr5/makefiles_with_modules_dependency_hierarchies_in/

https://www.systutorials.com/docs/linux/man/1-makedepf90/

https://simplyfortran.com/(但这是一个完整的IDE)

http://lagrange.mechse.illinois.edu/f90_mod_deps/

https://software.intel.com/en-us/fortran-compiler-developer-guide-and-reference-gen-dep#70055AC3-6C05-42BB-8ED5-6EBB0E7F5C71

1 个答案:

答案 0 :(得分:0)

似乎无法直接通过gfortran生成这种依赖关系。

使用cmake(例如)似乎可以自动解决这一问题,即使我没有检查生成的Makefile,也不知道cmake如何解析{{1 }}和src1.f90才能分辨出依赖关系。