results of @file{configure}. The most typical task of
@file{config.status} is to @emph{instantiate} files.
+@acindex{CONFIG_@var{ITEMS}}
This section describes the common behavior of the four standard
instantiating macros: @code{AC_CONFIG_FILES}, @code{AC_CONFIG_HEADERS},
@code{AC_CONFIG_COMMANDS} and @code{AC_CONFIG_LINKS}. They all
the descriptions for those macros. @xref{Output Variable Index}, for a
complete list of output variables. @xref{Installation Directory
Variables}, for the list of the preset ones related to installation
-directories. Below are listed the other preset ones. They all are
+directories. Below are listed the other preset ones, many of which are
precious variables (@pxref{Setting Output Variables},
@code{AC_ARG_VAR}).
@c actress
@defvar CFLAGS
+@evindex CFLAGS
@ovindex CFLAGS
Debugging and optimization options for the C compiler. If it is not set
in the environment when @command{configure} runs, the default value is set
@end defvar
@defvar CPPFLAGS
+@evindex CPPFLAGS
@ovindex CPPFLAGS
Preprocessor options for the C, C++, and Objective C preprocessors and
compilers. If
@end defvar
@defvar CXXFLAGS
+@evindex CXXFLAGS
@ovindex CXXFLAGS
Debugging and optimization options for the C++ compiler. It acts like
@code{CFLAGS}, but for C++ instead of C.
@end defvar
@defvar ERLCFLAGS
+@evindex ERLCFLAGS
@ovindex ERLCFLAGS
Debugging and optimization options for the Erlang compiler. If it is not set
in the environment when @command{configure} runs, the default value is empty.
@end defvar
@defvar FCFLAGS
+@evindex FCFLAGS
@ovindex FCFLAGS
Debugging and optimization options for the Fortran compiler. If it
is not set in the environment when @command{configure} runs, the default
@end defvar
@defvar FFLAGS
+@evindex FFLAGS
@ovindex FFLAGS
Debugging and optimization options for the Fortran 77 compiler. If it
is not set in the environment when @command{configure} runs, the default
@end defvar
@defvar LDFLAGS
+@evindex LDFLAGS
@ovindex LDFLAGS
Options for the linker. If it is not set
in the environment when @command{configure} runs, the default value is empty.
@end defvar
@defvar LIBS
+@evindex LIBS
@ovindex LIBS
@option{-l} options to pass to the linker. The default value is empty,
but some Autoconf macros may prepend extra libraries to this variable if
@end defvar
@defvar OBJCFLAGS
+@evindex OBJCFLAGS
@ovindex OBJCFLAGS
Debugging and optimization options for the Objective C compiler. It
acts like @code{CFLAGS}, but for Objective C instead of C.
@defmac AC_PROG_YACC
@acindex{PROG_YACC}
+@evindex YACC
+@evindex YFLAGS
@ovindex YACC
If @code{bison} is found, set output variable @code{YACC} to @samp{bison
-y}. Otherwise, if @code{byacc} is found, set @code{YACC} to
@defmac AC_PROG_CC (@ovar{compiler-search-list})
@acindex{PROG_CC}
+@evindex CC
+@evindex CFLAGS
@ovindex CC
@ovindex CFLAGS
Determine a C compiler to use. If @code{CC} is not already set in the
@defmac AC_PROG_CPP
@acindex{PROG_CPP}
+@evindex CPP
@ovindex CPP
Set output variable @code{CPP} to a command that runs the
C preprocessor. If @samp{$CC -E} doesn't work, @file{/lib/cpp} is used.
@defmac AC_PROG_CXX (@ovar{compiler-search-list})
@acindex{PROG_CXX}
+@evindex CXX
+@evindex CXXFLAGS
@ovindex CXX
@ovindex CXXFLAGS
Determine a C++ compiler to use. Check whether the environment variable
@defmac AC_PROG_CXXCPP
@acindex{PROG_CXXCPP}
+@evindex CXXCPP
@ovindex CXXCPP
Set output variable @code{CXXCPP} to a command that runs the C++
preprocessor. If @samp{$CXX -E} doesn't work, @file{/lib/cpp} is used.
@defmac AC_PROG_OBJC (@ovar{compiler-search-list})
@acindex{PROG_OBJC}
+@evindex OBJC
+@evindex OBJCFLAGS
@ovindex OBJC
@ovindex OBJCFLAGS
Determine an Objective C compiler to use. If @code{OBJC} is not already
@defmac AC_PROG_OBJCPP
@acindex{PROG_OBJCPP}
+@evindex OBJCPP
@ovindex OBJCPP
Set output variable @code{OBJCPP} to a command that runs the Objective C
preprocessor. If @samp{$OBJC -E} doesn't work, @file{/lib/cpp} is used.
@defmac AC_ERLANG_PATH_ERLC (@ovar{value-if-not-found}, @dvar{path, $PATH})
@acindex{ERLANG_PATH_ERLC}
+@evindex ERLC
+@evindex ERLCFLAGS
@ovindex ERLC
@ovindex ERLCFLAGS
Determine an Erlang compiler to use. If @code{ERLC} is not already set in the
@defmac AC_ERLANG_PATH_ERL (@ovar{value-if-not-found}, @dvar{path, $PATH})
@acindex{ERLANG_PATH_ERL}
+@evindex ERL
@ovindex ERL
Determine an Erlang interpreter to use. If @code{ERL} is not already
set in the
@defmac AC_PROG_F77 (@ovar{compiler-search-list})
@acindex{PROG_F77}
+@evindex F77
+@evindex FFLAGS
@ovindex F77
@ovindex FFLAGS
Determine a Fortran 77 compiler to use. If @code{F77} is not already
@defmac AC_PROG_FC (@ovar{compiler-search-list}, @ovar{dialect})
@acindex{PROG_FC}
+@evindex FC
+@evindex FCFLAGS
@ovindex FC
@ovindex FCFLAGS
Determine a Fortran compiler to use. If @code{FC} is not already set in
@end example
@item _
+@evindex _
Many shells reserve @samp{$_} for various purposes, e.g., the name of
the last command executed.
Configure scripts use M4sh, which automatically unsets @env{CDPATH} if
possible, so you need not worry about this problem in those scripts.
+@item CLICOLOR_FORCE
+@evindex CLICOLOR_FORCE
+When this variable is set, some implementations of tools like
+@command{ls} attempt to add color to their output via terminal escape
+sequences, even when the output is not directed to a terminal, and can
+thus cause spurious failures in scripts. Configure scripts use M4sh,
+which automatically unsets this variable.
+
@item DUALCASE
@evindex DUALCASE
In the MKS shell, case statements and file name generation are
see @pxref{unset, , Limitations of Shell Builtins}).
@item FPATH
+@evindex FPATH
The Korn shell uses @env{FPATH} to find shell functions, so avoid
@env{FPATH} in portable scripts. @env{FPATH} is consulted after
@env{PATH}, but you still need to be wary of tests that use @env{PATH}
to find whether a command exists, since they might report the wrong
result if @env{FPATH} is also set.
+@item GREP_OPTIONS
+@evindex GREP_OPTIONS
+When this variable is set, some implementations of @command{grep} honor
+these options, even if the options include direction to enable colored
+output via terminal escape sequences, and the result can cause spurious
+failures when the output is not directed to a terminal. Configure
+scripts use M4sh, which automatically unsets this variable.
+
@item IFS
@evindex IFS
Long ago, shell scripts inherited @env{IFS} from the environment,
etc.)@: as described above.
@item LINENO
+@evindex LINENO
Most modern shells provide the current line number in @code{LINENO}.
Its value is the line number of the beginning of the current command.
M4sh, and hence Autoconf, attempts to execute @command{configure} with
@samp{$PWD}.
@item RANDOM
+@evindex RANDOM
Many shells provide @code{RANDOM}, a variable that returns a different
integer each time it is used. Most of the time, its value does not
change when it is not used, but on @sc{irix} 6.5 the value changes all
shouldn't rely on @code{$RANDOM} expanding to a nonempty string.
@item status
+@evindex status
This variable is an alias to @samp{$?} for @code{zsh} (at least 3.1.6),
hence read-only. Do not use it.
@end table
@c the anchor keeps the old node name, to try to avoid breaking links
@anchor{AC_FOO_IFELSE vs AC_TRY_FOO}
+@acindex{@var{ACT}_IFELSE}
+@acindex{TRY_@var{ACT}}
Since Autoconf 2.50, internal codes uses @code{AC_PREPROC_IFELSE},
@code{AC_COMPILE_IFELSE}, @code{AC_LINK_IFELSE}, and
@code{AC_RUN_IFELSE} on one hand and @code{AC_LANG_SOURCES},
@node Environment Variable Index
@appendixsec Environment Variable Index
-This is an alphabetical list of the environment variables that Autoconf
-checks.
+This is an alphabetical list of the environment variables that might
+influence Autoconf checks.
@printindex ev