First you need to build some things from ThirdParty which SOPE is based on.
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.

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: on MacOSX or when building for gnustep-base, use the current gnustep-make package provided by GNUstep. On MacOSX ensure that you compile for the apple-apple-apple library combo.

cd gnustep-make
./configure --prefix=$HOME/OGo \
    --without-system-root \
    --with-network-root=$HOME/OGo \
    --with-local-root=$HOME/OGo \
    --with-user-root=$HOME/OGo \
    --with-library-combo=gnu-fd-nil
make -s install
cd ..
source $HOME/OGo/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/OGo directory should have been created, it should contain a Makefiles directory, and most important, the Makefiles directory should contain GNUstep.sh.


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

It actually isn't really necessary to provide an own Objective-C runtime and OGo should work just fine with the system one coming with GCC. Nevertheless we felt that it makes deployment easier (especially on Windows) providing an own one.
Note: not required on MacOSX.

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.2 should exist in the OGo tree (eg try find $HOME/OGo -name libobjc_d.so.2.


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.
Note: not required on MacOSX or when building for gnustep-base.

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/OGo/Headers/ should contain the ical.h header file. A subdirectory $HOME/OGo/Libraries/ should contain libical.so.0.


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