Node:C Compiler, Next:C++ Compiler, Previous:Generic Compiler Characteristics, Up:Compilers and Preprocessors
| AC_PROG_CC ([compiler-search-list]) | Macro | 
| Determine a C compiler to use.  If CCis not already set in the
environment, check forgccandcc, then for other C
compilers.  Set output variableCCto the name of the compiler
found.This macro may, however, be invoked with an optional first argument
which, if specified, must be a space separated list of C compilers to
search for.  This just gives the user an opportunity to specify an
alternative search list for the C compiler.  For example, if you didn't
like the default order, then you could invoke  AC_PROG_CC(cl egcs gcc cc) If using the GNU C compiler, set shell variable  | 
| AC_PROG_CC_C_O | Macro | 
| If the C compiler does not accept the -cand-ooptions
simultaneously, defineNO_MINUS_C_MINUS_O.  This macro actually
tests both the compiler found byAC_PROG_CC, and, if different,
the firstccin the path.  The test fails if one fails.  This
macro was created for GNU Make to choose the default C compilation
rule. | 
| AC_PROG_CC_STDC | Macro | 
| If the C compiler is not in ANSI C mode by default, try to add an
option to output variable CCto make it so.  This macro tries
various options that select ANSI C on some system or another.  It
considers the compiler to be in ANSI C mode if it handles function
prototypes correctly.If you use this macro, you should check after calling it whether the C
compiler has been set to accept ANSI C; if not, the shell variable
 | 
| AC_PROG_CPP | Macro | 
| Set output variable CPPto a command that runs the
C preprocessor.  If$CC -Edoesn't work,/lib/cppis used. 
It is only portable to runCPPon files with a.cextension.If the current language is C (see Language Choice), many of the
specific test macros use the value of  Some preprocessors don't indicate missing include files by the error status. For such preprocessors an internal variable is set that causes other macros to check the standard error from the preprocessor and consider the test failed if any warnings have been reported. | 
The following macros check for C compiler or machine architecture
features.  To check for characteristics not listed here, use
AC_TRY_COMPILE (see Examining Syntax) or AC_TRY_RUN
(see Run Time)
| AC_C_BIGENDIAN ([action-if-true], [action-if-false], [action-if-unknown]) | Macro | 
| If words are stored with the most significant byte first (like Motorola
and SPARC CPUs), execute action-if-true.  If words are stored with
the less significant byte first (like Intel and VAX CPUs), execute
action-if-false. This macro runs a test-case if endianness cannot be determined from the system header files. When cross-compiling the test-case is not run but grep'ed for some magic values. action-if-unknown is executed if the latter case fails to determine the byte sex of the host system. The default for action-if-true is to define
 | 
| AC_C_CONST | Macro | 
| If the C compiler does not fully support the ANSI C qualifier const, defineconstto be empty.  Some C compilers that do
not define__STDC__do supportconst; some compilers that
define__STDC__do not completely supportconst.  Programs
can simply useconstas if every C compiler supported it; for
those that don't, theMakefileor configuration header file will
define it as empty.Occasionally installers use a C++ compiler to compile C code, typically
because they lack a C compiler.  This causes problems with  const int foo; is valid in C but not in C++.  These differences unfortunately cannot be
papered over by defining  If  | 
| AC_C_VOLATILE | Macro | 
| If the C compiler does not understand the keyword volatile,
definevolatileto be empty.  Programs can simply usevolatileas if every C compiler supported it; for those that do
not, theMakefileor configuration header will define it as
empty.If the correctness of your program depends on the semantics of
 In general, the  | 
| AC_C_INLINE | Macro | 
| If the C compiler supports the keyword inline, do nothing. 
Otherwise defineinlineto__inline__or__inlineif it accepts one of those, otherwise defineinlineto be empty. | 
| AC_C_CHAR_UNSIGNED | Macro | 
| If the C type charis unsigned, define__CHAR_UNSIGNED__,
unless the C compiler predefines it. | 
| AC_C_LONG_DOUBLE | Macro | 
| If the C compiler supports a working long doubletype with more
range or precision than thedoubletype, defineHAVE_LONG_DOUBLE. | 
| AC_C_STRINGIZE | Macro | 
| If the C preprocessor supports the stringizing operator, define HAVE_STRINGIZE.  The stringizing operator is#and is
found in macros such as this:#define x(y) #y | 
| AC_C_PROTOTYPES | Macro | 
| Check to see if function prototypes are understood by the compiler.  If
so, define PROTOTYPESand__PROTOTYPES. 
In the case the compiler does not handle
prototypes, you should useansi2knr, which comes with the
Automake distribution, to unprotoize function definitions.  For
function prototypes, you should first definePARAMS:#ifndef PARAMS # if PROTOTYPES # define PARAMS(protos) protos # else /* no PROTOTYPES */ # define PARAMS(protos) () # endif /* no PROTOTYPES */ #endif then use it this way:
 size_t my_strlen PARAMS ((const char *)); | 
This macro also defines __PROTOTYPES; this is for the benefit of
header files that cannot use macros that infringe on user name space.
| AC_PROG_GCC_TRADITIONAL | Macro | 
| Add -traditionalto output variableCCif using the
GNU C compiler andioctldoes not work properly without-traditional.  That usually happens when the fixed header files
have not been installed on an old system.  Since recent versions of the
GNU C compiler fix the header files automatically when installed,
this is becoming a less prevalent problem. |