Notes on Building AC on Mac OS X

From Eclipsepedia

Jump to: navigation, search

This page is intended to document progress on getting TPTP running on OS X.

This bug ([1]) has some disscussion about getting TPTP working on Mac OS X. There is a lot of community interest and even volunteers. There is a patch to build the RAC and CBE. But the TPTP maintainers need a patch for the new tech AC. In the bug this is referred to as SNN. In the TPTP documentation this is referred to as the AC.

This comment of that bug has details about building the native code. [2]

Specifically it points to the "Linux Build Instructions" in the following file as the place to start for building the AC (SNN): org.eclipse.tptp.platform.agentcontroller/src-native-new/bin/readme.txt

It seems no single person has enough time or interest to get this working, but if we each do a little and document as we go perhaps we can make it happen. Below are notes about trying to follow the Linux build instructions on OS X.

Build/Install Xerces-C

1) Build/install the Xerces-C++ XML Parser v2.6, following the instructions on
the http://xml.apache.org/xerces-c website.

Set the environment variable XERCESC_HOME to point to the directory containing
the Xerces include and lib directories.

v2.6 is an old version xerces-c the current version is 2.8. Attempting to compile 2.6 did not work on 10.4.11

  1. downloaded: [3]
  2. followed commandline directions: xerces-c-src_2_6_0/doc/html/build-other.html#Mac
  3. got the following errors:
MacOSUnicodeConverter.cpp:78: error: 'static' may not be used when defining (as opposed to declaring) a static data member
MacOSUnicodeConverter.cpp:84: error: 'static' may not be used when defining (as opposed to declaring) a static data member

v2.7 builds successfully on 10.4.11

  1. downloaded: [4]
  2. followed commandline directions: xerces-c-src_2_7_0/doc/html/build-other.html#Mac

Build/Install CBE SDK

2) Download the current CBE SDK from the from the download site at
http://www.eclipse.org/tptp/home/downloads/downloads.php
(i.e., cbe.linux_<platform>.sdk-<timestamp>.zip) and unzip that package into a
directory, then set the environment variable CBE_SDK_HOME to point to that
directory.

There is not a prebuilt CBE SDK for OS X. There is a updated patch on the bug listed above. There does not seem to be a source tarball to download the CBE. So the patch must be applied to a CVS check out. Here are the steps to build and test the CBE on OSX.

  1. check out the CBE: dev.eclipse.org:/cvsroot/tptp:platform/org.eclipse.tptp.platform.logging.events
  2. apply patch to src.native folder
  3. build and test it:
   cd src.native/CommonBaseEvent
   # build it
   make
   # make the unit test script executable
   chmod a+x UnitTest/scripts/UT_CBE_Darwin.sh
   # run the unit tests
   UnitTest/scripts/UT_CBE_Darwin.sh -l packaging -a ut
   # run the sample application
   packaging/Sample
   # build the zip files which also populates the sdk folder
   make package

Details

There is a README.txt with instructions for building: CommonBaseEvent/README.txt It has an out of date CVS location for the source. Here is an issue to get that fixed [5]

The CBE contains scripts for running unit tests on it. Each platform has its own script for running the tests. The patch includes a darwin version of the script: UT_CBE_Darwin.sh That script expects to find a "sample.xml" file which does not exist in the CVS check out.. The script wants to use sample.xml to test the "Sample" application. However this seems out of date. The Sample application does not take an input file. I filed this issue[6] about that. Running the script without the file will test everything and then complain with "Sample input file sample.xml not found."

Running the Sample program can be done manually. It is located in the packaging folder. When running this Sample program OS X reported a double free error. After a little experimentation I tracked it down to a problem in Sample itself, it isn't an issue with the CBE library. Here is the issue describing the bug in Sample.c [7]