Go to the first, previous, next, last section, table of contents.


Проверка отдельных программ

@anchor{Particular Programs}

Эти макросы выполняют проверку отдельных программ--- существуют ли они, а также, в некоторых случаях, проверку того, поддерживают ли эти программы определенные свойства.

Macro: AC_DECL_YYTEXT
Определяет YYTEXT_POINTER, если yytext имеет тип `char *', а не `char []'. Также устанавливает значение выходной переменной LEX_OUTPUT_ROOT равным основе имени файла, создаваемого лексическим генератором; обычно это значение равно `lex.yy', но иногда используется что-то другое. Эти результаты различаются в зависимости от того, используется ли lex или flex.

Macro: AC_PROG_AWK
Проверяет наличие mawk, gawk, nawk и awk, в таком порядке и устанавливает выходную переменную AWK, равную имени найденной программы. Сначала пытается найти mawk, который считается самой быстрой реализацией.

Macro: AC_PROG_CC
Определяет компилятор C, который надо использовать. Если переменная среды CC не установлена, то проверить наличие gcc и использовать cc, если gcc не найден. Устанавливает выходную переменную CC, равную имени найденного компилятора.

Если используется компилятор GNU C, то значение переменной GCC устанавливается в значение `yes', в противном случае оно остается пустым. Если выходная переменная CFLAGS еще не была установлена, то установить ее равной `-g -O2' для компилятора GNU C (`-O2' на системах, в которых GCC не понимает ключа `-g') или равной `-g' для других компиляторов.

Если используемый компилятор C не создает исполняемых файлов, которые могут запускаться в той системе, где исполняется configure, то переменной командного процессора cross_compiling присваивается значение `yes', в противном случае она получает значение `no'. Другими словами, здесь проверяется, отличается ли тип системы, для которой производится сборка, от системы, на которой производится сборка (тип целевой системы не относится к этому тесту). Для получения дополнительной информации о кросс-компиляции See section Ручная настройка.

Macro: AC_PROG_CC_C_O
Если компилятор C не может запускаться одновременно с ключами `-c' и `-o', то определяется переменная NO_MINUS_C_MINUS_O.

Macro: AC_PROG_CPP
Значение выходной переменной CPP устанавливается равным имени команды, которая запускает препроцессор C. Если `$CC -E' не работает, то используется `/lib/cpp'. Переносимым решением является запуск CPP только для обработки файлов с расширением `.c'.

Если текущим языком является C (see section Выбор языка), то многие специфические тесты косвенно используют значение переменной CPP, вызывая макросы AC_TRY_CPP, AC_CHECK_HEADER, AC_EGREP_HEADER или AC_EGREP_CPP.

Macro: AC_PROG_CXX
Определяет имя используемого компилятора C++. Проверяется, установлены ли переменные среды CXX или CCC (именно в таком порядке); если одна из них установлена, то значение выходной переменной CXX устанавливается равным значению этой переменной. В противном случае производится поиск компилятора C++, используя вероятные имена (c++, g++, gcc, CC, cxx и cc++). Если ни одна из этих проверок не прошла успешно, то в качестве последнего шанса значение переменной CXX устанавливается равным gcc.

Если используется компилятор GNU C++, то переменная командного процессора GXX получает значение `yes', иначе ей присваивается пустое значение. Если выходная переменная CXXFLAGS еще не была установлена, то ей присваивается значение `-g -O2' для компилятора GNU C++ (`-O2' на системах, где G++ не распознает ключ `-g') или значение `-g' для других систем.

Если используемый компилятор C++ не создает исполняемых файлов, которые могут запускаться в системе, где выполняется configure, то переменной командного процессора cross_compiling присваивается значение `yes', в противном случае устанавливается значение `no'. Другими словами, здесь проверяется, отличается ли тип системы, для которой производится сборка, от системы, на которой производится сборка (тип целевой системы не относится к этому тесту). Для получения дополнительной информации о кросс-компиляции See section Ручная настройка.

Macro: AC_PROG_CXXCPP

Значение выходной переменной CXXCPP устанавливается равным имени команды, которая запускает препроцессор C++. Если `$CXX -E' не работает, то используется `/lib/cpp'. Переносимым решением является запуск CXXCPP только для обработки файлов с расширениями `.c', `.C' или `.cc'.

Если текущим языком является C++ (see section Выбор языка), то многие специфические тесты косвенно используют значение переменной CXXCPP, вызывая AC_TRY_CPP, AC_CHECK_HEADER, AC_EGREP_HEADER или AC_EGREP_CPP.

