oF on Mac OS X with just Makefiles

Hi all,

I just got started with oF and so far I’m finding it great.
I know this has been asked quite a lot of times, and sorry if this is a duplicate, but I’d really like to know if it’s possible to create and run oF applications on Mac OS X without XCode
(I wouldn’t mind using Code::Blocks on Mac either but apparently it’s not that stable)

Apparently, I’m not the only one who would like to see this being possible.
The reason is that I’m usually working on Mac / Linux and Windows so having a specific Makefile for each platform would be great, and would allow me using the same text editor on all OS’s

Thanks for your help in advance

it’s in the works and pretty close to being complete :slight_smile:

Great news, can’t wait!

This is definitely some lovely piece of news.

Question: is this being worked specifically for Mac? or is going to be on all archs (or at least all *nixes).
I’d really love to be able to use sublime text for all my platforms, and this would make it possible to just move projects from one arch to the other (almost) seamlessly.
Is there testing needed? any repo out there somewhere?

Thanks for this effort!

Well for me it worked on debian wit the normal *nix release.

But I’d really like to be able to use this on OS X too, any news on this? Actually it would be awesome to have this on all releases even Windows.

@justadude I believe it is milestoned for the .8 release but you can monitor this pull request and get it from the develop branch on github if you want to test/be an early adopter

https://github.com/openframeworks/openFrameworks/pull/1887

Hi @justadude,

I started working on a cmake solution. I got it building on OSX + Windows. Linux needs
a bit more work though, but Arturo showed me the new makefiles (which I wasn’t aware of
when I started with cmake files) which basically do what the cmake solution does on linux/osx.

I’m starting to use my cmake solution for coming projects and will fix all necessary things which
will arise during the next coming weeks.

ping me if you want to give it a try, or if you want to test it right away you can check my
feature-cmake branch on github: https://github.com/roxlu/openFrameworks/tree/feature-cmake/scripts/cmake

Best
roxlu

Hi guys,

Thanks for the updates, great news!
Well I think I will try @roxlu’s port and also the develop branch

I have nothing against XCode, or using an IDE, but I just feel that typing in my text editor makes me remember more stuff, thanks for making this possible with oF

I’ve been using openframeworks for several months now, and recently switched to using a Mac and would like to continue developing my old projects using makefiles like I used on my previous computer (which ran linux mint). I’m glad I found this thread, because it seems to be leading me in the right direction!

I was able to find a makefile to compile programs with on the develop branch in openFrameworks/libs/openFrameworksCompiled/project. I copied it into my project’s main directory, and tried running it just like I did on my old system. I run it and get the following output (on project ‘mandala’):

  
  
dhcp-18-111-75-21:mandala scottnla$ make  
Compiling OF library for Release  
make[2]: Nothing to be done for `ReleaseABI'.  
Done!  
  
Compiling mandala for Release  
Linking bin/mandala for osx  
mkdir -p bin  
c++ -o bin/mandala obj/osx/Release/src/main.o obj/osx/Release/src/mandala.o  -L../../../libs/FreeImage/lib/osx -L../../../libs/assimp/lib/osx -L../../../libs/cairo/lib/osx -L../../../libs/fmodex/lib/osx -L../../../libs/freetype/lib/osx -L../../../libs/glew/lib/osx -L../../../libs/glut/lib/osx -L../../../libs/glut/lib/osx/GLUT.framework -L../../../libs/glut/lib/osx/GLUT.framework/Versions -L../../../libs/glut/lib/osx/GLUT.framework/Versions/A -L../../../libs/glut/lib/osx/GLUT.framework/Versions/A/Headers -L../../../libs/glut/lib/osx/GLUT.framework/Versions/A/Resources -L../../../libs/glut/lib/osx/GLUT.framework/Versions/A/Resources/English.lproj -L../../../libs/glut/lib/osx/GLUT.framework/Versions/A/Resources/English.lproj/GLUT.nib -L../../../libs/glut/lib/osx/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib -L../../../libs/glut/lib/osx/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib -L../../../libs/openssl/lib/osx -L../../../libs/poco/lib/osx -L../../../libs/rtAudio/lib/osx -L../../../libs/tess2/lib/osx -framework Accelerate -framework QTKit -framework GLUT -framework AGL -framework ApplicationServices -framework AudioToolbox -framework Carbon -framework CoreAudio -framework CoreFoundation -framework CoreServices -framework OpenGL -framework QuickTime -framework CoreVideo -framework Cocoa -arch i386 -F../../../libs/glut/lib/osx/ -mmacosx-version-min=10.8 ../../../libs/openFrameworksCompiled/lib/osx/libopenFrameworks.a   ../../../libs/FreeImage/lib/osx/freeimage.a ../../../libs/assimp/lib/osx/assimp.a ../../../libs/cairo/lib/osx/cairo-script-interpreter.a ../../../libs/cairo/lib/osx/cairo.a ../../../libs/cairo/lib/osx/pixman-1.a ../../../libs/freetype/lib/osx/freetype.a ../../../libs/glew/lib/osx/glew.a ../../../libs/openssl/lib/osx/crypto.a ../../../libs/openssl/lib/osx/ssl.a ../../../libs/poco/lib/osx/PocoCrypto.a ../../../libs/poco/lib/osx/PocoData.a ../../../libs/poco/lib/osx/PocoDataODBC.a ../../../libs/poco/lib/osx/PocoDataSQLite.a ../../../libs/poco/lib/osx/PocoFoundation.a ../../../libs/poco/lib/osx/PocoNet.a ../../../libs/poco/lib/osx/PocoNetSSL.a ../../../libs/poco/lib/osx/PocoUtil.a ../../../libs/poco/lib/osx/PocoXML.a ../../../libs/poco/lib/osx/PocoZip.a ../../../libs/rtAudio/lib/osx/rtAudio.a ../../../libs/tess2/lib/osx/tess2.a   ../../../libs/fmodex/lib/osx/libfmodex.dylib -lobjc  
#@echo '  <key>CFBundleIconFile</key>' >> bin/mandala.app/Contents/Info.plist  
#@echo '  <string>foo.icns</string>' >> bin/mandala.app/Contents/Info.plist  
TARGET=bin/mandala  
cp: ../../../export/osx/*: No such file or directory  
make[1]: *** [afterplatform] Error 1  
make: *** [Release] Error 2  
  

It seems that the problem is that there’s nothing in …/…/…/export/osx – in fact, the directory doesn’t seem to exist. Why does the Makefile point here / what should I do to fix this?