проверьте версию automake/autoconf в скрипте configure

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

Итак, мне нужна версия 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 или automake? Возможно оба?


person Michael P.    schedule 23.01.2010    source источник


Ответы (2)


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

person William Pursell    schedule 31.01.2010

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

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

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

person Community    schedule 23.01.2010
comment
Не работает. Никаких синтаксических ошибок или чего-то еще, но это дает мне ошибку, которую я обычно получаю, если просто использую m4_rename. - person Michael P.; 25.01.2010