Macro: AC_PROG_F77
Определяет имя используемого компилятора Fortran 77. Если переменная среды F77 не установлена, то производится проверка наличия программ g77, f77 and f2c, в описанном порядке. Имя найденной программы присваивается выходной переменной F77.

Если используется программа g77 (компилятор GNU Fortran 77), то макрос AC_PROG_F77 установит переменную G77 равной значению `yes', а в противном случае ей будет присвоено пустое значение. Если выходная переменная FFLAGS не была установлена в среде, то для g77 данной переменной присваивается значение `-g -02' (или `-O2' в тех случаях когда g77 не принимает ключ `-g'). Иначе, для всех остальных компиляторов Fortran 77, переменной FFLAGS присваивается значение `-g'.

Macro: AC_PROG_F77_C_O
Выполняет проверку того, что компилятор Fortran 77 может запускаться одновременно с ключами `-c' и `-o'. Если компилятор не принимает эти ключи одновременно, то определяется переменная F77_NO_MINUS_C_MINUS_O.

Macro: AC_PROG_GCC_TRADITIONAL
Добавляет строку `-traditional' к выходной переменной CC в том случае, если используемый компилятор GNU C и функции ioctl неправильно работают без нее. Обычно это случается, если в старой системе не были установлены исправленные заголовочные файлы. Поскольку свежие версии компилятора GNU C при установке исправляют заголовочные файлы, это становится менее распространенной проблемой.

Macro: AC_PROG_INSTALL
Устанавливает выходную переменную INSTALL, равной полному пути к совместимой с BSD программе install, если она найдена в текущей переменной PATH. Иначе, переменная INSTALL получает значение `dir/install-sh -c', проверяя каталоги, указанные в AC_CONFIG_AUX_DIR (или каталоги по умолчанию) для определения dir (see section Создание выходных файлов). Этот макрос также устанавливает переменные INSTALL_PROGRAM и INSTALL_SCRIPT равными значениям `${INSTALL}', а INSTALL_DATA значение `${INSTALL} -m 644'.

Этот макрос не замечает версии install о которых известно, что они не работают. Этот макрос также предпочитает использовать программу на языке C вместо скриптов командного процессора. Вместо `install-sh', он также может использовать `install.sh', но это имя устарело, поскольку некоторые программы make имеют правило, которое создает файл `install' из этого файла, если нет файла `Makefile'.

Копия `install-sh', которую вы можете использовать, поставляется с Autoconf. Если вы используете AC_PROG_INSTALL, то вы должны включить в свой дистрибутив либо `install-sh', либо `install.sh', иначе configure выдаст ошибку, сообщающую о том, что он не может найти эти файлы--- даже если система имеет нормальную программу install. Это мера безопасности, чтобы вы случайно не забыли про этот файл, тем самым лишив пользователя возможности установить ваш пакет в системе, в которой нет BSD-совместимой программы install.

Если вам необходимо использовать вашу собственную программу установки (поскольку она имеет возможности, отсутствующие в стандартных программах install), то нет никакой надобности в использовании макроса AC_PROG_INSTALL; просто поместите путь к вашей программе в ваши файлы `Makefile.in'.

Macro: AC_PROG_LEX
Если найдена программа flex, то выходная переменная LEX получает значение `flex', а LEXLIB -- значение `-lfl', в случае, если библиотека располагается в стандартном месте. Иначе переменная LEX получает значение `lex', а LEXLIB --- значение `-ll'.

Macro: AC_PROG_LN_S
Если команда `ln -s' работает в текущей файловой системе (и операционная, и файловая системы поддерживают символьные ссылки), то выходная переменная LN_S получает значение `ln -s', в противном случае значение равно `ln'.

Если ссылка помещается в другой, отличный от текущего, каталог, то смысл этой ссылки зависит от того, какая команда будет использована: `ln' или `ln -s'. Чтобы безбоязненно создавать ссылки, используя `$(LN_S)', либо определите, какая форма команды используется и соответственно измените ее аргументы, либо всегда запускайте ln в том каталоге, где будет создаваться ссылка.

Другими словами, не делайте

$(LN_S) foo /x/bar

Вместо этого выполняйте

(cd /x && $(LN_S) foo bar)

Macro: AC_PROG_RANLIB
Если команда ranlib найдена, то выходная переменная RANLIB получает значение равное `ranlib', в противном случае используется значение `:' (не делать ничего).

Macro: AC_PROG_YACC
Если найдена программа bison, то выходная переменная YACC получает значение `bison -y'. В противном случае, если найдена команда byacc, то переменная YACC получит значение `byacc'. В противном случае YACC устанавливается в `yacc'.


Go to the first, previous, next, last section, table of contents.