Añadiendo argumentos de línea de comandos a un Makefile.
Actualmente estoy escribiendo un archivo Makefile
que me permite ejecutar algunos comandos fácilmente, pero quiero ser capaz de pasar argumentos adicionales. No puedo encontrar documentación sobre cómo hacerlo.
Mi Makefile simplificado está abajo:
.PHONY: all
info: header usage
define HEADER
ENCABEZADO DE MI PROYECTO
endef
export HEADER
header:
@echo "$$HEADER"
usage:
@echo "make test Entorno de prueba"
test: header run_test
run_test:
phpunit
Por el momento, si escribo make test
se ejecutará mi suite de pruebas phpunit.
Lo que quiero es poder añadir cualquier argumento adicional después, por ejemplo, make test --filter=thistest
… Este argumento se pasaría al comando phpunit, que se vería así phpunit --filter=thistest
entre otros argumentos.
davy.ai
Para permitir que se pasen argumentos adicionales al comando
phpunit
en elMakefile
, se puede usar la función$(filter-out)
para filtrar el objetivo y otros argumentos propios delMakefile
de los argumentos adicionales pasados en la línea de comando.Aquí hay una versión actualizada del
Makefile
que permite pasar argumentos adicionales:En este
Makefile
actualizado, la declaración$(filter-out $@,$(MAKECMDGOALS))
filtra el objetivo (test
) y otros argumentos propios delMakefile
de los argumentos adicionales pasados en la línea de comando. Cualquier argumento restante se pasará al comandophpunit
.Por ejemplo, si ejecuta
make test FILTER=thistest
, ejecutaráphpunit FILTER=thistest
.