'''ACHTUNG! These instructions are currently beta, and are under construction!!'''
[[BR]][[BR]]
= Installing OSSIE on OS X (svn trunk) =
This document gives details on how to install OSSIE on OS X machines. The latest successful installation requires several modifications from the main ossie instruction page (["Complete_OSSIE_Installation"]) and assumes you have [http://finkproject.org/ fink] installed. Questions and/or comments should be directed to JosephGaeddert. This document is subject to change with the repository.
''This page is not a complete installation guide'' but rather a supplement to ["Complete_OSSIE_Installation"].
A few things to keep in mind
* All root commands are executed with the prefix {{{sudo}}}. Therefore, any command in ["Complete_OSSIE_Installation"] like {{{su -c 'make install'}}} for Fedora Core should be run like {{{sudo make install}}} in OS X
* It is never necessary to run {{{/sbin/ldconfig}}} in OS X.
== The /sdr directory ==
Create the /sdr directory, and immediately change ownership so that you can install here without requiring root access. To change ownership, run the following command, replacing {{{myusername}}} with your actual user name:
{{{
$ sudo chown myusername /sdr
}}}
== Xerces-c ==
'''NOTE:''' Xerces is no longer needed for installation with trunk. If installing a previous version of OSSIE (e.g. 0.6.1) Xerces is still required.
Although xerces is available through [http://finkproject.org/ fink], I cannot seem to get it to link properly. Download the source as described in the wiki.
{{{
$ ./runConfigure -pmacosx
$ make
$ sudo make install
}}}
== boost ==
OSSIE relies on the [http://www.boost.org/ boost] filesystem library. From the [http://sourceforge.net/project/showfiles.php?group_id=7586&package_id=8041 boost download page] get '''version 1.33.1''' (do not get the latest version of boost as the interfaces have changed making it incompatable with OSSIE's core framework).
Install boost by executing the following
{{{
$ tar -xvf boost_1_33_1.tar.gz
$ cd boost_1_33_1
$ ./configure
$ make
$ sudo make install
}}}
Unfortunately, boost installs its include files in a special subdirectory that you will need to move.
{{{
$ sudo mv /usr/local/include/boost-1_33_1/boost /usr/local/include/boost
}}}
== pkg-config ==
If you ever get the error:
{{{
./configure: line 4973: syntax error near unexpected token `OSSIE,'
./configure: line 4973: `PKG_CHECK_MODULES(OSSIE, ossie >= 0.6.0,,exit)'
}}}
You may or may not need to add /sw/bin to your PATH, depending on if you have pkg-config installed with [www.finkproject.org/ fink]
{{{
export PATH="$PATH:/sw/bin"
export PATH
}}}
Alternatively you can edit the {{{configure.ac}}} file, comment out this line (or equivalent):
{{{
PKG_CHECK_MODULES(OSSIE, ossie >= 0.6.0,,exit)
}}}
and add these with the {{{AC_CHECK_LIB}}} statements:
{{{
AC_CHECK_LIB([ossiecf], [main], [], [AC_MSG_ERROR([cannot find ossie cf library])])
AC_CHECK_LIB([ossieidl], [main], [], [AC_MSG_ERROR([cannot find ossie idl library])])
AC_CHECK_LIB([ossieparser], [main], [], [AC_MSG_ERROR([cannot find ossie parser library])])
}}}
== omniORB ==
Follow the instructions on the wiki, but skip the ''Update Locations of Shared Libraries'' section. This is not necessary as OS X dynamically links libraries and does not rely on the user to do so.
== Framework ==
Use revision 2923. Follow instructions as normal.
== nodebooter ==
Get the latest revision and build normally. If you get erros linking to libraries (this only seems to be a problem on macs with a PPC platform), run the following command before installing
{{{
g++ -Wall -g -O2 -o nodeBooter nodebooter.o -lomniDynamic4 -lomnithread -lomniORB4 -L/usr/local/lib -lossieparser -lossieidl -lossiecf -lboost_filesystem
}}}
The placement of {{{-L/usr/local/lib}}} is very important. Running the configure script via {{{./configure LDFLAGS=-L/usr/local/lib}}} doesn't put the linker argument in the right place. Still haven't figured this one out yet.
== GPP ==
Get revision 2923 and add the following line to {{{configure.ac}}} between {{{AC_LANG_PUSH([C++])}}} and {{{AC_LANG_POP}}}
{{{
AC_CHECK_LIB([omnithread], [main], [], [AC_MSG_ERROR([cannot find omnithread library])])
}}}
Change the line {{{AC_PREFIX_DEFAULT("/home/sca")}}} to {{{AC_PREFIX_DEFAULT("/sdr")}}}.
Also, make the following changes in {{{GPP.spd.xml}}}:
Line 15:
{{{
}}}
Line 20:
{{{
}}}
Then run the usual
{{{
$ ./reconf
$ ./configure
$ make
$ sudo make install
}}}
== domain ==
Get the latest revision from the repository (tested with r3431). Build and install normally.
== nodes ==
Get the latest revision of default_GPP_node from the repository (tested with r3431). Build and install normally.
== standardInterfaces ==
Get the latest revision of standardInterfaces from the repository (tested with r3431). If, after running {{{./reconf}}}, {{{./configure}}}, and {{{make}}} you get compilation errors like {{{/usr/local/include/omnithread.h:178:2: error: #error "No implementation header file"}}} you will need to take the following steps (this is a dirty hack, but I don't know why {{{omniconfig.h}}} isn't included where it should be):
1. As root open {{{/usr/local/include/omnithread.h}}}
2. Add {{{#include "omniconfig.h"}}} to line 38
3. Move to your standardInterfaces directory and run make again
4. Install with {{{sudo make install}}}
Possible alternatives (not yet tested): run configure via
{{{
./configure CPPFLAGS="-D__OSVERSION__=1 -D__darwin__ -D__powerpc__"
}}}
== wavLoader ==
=== omniORBpy ===
For some reason, different versions of omniORBpy work for different platforms. Download the appropriate version of [http://sourceforge.net/project/showfiles.php?group_id=51138&package_id=48639 omniORBpy] for your platform:
* If you are running on an intel-based Mac, get omniORBpy-2.7.tar.gz
* If you are running on an power PC, get omniORBpy-3.0.tar.gz
Follow the normal instructions on ["Complete_OSSIE_Installation"] for omniORBpy.
=== Amara ===
Amara is no longer necessary for running either wavLoader or OWD.
=== ossie.pth ===
This can be a bit tricky. Create {{{ossie.pth}}} as normal, however be careful as to which python executable is being run. Some people prefer to keep python up-to-date with fink, in which case python is actually run from {{{/sw/bin/python2.X}}}. To make this distinction, run
{{{
$ which python
}}}
This is probably a soft link, so if the result is {{{/usr/bin/python}}}, run
{{{
$ ls -la /usr/bin/python
}}}
and see where the link points. Put the {{{ossie.pth}}} file to this location, but replace {{{bin}}} with {{{lib}}}.
''Here's an example:'' on my machine, running {{{python}}} finds {{{/sw/bin/python}}} which is a soft link to {{{/sw/bin/python2.5}}}. Therefore I have created the file {{{/sw/lib/python2.5/site-packages/ossie.pth}}} which looks like this:
{{{
/Users/jgaeddert/src/ossie/ossie/idl_py
/usr/local/lib/python2.5/site-packages/
}}}
== c_wavLoader ==
Check out the latest version of c_wavLoader and add the following lines to {{{configure.ac}}} anywhere between {{{AC_LANG_PUSH([C++])}}} and {{{AC_LANG_POP}}} if it does not already exist:
{{{
AC_CHECK_LIB([omnithread], [main], [], [AC_MSG_ERROR([cannot find omnithread library])])
}}}
Before building, you need to install the expat XML parsing libraries. I used fink for this, but I'm sure there are other ways.
{{{
sudo fink install expat
}}}
Fink installs inside the {{{/sw}}} directory. To include libraries installed in {{{/sw/lib}}} and headers in {{{/sw/include}}} run configure via
{{{
$ ./configure CPPFLAGS=-I/sw/include LDFLAGS=-L/sw/lib
}}}
Finish the installation normally, viz.
{{{
$ make
$ sudo make install
}}}
== components ==
Components should compile normally...
== waveforms ==
Waveforms should install normally...
== Running the ossie_demo waveform ==
Run as normal, but start nodeBooter by specifying explicitly the location of {{{DomainManager.dmd.xml}}}, viz.
{{{
$ nodeBooter -D/domain/DomainManager.dmd.xml -d /nodes/default_GPP_node.dcd.xml -P /sdr/dom -p /sdr/dev
}}}