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.
- Copy
rules.mk
to your repo (wget https://raw.githubusercontent.com/moul/rules.mk/master/rules.mk
) - Configure your project variables and import
rules.mk
from your MakefileGOPKG = 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
- Profit
include rules.mk
- Run
make bumpdeps
- Profit
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
© 2019-2020 Manfred Touron - Apache-2.0 License