@anchor{Particular Programs}
Эти макросы выполняют проверку отдельных программ--- существуют ли они, а также, в некоторых случаях, проверку того, поддерживают ли эти программы определенные свойства.
YYTEXT_POINTER, если yytext имеет тип
`char *', а не `char []'. Также устанавливает значение
выходной переменной LEX_OUTPUT_ROOT равным основе имени файла,
создаваемого лексическим генератором; обычно это значение равно
`lex.yy', но иногда используется что-то другое. Эти результаты
различаются в зависимости от того, используется ли lex или
flex.
mawk, gawk, nawk и awk, в таком
порядке и устанавливает выходную переменную AWK, равную имени найденной
программы. Сначала пытается найти mawk, который считается
самой быстрой реализацией.
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 Ручная настройка.
NO_MINUS_C_MINUS_O.
CPP устанавливается равным имени
команды, которая запускает препроцессор C. Если `$CC -E' не
работает, то используется `/lib/cpp'. Переносимым решением является
запуск CPP только для обработки файлов с расширением `.c'.
Если текущим языком является C (see section Выбор языка), то многие
специфические тесты косвенно используют значение переменной CPP,
вызывая макросы AC_TRY_CPP, AC_CHECK_HEADER,
AC_EGREP_HEADER или AC_EGREP_CPP.
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 Ручная настройка.
Значение выходной переменной 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.
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'.
F77_NO_MINUS_C_MINUS_O.
CC в
том случае, если используемый компилятор GNU C и функции ioctl
неправильно работают без нее. Обычно это
случается, если в старой системе не были установлены исправленные
заголовочные файлы. Поскольку свежие версии компилятора GNU C при
установке исправляют заголовочные файлы, это становится менее
распространенной проблемой.
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'.
flex, то выходная переменная LEX
получает значение `flex', а LEXLIB -- значение `-lfl', в
случае, если библиотека располагается в стандартном месте. Иначе
переменная LEX получает значение `lex', а LEXLIB ---
значение `-ll'.
LN_S получает значение `ln -s', в
противном случае значение равно `ln'.
Если ссылка помещается в другой, отличный от текущего, каталог, то смысл
этой ссылки зависит от того, какая команда будет использована: `ln' или
`ln -s'. Чтобы безбоязненно создавать ссылки, используя
`$(LN_S)', либо определите, какая форма команды используется и
соответственно измените ее аргументы, либо всегда запускайте ln в
том каталоге, где будет создаваться ссылка.
Другими словами, не делайте
$(LN_S) foo /x/bar
Вместо этого выполняйте
(cd /x && $(LN_S) foo bar)
ranlib найдена, то выходная переменная
RANLIB получает значение равное `ranlib', в противном случае
используется значение `:' (не делать ничего).
bison, то выходная переменная YACC
получает значение `bison -y'. В противном случае, если найдена команда
byacc, то переменная YACC получит значение `byacc'. В
противном случае YACC устанавливается в `yacc'.
Go to the first, previous, next, last section, table of contents.