home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-387-Vol-3of3.iso / m / m4v05as.zip / README < prev    next >
Text File  |  1992-02-19  |  5KB  |  137 lines

  1. This is the file README for the GNU m4 distribution.
  2.  
  3. The current version of this program is 0.50, and of the manual 0.05.
  4.  
  5. INSTALLATION.
  6. ============
  7.  
  8. Installation should be fairly straightforward.  Unpack the distribution, and
  9. edit the Makefile to use you preferred C compiler (CC) and options (COPTS),
  10. and installation directory (BINDIR).  Then say
  11.  
  12.     make all
  13.  
  14. To run a simple test of your new m4, say
  15.  
  16.     make -i test
  17.  
  18. and inspect the output.  There is rather a lot, so you might want to save it
  19. in a file.  The output should contain both the input and output of m4 run on
  20. most of the examples from the manual.  You will find the input to these tests
  21. in the directory examples (the files have been generated automatically from
  22. the manual source file).
  23.  
  24. In the subdirectory test you will find various m4 files, ranging from trivial
  25. test files, to rather advanced macros.  You might want to play a little with
  26. these files too.  If you intend to use m4 seriously, you might find useful
  27. material down there.
  28.  
  29. When you have finished playing, install m4 with the command
  30.  
  31.     make install
  32.  
  33.  
  34. If you are using System V, you should define USG when compiling.  You can
  35. either edit the Makefile to do this, or say
  36.  
  37.     make CEXT=-DUSG all
  38.  
  39. I have had no possibility to test the USG part, as I have only access to
  40. Berkeley derived systems.  Most of the USG things are taken from GNU make.
  41.  
  42. PORTABILITY.
  43. ===========
  44.  
  45. GNU m4 has been compiled and tested on the following systems:
  46.  
  47.     Sun-[34], SunOS 4.0, with cc and gcc 1.35 (w and w/o -traditional)
  48.     Vaxen, MORE/bsd, with cc and gcc 1.35 (w and w/o -traditional)
  49.     HP 9k300, MORE/bsd, with cc (actually gcc 1.34 -traditional)
  50.     Vaxen, Ultrix 2.0, with cc
  51.  
  52. I have absolutely no idea about how hard it will be to port m4 on other
  53. systems.  I have tried to keep the program clean, so hopefully the problems
  54. won't be that big.  In any case, if you manage to compile and use this program
  55. on a system, that is not on the list above, I would like to know.  If you had
  56. to make changes, send me them too.
  57.  
  58. PROBLEMS.
  59. ========
  60.  
  61. There are a few things, that will no doubt cause trouble for some of you.
  62.  
  63.       * The functions used for error messages uses vfprintf(3), that is not a
  64.     part of all systems.  If you system does not have vfprintf(), there is
  65.     a version in `vfprintf.c', that might, or might not, work on you
  66.     system.  This version of vfprintf() is from the released BSD code.
  67.  
  68.       * The program uses bcopy(3) and bzero(3), that are Berkeley specific.
  69.     The USG stuff taken from GNU make should fix this in most cases.
  70.  
  71.       * The code for diversions uses mkstemp(3), that is apparently not a part
  72.     of System V and other non 4.3BSD derived systems.  There is a usable
  73.     version in `output.c' (ifdef'ed on USG or ultrix), but that version
  74.     doesn't solve the problem mkstemp() is there to solve.  Too bad!
  75.  
  76.       * Probably oodles of other little annoying details.
  77.  
  78. BUG REPORTS.
  79. ===========
  80.  
  81. Send bug reports to me (Rene' Seindal, email: seindal@diku.dk) or to
  82. bug-gnu-utils@prep.ai.mit.edu.
  83.  
  84. ALL bug reports should include:
  85.  
  86.     * The version number of m4
  87.     * The hardware and operating system
  88.     * The compiler used to compile
  89.     * A description of the bug behaviour
  90.     * The input to m4, that triggered the bug
  91.     * A transcript of the output from m4
  92.  
  93. If I can't reproduce the bug, there is really not much I can do about it.
  94.  
  95. Again, since I have no access to System V machines, I can't do much about
  96. bugs, that are System V specific, unless, of course, the bug reports are
  97. accompanied by patches/fixes.
  98.  
  99. KNOWN BUGS.
  100. ==========
  101.  
  102. This version of GNU m4 suffers from at least these known bugs.  The reason,
  103. why these bug have not been fixed, varies.  Most often, it is because I don't
  104. know how to solve the problems involved.
  105.  
  106.       * Sync lines (-s option) and diversion are not happy together!  The
  107.     problem is which lines and file names that should be attached to text
  108.     that are being, or have been, diverted.  System V m4 regards all the
  109.     diverted text as being generated by the source line containing the
  110.     `undivert' call, whereas GNU m4 regards the diverted text as being
  111.     generated at the time it is diverted.  Which is right?
  112.  
  113.     I expect the sync line option to be used mostly when using m4 as a
  114.     front end to a compiler.  If a diverted line causes a compiler error,
  115.     I believe that the error messages should refer to the place where the
  116.     diversion were made, and not where it was inserted again.  Comments
  117.     anyone?
  118.  
  119.     Anyway, GNU m4's approach causes a serious bug, if calls to undivert
  120.     aren't alone on the input line.  See the file `test/divert.m4' for a
  121.     demonstration of the bug.  I don't feel it is acceptable to insert
  122.     newlines in the output the user hasn't asked for.
  123.  
  124.       * The second argument to `eval', specifying an output radix, cannot be
  125.     larger than 36 in the current implemention.  Which characters can be
  126.     used as digits, if the radix is larger than 36?  Currently any radix
  127.     larger than 36 are rejected.
  128.  
  129.  
  130.  
  131. RELEASE HISTORY.
  132. ===============
  133.  
  134. * Mon Jan 22 21:08:52 1990
  135.  
  136. Initial beta release.  Version 0.50, manual 0.05.
  137.