Skip to content

Installation

Each makefile is self-contained (the IaC makefiles pull in shared logic from the base/ directory). There are two ways to use one in your project.

Adding the repo as a git submodule and symlinking the makefile you want keeps it easy to pull in later fixes and improvements.

# from your project root, add the submodule
git submodule add https://github.com/serpro69/devex-makefile.git

# symlink the makefile you want into place, e.g. terraform-gcp:
ln -s devex-makefile/terraform-gcp/Makefile Makefile

# try it out
make help

Keep the base/ directory reachable

The IaC makefiles include files from devex-makefile/base/ using a path relative to the real makefile location. As long as you symlink the makefile out of a cloned/submoduled copy of this repo (so ../base/ still resolves), includes work automatically. Copying a single Makefile out on its own will break those includes — see Option 2.

To pull the latest changes later:

git submodule update --remote devex-makefile

Option 2 — download the raw file

You can also grab the raw makefile and drop it into your project:

curl -o Makefile \
  https://raw.githubusercontent.com/serpro69/devex-makefile/master/terraform-gcp/Makefile

You also need base/

The IaC makefiles are thin wrappers that include ../base/tf.mk. If you take this route, download the matching base/*.mk files too and preserve the relative directory layout (base/ next to the directory holding your Makefile), or the include will fail.

Requirements

Every makefile checks for its required tools on startup and prints an install link if something is missing. The exact list depends on the makefile — see each makefile's page for details. Common dependencies across the IaC makefiles:

Nerd Font (optional)

The help output and some prompts use Nerd Font glyphs. Everything works without one — the glyphs just render as tofu boxes.