gawk: Configuration Philosophy

1 
1 B.2.4 The Configuration Process
1 -------------------------------
1 
1 This minor node is of interest only if you know something about using
1 the C language and Unix-like operating systems.
1 
1    The source code for 'gawk' generally attempts to adhere to formal
1 standards wherever possible.  This means that 'gawk' uses library
1 routines that are specified by the ISO C standard and by the POSIX
1 operating system interface standard.  The 'gawk' source code requires
1 using an ISO C compiler (the 1990 standard).
1 
1    Many Unix systems do not support all of either the ISO or the POSIX
1 standards.  The 'missing_d' subdirectory in the 'gawk' distribution
1 contains replacement versions of those functions that are most likely to
1 be missing.
1 
1    The 'config.h' file that 'configure' creates contains definitions
1 that describe features of the particular operating system where you are
1 attempting to compile 'gawk'.  The three things described by this file
1 are: what header files are available, so that they can be correctly
1 included, what (supposedly) standard functions are actually available in
1 your C libraries, and various miscellaneous facts about your operating
1 system.  For example, there may not be an 'st_blksize' element in the
1 'stat' structure.  In this case, 'HAVE_STRUCT_STAT_ST_BLKSIZE' is
1 undefined.
1 
1    It is possible for your C compiler to lie to 'configure'.  It may do
1 so by not exiting with an error when a library function is not
1 available.  To get around this, edit the 'custom.h' file.  Use an
1 '#ifdef' that is appropriate for your system, and either '#define' any
1 constants that 'configure' should have defined but didn't, or '#undef'
1 any constants that 'configure' defined and should not have.  The
1 'custom.h' file is automatically included by the 'config.h' file.
1 
1    It is also possible that the 'configure' program generated by
1 Autoconf will not work on your system in some other fashion.  If you do
1 have a problem, the 'configure.ac' file is the input for Autoconf.  You
1 may be able to change this file and generate a new version of
1 'configure' that works on your system (⇒Bugs for information on
1 how to report problems in configuring 'gawk').  The same mechanism may
1 be used to send in updates to 'configure.ac' and/or 'custom.h'.
1