\input texinfo @c -*-texinfo-*-
-@comment $Id: gnulib.texi,v 1.40 2007-05-01 22:37:10 haible Exp $
+@comment $Id: gnulib.texi,v 1.44 2007-09-09 13:20:45 haible Exp $
@comment %**start of header
@setfilename gnulib.info
@settitle GNU Gnulib
@syncodeindex fn cp
@syncodeindex pg cp
+@ifclear texi2html
+@firstparagraphindent insert
+@end ifclear
@comment %**end of header
-@set UPDATED $Date: 2007-05-01 22:37:10 $
+@set UPDATED $Date: 2007-09-09 13:20:45 $
@copying
This manual is for GNU Gnulib (updated @value{UPDATED}),
* Introduction::
* Invoking gnulib-tool::
* Miscellaneous Notes::
-* Header File Substitutes::
-* Function Substitutes::
-* Particular Modules:: Documentation of Individual Modules
-* Copying This Manual::
+* POSIX Substitutes Library:: Building as a separate substitutes library.
+* Header File Substitutes:: Overriding system headers.
+* Function Substitutes:: Replacing system functions.
+* Particular Modules:: Documentation of individual modules.
+* GNU Free Documentation License:: Copying and sharing this manual.
* Index::
@end menu
@itemize
@item Gnulib is hosted at Savannah:
@url{http://savannah.gnu.org/projects/gnulib}. Get the sources
- through git or CVS from there.
+ through Git or CVS from there.
@item The Gnulib home page:
@url{http://www.gnu.org/software/gnulib/}.
@end itemize
Gnulib provides copies of the GNU GPL, GNU LGPL, and GNU FDL licenses
in Texinfo form. (The master location is
-@url{http://www.gnu.org/licenses/}). These Texinfo documents have
-various node names and structures built into them; for your manual,
-you might like to change these. It's ok to do this, and a convenient
-way to do so is to use a context diff and the @option{--local-dir}
-option to @command{gnulib-tool}.
+@url{http://www.gnu.org/licenses/}). These Texinfo documents do not
+have any node names and structures built into them; for your manual,
+you should @code{@@include} them in an appropriate @code{@@node}.
+
+The conventional name for the GPL node is @samp{Copying} and for the FDL
+@samp{GNU Free Documentation License}. The LGPL doesn't seem to have
+a conventional node name.
Of course the license texts themselves should not be changed at all.
+
@node Build robot for gnulib
@section Build robot for gnulib
@end enumerate
+@node POSIX Substitutes Library
+@chapter Building the ISO C and POSIX Substitutes
+
+This section shows a radically different way to use Gnulib.
+
+You can extract the ISO C / POSIX substitutes part of gnulib by running
+the command
+@smallexample
+gnulib-tool --create-testdir --source-base=lib \
+ --dir=/tmp/posixlib `posix-modules`
+@end smallexample
+
+@noindent
+The command @samp{posix-modules} is found in the same directory as
+@code{gnulib-tool}.
+
+The resulting directory can be built on a particular platform,
+independently of the program being ported. Then you can configure and
+build any program, by setting @code{CPPFLAGS} and @code{LDFLAGS} at
+configure time accordingly: set @code{CPPFLAGS="-I.../posixlib/lib"}, plus
+any essential type definitions and flags that you find in
+@code{.../posixlib/config.h}, and set
+@code{LDFLAGS=".../posixlib/lib/libgnu.a"}.
+
+This way of using Gnulib is useful when you don't want to modify the program's
+source code, or when the program uses a mix between C and C++ sources
+(requiring separate builds of the @code{posixlib} for the C compiler and
+for the C++ compiler).
+
@node Header File Substitutes
@chapter ISO C and POSIX Header File Substitutes
fixed by Gnulib, and which (known) portability problems are not worked around
by Gnulib.
+The notation ``Gnulib module: ---'' means that Gnulib does not provide a
+module providing a substitute for the function. When the list
+``Portability problems not fixed by Gnulib'' is empty, such a module is
+not needed: No portability problems are known. Otherwise, it indicates
+that such a module would be useful but is not available: Noone so far
+found this function important enough to contribute a substitute for it.
+If you need this particular function, you may write to
+@code{<bug-gnulib at gnu dot org>}.
+
@menu
* FD_CLR::
* FD_ISSET::
* getcontext::
* getcwd::
* getdate::
+* getdelim::
* getegid::
* getenv::
* geteuid::
* gethostid::
* gethostname::
* getitimer::
+* getline::
* getlogin::
* getlogin_r::
* getmsg::
* sscanf::
* stat::
* statvfs::
+* stderr::
* stdin::
+* stdout::
* strcasecmp::
* strcat::
* strchr::
@include functions/getcontext.texi
@include functions/getcwd.texi
@include functions/getdate.texi
+@include functions/getdelim.texi
@include functions/getegid.texi
@include functions/getenv.texi
@include functions/geteuid.texi
@include functions/gethostid.texi
@include functions/gethostname.texi
@include functions/getitimer.texi
+@include functions/getline.texi
@include functions/getlogin.texi
@include functions/getlogin_r.texi
@include functions/getmsg.texi
@include functions/sscanf.texi
@include functions/stat.texi
@include functions/statvfs.texi
+@include functions/stderr.texi
@include functions/stdin.texi
+@include functions/stdout.texi
@include functions/strcasecmp.texi
@include functions/strcat.texi
@include functions/strchr.texi
@chapter Particular Modules
@menu
+* alloca::
+* alloca-opt::
* Quoting::
* error and progname::
* gcd::
* Supporting Relocation::
@end menu
+@node alloca
+@section alloca
+@findex alloca
+@include alloca.texi
+
+@node alloca-opt
+@section alloca-opt
+@findex alloca
+@include alloca-opt.texi
+
@include quote.texi
@include error.texi
@include gcd.texi
@include regexprops-generic.texi
-@node Copying This Manual
-@appendix Copying This Manual
-
-@menu
-* GNU Free Documentation License:: License for copying this manual.
-@end menu
+@node GNU Free Documentation License
+@appendix GNU Free Documentation License
@include fdl.texi
@printindex cp
@bye
+
+@c Local Variables:
+@c indent-tabs-mode: nil
+@c whitespace-check-buffer-indent: nil
+@c End: