URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 9703
[ Назад ]

Исходное сообщение
"Autotools: как сгенерить хидер с необходимыми путевыми именами?"

Отправлено Аноним , 10-Июл-13 08:39 
В проекте создается бинарник и подключаемые модули. Подключаемые модули будут в конечном итоге располагаться в каталогах, которые будут определены при запуске configure. Подскажите, каким образом и что надо задать для automake/autoconf, чтобы автоматически создавался хидер с макроопределением, в котором бы прописывался путь к каталогу, в который будут ставиться подключаемые модули.

Содержание

Сообщения в этом обсуждении
"Autotools: как сгенерить хидер с необходимыми путевыми именами?"
Отправлено Mr. Mistoffelees , 11-Июл-13 15:58 
Привет,

> В проекте создается бинарник и подключаемые модули. Подключаемые модули будут в конечном
> итоге располагаться в каталогах, которые будут определены при запуске configure. Подскажите,
> каким образом и что надо задать для automake/autoconf, чтобы автоматически создавался
> хидер с макроопределением, в котором бы прописывался путь к каталогу, в
> который будут ставиться подключаемые модули.

В configure.ac ставим нужную переменную, стоимость которой будет задана во время исполнения configure (в данном примере - через prefix, но можно организовать и через --with-blah=/...):

AM_CONFIG_HEADER([config.h])
BLAH_BLAH_DIR=$prefix/blah-blah
AC_DEFINE_UNQUOTED([BLAH_BLAH_DIR],["$BLAH_BLAH_DIR"],[Directory for storing blah-blah])

Далее в сырцах берем config.h и ползуемся из него нашей переменной:

#include "config.h"
int main() {
...
printf("%s\n", BLAH_BLAH_DIR);
...
}

WWell,


"Autotools: как сгенерить хидер с необходимыми путевыми именами?"
Отправлено Аноним , 12-Июл-13 09:56 
>[оверквотинг удален]
> BLAH_BLAH_DIR=$prefix/blah-blah
> AC_DEFINE_UNQUOTED([BLAH_BLAH_DIR],["$BLAH_BLAH_DIR"],[Directory for storing blah-blah])
> Далее в сырцах берем config.h и ползуемся из него нашей переменной:
> #include "config.h"
> int main() {
>  ...
>  printf("%s\n", BLAH_BLAH_DIR);
>  ...
> }
> WWell,

Т.е. я должен буду явно задавать значение prefix? Что-то типа configure --libexecdir=/usr/lib. Так?
Выходит я был в полшаге от успеха. Но думал, что по умолчанию prefix определится автоматически. В итоге у меня в config.h определялось что-то типа {prefix}/bla_bla/plugins