                                  _   _ ____  _     
                              ___| | | |  _ \| |    
                             / __| | | | |_) | |    
                            | (__| |_| |  _ <| |___ 
                             \___|\___/|_| \_\_____|

CVS-INFO

This file is only present in the CVS - never in release archives. It contains
information about other files and things that the CVS repository keeps in its
inner sanctum.

Compile and build instructions follow below.

  CHANGES.0     contains ancient changes.
  CHANGES.$year contains changes for the particular year.

  Makefile.dist is included as the root Makefile in distribution archives

  perl/         is a subdirectory with various perl scripts

To build in environments that support configure, after having extracted
everything from CVS, do this:

./buildconf
./configure
make

  Daniel uses a ./configure line similar to this for easier development:

  ./configure --disable-shared --enable-debug --enable-maintainer-mode

In environments that don't support configure (i.e. Microsoft), do this:

buildconf.bat


REQUIREMENTS

 For buildconf (not buildconf.bat) to work, you need the following software
installed:

 o autoconf 2.57  (or later)
 o automake 1.7   (or later)
 o libtool  1.4.2 (or later)
 o GNU m4 (required by autoconf)

 o nroff + perl

   If you don't have nroff and perl and you for some reason don't want to
   install them, you can rename the source file src/hugehelp.c.cvs to
   src/hugehelp.c and avoid having to generate this file. This will of course
   give you an older version of the file that isn't up-to-date. That file was
   checked in once and won't be updated very regularly.

MAC OS X

 With Mac OS X 10.2 and the associated Developer Tools, the installed versions
 of the build tools are adequate.  For Mac OS X 10.1 users, Guido Neitzer
 wrote the following step-by-step guide:

 1. Install fink (http://fink.sourceforge.net)
 2. Update fink to the newest version (with the installed fink)
 3. Install the latest version of autoconf, automake and m4 with fink
 4. Install version 1.4.1 of libtool - you find it in the "unstable" section
    (read the manual to see how to get unstable versions)
 5. Get cURL from the cvs
 6. Build cURL with "./buildconf", "./configure", "make", "sudo make install"
