* doc/autoconf.texi (Concept Index): New section.
Various entries added.
(Typedefs): Renamed as...
(Types): this. Pay attention to not limiting the documentation to
the typedefs.
(Particular Types): Mention the equivalent generic test.
Promote the GNU coding style at various places.
+2000-02-08 Akim Demaille <akim@epita.fr>
+
+ Introduce a concept index, and update a bit the documentation.
+
+ * doc/autoconf.texi (Concept Index): New section.
+ Various entries added.
+ (Typedefs): Renamed as...
+ (Types): this. Pay attention to not limiting the documentation to
+ the typedefs.
+ (Particular Types): Mention the equivalent generic test.
+ Promote the GNU coding style at various places.
+
2000-02-08 Akim Demaille <akim@epita.fr>
Revamp the autoupdate/AC_OBSOLETE chain. All the details are
#undef MAX
#define MAX(x, y) ((x) > (y) ? (x) : (y))
int
-main()
+main ()
{
gid_t gidset[NGID];
int i, n;
])# AC_TYPE_GETGROUPS
-
+# AC_TYPE_UID_T
+# -------------
+# FIXME: Rewrite using AC_CHECK_TYPE.
AC_DEFUN(AC_TYPE_UID_T,
[AC_CACHE_CHECK(for uid_t in sys/types.h, ac_cv_type_uid_t,
[AC_EGREP_HEADER(uid_t, sys/types.h,
fi
])
+# FIXME: AU_DEFUN these guys?
AC_DEFUN(AC_TYPE_SIZE_T,
[AC_CHECK_TYPE(size_t, unsigned)])
* Output Variable Index:: Index of variables set in output files
* Preprocessor Symbol Index:: Index of C preprocessor symbols defined
* Macro Index:: Index of Autoconf macros
+* Concept Index:: General index
@detailmenu --- The Detailed Node Listing ---
* Header Files:: Header files that might be missing
* Declarations:: Declarations that may be missing
* Structures:: Structures or members that might be missing
-* Typedefs:: @code{typedef}s that might be missing
+* Types:: Types that might be missing
* C Compiler Characteristics::
* Fortran 77 Compiler Characteristics::
* System Services:: Operating system services
* Particular Structures:: Macros to check for certain structure members
* Generic Structures:: How to find other structure members
-Typedefs
+Types
-* Particular Typedefs:: Special handling to find certain types
-* Generic Typedefs:: How to find other types
+* Particular Types:: Special handling to find certain types
+* Generic Types:: How to find other types
Writing Tests
* Optional Features:: Selecting optional features
* System Type:: Specifying the system type
* Sharing Defaults:: Setting site-wide defaults for @code{configure}
-* Environment Variables:: Defining environment variables.
+* Environment Variables:: Defining environment variables
* Operation Controls:: Changing how @code{configure} runs
Questions About Autoconf
@node Making configure Scripts, Setup, Introduction, Top
@chapter Making @code{configure} Scripts
+@cindex @file{aclocal.m4}
+@cindex @code{configure}
The configuration scripts that Autoconf produces are by convention
called @code{configure}. When run, @code{configure} creates several
@node Invoking autoscan, Invoking ifnames, Writing configure.in, Making configure Scripts
@section Using @code{autoscan} to Create @file{configure.in}
+@cindex @code{autoscan}
The @code{autoscan} program can help you create a @file{configure.in}
file for a software package. @code{autoscan} examines source files in
@node Invoking ifnames, Invoking autoconf, Invoking autoscan, Making configure Scripts
@section Using @code{ifnames} to List Conditionals
+@cindex @code{ifnames}
@code{ifnames} can help when writing a @file{configure.in} for a
software package. It prints the identifiers that the package already
@node Invoking autoconf, Invoking autoreconf, Invoking ifnames, Making configure Scripts
@section Using @code{autoconf} to Create @code{configure}
+@cindex @code{autoconf}
To create @code{configure} from @file{configure.in}, run the
@code{autoconf} program with no arguments. @code{autoconf} processes
@node Invoking autoreconf, , Invoking autoconf, Making configure Scripts
@section Using @code{autoreconf} to Update @code{configure} Scripts
+@cindex @code{autoreconf}
If you have a lot of Autoconf-generated @code{configure} scripts, the
@code{autoreconf} program can save you some work. It runs
@node Configuration Headers, Subdirectories, Makefile Substitutions, Setup
@section Configuration Header Files
+@cindex Configuration Header
+@cindex @file{config.h}
When a package tests more than a few C preprocessor symbols, the command
lines to pass @samp{-D} options to the compiler can get quite long.
@node Header Templates, Invoking autoheader, Configuration Headers, Configuration Headers
@subsection Configuration Header Templates
+@cindex Configuration Header Template
+@cindex @file{config.h.in}
Your distribution should contain a template file that looks as you want
the final header file to look, including comments, with @code{#undef}
use @code{autoheader} to generate it, see @ref{Invoking autoheader}.
-@node Invoking autoheader,, Header Templates, Configuration Headers
+@node Invoking autoheader, , Header Templates, Configuration Headers
@subsection Using @code{autoheader} to Create @file{config.h.in}
+@cindex @code{autoheader}
The @code{autoheader} program can create a template file of C
* Header Files:: Header files that might be missing
* Declarations:: Declarations that may be missing
* Structures:: Structures or members that might be missing
-* Typedefs:: @code{typedef}s that might be missing
+* Types:: Types that might be missing
* C Compiler Characteristics::
* Fortran 77 Compiler Characteristics::
* System Services:: Operating system services
@node Alternative Programs, Libraries, Existing Tests, Existing Tests
@section Alternative Programs
+@cindex Programs, checking
These macros check for the presence or behavior of particular programs.
They are used to choose between several alternative programs and to
@node Libraries, Library Functions, Alternative Programs, Existing Tests
@section Library Files
+@cindex Library, checking
The following macros check for the presence of certain C, C++ or Fortran
77 library archive files.
@node Particular Functions, Generic Functions, Library Functions, Library Functions
@subsection Particular Function Checks
+@cindex Function, checking
These macros check for particular C functions---whether they exist, and
in some cases how they respond when given certain arguments.
@node Header Files, Declarations, Library Functions, Existing Tests
@section Header Files
+@cindex Header, checking
The following macros check for the presence of certain C header files.
If there is no macro specifically defined to check for a header file you need,
@node Declarations, Structures, Header Files, Existing Tests
@section Declarations
+@cindex Declaration, checking
The following macros check for the declaration of variables and
functions. If there is no macro specifically defined to check for a
@end defmac
-@node Structures, Typedefs, Declarations, Existing Tests
+@node Structures, Types, Declarations, Existing Tests
@section Structures
+@cindex Structure, checking
The following macros check for the presence of certain members in C
structures. If there is no macro specifically defined to check for a
@end defmac
-@node Typedefs, C Compiler Characteristics, Structures, Existing Tests
-@section Typedefs
+@node Types, C Compiler Characteristics, Structures, Existing Tests
+@section Types
-The following macros check for C typedefs. If there is no macro
-specifically defined to check for a typedef you need, and you don't need
-to check for any special properties of it, then you can use a general
-typedef check macro.
+The following macros check for C types, either builtin or typedefs. If
+there is no macro specifically defined to check for a type you need, and
+you don't need to check for any special properties of it, then you can
+use a general type check macro.
@menu
-* Particular Typedefs:: Special handling to find certain types
-* Generic Typedefs:: How to find other types
+* Particular Types:: Special handling to find certain types
+* Generic Types:: How to find other types
@end menu
-@node Particular Typedefs, Generic Typedefs, Typedefs, Typedefs
-@subsection Particular Typedef Checks
+@node Particular Types, Generic Types, Types, Types
+@subsection Particular Type Checks
-These macros check for particular C typedefs in @file{sys/types.h} and
-@file{stdlib.h} (if it exists).
+These macros check for particular C types in @file{sys/types.h},
+@file{stdlib.h} and others, if they exist.
@defmac AC_TYPE_GETGROUPS
@maindex TYPE_GETGROUPS
@defmac AC_TYPE_MODE_T
@maindex TYPE_MODE_T
@cvindex mode_t
-If @code{mode_t} is not defined, define @code{mode_t} to be @code{int}.
+Equivalent to @samp{AC_CHECK_TYPE(mode_t, int)}.
@end defmac
@defmac AC_TYPE_OFF_T
@maindex TYPE_OFF_T
@cvindex off_t
-If @code{off_t} is not defined, define @code{off_t} to be @code{long}.
+Equivalent to @samp{AC_CHECK_TYPE(off_t, long)}.
@end defmac
@defmac AC_TYPE_PID_T
@maindex TYPE_PID_T
@cvindex pid_t
-If @code{pid_t} is not defined, define @code{pid_t} to be @code{int}.
+Equivalent to @samp{AC_CHECK_TYPE(pid_t, int)}.
@end defmac
@defmac AC_TYPE_SIGNAL
@defmac AC_TYPE_SIZE_T
@maindex TYPE_SIZE_T
@cvindex size_t
-If @code{size_t} is not defined, define @code{size_t} to be
-@code{unsigned}.
+Equivalent to @samp{AC_CHECK_TYPE(size_t, unsigned)}.
@end defmac
@defmac AC_TYPE_UID_T
@code{gid_t} to be @code{int}.
@end defmac
-@node Generic Typedefs, , Particular Typedefs, Typedefs
-@subsection Generic Typedef Checks
+@node Generic Types, , Particular Types, Types
+@subsection Generic Type Checks
-These macros are used to check for typedefs not covered by the
-particular test macros.
+These macros are used to check for types not covered by the particular
+test macros.
@defmac AC_CHECK_TYPES ((@var{type}, @dots{}), @ovar{action-if-found}, @ovar{action-if-not-found}, @ovar{includes})
@maindex CHECK_TYPES
-@node C Compiler Characteristics, Fortran 77 Compiler Characteristics, Typedefs, Existing Tests
+@node C Compiler Characteristics, Fortran 77 Compiler Characteristics, Types, Existing Tests
@section C Compiler Characteristics
The following macros check for C compiler or machine architecture
@defmac AC_C_BIGENDIAN
@maindex C_BIGENDIAN
@cvindex WORDS_BIGENDIAN
+@cindex Endianness
If words are stored with the most significant byte first (like Motorola
and SPARC, but not Intel and VAX, CPUs), define @code{WORDS_BIGENDIAN}.
@end defmac
function prototypes, you should first define @code{PARAMS}:
@example
#ifndef PARAMS
-# if PROTOTYPES
-# define PARAMS(protos) protos
-# else /* no PROTOTYPES */
-# define PARAMS(protos) ()
-# endif /* no PROTOTYPES */
+# if PROTOTYPES
+# define PARAMS(protos) protos
+# else /* no PROTOTYPES */
+# define PARAMS(protos) ()
+# endif /* no PROTOTYPES */
#endif
@end example
then use it this way:
@example
#ifdef __cplusplus
-foo(int i)
+foo (int i)
#else
-foo(i) int i;
+foo (i) int i;
#endif
@end example
@example
#ifdef __cplusplus
-extern "C" void *malloc(size_t);
+extern "C" void *malloc (size_t);
#else
-char *malloc();
+char *malloc ();
#endif
@end example
Here is an example that uses the shell variable @code{fstype} to keep
track of whether the remaining cases need to be checked.
+@c FIXME: I hate this example, because it does not use the quotes
+@c properly, but it would be terrible to use quotes here. So? Should
+@c I just shut up, or advocate the right uses of (useless) quotes?
@example
@group
AC_MSG_CHECKING(how to get file system type)
@node Language Choice, , Multiple Cases, Writing Tests
@section Language Choice
+@cindex Language
Packages that use both C and C++ need to test features of both
compilers. Autoconf-generated @code{configure} scripts check for C
@node Caching Results, Printing Messages, Setting Output Variables, Results
@section Caching Results
+@cindex Cache
To avoid checking for the same features repeatedly in various
@code{configure} scripts (or repeated runs of one script),
@node Cache Variable Names, Cache Files, Caching Results, Caching Results
@subsection Cache Variable Names
+@cindex Cache variable
The names of cache variables should have the following format:
@node Invoking configure, Invoking config.status, Site Configuration, Top
@chapter Running @code{configure} Scripts
+@cindex @code{configure}
Below are instructions on how to configure a package that uses a
@code{configure} script, suitable for inclusion as an @file{INSTALL}
@node Invoking config.status, Questions, Invoking configure, Top
@chapter Recreating a Configuration
+@cindex @code{config.status}
The @code{configure} script creates a file named @file{config.status},
which actually configures, or @dfn{instantiates}, the template files.
@node Invoking autoupdate, Changed Results, Changed Macros, Upgrading
@section Using @code{autoupdate} to Modernize @code{configure}
+@cindex @code{autoupdate}
The @code{autoupdate} program updates a @file{configure.in} file that
calls Autoconf macros by their old names to use the current macro names.
@printindex cv
-@node Macro Index, , Preprocessor Symbol Index, Top
+@node Macro Index, Concept Index, Preprocessor Symbol Index, Top
@unnumbered Macro Index
This is an alphabetical list of the Autoconf macros. To make the list
@printindex ma
+@node Concept Index, , Macro Index, Top
+@unnumbered Concept Index
+
+@c FIXME: Find some nice wording to introduce this section.
+
+@printindex cp
+
@contents
@bye
* Output Variable Index:: Index of variables set in output files
* Preprocessor Symbol Index:: Index of C preprocessor symbols defined
* Macro Index:: Index of Autoconf macros
+* Concept Index:: General index
@detailmenu --- The Detailed Node Listing ---
* Header Files:: Header files that might be missing
* Declarations:: Declarations that may be missing
* Structures:: Structures or members that might be missing
-* Typedefs:: @code{typedef}s that might be missing
+* Types:: Types that might be missing
* C Compiler Characteristics::
* Fortran 77 Compiler Characteristics::
* System Services:: Operating system services
* Particular Structures:: Macros to check for certain structure members
* Generic Structures:: How to find other structure members
-Typedefs
+Types
-* Particular Typedefs:: Special handling to find certain types
-* Generic Typedefs:: How to find other types
+* Particular Types:: Special handling to find certain types
+* Generic Types:: How to find other types
Writing Tests
* Optional Features:: Selecting optional features
* System Type:: Specifying the system type
* Sharing Defaults:: Setting site-wide defaults for @code{configure}
-* Environment Variables:: Defining environment variables.
+* Environment Variables:: Defining environment variables
* Operation Controls:: Changing how @code{configure} runs
Questions About Autoconf
@node Making configure Scripts, Setup, Introduction, Top
@chapter Making @code{configure} Scripts
+@cindex @file{aclocal.m4}
+@cindex @code{configure}
The configuration scripts that Autoconf produces are by convention
called @code{configure}. When run, @code{configure} creates several
@node Invoking autoscan, Invoking ifnames, Writing configure.in, Making configure Scripts
@section Using @code{autoscan} to Create @file{configure.in}
+@cindex @code{autoscan}
The @code{autoscan} program can help you create a @file{configure.in}
file for a software package. @code{autoscan} examines source files in
@node Invoking ifnames, Invoking autoconf, Invoking autoscan, Making configure Scripts
@section Using @code{ifnames} to List Conditionals
+@cindex @code{ifnames}
@code{ifnames} can help when writing a @file{configure.in} for a
software package. It prints the identifiers that the package already
@node Invoking autoconf, Invoking autoreconf, Invoking ifnames, Making configure Scripts
@section Using @code{autoconf} to Create @code{configure}
+@cindex @code{autoconf}
To create @code{configure} from @file{configure.in}, run the
@code{autoconf} program with no arguments. @code{autoconf} processes
@node Invoking autoreconf, , Invoking autoconf, Making configure Scripts
@section Using @code{autoreconf} to Update @code{configure} Scripts
+@cindex @code{autoreconf}
If you have a lot of Autoconf-generated @code{configure} scripts, the
@code{autoreconf} program can save you some work. It runs
@node Configuration Headers, Subdirectories, Makefile Substitutions, Setup
@section Configuration Header Files
+@cindex Configuration Header
+@cindex @file{config.h}
When a package tests more than a few C preprocessor symbols, the command
lines to pass @samp{-D} options to the compiler can get quite long.
@node Header Templates, Invoking autoheader, Configuration Headers, Configuration Headers
@subsection Configuration Header Templates
+@cindex Configuration Header Template
+@cindex @file{config.h.in}
Your distribution should contain a template file that looks as you want
the final header file to look, including comments, with @code{#undef}
use @code{autoheader} to generate it, see @ref{Invoking autoheader}.
-@node Invoking autoheader,, Header Templates, Configuration Headers
+@node Invoking autoheader, , Header Templates, Configuration Headers
@subsection Using @code{autoheader} to Create @file{config.h.in}
+@cindex @code{autoheader}
The @code{autoheader} program can create a template file of C
* Header Files:: Header files that might be missing
* Declarations:: Declarations that may be missing
* Structures:: Structures or members that might be missing
-* Typedefs:: @code{typedef}s that might be missing
+* Types:: Types that might be missing
* C Compiler Characteristics::
* Fortran 77 Compiler Characteristics::
* System Services:: Operating system services
@node Alternative Programs, Libraries, Existing Tests, Existing Tests
@section Alternative Programs
+@cindex Programs, checking
These macros check for the presence or behavior of particular programs.
They are used to choose between several alternative programs and to
@node Libraries, Library Functions, Alternative Programs, Existing Tests
@section Library Files
+@cindex Library, checking
The following macros check for the presence of certain C, C++ or Fortran
77 library archive files.
@node Particular Functions, Generic Functions, Library Functions, Library Functions
@subsection Particular Function Checks
+@cindex Function, checking
These macros check for particular C functions---whether they exist, and
in some cases how they respond when given certain arguments.
@node Header Files, Declarations, Library Functions, Existing Tests
@section Header Files
+@cindex Header, checking
The following macros check for the presence of certain C header files.
If there is no macro specifically defined to check for a header file you need,
@node Declarations, Structures, Header Files, Existing Tests
@section Declarations
+@cindex Declaration, checking
The following macros check for the declaration of variables and
functions. If there is no macro specifically defined to check for a
@end defmac
-@node Structures, Typedefs, Declarations, Existing Tests
+@node Structures, Types, Declarations, Existing Tests
@section Structures
+@cindex Structure, checking
The following macros check for the presence of certain members in C
structures. If there is no macro specifically defined to check for a
@end defmac
-@node Typedefs, C Compiler Characteristics, Structures, Existing Tests
-@section Typedefs
+@node Types, C Compiler Characteristics, Structures, Existing Tests
+@section Types
-The following macros check for C typedefs. If there is no macro
-specifically defined to check for a typedef you need, and you don't need
-to check for any special properties of it, then you can use a general
-typedef check macro.
+The following macros check for C types, either builtin or typedefs. If
+there is no macro specifically defined to check for a type you need, and
+you don't need to check for any special properties of it, then you can
+use a general type check macro.
@menu
-* Particular Typedefs:: Special handling to find certain types
-* Generic Typedefs:: How to find other types
+* Particular Types:: Special handling to find certain types
+* Generic Types:: How to find other types
@end menu
-@node Particular Typedefs, Generic Typedefs, Typedefs, Typedefs
-@subsection Particular Typedef Checks
+@node Particular Types, Generic Types, Types, Types
+@subsection Particular Type Checks
-These macros check for particular C typedefs in @file{sys/types.h} and
-@file{stdlib.h} (if it exists).
+These macros check for particular C types in @file{sys/types.h},
+@file{stdlib.h} and others, if they exist.
@defmac AC_TYPE_GETGROUPS
@maindex TYPE_GETGROUPS
@defmac AC_TYPE_MODE_T
@maindex TYPE_MODE_T
@cvindex mode_t
-If @code{mode_t} is not defined, define @code{mode_t} to be @code{int}.
+Equivalent to @samp{AC_CHECK_TYPE(mode_t, int)}.
@end defmac
@defmac AC_TYPE_OFF_T
@maindex TYPE_OFF_T
@cvindex off_t
-If @code{off_t} is not defined, define @code{off_t} to be @code{long}.
+Equivalent to @samp{AC_CHECK_TYPE(off_t, long)}.
@end defmac
@defmac AC_TYPE_PID_T
@maindex TYPE_PID_T
@cvindex pid_t
-If @code{pid_t} is not defined, define @code{pid_t} to be @code{int}.
+Equivalent to @samp{AC_CHECK_TYPE(pid_t, int)}.
@end defmac
@defmac AC_TYPE_SIGNAL
@defmac AC_TYPE_SIZE_T
@maindex TYPE_SIZE_T
@cvindex size_t
-If @code{size_t} is not defined, define @code{size_t} to be
-@code{unsigned}.
+Equivalent to @samp{AC_CHECK_TYPE(size_t, unsigned)}.
@end defmac
@defmac AC_TYPE_UID_T
@code{gid_t} to be @code{int}.
@end defmac
-@node Generic Typedefs, , Particular Typedefs, Typedefs
-@subsection Generic Typedef Checks
+@node Generic Types, , Particular Types, Types
+@subsection Generic Type Checks
-These macros are used to check for typedefs not covered by the
-particular test macros.
+These macros are used to check for types not covered by the particular
+test macros.
@defmac AC_CHECK_TYPES ((@var{type}, @dots{}), @ovar{action-if-found}, @ovar{action-if-not-found}, @ovar{includes})
@maindex CHECK_TYPES
-@node C Compiler Characteristics, Fortran 77 Compiler Characteristics, Typedefs, Existing Tests
+@node C Compiler Characteristics, Fortran 77 Compiler Characteristics, Types, Existing Tests
@section C Compiler Characteristics
The following macros check for C compiler or machine architecture
@defmac AC_C_BIGENDIAN
@maindex C_BIGENDIAN
@cvindex WORDS_BIGENDIAN
+@cindex Endianness
If words are stored with the most significant byte first (like Motorola
and SPARC, but not Intel and VAX, CPUs), define @code{WORDS_BIGENDIAN}.
@end defmac
function prototypes, you should first define @code{PARAMS}:
@example
#ifndef PARAMS
-# if PROTOTYPES
-# define PARAMS(protos) protos
-# else /* no PROTOTYPES */
-# define PARAMS(protos) ()
-# endif /* no PROTOTYPES */
+# if PROTOTYPES
+# define PARAMS(protos) protos
+# else /* no PROTOTYPES */
+# define PARAMS(protos) ()
+# endif /* no PROTOTYPES */
#endif
@end example
then use it this way:
@example
#ifdef __cplusplus
-foo(int i)
+foo (int i)
#else
-foo(i) int i;
+foo (i) int i;
#endif
@end example
@example
#ifdef __cplusplus
-extern "C" void *malloc(size_t);
+extern "C" void *malloc (size_t);
#else
-char *malloc();
+char *malloc ();
#endif
@end example
Here is an example that uses the shell variable @code{fstype} to keep
track of whether the remaining cases need to be checked.
+@c FIXME: I hate this example, because it does not use the quotes
+@c properly, but it would be terrible to use quotes here. So? Should
+@c I just shut up, or advocate the right uses of (useless) quotes?
@example
@group
AC_MSG_CHECKING(how to get file system type)
@node Language Choice, , Multiple Cases, Writing Tests
@section Language Choice
+@cindex Language
Packages that use both C and C++ need to test features of both
compilers. Autoconf-generated @code{configure} scripts check for C
@node Caching Results, Printing Messages, Setting Output Variables, Results
@section Caching Results
+@cindex Cache
To avoid checking for the same features repeatedly in various
@code{configure} scripts (or repeated runs of one script),
@node Cache Variable Names, Cache Files, Caching Results, Caching Results
@subsection Cache Variable Names
+@cindex Cache variable
The names of cache variables should have the following format:
@node Invoking configure, Invoking config.status, Site Configuration, Top
@chapter Running @code{configure} Scripts
+@cindex @code{configure}
Below are instructions on how to configure a package that uses a
@code{configure} script, suitable for inclusion as an @file{INSTALL}
@node Invoking config.status, Questions, Invoking configure, Top
@chapter Recreating a Configuration
+@cindex @code{config.status}
The @code{configure} script creates a file named @file{config.status},
which actually configures, or @dfn{instantiates}, the template files.
@node Invoking autoupdate, Changed Results, Changed Macros, Upgrading
@section Using @code{autoupdate} to Modernize @code{configure}
+@cindex @code{autoupdate}
The @code{autoupdate} program updates a @file{configure.in} file that
calls Autoconf macros by their old names to use the current macro names.
@printindex cv
-@node Macro Index, , Preprocessor Symbol Index, Top
+@node Macro Index, Concept Index, Preprocessor Symbol Index, Top
@unnumbered Macro Index
This is an alphabetical list of the Autoconf macros. To make the list
@printindex ma
+@node Concept Index, , Macro Index, Top
+@unnumbered Concept Index
+
+@c FIXME: Find some nice wording to introduce this section.
+
+@printindex cp
+
@contents
@bye
#undef MAX
#define MAX(x, y) ((x) > (y) ? (x) : (y))
int
-main()
+main ()
{
gid_t gidset[NGID];
int i, n;
])# AC_TYPE_GETGROUPS
-
+# AC_TYPE_UID_T
+# -------------
+# FIXME: Rewrite using AC_CHECK_TYPE.
AC_DEFUN(AC_TYPE_UID_T,
[AC_CACHE_CHECK(for uid_t in sys/types.h, ac_cv_type_uid_t,
[AC_EGREP_HEADER(uid_t, sys/types.h,
fi
])
+# FIXME: AU_DEFUN these guys?
AC_DEFUN(AC_TYPE_SIZE_T,
[AC_CHECK_TYPE(size_t, unsigned)])