Использование автоинструментов для генерации специфичных для приложения файлов * .conf - PullRequest
2 голосов
/ 28 сентября 2011

Я новичок в использовании автоинструментов, так что извините, если это звучит немного по-базовому, но поиск в Google мало что показал.

Как мне сгенерировать специальный файл conf с помощью autotools.

Видя, что конфигурация на основе m4 содержит необходимые макросы и создает необходимые файлы.

Некоторая охота и чтение, кажется, подсказывают, что я мог бы сделать что-то вроде добавить:

AC_CONFIG_FILES ([appname.conf])

На мой configure.am.

Затем создайте файл appname.conf.in.

Мне неясно, как я заполняю пользовательские макросы, т.е.

LOG_DIR=@log_dir@
CACHE_DIR=@cache_dir@

до

Итак, когда запускается конфигурация, она выдает

LOG_DIR=/var/log
CACHE_DIR=/mycachedir

и т.д ...

1 Ответ

2 голосов
/ 28 сентября 2011

Похоже, что вам не хватает информации AC_SUBST, которая устанавливает замены.

например. в configure.ac:

TEST_SUB="hello world"
AC_SUBST(TEST_SUB)

AC_CONFIG_FILES(test.conf)

In test.conf.in:

TEST_VAR=@TEST_SUB@

Дает test.conf:

TEST_VAR=hello world

(Если вам интересно, посмотрите в файлах Makefile.in, которые генерирует autokeke, чтобы увидеть, как он использует этот механизм. AM_CONDITIONAL s превращаются в две вещи, по одной для каждого случая, одна из которых делается в комментарий заменой)

...