Как настроить приложение, которое использует Autotools для сборки во внешний каталог? - PullRequest
0 голосов
/ 25 июня 2018

У меня есть приложение, которое использует Autotools (Autoconf, Automake и т. Д.), Которое встраивает объектные и двоичные файлы в каталог проекта.Это не удобно, я бы хотел иметь отдельный каталог для них, например, каталог "build".Т.е. мне нужна "теневая сборка".Кто-нибудь может посоветовать, как это можно сделать?

1 Ответ

0 голосов
/ 25 июня 2018

По умолчанию Autotools поддерживает сборку из источника, как описано в руководстве по Automake . Короче говоря, вы создаете каталог где угодно, в который должны попадать результаты сборки. Вы делаете это своим рабочим каталогом и запускаете оттуда скрипт configure проекта:

mkdir ~/the_project-build
cd  ~/the_project-build
~/the_project-1.2.3/configure
make
make install

Затем все созданные файлы должны идти в созданное вами дерево сборки, а не в дерево исходных текстов. Если хотите, корень дерева сборки может находиться в каталоге проекта.

Имейте в виду, однако, что

  1. Эта функция зависит от Automake и Autoconf вместе. Проекты, которые используют Autoconf без Automake, требуют некоторого ручного внимания, чтобы заставить их работать из внешних источников, и, по моему опыту, такие проекты часто не получают такого внимания.

  2. Существует ряд вещей, которые могут сделать сопровождающие проекта на основе Autotools, чтобы разрушить здание из исходного кода, поэтому вы не можете быть полностью уверены, что каждый проект Autotools может быть построен Таким образом, прямо из коробки.

  3. С другой стороны, Automake автоматически предоставляет цель «distcheck», которая, помимо прочего, тестирует сборку из исходного кода, поэтому разработчики пакетов имеют инструмент, предназначенный для обеспечения поддержки их проектов вне исходные сборки. Это повышает вероятность того, что любой конкретный проект на самом деле делает.

...