'''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 }}}