Skip to content

RaphaelCausse/Makefile

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 

Repository files navigation

OS OS

MAKEFILE

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.


Table of Contents


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

INSTALLATION

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

USAGE

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"

FEATURES

Clean the project by removing generated files :

make clean

Display info about the project :

make info

Display help message:

make help

AUTHOR

Raphael CAUSSE

About

Makefile template for small/medium C projects.

Topics

Resources

License

Stars

Watchers

Forks