Неизвестное количество встроенных источников с помощью автозапчастей
У меня есть скрипт, который генерирует исходные файлы C++ с ранее неизвестным номером и именем, которые затем необходимо собрать в одну библиотеку. Пока что я делаю это с помощью простого (shell) цикла for в моем Makefile:
compile:
for f in `ls -1 *.cpp` ; do g++ -c ...
...
В каталоге не будет других исходных текстов на С ++, поэтому я просто скомпилирую все, что там есть.
Теперь я хочу изменить свою систему сборки на autoconf / automake, и мне интересно, каким будет "правильный" способ сделать это. Обучающие программы, которые я нашел, охватывают только случай, когда вы знаете количество и имена источников, которые будут сгенерированы.
Например, есть ли способ получить доступ к имени компилятора и ко всем флагам, которые autoconf / automake собрал для меня, чтобы я мог вставить их в свою собственную команду компиляции?
Заранее спасибо.
3 ответа
Я бы изменил скрипт для генерации Makefile.am
перечисляя все эти файлы явно.
Итак, у вас есть что-то вроде:
FOO_SCRIPT=script.sh
libfoo_la_SOURCES=foo.cpp bar.cpp baz.cpp
foo.cpp : foo.input
$(FOO_SCRIPT) $<
bar.cpp baz.cpp : bar.input
$(FOO_SCRIPT) $<
SRC= $(wildcard *.cpp)
OBJ= $(SRC:.cpp=.o)
[...]
target: $(OBJ)