This aim of this project is to enjoy the power of plain GNU Makefile. It is a personal attempt to satisfy every needs when compiling a project.
This project is intended to better understand the limits of GNU Makefile and the needs to have tools like CMake or GNU autotools.
The goal is to write GNUmakefile file for any project with the tools provided.
This is a list of features that the project have to do:
- Use CLI variables (
make CC="gcc"
) - Use built-in rules to compile
- Track dependencies to header files
- Every generated file have to be in a separate folder
- Detect missing folders and creating them
- Object instrumentation is preserved (
make CFLAGS="-g"
) - Build static libraries / shared libraries based on binary’s name
- Any librairies dependencies is automatically detected to must be up-to-date
- Parallel execution is preserved (
make -j JOBS
) - Do not use shell, nor wildcard
- Better printing (without colors)
This is a list of features in a developer-side that the project have to do:
- It must be simple to write
- Units tests must be easy to implemement
- Custom rules (like
make docs
for generate documentation)
The utopic goal:
- Modular project: Each functionnality can be added as wish
A wiki will be added if many goals are achieved.