Skip to content

Awesome TangoMan Makefile Generator is a fast and handy tool to generate self documenting makefiles and provides neat makefiles templates.

License

Notifications You must be signed in to change notification settings

TangoMan75/makefile-generator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

GH language GH release GH license GH stars Make CI visitors

TangoMan Makefile Generator

Awesome TangoMan Makefile Generator is a fast and handy tool to generate self documenting makefiles and provides neat makefiles templates.

TangoMan Makefile Generator

🎯 Features

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.

πŸ’‘ Self documentation

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.

πŸ’» Dependencies

TangoMan Makefile Generator requires the following dependencies:

  • Make
  • GAWK
  • SED

which should be available by default on most linux distributions.


πŸ›  Gawk

🐧 Install Gawk (Linux)

On linux machine enter following command

$ sudo apt-get install --assume-yes gawk

🏁 Install Gawk (Windows)

On windows machine you will need to install cygwin or Gawk for Windows](http://gnuwin32.sourceforge.net/packages/gawk.htm) first to execute script.

🍎 Install Gawk (OSX)

Gawk should be available by default on OSX system, but you can upgrade Gawk version with following command

$ brew install gawk

πŸ›  Make

🐧 Install Make (Linux)

On linux machine enter following command

$ sudo apt-get install --assume-yes make

🏁 Install Make (Windows)

On windows machine you will need to install cygwin or GnuWin make first to execute make script.

🍎 Install Make (OS X)

Make exists by default on OS X, if you want to update to a newer version use:

$ brew install make

πŸ›  Sed

🐧 Install Sed (Linux)

On linux machine enter following command

$ sudo apt-get install --assume-yes sed

🏁 Install Sed (Windows)

On windows machine you will need to install cygwin or Sed for Windows first to execute script.

🍎 Install Sed (OSX)

Sed should be available by default on OSX system, but you can upgrade Sed version with following command

$ brew install sed

πŸ”₯ Usage

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 the help 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.

πŸ“ Note 1

{{ PHONY }} and {{ MARKDOWN }} values are generated on the fly and are not configurable.

  • {{ PHONY }}: Generated .PHONY: rule.
  • {{ MARKDOWN }}: Generated markdown documentation.

πŸ“ Note 2

Do not use backticks inside {{ DESCRIPTION }} block, help rules or categories..

βœ… Parameters

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

πŸ€– Commands

⚑ Print this help

$ make help

Generator

⚑ Generate all

$ make generate

⚑ Generate Makefile

$ make makefile

⚑ Update .PHONY: rule

$ make phony

⚑ Generate README.md

$ make readme

⚑ Generate LICENSE

$ make license

⚑ Generate CHANGELOG.md

$ make changelog

⚑ Generate CODE_OF_CONDUCT.md

$ make code

⚑ Generate CONTRIBUTING.md

$ make contrib

⚑ Copy CI-CD tools

$ make ci-cd

⚑ Create config.yaml and .-build folder

$ make init

⚑ Remove config.yml .-build and all _template.make files

$ make clean

πŸ“ Notes

You can find emojis for semantic enhancement here:

🀝 Contributing

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.

πŸ“œ License

Copyrights (c) 2023 "Matthias Morin" <mat@tangoman.io>

License Distributed under the MIT license.

If you like TangoMan Makefile Generator please star, follow or tweet about it:

GitHub stars GitHub followers Twitter

... And check my other cool projects.

About

Awesome TangoMan Makefile Generator is a fast and handy tool to generate self documenting makefiles and provides neat makefiles templates.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks