Awesome TangoMan Makefile Generator is a fast and handy tool to generate self documenting makefiles and provides neat makefiles templates.
TangoMan Makefile Generator generates Makefile, README.md, LICENSE (Apache, MIT, GPL2, GPL3) from templates with one single command.
Template values are configurable with config.yaml
.
TangoMan Makefile Generator will generate .PHONY
rule, and detailed help from available rules and parameters for your makefile.
Generated Makefiles will print self documentation, with the help
command and Awk.
If you want to add a help message for your rule, just add : ## Foo bar
, on the previous line.
Use : ### Foobar
to group rules by categories.
TangoMan Makefile Generator requires the following dependencies:
- Make
- GAWK
- SED
which should be available by default on most linux distributions.
On linux machine enter following command
$ sudo apt-get install --assume-yes gawk
On windows machine you will need to install cygwin or Gawk for Windows](http://gnuwin32.sourceforge.net/packages/gawk.htm) first to execute script.
Gawk should be available by default on OSX system, but you can upgrade Gawk version with following command
$ brew install gawk
On linux machine enter following command
$ sudo apt-get install --assume-yes make
On windows machine you will need to install cygwin or GnuWin make first to execute make script.
Make exists by default on OS X, if you want to update to a newer version use:
$ brew install make
On linux machine enter following command
$ sudo apt-get install --assume-yes sed
On windows machine you will need to install cygwin or Sed for Windows first to execute script.
Sed should be available by default on OSX system, but you can upgrade Sed version with following command
$ brew install sed
Prefix template files with underscore in the makefiles
, vars
and header
directories to be concatenated.
Tags delimited with double curly braces (eg: {{ PLACEHODER }}
) will be replaced with values from config.yaml
file.
Valid tags are:
{{ FILENAME }}
: Filename of generated Makefile (default is current datetime, eg: 20210101090000.make).{{ PROJECT }}
: Project name.{{ VERSION }}
: Project version number.{{ DESCRIPTION }}
: Project description.{{ PADDING }}
: Padding spaces in thehelp
command.{{ AUTHOR }}
: Project author.{{ EMAIL }}
: Author email.{{ YEAR }}
: License year.{{ LICENSE }}
: License type (valid types: mit, apache, gpl2, gpl3).{{ GIT_SERVER }}
: Project repository server.{{ GIT_USER }}
: Project repository username.{{ REPOSITORY }}
: Project repository name.
{{ PHONY }}
and {{ MARKDOWN }}
values are generated on the fly and are not configurable.
{{ PHONY }}
: Generated.PHONY:
rule.{{ MARKDOWN }}
: Generated markdown documentation.
Do not use backticks inside {{ DESCRIPTION }}
block, help rules or categories..
Run make
to print help
$ make [command] author=[author] description=[description] email=[email] filename=[filename] git_server=[git_server] git_user=[git_user] license=[license] padding=[padding] project=[project] repository=[repository] version=[version] year=[year]
Available commands are: help generate makefile phony readme license changelog code contrib ci-cd init clean
$ make help
$ make generate
$ make makefile
$ make phony
$ make readme
$ make license
$ make changelog
$ make code
$ make contrib
$ make ci-cd
$ make init
$ make clean
You can find emojis for semantic enhancement here:
Thank you for your interest in contributing to TangoMan Makefile Generator.
Please review the code of conduct and contribution guidelines before starting to work on any features.
If you want to open an issue, please check first if it was not reported already before creating a new one.
Copyrights (c) 2023 "Matthias Morin" <mat@tangoman.io>
Distributed under the MIT license.
If you like TangoMan Makefile Generator please star, follow or tweet about it:
... And check my other cool projects.