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 gawkOn 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 gawkOn linux machine enter following command
$ sudo apt-get install --assume-yes makeOn 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 makeOn linux machine enter following command
$ sudo apt-get install --assume-yes sedOn 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 sedPrefix 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 thehelpcommand.{{ 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 cleanYou 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.
