Changeset 11965


Ignore:
Timestamp:
Apr 25, 2009, 6:14:50 PM (10 years ago)
Author:
gb
Message:

Update interface-translator section.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/doc/src/ffi.xml

    r11902 r11965  
    17611761          <para>&CCL; uses an interface translation system based on the FFIGEN
    17621762            system, which is described at
    1763             http://www.ccs.neu.edu/home/lth/ffigen/.
     1763            <ulink url="http://www.ccs.neu.edu/home/lth/ffigen/">this page</ulink>
    17641764            The interface translator makes
    17651765            the constant, type, structure, and function definitions in a set of
     
    17741774        parsing.</para>
    17751775      <para>The original FFIGEN system used a modified version of
    1776         the LCC C compiler to produce .ffi files. Since many LinuxPPC
     1776        the LCC C compiler to produce .ffi files. Since many OS
    17771777        header files contain GCC-specific constructs, &CCL;'s
    17781778        translation system uses a modified version of GCC (called,
    17791779        somewhat confusingly, ffigen.)</para>
    1780       <para>A version of ffigen based on GCC-4.0 was developed
    1781         during the spring and summer of 2005.  Sources (diffs relative
    1782         to the GCC-4.0 release) are available here, and binaries are
    1783         available for DarwinPPC and for LinuxPPC.  These versions
    1784         should be insensitive to to the version of GCC (and its
    1785         preprocessor) installed on the system.</para>
    1786       <para>An older version was developed in 2001-2002; it depended
    1787         on the installed version of GCC being 2.95.  It may still be
    1788         of interest for people unable to run the GCC-4.0-based version
    1789         for whatever reason.</para>
    1790       <para>A LinuxPPC binary of this older version is available at
    1791         ftp://clozure.com/pub/ffigen-0.1.tar.gz, and LinuxPPC source
    1792         differences are at
    1793         ftp://clozure.com/pub/ffigen-src.tar.gz.</para>
    1794       <para>For Darwin, the binary of the older FFIGEN is available
    1795         at ftp://clozure.com/pub/ffigen-darwin.tar.gz, and the source
    1796         differences are at
    1797         ftp://clozure.com/pub/ffigen-darwin-src.tar.gz.</para>
    1798       <para>A shell script (distributed with the source and binary
    1799         packages) called h-to-ffi.sh reads a specified .h file (and
    1800         optional preprocessor arguments) and writes a (hopefully)
    1801         equivalent .ffi file to standard output, calling the installed
    1802         C preprocessor and the ffigen program with appropriate
    1803         arguments.</para>
     1780       <para>See <ulink url="http://trac.clozure.com/openmcl/wiki/BuildFFIGEN">
     1781        here</ulink> for information on building and installing ffigen.
     1782        </para>
     1783      <para>A component shell script called h-to-ffi.sh reads a
     1784        specified .h file (and optional preprocessor arguments) and writes
     1785         a (hopefully) equivalent .ffi file to standard output, calling
     1786        the the ffigen program with appropriate  arguments.</para>
    18041787      <para>For each interface directory (see FIXTHIS)
    18051788        <emphasis>subdir</emphasis> distributed with &CCL;, a shell
    18061789        script (distributed with &CCL; as
    18071790        "ccl:headers;<emphasis>subdir</emphasis>;C;populate.sh"
    1808         ("ccl:darwin-headers;<emphasis>subdir</emphasis>;C;populate.sh"
    1809         for Darwin)) calls h-to-ffi.sh on a large number of the header
     1791        (or some other platform-specific headers directory)
     1792        calls h-to-ffi.sh on a large number of the header
    18101793        files in /usr/include (or some other <emphasis>system header
    18111794          path</emphasis>) and creates a parallel directory tree in
    18121795        "ccl:headers;<emphasis>subdir</emphasis>;C;<emphasis>system</emphasis>;<emphasis>header</emphasis>;<emphasis>path</emphasis>;"
    18131796        (or
    1814         "ccl:darwin-headers;<emphasis>subdir</emphasis>;C;<emphasis>system</emphasis>;<emphasis>header</emphasis>;<emphasis>path</emphasis>;"),
     1797        "ccl:darwin-headers;<emphasis>subdir</emphasis>;C;<emphasis>system</emphasis>;<emphasis>header</emphasis>;<emphasis>path</emphasis>;", etc.),
    18151798        populating that directory with .ffi files.</para>
    18161799      <para>A lisp function defined in "ccl:library;parse-ffi.lisp"
     
    18281811            <listitem>
    18291812              <para>Ensure that the FFIGEN program is installed. See
    1830                 the"README" file in the source or binary archive for
     1813                the"README" file generated during the FFIGEN build process for
    18311814                specific installation instructions.This example assumes
    1832                 LinuxPPC; for 32-bit DarwinPPC,
    1833                 substitute"ccl:darwin-headers;" for "ccl:headers;".  For
    1834                 64-bit DarwinPPC,substitute
    1835                 "ccl:darwin-headers64;".</para>
     1815                LinuxPPC; for other platforms, substitute the appropriate
     1816                headers directory. </para>
    18361817            </listitem>
    18371818        <listitem>
     
    18541835              ;;; lots of output ... after a while, shiny new .cdb files should
    18551836              ;;; appear in "ccl:headers;subdir;"
    1856               ;;; (or "ccl:darwin-headers;subdir;" under Darwin)
    18571837          </programlisting></para>
    18581838            </listitem>
Note: See TracChangeset for help on using the changeset viewer.