Skip to content

Latest commit

 

History

History
112 lines (84 loc) · 3.07 KB

README.md

File metadata and controls

112 lines (84 loc) · 3.07 KB

GNU Make files for EKG engineers

Collection of GNU Make files to make life a bit easier for people working with EKG on Mac OS or Linux (Windows is not fully supported yet, unless you use WSL).

This repo contains one .mk file per topic to be included by other .mk files or by top level Makefile files (such as /Makefile) in your own repo.

These so-called "make files" are used by the infamous GNU Make utility which is an ancient but still beneficial tool to get tasks executed in the right order.

Supported tools

How to use it

On Mac OS, use gmake instead of make:

gmake <some target>

or, on Windows or Linux:

make <some target>

Where <some target> can be something like:

  • help
  • all
  • deploy
  • build
  • test

How to install it

On Mac OS:

First make sure that you have brew (or "HomeBrew") installed (test this by executing brew on the command line).

Then use brew install make to install GNU Make.

On Windows:

If you have "Chocolatey" installed you can simply use:

choco upgrade chocolatey
choco install make

How to contribute

Please see our CONTRIBUTING.md file for guidelines on how to contribute to this repository, including setting up GPG signing and using conventional commits.

Articles:

Rationale

Why use ancient technology like GNU Make? Rather than using something more modern like Chef, Puppet, or Ansible?

  • Even though GNU Make is ancient, it is still very useful and widely used, especially in the C,C++ and Linux world.
  • GNU Make is relative simple and easy to use and very fast.
  • GNU Make is available on all platforms, including Windows, Linux and Mac OS.
  • We have experience doing the same with other technologies such as Chef or giant Bash scripts, but that turned out to be more complex and less maintainable than using GNU Make. And requires more specific knowledge in the team, we want every developer to be able to use and improve this, not just your local Chef expert.

Principles

  • Reuse existing package managers as much as possible such as HomeBrew, Chocolatey, apt-get, yum, etc.