README 3.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. GNU `m4' is an implementation of the traditional Unix macro
  2. processor. It is mostly SVR4 compatible, although it has some
  3. extensions (for example, handling more than 9 positional parameters
  4. to macros). `m4' also has built-in functions for including files,
  5. running shell commands, doing arithmetic, etc. Autoconf needs GNU
  6. `m4' for generating `configure' scripts, but not for running them.
  7. GNU `m4' was originally written by Rene' Seindal, from Denmark.
  8. This release is considered stable.
  9. If GNU `m4' is meant to serve GNU `autoconf', beware that `m4'
  10. should be fully installed *prior to* configuring `autoconf' itself.
  11. Likewise, if you intend on hacking GNU `m4' from git, the bootstrap
  12. process requires that you first install a released copy of GNU `m4'.
  13. If you are just trying to build `m4' from a released tarball, you
  14. should not normally need to run `./bootstrap' or `autoreconf'; just go
  15. ahead and start with `./configure'. If you are trying to build `m4'
  16. from git, more information can be found in the version-control-only
  17. file HACKING.
  18. M4 has an optional dependency on the libsigsegv library:
  19. http://www.gnu.org/software/libsigsegv/
  20. If the library has not been installed in the standard location, you
  21. can use `./configure --with-libsigsegv-prefix=/path/to/dir', to make
  22. the build of `m4' use /path/to/dir/include/sigsegv.h as appropriate.
  23. The use of this library is optional; the only difference in having it
  24. available is that it increases the number of platforms where `m4' can
  25. correctly distinguish stack overflow from an internal bug. It is
  26. recommended that you use version 2.9 or newer.
  27. In the subdirectory `examples' you will find various m4 files, ranging
  28. from trivial test files to rather advanced macros. If you intend to
  29. use m4 seriously, you might find useful material down there.
  30. See file `BACKLOG' for a summary of pending mail and articles.
  31. See file `COPYING' for copying conditions. Note that M4 is distributed
  32. under the GNU Public License version 3 or later. Some files in the
  33. distribution are copied from the gnulib project, and hence bear the
  34. designation version 2 or later because they are unmodified from gnulib;
  35. however, if you modify these files using M4 rather than gnulib as the
  36. source, you must update the license to be GPLv3 or later.
  37. See file `INSTALL' for compilation and installation instructions.
  38. See file `NEWS' for a list of major changes in the current release.
  39. See file `THANKS' for a list of contributors.
  40. By default, the `syscmd' and `esyscmd' macros try to use the first
  41. instance of `sh' found by `command -p getconf PATH' at configure time,
  42. with a default of `/bin/sh'. If that default is inappropriate, you
  43. can use `./configure --with-syscmd-shell=location' to specify the
  44. shell to use.
  45. By using `./configure --enable-changeword', you get an experimental
  46. feature which allows for changing the syntax of what is a "word" in
  47. `m4'. This feature will not be present in m4 2.0, but will be
  48. replaced by other new features which provide similar capability, so
  49. do not count on it.
  50. Send bug reports to `bug-m4@gnu.org'. A bug report is an adequate
  51. description of the problem: your input, what you expected, what you got,
  52. and why this is wrong. Diffs are welcome, but they only describe a
  53. solution, from which the problem might be uneasy to infer.
  54. For any copyright year range specified as YYYY-ZZZZ in this package
  55. note that the range specifies every single year in that closed interval.
  56. ========================================================================
  57. Copyright (C) 2000, 2005-2014, 2016 Free Software Foundation, Inc.
  58. Permission is granted to copy, distribute and/or modify this document
  59. under the terms of the GNU Free Documentation License, Version 1.3 or
  60. any later version published by the Free Software Foundation; with no
  61. Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
  62. Texts. A copy of the license is included in the ``GNU Free
  63. Documentation License'' file as part of this distribution.