PackageMaker

From Emergent

Jump to: navigation, search

TODO: Update these instructions for Emergent

Warning: You will certainly need to modify these commands based on your own setup.

Contents

Step 0: Pre-reqs

Ask otool what emergent is linked against. We're going to include everything non-standard:

mingus@mightyme:/Users/mingus -> otool -L `which pdp++`
/usr/local/bin/pdp++:
        Inventor.framework/Versions/B/Inventor (compatibility version 45.0.0, current version 45.6.0)
        /System/Library/Frameworks/OpenGL.framework/Versions/A/OpenGL (compatibility version 1.0.0, current version 1.0.0)
        SoQt.framework/Versions/A/SoQt (compatibility version 25.0.0, current version 25.1.0)
        QtGui.framework/Versions/4/QtGui (compatibility version 4.2.0, current version 4.2.3)
        QtOpenGL.framework/Versions/4/QtOpenGL (compatibility version 4.2.0, current version 4.2.3)
        QtCore.framework/Versions/4/QtCore (compatibility version 4.2.0, current version 4.2.3)
        Qt3Support.framework/Versions/4/Qt3Support (compatibility version 4.2.0, current version 4.2.3)
        QtXml.framework/Versions/4/QtXml (compatibility version 4.2.0, current version 4.2.3)
        QtNetwork.framework/Versions/4/QtNetwork (compatibility version 4.2.0, current version 4.2.3)
        QtSql.framework/Versions/4/QtSql (compatibility version 4.2.0, current version 4.2.3)
        /System/Library/Frameworks/QuickTime.framework/Versions/A/QuickTime (compatibility version 1.0.0, current version 200.0.0)
        /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 18.0.0)
        /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 22.0.0)
        /usr/local/lib/libpdp-4.0.3rc1.1.dylib (compatibility version 2.0.0, current version 2.0.0)
        /usr/local/lib/libtacss-4.0.3rc1.1.dylib (compatibility version 2.0.0, current version 2.0.0)
        /opt/local/lib/libgslcblas.0.dylib (compatibility version 1.0.0, current version 1.0.0)
        /sw/lib/ncurses/libncurses.5.dylib (compatibility version 5.0.0, current version 5.0.0)
        /opt/local/lib/libode.dylib (compatibility version 0.0.0, current version 0.0.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 88.5.1)
        /opt/local/lib/libgsl.0.dylib (compatibility version 11.0.0, current version 11.0.0)
        /opt/local/lib/libreadline.5.1.dylib (compatibility version 5.0.0, current version 5.1.0)
        /usr/local/lib/libsimage.20.dylib (compatibility version 27.0.0, current version 27.1.0)
        /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0)
        /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)

Make copies of all the dylibs we are shipping into /usr/local/lib and remove MacPorts and Fink from our LD_LIBRARY_PATH so pdp links against the /usr/local/lib copies.

cp /opt/local/lib/libgslcblas.0.dylib /sw/lib/ncurses/libncurses.5.dylib /opt/local/lib/libode.dylib /opt/local/lib/libgsl.0.dylib /opt/local/lib/libreadline.5.1.dylib /usr/local/lib/libsimage.20.dylib /usr/local/lib
for ii in /opt/local/lib/libgslcblas.0.dylib /sw/lib/ncurses/libncurses.5.dylib /opt/local/lib/libode.dylib /opt/local/lib/libgsl.0.dylib /opt/local/lib/libreadline.5.1.dylib /usr/local/lib/libsimage.20.dylib;do cp $ii /tmp/pdp4dir$ii;done
echo Before: $LD_LIBRARY_PATH;export LD_LIBRARY_PATH=$(echo $LD_LIBRARY_PATH | sed 's,\/opt\/local\/lib,,;s,\/sw\/lib,,;s,^:,,;s,::,:,g');echo After: $LD_LIBRARY_PATH

Step 1: PDP++

If you've already got pdp built and it is linked against libraries in MacPorts/Fink or other places, you need to rebuild.

cd $PDP4DIR && make clean && ./configure && make -j2 && ./configure --prefix=/tmp/pdp4dir/usr/local && make -t install && make install

Step 2: Copy

mkdir -p /tmp/pdp4dir/usr/local/lib /tmp/pdp4dir/Library/Frameworks /tmp/pdp4dir/opt/local/lib /tmp/pdp4dir/sw/lib/ncurses
cp -r /Library/Frameworks/SoQt.framework /Library/Frameworks/QtGui.framework /Library/Frameworks/QtOpenGL.framework  /Library/Frameworks/QtCore.framework /Library/Frameworks/Qt3Support.framework /Library/Frameworks/QtXml.framework /Library/Frameworks/QtNetwork.framework /Library/Frameworks/QtSql.framework /Library/Frameworks/Inventor.framework  /tmp/pdp4dir/Library/Frameworks # ignore errors
cd /tmp/pdp4dir/Applications && wget http://grey.colorado.edu/pdp/images/5/51/Pdp_app.tar && tar -xf pdp_app.tar && rm pdp_app.tar
  1. Download Pdp_app.tar, unpack it into /tmp/pdp4dir/Applications/

Step 3: PackageMaker

  1. Start up PackageMaker
  2. Select Single Package Project
  3. Title: PDP++
  4. Description: PDP++ is a comprehensive simulation environment for creating complex, sophisticated models of the brain and cognitive processes using neural network models. These same networks can also be used for all kinds of other more pragmatic tasks, like predicting the stock market or analyzing data. It includes a full GUI environment for constructing networks and the input/output patterns for the networks to process, and many different analysis tools for understanding what the networks are doing. It has a new tabbed-browser style interface with full 3D graphics (via OpenGL and Open Inventor/Coin3D), and powerful new GUI programming tools and data processing and analysis capabilities.
  5. next tab
  6. Root: /tmp
  7. next tab
  8. Default location: /
  9. Check Allow revert to previous version
  10. Click Edit Package Requirements
  11. next next tab
  12. Identifier: PDP++
  13. Get info string: 4.0.3, Computational Cognitive Neuroscience Lab
  14. Version: 4.0.3rc1
  15. Select Project > Build
  16. Save As: pdp-4.0.3rc1
Personal tools