LINUX.ORG.RU

Использование autotools в больших древовидных проектах

 


0

1

Поясните пожалуйста как поступать в случае сборки программы.библиотеки, исходные файлы которой распределены по достаточно большому количеству вложенных друг в друга директорий.

Надо ли в таких случаях писать один Makefile.am на верхнем уровне или как-то можно создать адекватный Makefile.am в каждой директории, описывающий зависимости сборки?

Всем спасибо.

З.Ы. QMake, CMake по объективным причинам не подходят.

В принципе, можно и так и так.

Вложенные каталоги указываются через SUBDIRS. Это будут рекурсивные вызовы make. Эти же каталоги могут иметь полностью свои configure.ac.

Если хочется в одном файле обрабатывать вложенные каталоги, то пригодится это и флаг AUTOMAKE_OPTIONS = subdir-objects (иначе все o-файлы будут в корне и могут затередь друг друга).

xaizek ★★★★★
()

Через SUBDIRS подключаются поддиректории, в каждой из которых лежит Makefile.am, в котором тоже может быть определено SUBDIRS и т.д. Ещё где-то в главном configure.ac нужно прописывать все имеющиеся поддиректории, чтобы он правильно сгенерил Makefile. В качестве образца можно посмотреть какой-либо open-source проект с древовидными подкаталогами.

DarthVadimius ★★★★
()
Ответ на: комментарий от LongLiveUbuntu

Какая именно кросскомпиляция? На CMake же тоже как-то можно организовать кросскомпиляцию через toolchain-файлы?

DarthVadimius ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.