| 1 | # $Log$
|
|---|
| 2 | # Revision 1.2 2005/08/10 05:05:46 gb
|
|---|
| 3 | # Updated.
|
|---|
| 4 | #
|
|---|
| 5 | # Revision 1.1 2005/04/08 07:03:16 gb
|
|---|
| 6 | # New file.
|
|---|
| 7 | #
|
|---|
| 8 |
|
|---|
| 9 | 'ffigen' is a modified version of the GCC backend, based on similar
|
|---|
| 10 | modifications to the 'LCC' compiler described at:
|
|---|
| 11 |
|
|---|
| 12 | <http://www.ccs.neu.edu/home/lth/ffigen/index.html>
|
|---|
| 13 |
|
|---|
| 14 | It's a work derived from GCC, and therefore licensed under the GPL.
|
|---|
| 15 |
|
|---|
| 16 | Versions of ffigen - based on GCC 2.95 sources - were distributed
|
|---|
| 17 | as adjunct components of OpenMCL in 2001 and 2002. It's become
|
|---|
| 18 | increasingly difficult to use those versions, since they're sensitive
|
|---|
| 19 | to the exact format of the 2.95 C preprocessor output (and since GCC
|
|---|
| 20 | 2.95 is fading into obsolescence.) The source distributions consisted
|
|---|
| 21 | of a set of patches (relative to a canonical 2.95 source tree) and
|
|---|
| 22 | a README file that explained the build process.
|
|---|
| 23 |
|
|---|
| 24 | In the summer of 2004, Helmut Eller made available a set of patches
|
|---|
| 25 | relative to GCC 3.4.1. (Unlike previous versions, GCC 3.x's
|
|---|
| 26 | preprocessor and frontend are a single program, so an ffigen program
|
|---|
| 27 | derived from GCC 3 is likely to be a little more self-contained than
|
|---|
| 28 | earlier versions.)
|
|---|
| 29 |
|
|---|
| 30 | This version is based on GCC 4.0, builds on Helmut's work, and adds
|
|---|
| 31 | some initial support for translating Objective-C class and method
|
|---|
| 32 | information. In addition, it provides a heavily conditionalized
|
|---|
| 33 | Makefile which builds a binary package (.tar.gz file) on both LinuxPPC
|
|---|
| 34 | and DarwinPPC.
|
|---|
| 35 |
|
|---|
| 36 | In order to build the program, it's necessary to obtain canonical
|
|---|
| 37 | versions of GCC (with ObjC support) for the target platform; the
|
|---|
| 38 | Makefile tersely explains what's missing and suggests where to find
|
|---|
| 39 | it. You need to obtain the following files from gcc.gnu.org or a
|
|---|
| 40 | mirror site and install them in this directory:
|
|---|
| 41 |
|
|---|
| 42 | gcc-core-4.0.0.tar.bz2
|
|---|
| 43 | gcc-objc-4.0.0.tar.bz2
|
|---|
| 44 |
|
|---|
| 45 | Once those archives are installed, doing:
|
|---|
| 46 |
|
|---|
| 47 | shell> make
|
|---|
| 48 |
|
|---|
| 49 | will build the modified frontend, create an archive containing that
|
|---|
| 50 | frontend and related support files, and create a text file explaining
|
|---|
| 51 | how to install things.
|
|---|
| 52 |
|
|---|
| 53 | These patches are maintained in CVS on clozure.com. For anonymous
|
|---|
| 54 | access:
|
|---|
| 55 |
|
|---|
| 56 | shell> cvs -d :pserver:cvs@clozure.com:/usr/local/publiccvs login
|
|---|
| 57 |
|
|---|
| 58 | [The anonymous CVS password is 'cvs']
|
|---|
| 59 |
|
|---|
| 60 | shell> cvs -d :pserver:cvs@clozure.com:/usr/local/publiccvs get ffigen4
|
|---|
| 61 |
|
|---|
| 62 |
|
|---|
| 63 |
|
|---|