$Id: README-hacking,v 1.1 2012/04/23 00:01:07 karl Exp $
This README.dev file describes the development environment.

  Copyright 2002, 2003, 2005, 2006, 2007, 2008, 2010, 2011, 2012
  Free Software Foundation, Inc.

  Copying and distribution of this file, with or without modification,
  are permitted in any medium without royalty provided the copyright
  notice and this notice are preserved.

The development sources for GNU Texinfo are available through anonymous
CVS at Savannah:
  http://savannah.gnu.org/cvs/?group=texinfo

This distribution uses whatever versions of Automake, Autoconf, and
Gettext are listed in NEWS; usually the latest ones released.  If you
are getting the sources from CVS (or change configure.ac), you'll need
to have these tools installed to (re)build.  You'll also need help2man.
All of these programs are available from ftp://ftp.gnu.org/gnu.

After getting the CVS sources, and installing the tools above, you can run
 ./autogen.sh
and then
 ./configure CFLAGS='-g -Wdeclaration-after-statement'
and then
 make

After the initial autogen && configure, simply running make should suffice.

The reason for that particular -W is that intermixing declarations with
statements is an easy thing to do accidentally, gcc doesn't warn about
it by default, and other compilers that don't support it are still
widespread.  If you're not using gcc, of course you shouldn't specify it
at all.

Other -W options can be useful too, and patches are welcome to resolve
diagnostics; however, removing all possible warning messages, or
warnings with nonfree compilers, is explicitly not a goal.

This distribution also uses Gnulib (http://www.gnu.org/software/gnulib)
to share common files, with the files being checked in to CVS.  If you
get automake/conf/etc. errors from ./autogen.sh, please try doing a CVS
checkout of gnulib (in a separate directory from the texinfo checkout),
and then run
  ../gnulib/gnulib-tool --add-import
in your top-level Texinfo directory.  (gnulib-tool is in the gnulib CVS tree.)

The currently-used gnulib modules and other gnulib information are
recorded in gnulib/m4/gnulib-cache.m4.  Given a source checkout of
gnulib, you can update the files with gnulib-tool --add-import.


About running the programs from development sources:
- Once the distribution is built, you can run the compiled programs
(info, texindex, install-info) out of the build tree without special
settings; they don't try to read any installed data files.

- The texi2dvi script and texinfo.tex can be run as-is, since they 
are standalone and don't require compilation.  For the same reasons,
they are officially updated between full Texinfo releases, at
http://ftpmirror.gnu.org/texinfo.

- Regarding texi2any (aka makeinfo), you can run tp/texi2any.pl
directly.  This is the original source file for the program, so it's
convenient to be able to make changes and then run it.

To run it under a name that doesn't end in .pl, e.g., "makeinfo", you
can set the environment variable TEXINFO_DEV_SOURCE to 1, or symlink to
a trivial script:
#!/bin/sh
exec /YOUR/TEXINFO/DIR/tp/texi2any.pl "$@"
