# 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)
