gfortran генерирует зависимости от файлов модулей - PullRequest
1 голос
/ 16 марта 2019

Я хочу использовать gfortran для генерации подходящих правил для Makefile с источниками, использующими модули.

Например, если в src1.f90

program prog
  use module1
  ...
end program

и в mod_mymods.f90

module module1
 ...
end module module1

Я хочу сгенерировать строку типа

src1.f90: mod_mymods.f90

Это возможно?

Имеет ли это предположить, что gfortran> = 4.5 может это сделать?

Обратите внимание, что единственный способ найти такие зависимости - это анализировать все файлы f90 до совпадения между use module1 и module 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 голосов
/ 18 марта 2019

Кажется, создание такой зависимости невозможно напрямую с gfortran.

Использование cmake (например), кажется, автоматически учитывает это, даже если я не проверял полученный make-файл, и я бы не знал, как cmake анализирует содержимое src1.f90 и mod_mymods.f90 уметь определять зависимость.

...