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.
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.
- GNU Objective-C compiler (part of gcc, might be coming as a separate RPM/Deb package on your platform, often called gcc-objc).
- 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 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.
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/.
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.