En el manual:¿Cómo se puede usar la función eval en makefile?
La función eval es muy especial: le permite definir nuevas construcciones makefile que no son constantes; que son el resultado de evaluando otras variables y funciones. El argumento para la función eval se expande, luego los resultados de esa expansión se analizan como sintaxis makefile.
Es importante darse cuenta de que el argumento eval se expande dos veces; primero por la función eval, luego los resultados de esa expansión son expandidos nuevamente cuando se analizan como sintaxis de archivo MAKE. Esto significa que es posible que necesite proporcionar niveles adicionales de escape para los caracteres "$" al utilizando eval.
"me expandí dos veces" me confunde.
por ejemplo, i crear un makefile:
define func
tmp = $(OBJPATH)/$(strip $1)
objs += $$(tmp)
$$(tmp) : $2
gcc $$^ -o [email protected]
endef
all : foo
$(eval $(call func, foo, 1.c))
cómo se ampliará la función eval?
"¿Cómo se ampliará la función eval?" ¿Lo has probado? – Beta