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

GIT-INFO

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

Compile and build instructions follow below.

  CHANGES.0     contains ancient changes
  CHANGES       contains the most recent changes

  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 git, 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 give you
   a stubbed version of the file that doesn't contain actual content.

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 git
 6. Build cURL with "./buildconf", "./configure", "make", "sudo make install"
