Pregunta

Yo escribo un Makefile, y quiero usar una regla genérica con comodines, como

%: bkp/%
    cp $< $@

Pero quería esta regla sea válida sólo para unos pocos archivos específicos. Quería definir una variable con la lista, por ejemplo

lista_de_archivos = foo.c bar.c zzz.c

y configure la regla por lo que sólo es válido para los archivos que se enumeran en esta variable. ¿Cómo lo hago?

¿Fue útil?

Solución

¿Quieres una regla de patrón estática:

file_list = foo.c bar.c zzz.c

$(file_list): %: bkp/%
        cp $< $@

La sintaxis es muy similar a la regla implícita patrón que estaba utilizando. Y sí, por lo general es más seguro (más predecible).

Otros consejos

Por supuesto, 5 minutos más tarde encontró la respuesta a mí mismo ...:)

Lo que necesitamos es una regla de patrón estático.

http://www.gnu.org/software/ make / manual / make.html # estático-patrón

Así que el ejemplo podría ser resuelto con

$(file_list) : % : bkp/%
    cp $< $@
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top