LINUX.ORG.RU

История изменений

Исправление Shushundr, (текущая версия) :

Как configure передаёт $(prefix) в Makefile?

Хорошо было бы, чтобы где-нибудь в интернете просто лежал пример с ответом на вопрос именно с таким текстом. А сейчас есть только общие слова, что configure берёт файл Makefile.in и заменяет там все вхождения имён переменных вида @VARIABLE@ на значения этих переменных. Т.е. в Makefile.in хочется вписать что-то вроде

prefix=@prefix@

А пример не ищется.

То, как запускается ./configure командой

./configure --prefix=/usr

написано на каждому углу
но это и понятно, читателей больше, чем писателей.

«А искал ли ты на самом деле, или только написал о необходимости этого действия, а искать не стал?» - спросите вы меня.
Ну вот, что я нашел:
https://stackoverflow.com/questions/909151/how-do-i-pass-through-program-prefix-prefix-from-configure-to-one-of-the-child
Похоже? Похоже. Но примера в таком виде, как я хочу, там нет.

А ты возьми и просто попробуй, скажете вы.
Это, блин, долго. И психологически сложно. Одно дело - взять и сделать по учебнику, а другое сидеть и пробовать варианты из-за того, что документация - говно, а туториалов нет.

Вот в документации написано:

prefix
A prefix used in constructing the default values of the variables listed below. The default value of prefix should be /usr/local. When building the complete GNU system, the prefix will be empty and /usr will be a symbolic link to /. (If you are using Autoconf, write it as ‘@prefix@’.)
Running ‘make install’ with a different value of prefix from the one used to build the program should not recompile the program.

В генте последняя строчка очевидно нарушается. Потому что в ней EPREFIX засовывается в src_configure, и просто так выполнить src_install через emerge, а не ebuild нельзя.
Как задаётся значение по-умолчанию тоже непонятно (где-то в configure.ac?). Почему-то писать понятным образом авторы документации не умеют.

Исходная версия Shushundr, :

Как configure передаёт $(prefix) в Makefile?

Хорошо было бы, чтобы где-нибудь в интернете просто лежал пример с ответом на вопрос именно с таким текстом. А сейчас есть только общие слова, что configure берёт файл Makefile.in и заменяет там все вхождения имён переменных вида @VARIABLE@ на значения этих переменных. Т.е. в Makefile.in хочется вписать что-то вроде

prefix=@prefix@

А пример не ищется.

То, как запускается ./configure командой

./configure --prefix=/usr

написано на каждому углу
но это и понятно, читателей больше, чем писателей.

«А искал ли ты на самом деле, или только написал о необходимости этого действия, а искать не стал?» - спросите вы меня.
Ну вот, что я нашел:
https://stackoverflow.com/questions/909151/how-do-i-pass-through-program-prefix-prefix-from-configure-to-one-of-the-child
Похоже? Похоже. Но примера в таком виде, как я хочу, там нет.

А ты возьми и просто попробуй, скажете вы.
Это, блин, долго. И психологически сложно. Одно дело - взять и сделать по учебнику, а другое сидеть и пробовать варианты из-за того, что документация - говно, а туториалов нет.

Вот в документации написано:

prefix
A prefix used in constructing the default values of the variables listed below. The default value of prefix should be /usr/local. When building the complete GNU system, the prefix will be empty and /usr will be a symbolic link to /. (If you are using Autoconf, write it as ‘@prefix@’.)
Running ‘make install’ with a different value of prefix from the one used to build the program should not recompile the program.

В генте последняя строчка очевидно нарушается. Потому что в ней EPREFIX засовывается в src_configure, и просто так выполнить src_install через emerge, а не ebuild нельзя.
Как задаётся значение по-умолчанию тоже непонятно (где-то в configure.ac?). Почему-то писать понятным образом авторы документации не умеют.