44 lines
2.0 KiB
Makefile
44 lines
2.0 KiB
Makefile
# Optional shorthand for the two standalone scripts. They run without it:
|
|
# `bash rigdeps.sh detect` and `bash rigmini.sh status` are the whole interface,
|
|
# and this file only spells those out so nobody has to guess them.
|
|
#
|
|
# Guessing is what went wrong before. A Makefile generated around these scripts
|
|
# invented `make mini` -> `rigmini.sh on`, a verb that does not exist, and a bare
|
|
# `rigdeps.sh` for "check and report", which actually installs. So every target
|
|
# here calls only a verb the script accepts, and ctrl/selftest.sh checks that.
|
|
#
|
|
# Works wherever the three files sit together — the scripts are found beside
|
|
# this Makefile, not in the current directory, so `make -f path/Makefile` works.
|
|
#
|
|
# Usage:
|
|
# make deps report the host and toolchain; changes nothing
|
|
# make deps install [dev] download, verify and install into ~/.local/bin
|
|
# make mem advertised memory and what caps it; safe
|
|
# make mem push allocates until it stops — not on a box you need
|
|
|
|
HERE := $(dir $(abspath $(lastword $(MAKEFILE_LIST))))
|
|
|
|
# Words after the target become the script's verb and arguments.
|
|
ARGS := $(wordlist 2,$(words $(MAKECMDGOALS)),$(MAKECMDGOALS))
|
|
ifneq ($(ARGS),)
|
|
$(eval $(ARGS):;@:)
|
|
.PHONY: $(ARGS)
|
|
endif
|
|
|
|
.DEFAULT_GOAL := help
|
|
.PHONY: help deps mem
|
|
|
|
help: ## list targets
|
|
@grep -hE '^[a-z][a-z-]*:.*?##' $(MAKEFILE_LIST) | sed 's/:.*##/\t/' | expand -t16
|
|
|
|
# Defaults to `detect`, not `install`: on a machine you are still evaluating,
|
|
# the bare command should report. Installing is a word you type.
|
|
deps: ## toolchain [detect|list|verify|install|fetch] (default detect)
|
|
bash $(HERE)rigdeps.sh $(or $(ARGS),detect)
|
|
|
|
# `mem`, matching the full rig's `make mem`, and deliberately NOT `mini`: that
|
|
# word already means "minimal footprint" in the projects that use this, and one
|
|
# name pointing at two jobs is how the invented target happened.
|
|
mem: ## memory and its caps [status|push|all] (default status)
|
|
bash $(HERE)rigmini.sh $(or $(ARGS),status)
|