            README for port of Mesa 3.x to XFree86 on OS/2 (X/2)
                          (as of 19990514)


                           Contents:

                           1) Binary release
                           2) Building from sources
                           3) History
                           4) Todo
                           5) Mesa Home Page


1) Binary release

   Though the Mesa sources should build in a quite reasonable time even on
   a 585 class machine a binary relase is available (check topic 4) for an URL)
   This package includes:

     - lib/MesaGL.dll,  MesaGL.a
     - lib/MesaGLU.dll, MesaGLU.a
     - lib/glut.dll,    glut.a
     - include/GL/*.h

    Installing this in your XFree86 tree will enable you to build and
    run all applications compatible with Mesa (and the current DLL
    interface, of course ;-)
    As usual the OMF-style libraries can be created using emxomf.
    (e.g. "emxomf foo.a"  creates the foo.lib omf-style library).
    The static libraries are rarely used and you have to rebuild
    Mesa to get them. They're a supported target, so you get
    them in a straightforward way (see below).

    The testing of these libraries was limited to the supplied
    demos/examples and a quite small number of third-party apps.
    No warranty ... as usual ...  ;-)


2)  Instructions to build Mesa 3.x for XFree86/OS2 from sources:

    Except the official Mesa source distribution you need:
      - a recent version of XFree86 (3.3.x or above) including
        the programming libraries
      - EMX 0.9c (0.9d might work, never checked)
      - GNU make
      - REXX (!)

    The creation of the DLLs as well as of the static libraries
    (if you want to have them) is handled in "mklib-emx.cmd",
    a small REXX script. Perhaps not the best idea, but this
    way it fits best in the scheme used to build libraries
    on all platforms in Mesa 3.x.

    To actually build the libraries and demos, check mklib-emx.cmd
    and modify it as desired. Then type
      make os2-x11
    and wait for completion ;-)


3)  History

    Initially Darren Abbott (abbott@hiwaay.net) ported Mesa versions 2.x
    to XFree86 OS/2. This port might still be available from 
       http://fly.HiWAAY.net/~abbott/xfree86-os2/xfree86.html

    The current port picked up things during the beta test for 3.0. 
    No major changes in the source were done. The build mechanism under OS/2
    has been made very similar to other platforms (if you treat mklib-emx.cmd
    as a "black box").
    Advantage is that X/2 is now a valid target and all files are
    integrated in the official source distribution.
    Disadvantage is that this port (i.e. the DLLs' interface itself) is
    definitly NOT COMPATIBLE to those of version 2.x. 
    It's uncertain whether this would be at all possible but since there
    a _very_ few those apps it's not worth to find out anyway.
    Also some libs (MesaTK, MesaAUX) are withdrawn from the Mesa distribution,
    and accordingly from the OS/2 port.

4) Todo

    By now binary compatiblity is ensured by using the function names
    as entry points instead of ordinals. This might cost performance and
    is subject to change in future. In addition the supplied X86 assembler
    source is not used yet.

5)  Mesa Home Page

    You can get the source code and more information about Mesa from
       http://www.mesa3d.org/

    The OS/2 ports should be available from
       http://r350.ee.ntu.edu.tw/~hcchu/os2/ports 

--
Alexander Mai
st002279@hrzpub.tu-darmstadt.de
