Pregunta

Me gustaría incluir muchos archivos en un archivo Makefile.am en la parte xxx_SOURCES = ... . ¿Hay alguna forma de usar una expansión de shell típica allí? Lo que estoy buscando es un equivalente de trabajo para:

xxx_SOURCES = xxx.c $(top_builddir)/src/{aaa,bbb,ccc}.c
¿Fue útil?

Solución

1) No hay forma de hacerlo en la sintaxis Make portátil (la respuesta de efemient solo funcionará con Make GNU) 2) Tampoco hay forma de hacerlo usando Automake. (Aunque la función no debería ser demasiado difícil de implementar por alguien que la necesita ...)

Personalmente, realmente no veo la ventaja de usar

foo_SOURCES = subdir/{foo,bar,baz}.c

sobre

foo_SOURCES = \
  subdir/foo.c \
  subdir/bar.c \
  subdir/baz.c

Creo que el primero es más críptico, y no es grepable (por ejemplo, para responder la pregunta " que Makefile menciona foo.c ? ").

Otros consejos

No sé si es la mejor manera, pero esto es lo que siempre he hecho:

xxx_SOURCES = xxx.c $(shell echo $(top_builddir)/src/{aaa,bbb,ccc}.c)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top