Comments (4)
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.
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.
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.
@gronki thanks! Here is the direct link: https://github.com/gronki/fortdep
from stdlib.
Related Issues (20)
- `string_intrinsic (Subprocess aborted)` failed HOT 7
- `bits()` in `bitset_type` returned a non-zero value even though no value is set. HOT 1
- Support for linear algebra HOT 6
- Hashtable write error on exit HOT 7
- use stdlib_math, only : gcd HOT 4
- The file src/stdlib_hashmap_chaining.f90 and two others are set as executable HOT 1
- Support for I/O of standard formats HOT 10
- Memory mapped features HOT 9
- Add `.gitignore` to `stdlib-fpm` deployment for generated test files HOT 1
- hash_functions test fails on i386: `Segmentation fault - invalid memory reference`
- Request to upgrade Intel-classic compiler in macOS CI
- Add `library` configuration to `stdlib-fpm`
- Massive slow down in docs generation HOT 4
- Unexpected performance of hash maps HOT 8
- python preprocessor HOT 11
- add topic tags `lapack`, `blas`, `linear-algebra` HOT 1
- Improve descriptions of rotm, rotmg, stdlib_srotm, stdlib_srotmg
- Don't repeat names of procedures in descriptions
- stdlib_io_npy, FPM and Rank > 4 HOT 5
- Missing documentation for `LAPACK`-related functions HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from stdlib.