home *** CD-ROM | disk | FTP | other *** search
- GNU UTILITIES README
- (updated 10/8/93)
-
- WHAT IS THIS TREE
- -----------------
-
- This is the root directory of the source for the GNU utilities supplied
- with this distribution. All of the supplied binaries were compiled from
- the sources provided here. With a few exceptions, they were all compiled
- with the gcc compiler also provided here.
-
-
- STRUCTURE OF DISTRIBUTION TREE
- ------------------------------
-
- Eventually I hope to make it possible to configure and build this entire
- source tree from the top level of a build tree located somewhere else,
- doing nothing more complicated than:
-
- makedir build:junk
- cd build:junk
- ffmcdXX:useful/dist/gnu/configure amigados
- make
-
- The Cygnus configure makes this a pretty painless operation, however each
- of the individual tool needs various amounts of hacking to make this work
- correctly. I didn't have time for this random hacking for this CDROM, but
- hope to get to it in the future.
-
- For now, I've settled on a structure that keeps the source code as pristine
- as possible, so that a simple diff -rc against the FSF baseline
- distribution for a particular tool will generate the most useful
- information, and not include random files that are generated at build time.
-
- Below this directory, you will find various subdirectories such as
-
- binutils
- byacc
- find
- gcc
- ...
-
- In each of these directories, you will find a gzip'd tar archive of the
- original FSF distribution upon which the port of this particular tool is
- based, a file called "<toolname>.diffs" which is the patch file that can be
- applied to this FSF baseline code to generate the AmigaDOS source tree, a
- subdirectory containing the full AmigaDOS source resulting from applying
- this patch with the "patch" program, and a temporary directory called
- "build". For example, "find" has the following structure:
-
- find Root dir for port of GNU "find".
-
- find/find-3.8.tar.gz Archive of original FSF distribution.
-
- find/find-3.8.diffs Patch file to generate AmigaDOS source
- from tree unpacked from find-3.8.tar.gz.
-
- find/find-3.8-amiga AmigaDOS source tree. This is the
- result of unarchiving the FSF tar
- archive and applying the diffs using
- "patch". Combine the contents of this
- directory with the contents of the
- "build" directory, and you have a
- source tree ready to run "make" in.
-
- find/build A tree of files that are generated when
- configured for AmigaDOS. Combine this
- tree with the find-3.8-amiga tree and
- you have a source tree ready to run
- "make" in. If there is no build
- directory then configuration is done
- by simply hacking the FSF Makefile
- (the older binutils for example).
-
- To rebuild a tool, you do do something like:
-
- makedir somewhere:junk
- copy find-3.8-amiga somewhere:junk all clone
- copy build somewhere:junk all clone
- cd somewhere:junk
- make
-
- Note that the copy keyword "clone" may be important for some utilities, to
- ensure that the smarter Makefile's don't try to regenerate themselves if
- they notice they are out of date with respect to other files.
-
- Eventually the "build" directory will go away, since these files will be
- generated by running configure for amigados. Currently the configure is
- run on an i486/SVR4 system networked to the Amiga, and then the resulting
- Makefile is hand hacked to get the desired configuration. The original
- Makefile is kept in Makefile.orig so you can see what changes were made by
- hand. A solid port of GNU bash will go a long ways towards being able to
- run configure reliably on native AmigaDOS.
-
-
- GNU C COMPILER versus OTHER C COMPILERS
- ---------------------------------------
-
- There are many ports of various GNU utilities which have been compiled with
- a compiler other than gcc (compiled with SAS C or Dice for example). It
- was tempting to just include them "as is", however I've generally resisted
- that temptation, prefering instead to compile my own binaries using the GNU
- C compiler.
-
- In many cases, compilation with the GNU C compiler has minimized the source
- changes required to produce a binary, thanks to Markus Wild's excellent
- Unix emulation environment. However it is likely that it has introduced
- bugs in the process, since it was not always easy to tell which changes
- made to a piece of code compiled with another compiler were dependent on
- that compiler (and thus not wanted or needed for gcc compilation), or
- dependent on AmigaDOS as the host machine (probably needed regardless of
- the compiler). The authors of various ports of GNU utilities have not
- always been careful about how they made their changes or how they marked
- them in the source code, assuming they even made the source code available
- in the first place.
-
- So, it is likely that the first few releases of these utilities may be
- somewhat fragile. Since I think it is an important goal of this distri-
- bution that eventually all of the supplied GNU source be stable when
- compiled with the supplied GNU C compiler (and as much non-GNU source as
- possible as well), rather than a random selection of C compilers that may
- not be available to the person using this distribution, I think it is worth
- the temporary aggravation of stumbling over bugs resulting from a not quite
- completed port.
-
- When you find a problem that is specific to the Amiga port, please try to
- identify it's source, and even better, provide a suggested fix to the
- supplied source code.
-
- I will be making a serious effort to see that the Amiga specific patches
- made to this source tree get folded back into the FSF distributions so that
- eventually the source trees will converge, and it will be possible to build
- a complete set of GNU tools from unchanged FSF source. This is the ideal,
- it may not be possible to achieve in practice, though I think it is a
- worthy goal.
-
- -Fred Fish ><>
-