
               The Objective-C Foundation Classes (OFC) library
               ------------------------------------------------


The Objective-c foundation classes library is a general purpose library. The
classes in the library are grouped in five clusters: data types, collections,
c-wrappers, network and compound classes. At the moment the library is still
under development. The OFC library and the test and example programs are 
licensed under the GNU GPL.



On linux the installation is done by the configure script. Do

  ./configure

  make

and if everthing went well, the library will be built. See INSTALL for some
general information about configure.

You can also test the library by doing:

  make check

The test program will be compiled, linked and runned. If you see 'ok' for every
class, the library passed the tests.

By doing (as root):

  make install

the library will be installed. And by doing:

  make uninstall

the libray will be uninstalled.



Except the default configure options, there are the following extra options:

  --disable-warnings  disable warnings written to stderr
  --enable-debug      add -g to the compiler flags (for debugging)



For FreeBSD there are still some problems:
* DRegEx is not built due to an incompatible regex functionality in the libc
library
* DTS_THREADING is switched to DTS_FORKING in the DTCPServer due to threading
errors


For WIN32 you will need some extra libraries:
* pthreads (for example: pthreads-2004-05-16-fixed.exe)
* gdbm (for example: gdbm-1.8.3-1-mingw32.zip)
* regex (for example: gnu_regex_dist)
* expat (for example: expat-1.95.1-20010126.zip)
* zlib (for example: zlib121-dll.zip)
* gmp (for example: gmp-static-mingw-4.1.tar.gz)
* bzip2 (for example: bzip2-1.0.3.tar.gz)

Some extra notes for the regex libary:
     copy only libregex.a to the lib directory of mingw
     
Some extra notes for the zlib library:
     copy zdll.lib to libz.a in the lib directory of mingw
     copy zlib1.dll to the bin directory of mingw

Some extra notes for the bzip2 library:
     change in the bzlib.h file the line '#define BZ_API(func) WINAPI func' to
     '#define BZ_API(func) func' (= remove WINAPI)
     build the library with make
     copy libbz2.a to the lib directory of mingw
     copy bzlib.h to the include directory of mingw



On WIN32 under MSYS the configure script will be started with (in the installation
directory):

  ./configure
  
Without MSYS (and less stable) you can also start the configure script with (in the
installation directory):

  sh configure



Configure and the library are tested on Linux and WIN32 (only MingW32). If you
need to make specific alterations in the configure script for a certain system,
feel free to send them to me. I will merge them in the current script.



The next step is using the library. At the moment there are no example programs,
but if you want some example code you can look at the main.m program and the
test source files in the test directory.

You can use the script 'ofc-config' for compiling and linking your programs.
For example compiling and linking an example program can be done with:

  gcc -o example example.m `ofc-config --cflags` `ofc-config --libs`

or with static libraries:

  gcc -o example example.m -static `ofc-config --cflags` `ofc-config --static-libs`



In the subdirectory 'tex' you will find the quick reference cards for the
library. So by doing (in the tex subdirectory, it requires 'pdftex'):

   make tex
   
the pdf reference card will be created. The contents of the cards is a summary
of the full html documentation, so some details are not included in the cards.



Because the library is still beta it is not impossible that you will find bugs. 
You can send them or any suggestions to the email address which is listed 
on the site: ofc.sunsite.dk. This is also the place for new versions, news, 
documentation etc.

Thanks.
Dick van Oudheusden

