Code Monkey home page Code Monkey logo

Comments (4)

certik avatar certik commented on May 20, 2024 1

It seems the most common changes to the build system that occasional contributors have to do are:

  • adding a new module
  • adding a test (possibly with some test data files)

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.

from stdlib.

certik avatar certik commented on May 20, 2024

I think the most important advantage of manual Makefiles is:

  • Explicitly shows how to build the project with all the compiler options pretty much spelled out explicitly. Thus providing a clean and clear instructions how to build the project --- i.e., how to copy the 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.

from stdlib.

gronki avatar gronki commented on May 20, 2024

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.

from stdlib.

certik avatar certik commented on May 20, 2024

@gronki thanks! Here is the direct link: https://github.com/gronki/fortdep

from stdlib.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.