Makefile template for small to medium sized C/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 src/__sources.mk
.
Please follow recommended project layout.
To use this makefile template properly, please follow the project layout bellow.
──┬─[ Project ]
│
├──── Makefile
├──── README.md
├──── LICENSE.md
│
├──┬─[ src ]
│ ├──── __sources.mk # Important: declare in that file all the source files to compile
│ │
│ ├──── main.c / main.cpp
│ ├──── *.c / *.cpp
│ ├──── *.h / *.hpp
│ │
│ ├──┬─[ module ]
│ │ ├──── *.c / *.cpp
│ │ └──── *.h / *.hpp
│ └...
│
└...
Note that this layout of the src
directory, including __sources.mk
is automatically created when execution the command :
make init
Clone this repository :
git clone https://github.com/RaphaelCausse/Makefile_C_Cpp.git
Move to the cloned directory :
cd Makefile_C_Cpp
Copy the Makefile in your project at root level of your project directory.
cp Makefile <path_to_your_project>
cd <path_to_your_project>
Initialize the project layout, in your project directory :
make init
Update the src/__sources.mk
file with the sources files to compile.
Update the Makefile for compiler and linker options, 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 program in Release mode (with optional arguments) :
make run
make run ARGS="your arguments"
Run the program in Debug mode (with optional arguments) :
make run_debug
make run_debug ARGS="your arguments"
Clean the project by removing objects files :
make clean
Display info about the project :
make info
Display help message:
make help
Raphael CAUSSE.