Giter Club home page Giter Club logo

makefile-generator's Introduction

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" <[email protected]>

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.

makefile-generator's People

Contributors

tangoman75 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.