This is beta software. For now, we only provide installation instructions
for Unix:

   1. Build the library (see below)
   2. type "make install" (make uninstall provided too)

the library name is "libfreetype.so" (FreeType 1.x uses "libttf.so")

In order to build the library, read the "BUILD" document in the "docs"
directory. Quick starter: go to "freetype2-beta8", then:


  Unix (+GNU Make):
     
     - make  (don't worry, this will invoke a configure script)
     - make

    alternatively, you can pass parameters to the configure script
    with the CFG variable, as in:

     - make CFG="--prefix=/usr"
     - make


  Windows + gcc + GNU Make:     
     
     - make
     - make

  Windows + Visual C++ + GNU Make:

     - make setup visualc
     - make     
   
  Windows + Win32-LCC + GNU Make:
  
     - make setup lcc
     - make
  
  etc...
  

