home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 2 / FFMCD02.bin / useful / dist / gnu / readme < prev   
Encoding:
Text File  |  1993-10-09  |  5.6 KB  |  138 lines

  1.                GNU UTILITIES README
  2.                  (updated 10/8/93)
  3.  
  4. WHAT IS THIS TREE
  5. -----------------
  6.  
  7. This is the root directory of the source for the GNU utilities supplied
  8. with this distribution.  All of the supplied binaries were compiled from
  9. the sources provided here.  With a few exceptions, they were all compiled
  10. with the gcc compiler also provided here.
  11.  
  12.  
  13. STRUCTURE OF DISTRIBUTION TREE
  14. ------------------------------
  15.  
  16. Eventually I hope to make it possible to configure and build this entire
  17. source tree from the top level of a build tree located somewhere else,
  18. doing nothing more complicated than:
  19.  
  20.     makedir build:junk
  21.     cd build:junk
  22.     ffmcdXX:useful/dist/gnu/configure amigados
  23.     make
  24.  
  25. The Cygnus configure makes this a pretty painless operation, however each
  26. of the individual tool needs various amounts of hacking to make this work
  27. correctly.  I didn't have time for this random hacking for this CDROM, but
  28. hope to get to it in the future.
  29.  
  30. For now, I've settled on a structure that keeps the source code as pristine
  31. as possible, so that a simple diff -rc against the FSF baseline
  32. distribution for a particular tool will generate the most useful
  33. information, and not include random files that are generated at build time.
  34.  
  35. Below this directory, you will find various subdirectories such as
  36.  
  37.     binutils
  38.     byacc
  39.     find
  40.     gcc
  41.     ...
  42.  
  43. In each of these directories, you will find a gzip'd tar archive of the
  44. original FSF distribution upon which the port of this particular tool is
  45. based, a file called "<toolname>.diffs" which is the patch file that can be
  46. applied to this FSF baseline code to generate the AmigaDOS source tree, a
  47. subdirectory containing the full AmigaDOS source resulting from applying
  48. this patch with the "patch" program, and a temporary directory called
  49. "build".  For example, "find" has the following structure:
  50.  
  51.     find            Root dir for port of GNU "find".
  52.  
  53.     find/find-3.8.tar.gz    Archive of original FSF distribution.
  54.  
  55.     find/find-3.8.diffs    Patch file to generate AmigaDOS source
  56.                 from tree unpacked from find-3.8.tar.gz.
  57.  
  58.     find/find-3.8-amiga    AmigaDOS source tree.  This is the
  59.                 result of unarchiving the FSF tar
  60.                 archive and applying the diffs using
  61.                 "patch".  Combine the contents of this
  62.                 directory with the contents of the
  63.                 "build" directory, and you have a
  64.                 source tree ready to run "make" in.
  65.     
  66.     find/build        A tree of files that are generated when
  67.                 configured for AmigaDOS.  Combine this
  68.                 tree with the find-3.8-amiga tree and
  69.                 you have a source tree ready to run
  70.                 "make" in.  If there is no build
  71.                 directory then configuration is done
  72.                 by simply hacking the FSF Makefile
  73.                 (the older binutils for example).
  74.  
  75. To rebuild a tool, you do do something like:
  76.  
  77.     makedir somewhere:junk
  78.     copy find-3.8-amiga somewhere:junk all clone
  79.     copy build somewhere:junk all clone
  80.     cd somewhere:junk
  81.     make
  82.  
  83. Note that the copy keyword "clone" may be important for some utilities, to
  84. ensure that the smarter Makefile's don't try to regenerate themselves if
  85. they notice they are out of date with respect to other files.
  86.  
  87. Eventually the "build" directory will go away, since these files will be
  88. generated by running configure for amigados.  Currently the configure is
  89. run on an i486/SVR4 system networked to the Amiga, and then the resulting
  90. Makefile is hand hacked to get the desired configuration.  The original
  91. Makefile is kept in Makefile.orig so you can see what changes were made by
  92. hand.  A solid port of GNU bash will go a long ways towards being able to
  93. run configure reliably on native AmigaDOS.
  94.  
  95.  
  96. GNU C COMPILER versus OTHER C COMPILERS
  97. ---------------------------------------
  98.  
  99. There are many ports of various GNU utilities which have been compiled with
  100. a compiler other than gcc (compiled with SAS C or Dice for example).  It
  101. was tempting to just include them "as is", however I've generally resisted
  102. that temptation, prefering instead to compile my own binaries using the GNU
  103. C compiler.
  104.  
  105. In many cases, compilation with the GNU C compiler has minimized the source
  106. changes required to produce a binary, thanks to Markus Wild's excellent
  107. Unix emulation environment.  However it is likely that it has introduced
  108. bugs in the process, since it was not always easy to tell which changes
  109. made to a piece of code compiled with another compiler were dependent on
  110. that compiler (and thus not wanted or needed for gcc compilation), or
  111. dependent on AmigaDOS as the host machine (probably needed regardless of
  112. the compiler).  The authors of various ports of GNU utilities have not
  113. always been careful about how they made their changes or how they marked
  114. them in the source code, assuming they even made the source code available
  115. in the first place.
  116.  
  117. So, it is likely that the first few releases of these utilities may be
  118. somewhat fragile.  Since I think it is an important goal of this distri-
  119. bution that eventually all of the supplied GNU source be stable when
  120. compiled with the supplied GNU C compiler (and as much non-GNU source as
  121. possible as well), rather than a random selection of C compilers that may
  122. not be available to the person using this distribution, I think it is worth
  123. the temporary aggravation of stumbling over bugs resulting from a not quite
  124. completed port.
  125.  
  126. When you find a problem that is specific to the Amiga port, please try to
  127. identify it's source, and even better, provide a suggested fix to the
  128. supplied source code.
  129.  
  130. I will be making a serious effort to see that the Amiga specific patches
  131. made to this source tree get folded back into the FSF distributions so that
  132. eventually the source trees will converge, and it will be possible to build
  133. a complete set of GNU tools from unchanged FSF source.  This is the ideal,
  134. it may not be possible to achieve in practice, though I think it is a
  135. worthy goal.
  136.  
  137. -Fred Fish  ><>
  138.