SkillAgentSearch skills...

Rules.mk

Pre-defined rules to include in your Makefile (Golang, Docker, ...)

Install / Use

/learn @moul/Rules.mk
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

rules.mk

:warning: This project is no longer maintained :warning:

CircleCI License GitHub release CodeFactor Made by Manfred Touron

Project Status

After years of using and maintaining this project, I've come to realize that this approach adds more complexity than value. While the idea of having a shared Makefile library seemed appealing initially, in practice it:

  • Makes debugging harder when things go wrong
  • Adds an extra layer of abstraction that obscures what's actually happening
  • Creates a dependency that needs to be maintained and updated
  • Can break existing projects when updated

I now recommend using smaller, focused tools that can be called from Makefiles instead of relying on Makefile libraries. This approach is more modular, easier to understand, and provides better error messages.

The project will remain available for those who find it useful, but I won't be adding new features or fixing bugs.

Usage

Install

  1. Copy rules.mk to your repo (wget https://raw.githubusercontent.com/moul/rules.mk/master/rules.mk)
  2. Configure your project variables and import rules.mk from your Makefile
    GOPKG =         moul.io/golang-repo-template  # optional
    GOBINS =        . ./cmd/secondary-app         # optional
    DOCKER_IMAGE =  moul/golang-repo-template     # optional
    NPM_PACKAGES =  .                             # optional
    
    include rules.mk                              # required
    
  3. Profit

Minimal config

include rules.mk

Update

  1. Run make bumpdeps
  2. Profit

Examples

See the ./test directory

make help at the root of this repo

General commands:
  bumpdeps
  generate
  test

make help in test/docker

General commands:
  build
  test

make help in test/go-binary

General commands:
  build
  bumpdeps
  fmt
  generate
  install
  lint
  release
  test
  tidy
  unittest
  verify

make help in test/go-binary-and-docker

General commands:
  build
  bumpdeps
  fmt
  generate
  install
  lint
  release
  test
  tidy
  unittest
  verify

make help in test/go-library

General commands:
  build
  bumpdeps
  fmt
  generate
  lint
  test
  tidy
  unittest
  verify

License

© 2019-2020 Manfred Touron - Apache-2.0 License

Related Skills

View on GitHub
GitHub Stars4
CategoryDevelopment
Updated7mo ago
Forks0

Languages

Makefile

Security Score

82/100

Audited on Aug 26, 2025

No findings