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.
- AWS CLI
- AWS Cloudfront
- AWS Cloudwatch
- AWS IAM
- AWS Sagemaker
- Azure
- Azure CLI
- HomeBrew
- Cargo
- LLVM / Clang
- Curl
- Docker
- Git
- JQ
- GNU Make
- Next.js
- Node.js
- OpenNext
- OxiGraph
- pip
- pipx
- pnpm
- RDFox
- Rust
- Rustup
- Sops
- Terraform
- Terragrunt
- TFlint
- EKGF Use Case
- zip
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
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.
If you have "Chocolatey" installed you can simply use:
choco upgrade chocolatey
choco install make
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:
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.
- Reuse existing package managers as much as possible such as HomeBrew, Chocolatey, apt-get, yum, etc.