First you need to build some things from ThirdParty which OGo is based on.
Enter the "ThirdParty" source directory (cd ThirdParty).
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 subdirectory.
Make => ObjC-Runtime => libFoundation => libxml2 => libical => SpiderMonkey
RequirementsFor 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.
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).
|
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.
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.
|
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.
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).
|
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:
|
OGo uses
libxml2
to process XML and HTML files. This library is wrapped by skyrix-xml
in SAX parsers and used by SOPE.
Note: you should also be able to use the libxml2 library coming with
your system.
|
This will configure libxml2 as required by OGo and install it into the OGo deployment path. That way you can update system and OGo libxml2 libraries without conflicts.
Check for success: After installation $HOME/OGo/Headers/ should contain a directory libxml (containing a subdirectory libxml2). A subdirectory $HOME/OGo/Libraries/ should contain libxml2.so.2.
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).
|
Like with libxml, 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.
SpiderMonkey is the JavaScript engine provided by the Mozilla project. In OGo it is used for implementing user defined forms and scripted templates in SOPE. It's functionality is wrapped in the JavaScript/Objective-C bridge (skyrix-sope/NGJavaScript).
|
This will install SpiderMonkey into the OGo deployment root. It's already preconfigured for OGo in the CVS.
Check for success: The $HOME/OGo/Headers/ headers directory should contain a js subdirectory containing the SpiderMonkey header files, a subdirectory $HOME/OGo/Libraries/ should contain libjs_d.so.1 and a tool js should be available, it can be used to test the JavaScript interpreter:
|
After you have finished building the basic things from ThirdParty required for OGo, you can go on building the core application server, SOPE.