2010-01-23 7 views
4

Я пытаюсь отредактировать скрипт configure, который будет выполнять этот кусок кода, если он выше версии Automake x.xx, и если это не так, он выполняет другую часть код.проверить automake/autoconf версию в скрипте configure

Итак, мне нужна версия, чтобы быть 1,10 или выше, а затем, когда это имеет место, я хочу сделать это:

m4_rename_force([glibcxx_PRECIOUS],[_AC_ARG_VAR_PRECIOUS]) 

И, в противном случае:

m4_rename([glibcxx_PRECIOUS],[_AC_ARG_VAR_PRECIOUS]) 

Так что я бы предположить, это будет выглядеть примерно так (в configure.in):

if test GET_AUTOMAKE_VERSION >= 1.10; then 
    m4_rename_force([glibcxx_PRECIOUS],[_AC_ARG_VAR_PRECIOUS]) 
else 
    m4_rename([glibcxx_PRECIOUS],[_AC_ARG_VAR_PRECIOUS]) 
fi 

Кроме того, я должен проверить на AUTOCONF O r automake версия? Возможно, оба?

ответ

1

Для тестирования версии autoconf я думаю, что что-то вроде этого будет работать.

m4_version_prereq (1.10, 
    m4_rename_force([glibcxx_PRECIOUS],[_AC_ARG_VAR_PRECIOUS]), 
    m4_rename([glibcxx_PRECIOUS],[_AC_ARG_VAR_PRECIOUS]) 
) 

Я не знаю, как сделать то же самое для automake.

+0

Кажется не работает. Нет синтаксических ошибок или чего-то еще, но это дает мне ошибку, которую я обычно получаю, если просто использую m4_rename. –

4

Невозможно проверить версию automake во время настройки. Сценарий configure запускается долго после automake и может работать на ящике, на котором automake не установлен вообще. Напишите ваш configure.ac (не configure.in), чтобы использовать современный automake. Разработчик, который запускает autoconf для создания скрипта configure, должен иметь современный automake. Пользователь, который вызывает скрипт configure, вообще не должен устанавливать какие-либо из установленных автозапуска.