m4.xml 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
  3. "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd" [
  4. <!ENTITY % general-entities SYSTEM "../general.ent">
  5. %general-entities;
  6. ]>
  7. <sect1 id="ch-system-m4" role="wrap">
  8. <?dbhtml filename="m4.html"?>
  9. <title>M4-&m4-version;</title>
  10. <indexterm zone="ch-system-m4">
  11. <primary sortas="a-M4">M4</primary>
  12. </indexterm>
  13. <sect2 role="package">
  14. <title/>
  15. <para>The M4 package contains a macro processor.</para>
  16. <segmentedlist>
  17. <segtitle>&buildtime;</segtitle>
  18. <segtitle>&diskspace;</segtitle>
  19. <seglistitem>
  20. <seg>&m4-ch6-sbu;</seg>
  21. <seg>&m4-ch6-du;</seg>
  22. </seglistitem>
  23. </segmentedlist>
  24. </sect2>
  25. <sect2 role="installation">
  26. <title>Installation of M4</title>
  27. <para>Fix a buffer overrun in m4:</para>
  28. <screen><userinput>sed -i -e '1660 s/break;/return;/' src/builtin.c</userinput></screen>
  29. <para>Prepare M4 for compilation:</para>
  30. <screen><userinput>./configure --prefix=/usr</userinput></screen>
  31. <para>Compile the package:</para>
  32. <screen><userinput>make</userinput></screen>
  33. <para>To test the results, issue:
  34. <userinput>make check</userinput>.</para>
  35. <para>Install the package:</para>
  36. <screen><userinput>make install</userinput></screen>
  37. </sect2>
  38. <sect2 id="contents-m4" role="content">
  39. <title>Contents of M4</title>
  40. <segmentedlist>
  41. <segtitle>Installed program</segtitle>
  42. <seglistitem>
  43. <seg>m4</seg>
  44. </seglistitem>
  45. </segmentedlist>
  46. <variablelist>
  47. <bridgehead renderas="sect3">Short Descriptions</bridgehead>
  48. <?dbfo list-presentation="list"?>
  49. <?dbhtml list-presentation="table"?>
  50. <varlistentry id="m4">
  51. <term><command>m4</command></term>
  52. <listitem>
  53. <para>copies the given files while expanding the macros that they
  54. contain. These macros are either built-in or user-defined and can
  55. take any number of arguments. Besides performing macro expansion,
  56. <command>m4</command> has built-in functions for including named
  57. files, running Unix commands, performing integer arithmetic,
  58. manipulating text, recursion, etc. The <command>m4</command> program
  59. can be used either as a front-end to a compiler or as a macro processor
  60. in its own right.</para>
  61. <indexterm zone="ch-system-m4 m4">
  62. <primary sortas="b-m4">m4</primary>
  63. </indexterm>
  64. </listitem>
  65. </varlistentry>
  66. </variablelist>
  67. </sect2>
  68. </sect1>