В настоящее время я работаю над обновлением набора двоичных файлов c ++, каждый из которых использует свой собственный набор файлов Makefile, до чего-то более современного, основанного на Autotools.Однако я не могу понять, как включить стороннюю библиотеку (например, Oracle Instant Client) в процесс сборки / упаковки.
Это что-то действительно простое, что я пропустил?
Изменить, чтобы добавить больше деталей
Моя текущая среда сборки выглядит следующим образом:
/src
/lib
/libfoo
... source and header files
Makefile
/oci #Oracle Instant Client
... header and shared libraries
Makefile
/bin
/bar
... source and header files
Makefile
Makefile
/build
/bin
/lib
build.sh
Сегодня build.sh верхнего уровня выполняет следующие шаги:
- Запускает Makefile каждой библиотеки и копирует вывод в / build / lib
- Запускает Makefile каждого двоичного файла и копирует вывод в / build / bin
EachMakefile имеет набор жестко закодированных путей к различным каталогам.Излишне говорить, что это стало кошмаром для поддержания.Я начал тестировать автоинструменты, но я застрял, пытаясь найти эквивалент копирования /src/lib/oci/*.so в / build / lib для компиляции и компоновки во время компиляции.