Skip to content
This repository was archived by the owner on Jul 28, 2025. It is now read-only.

moul/rules.mk

rules.mk

⚠️ This project is no longer maintained ⚠️

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

About

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

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •