2009-11-25 2 views
0

Я хотел бы добавить много файлов в один файл Makefile.am в разделе xxx_SOURCES = .... Есть ли способ использовать типичные расширения оболочки там? То, что я ищу является рабочим эквивалент:Расширение шаблона Automake

xxx_SOURCES = xxx.c $(top_builddir)/src/{aaa,bbb,ccc}.c 

ответ

1

1) Там это не способ сделать это в переносном синтаксисе Make (ответ ephemient будет работать только с GNU Make) 2) Нет никакого способа сделать это с помощью Automake. (Хотя эта функция не должна быть слишком трудно осуществить тем, кто в ней нуждается ...)

Лично я не вижу преимуществ использования

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

над

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

Я считаю, что первое более загадочное, и оно не является grepable (например, чтобы ответить на вопрос ", который Makefile упоминает foo.c?").

1

Я не знаю, если это лучший способ, но это то, что я всегда делал:

xxx_SOURCES = xxx.c $(shell echo $(top_builddir)/src/{aaa,bbb,ccc}.c) 
+0

Прохладный, но кажется уродливым взломом ... Я надеюсь, что кто-то знает лучшее решение :) – viraptor

+0

Это решение работает только с GNU Make и полностью обходит механизмы automake. Automake ничего не знает о расширении имен файлов (поэтому во всех случаях он не сможет генерировать правильные правила). – adl

Смежные вопросы