2004-09-13 15:44 GMT resistance is obsolete ™ ;-)
fast. mature. flexible.

Building Core ThirdParty Modules

First you need to build some things from ThirdParty which SOPE is based on. For SOPE 4.3 we reduced ThirdParty dependencies to just three packages (libobjc, libFoundation libical), and none of them are strictly required (libical only if you want to build the iCalSaxDriver, libobjc/libFoundation only if you aren't using gstep-base or Cocoa).

Note: ThirdParty in this case doesn't mean that you need to fetch the sources of those libraries and tools yourself. Stable - and sometimes patched - versions of the required sources are contained in the OGo source tree in the ThirdParty Subversion repository.

Note: Updated for SOPE 4.3, which does not require ThirdParty libxml2 and SpiderMonkey.

GNUstep-Make => ObjC-Runtime => libFoundation => libical

Requirements

For building the initial ThirdParty stage, you need to ensure that several GNU build tools are installed. Use the package management system of your platform to install the proper packages before going on.
Note: on MacOSX just install the regular developer packages, nothing additional is required.

  1. GNU Objective-C compiler (part of gcc, might be coming as a separate RPM/Deb package on your platform, often called gcc-objc).
  2. GNU make (required as a basis for gnustep-make)
  3. flex (for libical)
  4. bison (for libical)
GNUstep Make [next]

GNUstep make is a package which makes it a lot easier to build shared modules and libraries on a wide range of platforms. Further it provides a shell environment to support location independend installations (without any fixed pathes compiled into the software).

Note: Starting with SOPE 4.3 and OGo 1.0alpha you can only build with gstep-make 1.10.0 as available from the GNUstep site.

MacOSX: Select the apple-apple-nil library combo instead of gnu-fd-nil!

cd gnustep-make
./configure --prefix=$HOME/GNUstep \
    --without-system-root \
    --with-network-root=$HOME/GNUstep \
    --with-local-root=$HOME/GNUstep \
    --with-user-root=$HOME/GNUstep \
    --with-library-combo=gnu-fd-nil
make -s install
cd ..
source $HOME/GNUstep/Library/Makefiles/GNUstep.sh

This will create an OGo deployment directory in your home directory. For all remaining steps you always need to ensure that the GNUstep environment is properly loaded (by sourcing GNUstep.sh) !

Check for success: The $HOME/GNUstep directory should have been created, it should contain a Library/Makefiles directory, and most important, the Library/Makefiles directory should contain the GNUstep.sh script.


GNUstep Objective-C Runtime [next] | [prev]

Note: You currently need to use the libobjc provided in the ThirdParty section of OGo. The system libobjc coming with GCC does not work (yet) for OGo.

MacOSX: skip this step, OGo uses the Apple Objective-C runtime on MacOSX.

Starting with SOPE 4.3 builds you can install the OGo libobjc into /usr/local by specifying the FHS_INSTALL_ROOT=/usr/local make parameter.

cd gnustep-objc
make -s debug=yes install
cd ..

This will install the libobjc shared library and it's headers into the OGo deployment directory.

Check for success: libobjc_d.so.ogo2 should exist in the OGo tree (eg try find $HOME/GNUstep -name libobjc_d.so.ogo2.


libFoundation Library [next] | [prev]

The libFoundation library, initially written by Ovidiu Predescu <ovidiu@apache.org> and Mircea Oancea, contains an implementation of the OpenStep Foundation API (basic things like collection and string classes, operating system abstractions etc).
Note: Use the libFoundation library coming with OGo! Its far more recent (v1.0.x) than the library available on Ovidiu's page (v0.9.x) or on SourceForge.

MacOSX: skip this step, OGo uses the Cocoa Foundation library on MacOSX.

Starting with SOPE 4.3 builds you can install libFoundation into /usr/local by specifying the FHS_INSTALL_ROOT=/usr/local make parameter.

cd libFoundation
./configure --with-gnustep
make -s debug=yes install
cd ..

This will configure libFoundation for GNUstep (required for OGo) and install it into the OGo root, headers, shared library and the Defaults tool.

Check for success: This package provides a tool called Defaults to manage configuration data (NSUserDefaults). You can check whether libFoundation is properly installed by trying it:

$ Defaults write a b 10
$ Defaults read a
{
    b = 10;
}


libical [prev]

The libical library is used for parsing iCalendar and vCard files. Actually OGo wraps libical in a SAX XML driver in skyrix-xml and processes the structures parsed by libical as XML entities. That way it can easily work on 'iCalendar files in XML syntax' (eg used in WCAP and xCal).

cd libical
./cfg-gnustep.sh
make -s install
cd ..

This will configure libical as required for OGo and install it into the OGo deployment root.

Check for success: After installation $HOME/GNUstep/Library/Headers/ should contain the ical.h header file. A subdirectory $HOME/GNUstep/Library/Libraries/ should contain libical.so.0.


SOPE

After you have finished building the basic things from ThirdParty required, you can go on building the core application server, SOPE.

Written by Helge Heß
We welcome your feedback!
 
This site is sponsored by
SKYRIX Software AG
MDlink