Nel manuale:Come si può usare la funzione eval nel makefile?
La funzione eval è molto speciale: consente di definire nuovi costrutti makefile che non sono costanti; che sono il risultato di che valuta altre variabili e funzioni. L'argomento della funzione eval viene espanso, quindi i risultati di tale espansione vengono analizzati come sintassi del makefile .
È importante rendersi conto che l'argomento di valutazione viene espanso due volte; prima dalla funzione eval, quindi i risultati di tale espansione sono nuovamente espansi quando vengono analizzati come sintassi del makefile. Ciò significa che è possibile che fornisca livelli di escape extra per i caratteri "$" quando utilizza eval.
il "espanso due volte" mi confonde.
per esempio, creo 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))
come sarà la funzione eval essere ampliato?
"Come verrà estesa la funzione eval?" L'hai provato? – Beta