Closed
Description
Related to #2 and #7. Let's discuss here whether we should maintain manual Makefiles (besides CMake).
First some pros and cons to this.
Pros:
- People who don't have CMake can still build the code with just make;
- Comes built-in on most Linux systems;
- Others?
Cons:
- Need to be maintained and updated often. This is especially problematic with fast-moving and experimental APIs.
- Others?
Second, how much is this desired by the community? Use this issue to speak up.
Overall I like the convenience of plain Makefiles, and I like being able to see exactly what they're doing. However, in presence of a working CMake setup, I'm not likely to use them so I don't care as much for it. I never ever use systems that don't have access to CMake.
Third, if we do want manual Makefiles, how to we develop and maintain them? Should every contributor be responsible for adding their code to the Makefile? Otherwise, would we need a volunteer Makefile maintainer?
Activity
certik commentedon Dec 22, 2019
I think the most important advantage of manual Makefiles is:
stdlib_*.f90
files into production codes and how to update the production code's build system to build those.Regarding how to maintain it, that's easy: our CI will build both CMake and manual Makefiles. Contributors submit a PR. If they forgot to update the Makefiles, then the CI fails, so they will get alerted, and most contributors will know how to fix it up, if they add a new module or add a new test file. For anything more complicated, we help them.
Yes, I am very happy to volunteer as a Makefile maintainer, in addition to all the other things I already implicitly volunteered for: CMake maintainer, git maintainer (helping contributors with git), etc. So by keeping things simple, I hope we can have lots of people being able to maintain our infrastructure.
certik commentedon Dec 22, 2019
It seems the most common changes to the build system that occasional contributors have to do are:
I think that's pretty much it. A change like adding a new dependency (say Lapack, or FFTW) would have to be handled by us anyway, as it requires changes to our CI, documentation, etc.
gronki commentedon Dec 23, 2019
Please have a look at my fortdep project. It can auto-generate dependencies and entire makefiles. If there are any issues i can fix/implement them in priority mode.
certik commentedon Dec 23, 2019
@gronki thanks! Here is the direct link: https://github.com/gronki/fortdep