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
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.
-
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)
- flex (for libical)
- bison (for libical)
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.
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.
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;
}
|
|
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.
After you have finished building the basic things from ThirdParty
required, you can go on building the core application server,
SOPE.