Вопрос

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

xxx_SOURCES = xxx.c $(top_builddir)/src/{aaa,bbb,ccc}.c
Это было полезно?

Решение

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

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

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

над

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

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

Другие советы

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

xxx_SOURCES = xxx.c $(shell echo $(top_builddir)/src/{aaa,bbb,ccc}.c)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top