Используя gnu autoconf, есть ли способ встроить в песочницу? - PullRequest
2 голосов
/ 28 февраля 2020

В данном случае я пытаюсь построить GPG. По сути, я хочу, чтобы все выходные данные сборки go находились в подкаталоге по моему выбору, а не устанавливались в моей действующей файловой системе.

Установка --prefix = path / to / my / sandbox отправляет вывод одной сборки, где я хочу, на go, но следующий этап сборки, который зависит от вывода предыдущего этапа сборки, не может найти этот вывод.

Пример:

$ cd libgpg-error-1.37
$ ./configure --prefix=/Users/falk/GpgSandbox/usr/local
$ make
$ make install
  (success: all output placed in /Users/falk/GpgSandbox/usr/local/)
$ cd ../libassuan-2.5.3
$ ./configure --prefix=/Users/falk/GpgSandbox/usr/local
...
configure: error: libgpg-error was not found
$

Есть ли другой вариант, который я мог бы передать ./configure, чтобы найти библиотеки в песочнице? Стоит ли строить внутри ВМ или контейнера docker?

1 Ответ

1 голос
/ 06 марта 2020

Большое спасибо @hyde за то, что он указал мне правильное направление. Решением было установить несколько переменных среды перед сборкой:

mkdir -p /Users/falk/GpgSandbox/usr/local/
export CPPFLAGS='-I/Users/falk/GpgSandbox/usr/local/include'
export LDFLAGS='-L/Users/falk/GpgSandbox/usr/local/lib'
export PATH="$PATH:/Users/falk/GpgSandbox/usr/local/bin"
cd libgpg-error-1.37/
./configure --prefix=/Users/falk/GpgSandbox/usr/local
make install
(etc.)
...