The problem of cascade recompilation in large modern Fortran projects is well known --- a non-interface related change of a module can cause recompilation in the entire chain of dependents of that module, even when the compiler would not require it [1]. Furthermore, it is not trivial to set up the proper dependency relationship among modules and their dependents. See [2-5] for examples of various ways of setting up these dependencies.Solutions proposed up until now have not dealt comprehensively with the issue of a module file not undergoing any substantive change during source file recompilation or, if they did, they relied on the assumption that there is only one module definition per text file, and further that the generated module file has the same basename the source file. None of these assumptions may be true in practice.Furthermore, the issue of parallel builds is usually not addressed. For very large projects ( O (1-10K) source files), parallel builds can decrease compilation time by an order of magnitude.With a moderate amount of scripting (in either Perl or Korn-shell), and using the capabilities of more recent versions of GNU Make [6,7] it is possible to create makefiles that handle complicated cross-dependencies nearly automatically, and reduce recompilation time substantially.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
hi@scite.ai
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.