ACHTUNG! These instructions are currently beta, and are under construction!'''

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 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 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 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
$ 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.

nodeboote

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:

<localfile name="xml/GPP/GPP.scd.xml" />

Line 20:

<localfile name="bin/GPP" />

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






注:InstallationGuideOSX(原文出处,翻译整理仅供参考!)