Mac binary

  • David Burnett

    David Burnett - 2008-09-15

    Hi folks,

    Thanks for Structure Synth its a great little program.

    I've had a stab at creating a self contained Mac binary, you can get it from
    weighting in a 9.7 Mb.

    Please note, I've not tried it anywhere else but my Mac, but I've done this before so I'm fairly confident it'll work
    at least on 10.5 Intel. It's built as a Universal Application to for those PPC users, once again it's untried though.

    The recipe I've used is...

    #Download qt-mac-opensource-src-4.4.1 and

    # Just make a dylib version of Qt, not Mac style but makes thing easier

    cd /Users/vargol/Source/ports/qt-mac-opensource-src-4.4.1
    ./configure -universal -no-framework
    sudo make install

    export PATH

    #build Struct Synth using make, not xcode, to make things easier, same as the linux instructions
    #but with added universal app config.

    cd ../Structure\ Synth\ Source/
    qmake -project -after "CONFIG += opengl" -after "QT+=xml opengl" -after "CONFIG+=ppc" -after "CONFIG+=x86"

    #copy the Qt dylibs to the app bundle.
    cd Structure\ Synth\\ Synth\ Source

    cp /usr/local/Trolltech/Qt-4.4.1/lib/libQtCore.4.dylib .
    cp /usr/local/Trolltech/Qt-4.4.1/lib/libQtOpenGL.4.dylib .
    cp /usr/local/Trolltech/Qt-4.4.1/lib/libQtXml.4.dylib .
    cp /usr/local/Trolltech/Qt-4.4.1/lib/libQtGui.4.dylib .

    #tell dyld to look for the Qt dylibs in the app bundle.
    install_name_tool -id @executable_path/libQtOpenGL.4.dylib  "./libQtOpenGL.4.dylib"
    install_name_tool -id @executable_path/libQtXml.4.dylib  "./libQtXml.4.dylib"
    install_name_tool -id @executable_path/libQtGui.4.dylib  "./libQtGui.4.dylib"
    install_name_tool -id @executable_path/libQtCore.4.dylib  "./libQtCore.4.dylib"

    install_name_tool -change `otool -L "./libQtOpenGL.4.dylib" | awk '/libQtCore/ {print $1}'`  @executable_path/libQtCore.4.dylib  "./libQtOpenGL.4.dylib"
    install_name_tool -change `otool -L "./libQtOpenGL.4.dylib" | awk '/libQtGui/ {print $1}'`  @executable_path/libQtGui.4.dylib  "./libQtOpenGL.4.dylib"
    install_name_tool -change `otool -L "./libQtXml.4.dylib" | awk '/libQtCore/ {print $1}'`  @executable_path/libQtCore.4.dylib  "./libQtXml.4.dylib"
    install_name_tool -change `otool -L "./libQtGui.4.dylib" | awk '/libQtCore/ {print $1}'`  @executable_path/libQtCore.4.dylib  "./libQtGui.4.dylib"

    install_name_tool -change `otool -L "./Structure Synth Source" | awk '/libQtCore/ {print $1}'`  @executable_path/libQtCore.4.dylib  "./Structure Synth Source"
    install_name_tool -change `otool -L "./Structure Synth Source" | awk '/libQtOpenGL/ {print $1}'`  @executable_path/libQtOpenGL.4.dylib  "./Structure Synth Source"
    install_name_tool -change `otool -L "./Structure Synth Source" | awk '/libQtXml/ {print $1}'`  @executable_path/libQtXml.4.dylib  "./Structure Synth Source"
    install_name_tool -change `otool -L "./Structure Synth Source" | awk '/libQtGui/ {print $1}'`  @executable_path/libQtGui.4.dylib  "./Structure Synth Source"

    #Done, give it a run

    The otool / awk stuff could be replaced with hardcoded /usr/local/Trolltech/Qt-4.4.1/lib/libQtWhatever.4.dylib, but is more flexible if you install Qt elsewhere.


    • Mikael Hvidtfeldt Christensen


      Actually I've had several requests for Mac binaries, but I've not been able to provide them until now.

      I did manage to get Structure Synth to compile on a Mac, but my builds ended up with references to Qt4 Framework libraries, and I haven't got a clue on how to distribute these (I do not own an Apple computer myself, so my mac experience is quite limited.). But I can see you found a way to create 'dylib' libraries.

      I'll add a link to your build at the Structure Synth web site.

    • David Burnett

      David Burnett - 2008-09-16

      I did originally build Structure Synth using your instructions but as it required manual intervention in XCode
      I decided to try the more scriptable route for the self contained version.  I have to do something similar for Oxidizer
      so I was on  familiar ground. Yeah, It's not very Mac but most people wouldn't notice.

      Now what it does need is an icon :-)


    • ubi

      ubi - 2008-12-06

      hi, david.

      thanks a lot for providing this build.
      I've just started using structure synth yesterday and I'm super excited.

      I've tried to export the render templates but nothing happens.
      they don't get copied to clipboard or rendered to text file.

      any idea why?
      I've tried saving to folders with 777 permissions but nothing.
      the file isn't there.

      looking forward for a hint on this.


    • David Burnett

      David Burnett - 2008-12-06

      I'm afraid I'm can't be to much help as  "It works for me".

      Is there any output in the System logs ? (/Applications/Utilities/


  • Anonymous - 2011-04-02

    Has your setup/process changed since 2008?  I've grabbed qt 4.5.3 source…built that successfully (no Universal support …I'm on OS 10.6.7) but cannot build Structure Synth 1.5.0.  

    StructureSynth/GUI/../../SyntopiaCore/GLEngine/EngineWidget.h:176: error: ISO C++ forbids declaration of QGLShaderProgram with no type
    StructureSynth/GUI/../../SyntopiaCore/GLEngine/EngineWidget.h:176: error: expected ; before * token
    make: *** [Main.o] Error 1
  • David Burnett

    David Burnett - 2011-04-02

    Looking at my pro script for 1.50 the options I used were

    " -after "QT+=xml opengl script" -after "CONFIG+=ppc" -after "CONFIG+=x86" -after "CONFIG+=ppc64" -after "CONFIG+=x86_64"

    however I think the issue is the QT Version you're using, I don't think QGLShaderProgram came in until QT 4.6, I tend to build Mikael's apps with the latest stable QT, so SS 1.50 would have been build with something like QT 4.7.1 .


    If your not building universal then you can skip the CONFIGS

  • Anonymous - 2011-04-02

    I had trouble building qt-everywhere-opensource-src-4.7.2 but I now realize the importance of downloading the .tar.gz version instead of the .zip version! Will come back again if I'm stumped. Cheers!

  • Anonymous - 2011-04-05

    After finally getting the right version of Qt and successfully building it, I still needed to copy qt_menu.nib to the Resource folder of the app. (see here)

    Had better luck with your other posting at since it's more recent and covers the compilation including libQtScript.4.dylib.

    The first time I ran it, it crashed while building the menu (probably a setting missing that gets set after first launch?) but ran perfectly the second time. I'm quite excited now (going to see if I can fix a couple of bugs and add some effects like gravity/tropism..fix the inverted normals when  is called, etc) even though I'm apparently not skilled in C++ (used to Java, C#, etc)

    Thanks to mikaelc for the work/source and to vargol for the instructions + work.


Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

No, thanks