Hier ist eine generische Arbeitslösung, die auf @ Beta basiert
Ich benutze GNU Make 4.1 SHELL=/bin/bash
auf meinem Makefile, also YMMV!
Dies ermöglicht es uns, zusätzliche Argumente zu akzeptieren (indem wir nichts tun, wenn wir einen Job erhalten, der nicht übereinstimmt, anstatt einen Fehler auszulösen).
%:
@:
Und dies ist ein Makro, das die Argumente für uns erhält:
args = `arg="$(filter-out $@,$(MAKECMDGOALS))" && echo $${arg:-${1}}`
Hier ist ein Job, der diesen nennen könnte:
test:
@echo $(call args,defaultstring)
Das Ergebnis wäre:
$ make test
defaultstring
$ make test hi
hi
Hinweis! Sie sind möglicherweise besser dran, wenn Sie ein "Taskfile" verwenden, ein Bash-Muster, das ähnlich funktioniert, nur ohne die Nuancen von Maketools. Siehe https://github.com/adriancooney/Taskfile