Makefile template for small to medium sized C projects, for Linux and Windows.
You can build the project in two modes : Release or Debug.
By default, the build is in Debug mode.
Declare all the source files you want to compile in the sources.mk
.
Please follow recommended project layout.
To use this makefile template properly, please follow the project layout bellow.
──┬─[ Project ]
│
├──── LICENSE.md
├──── README.md
│
├──── Makefile
├──── sources.mk # Important: declare in that file all the source files to compile
│
├──┬─[ src ]
│ │
│ ├──── *.c
│ ├──── *.h
│ ...
│
...
Note that this layout of the project, including src
directory and sources.mk
file, is automatically created when executing the command : make init
Clone this repository :
git clone https://github.com/RaphaelCausse/Makefile.git
Move to the cloned directory :
cd Makefile
Copy the Makefile in your project at root level of your project directory.
cp Makefile <path_to_your_project>
Initialize the project layout, in your project directory :
cd <path_to_your_project>
make init
Update the sources.mk
file with the sources files to compile.
Update the Makefile for compiler and linker options for your needs. Check the variables in the #### PATHS ####
and #### COMPILER ####
sections.
Build the project in Release mode :
make release
Build the project in Debug mode :
make debug
Run the target in Release mode (with optional arguments) :
make run
make run ARGS="your arguments"
Run the target in Debug mode (with optional arguments) :
make rund
make rund ARGS="your arguments"
Clean the project by removing generated files :
make clean
Display info about the project :
make info
Display help message:
make help
Raphael CAUSSE