ACHTUNG! These instructions are currently beta, and are under
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 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
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
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 fink, I cannot seem to get it to link properly. Download the source as described in the wiki.
$ ./runConfigure -pmacosx
OSSIE relies on the boost filesystem library. From the 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
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
If you ever get the error:
./configure: line 4973: syntax error near unexpected token `OSSIE,'
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]
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])])
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.
Use revision 2923. Follow instructions as normal.
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.
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:
<localfile name="xml/GPP/GPP.scd.xml" />
<localfile name="bin/GPP" />
Then run the usual
Get the latest revision from the repository (tested with r3431). Build and install normally.
Get the latest revision of default_GPP_node from the repository (tested with r3431). Build and install normally.
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):
Possible alternatives (not yet tested): run configure via
./configure CPPFLAGS="-D__OSVERSION__=1 -D__darwin__ -D__powerpc__"
For some reason, different versions of omniORBpy work for different platforms. Download the appropriate version of omniORBpy for your platform:
Follow the normal instructions on Complete_OSSIE_Installation? for omniORBpy.
Amara is no longer necessary for running either wavLoader or OWD.
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:
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 should compile normally...
Waveforms should install normally...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