First you need to build some things from ThirdParty which SOPE is based on. For SOPE 4.3.9 we reduced ThirdParty dependencies to just two packages (libobjc and libFoundation) and none of them are strictly required (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. Snapshots of all required packages are contained in the SOPE sources!

MacOSX: SOPE 4.5.4 also includes Xcode 2.1 projects. Just open the SOPE.xcodeproj file in Xcode and build the frameworks. Note that OGo currently requires a non-Xcode setup as outlined below.
On MacOSX you do not need to compile libobjc or libFoundation, just setup GNUstep-Make.

Linux: GNUstep-Make => ObjC-Runtime => libFoundation.

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.

  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)

MacOSX: Just install the Apple developer packages, all relevant tools are included in that package.

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).

Linux: Do not use the gstep-make package coming with your Linux distribution unless you want to build against gstep-base instead of libFoundation. Use the gstep-make included in the SOPE sources or fetch gstep-make 1.10.0 (or later) from the GNUstep site.

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

cd gnustep-make
./configure --prefix=$HOME/GNUstep \
--with-config-file=$HOME/GNUstep/GNUstep.conf \
--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 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.
Run echo $LIBRARY_COMBO, it should print gnu-fd-nil on Linux and apple-apple-nil on MacOSX.

MacOSX: SOPE does use the Apple runtime and Foundation library on MacOSX. If gstep-make is installed you can go on building the core application server, SOPE.


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

IMPORTANT: This step must be skipped starting with libFoundation 1.1.x, SOPE 4.5.8 and OGo 1.1.5. In libFoundation 1.1.0 we are using the libobjc provided by the operating system (more exactly GCC).

MacOSX: skip this step, SOPE 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
./configure --enable-debug
make all
sudo make install
cd ..

This will install the libobjc shared library and it's headers into /usr/local.

Check for success: libobjc_d.so.lf2 should exist in /usr/local/lib/.


libFoundation Library [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).

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

Note: Use the libFoundation library coming with SOPE! It is far more recent (v1.0.x up to SOPE 4.5.7, 1.1.x for SOPE 4.5.8 and later) than the library available on Ovidiu's page (v0.9.x) or those on SourceForge.

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
make debug=yes all
sudo make debug=yes FHS_INSTALL_ROOT=/usr/local install
cd ..

This will configure libFoundation for GNUstep (required for OGo) and install it into /usr/local - 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;
}


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ß