"README.CVS"
	$Id: README.CVS,v 1.14 2008/11/23 17:53:11 fang Exp $

-------------------------------------------------------------------------------
You've just checked out HACKT from CVS, what do you need to need to work?

	"It's not so hard to lift yourself by your bootstraps 
	once you're off the ground."
					-- Daniel B. Luten

-------------------------------------------------------------------------------
Getting started:

If you've checked out this project from CVS as opposed to a distribution
tarball (.tar.gz, .tar.bz2), then you'll need the following GNU autotools
installed on your system:

GNUmake-3.79+ is recommended
automake-1.9+ (OK: 1.10)
autoconf-2.59+ (OK: 2.60, 2.61)
libtool-1.5.22+ (1.5.18 has known libltdl(ltdl.c) bug that affects dlopen)
libtool-2.2 (TODO: not yet migrated/tested)

These may be obtained from gnu.org.  
TODO: provide a download script for the truly lazy...
The first thing to do is run:

./bootstrap

which runs the GNU autotool commands to create a configure script
(from configure.ac) and configurable Makefile.in's (from Makefile.am's).
(If your autotools are installed in non-standard locations/names, consult the
script to override default variables.)
This does a little bit more than the standard "autoreconf -i", 
which is conventionally used to regenerate the same set of files.  
With a tarball distribution, you won't need to run bootstrap unless
you modify the Makefile.am's or configure.ac.  
If your autotools are install across different prefixes, you may need to
help the bootstrap (aclocal) by passing ACLOCAL_FLAGS = -I path.  
Even when the auto* sources are modified, the Makefiles are built with 
maintainer-mode off, so the autotools will automatically regenerate files 
as necessary.  (You shouldn't have to run bootstrap more than once 
per checkout.) To clobber the files generated by the bootstrap process, run:

scripts/maintainerclobber

which should be the equivalent of a cvs-clean, fresh checkout.  

Mac OS X Fink users:
May wish to look at pkg/README and pkg/*.info for convenient packages
with hackt's build-dependencies.  

FreeBSD ports users:
If your GNU autotools are installed under non-default program names, 
try "./scripts/bootstrap.freebsd" to bootstrap.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Other tools needed:

Currently, built documentation is NOT distributed with the source, 
so both users and developers need to have the documentation generators.  
GNU TexInfo is required for documentation generation.

TexInfo 4.8,4.10,4.11,4.13 are known to work.  
TexInfo 4.6 is known to not support the following commands:
	@float, @caption, @LaTeX{}, @sansserif, @headitem
TexInfo 4.0 is known to not support the following commands:
	@copying, @insertcopying
LaTeX and pdfLaTeX are still recommended for building PostScripts and PDFs.
Recommended version teTeX-3.0 distribution.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

For building HACKT, now refer to "README". 

For more on the CVS tags and make conventions, mostly for maintainers, 
refer to "README.maintainer".

-------------------------------------------------------------------------------
Updating from CVS:

Occasionally, header files are removed from CVS as they become replaced
or deprecated.  You see a message like:

	file-xyz.h is no longer in the repository

Unfortunately, this can occasionally leave stale dependencies (in src/)
that are used for header-validation, a feature I've added to the build
machinery for this project.  If you see an error message like the following:

	cc1plus: blah.h: No such file or directory
	make[1]: *** [blah.hchk] Error 1

This means that the source header was removed.  The recommend course of 
action is the following:

	cd src; make clean-header-deps clean-header-tests

and then return to 'make' or whatever you were doing.  
This resets all the dependencies and cleans the validation results, which
will be automatically regenerated upon make.  
This will never be a problem for those who use source distribution tarballs.  

-------------------------------------------------------------------------------
Patch creation relative to CVS:

For those contributing patches, the easiest way to create a patch is to run:
'make cvsdiffs' from anywhere in the build directory, which can be the same
as the source directory for non-VPATH builds.  (This is a global target in
all Makefiles, so you can run in most subdirectories.)  If you don't have 
commit privileges or prior approval, send the resulting file to the 
developer(s).  

===============================================================================

