GNU `m4' is an implementation of the traditional Unix macro
processor.  It is mostly SVR4 compatible, although it has some
extensions (for example, handling more than 9 positional parameters
to macros).  `m4' also has built-in functions for including files,
running shell commands, doing arithmetic, etc.  Autoconf needs GNU
`m4' for generating `configure' scripts, but not for running them.

GNU `m4' was originally written by Rene' Seindal, from Denmark.
This is a beta release on the stable branch.

If GNU `m4' is meant to serve GNU `autoconf', beware that `m4'
should be fully installed *prior to* configuring `autoconf' itself.
Likewise, if you intend on hacking GNU `m4' from git, the bootstrap
process requires that you first install a released copy of GNU `m4'.

If you are just trying to build `m4' from a released tarball, you
should not normally need to run `./bootstrap' or `autoreconf'; just go
ahead and start with `./configure'.  If you are trying to build `m4'
from git or CVS, more information can be found in the file HACKING,
only found in a version control checkout.

M4 has an optional dependency on the libsigsegv library:
  http://www.gnu.org/software/libsigsegv/
If the library has not been installed in the standard location, you
can use `./configure --with-libsigsegv-prefix=/path/to/dir', to make
the build of `m4' use /path/to/dir/include/sigsegv.h as appropriate.
The use of this library is optional; the only difference in having it
available is that it increases the number of platforms where `m4' can
correctly distinguish stack overflow from an internal bug.  It is
recommended that you use version 2.6 or newer.

In the subdirectory `examples' you will find various m4 files, ranging
from trivial test files to rather advanced macros.  If you intend to
use m4 seriously, you might find useful material down there.

See file `BACKLOG' for a summary of pending mail and articles.
See file `COPYING' for copying conditions.  Note that M4 is distributed
under the GNU Public License version 3 or later.  Some files in the
distribution are copied from the gnulib project, and hence bear the
designation version 2 or later because they are unmodified from gnulib;
however, if you modify these files using M4 rather than gnulib as the
source, you must update the license to be GPLv3 or later.
See file `INSTALL' for compilation and installation instructions.
See file `NEWS' for a list of major changes in the current release.
See file `THANKS' for a list of contributors.

By using `./configure --enable-changeword', you get an experimental
feature which allows for changing the syntax of what is a "word" in
`m4'.  This feature will not be present in m4 2.0, but will be
replaced by other new features which provide similar capability, so
do not count on it.

Send bug reports to `bug-m4@gnu.org'.  A bug report is an adequate
description of the problem: your input, what you expected, what you got,
and why this is wrong.  Diffs are welcome, but they only describe a
solution, from which the problem might be uneasy to infer.

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

Copyright (C) 2000, 2005, 2006, 2007 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with no
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
Texts.  A copy of the license is included in the ``GNU Free
Documentation License'' file as part of this distribution.
