We've launched our new site at www.openlighting.org. This wiki will remain and be updated with more technical information.
Difference between revisions of "Build OLA Mac Packages"
From wiki.openlighting.org
(7 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | These are my notes on building universal binary packages for mac. | + | These are my notes on building universal binary packages for mac. It's mostly based off the [http://developer.apple.com/library/mac/#documentation/Porting/Conceptual/PortingUnix/compiling/compiling.html#//apple_ref/doc/uid/TP40002850-TPXREF101 Apple developer notes ] |
==Directory setup== | ==Directory setup== | ||
Line 5: | Line 5: | ||
<pre> | <pre> | ||
# extracted tarballs | # extracted tarballs | ||
− | |||
~/mac-packaging/build/libmicrohttpd-0.4.2 | ~/mac-packaging/build/libmicrohttpd-0.4.2 | ||
~/mac-packaging/build/protobuf-2.2.0 | ~/mac-packaging/build/protobuf-2.2.0 | ||
− | |||
~/mac-packaging/build/libusb-1.0.6 | ~/mac-packaging/build/libusb-1.0.6 | ||
# install desintations | # install desintations | ||
− | |||
~/mac-packaging/non-flat-packages/libmicrohttpd | ~/mac-packaging/non-flat-packages/libmicrohttpd | ||
~/mac-packaging/non-flat-packages/protobuf | ~/mac-packaging/non-flat-packages/protobuf | ||
− | |||
~/mac-packaging/non-flat-packages/libusb | ~/mac-packaging/non-flat-packages/libusb | ||
</pre> | </pre> | ||
Line 20: | Line 16: | ||
== Building OLA Dependancies == | == Building OLA Dependancies == | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== libusb === | === libusb === | ||
Line 35: | Line 22: | ||
<pre> | <pre> | ||
− | /configure --disable-dependency-tracking | + | ./configure --disable-dependency-tracking |
− | make CFLAGS="-arch ppc -arch i386" LDFLAGS=" -arch ppc -arch i386" | + | make CFLAGS="-arch ppc -arch i386 -arch x86_64" LDFLAGS=" -arch ppc -arch i386 -arch x86_64" |
DESTDIR=/Users/simonn/lighting/mac-packaging/non-flat-packages/libusb/ make install | DESTDIR=/Users/simonn/lighting/mac-packaging/non-flat-packages/libusb/ make install | ||
</pre> | </pre> | ||
Line 44: | Line 31: | ||
<pre> | <pre> | ||
./configure --disable-dependency-tracking --with-libgcrypt-prefix=/tmp/foo | ./configure --disable-dependency-tracking --with-libgcrypt-prefix=/tmp/foo | ||
− | make CFLAGS="-arch ppc -arch i386" CPPFLAGS="-arch ppc -arch i386" LDFLAGS=" -arch ppc -arch i386" | + | make CFLAGS="-arch ppc -arch i386" CPPFLAGS="-arch ppc -arch i386 -arch x86_64" LDFLAGS=" -arch ppc -arch i386 -arch x86_64" |
DESTDIR=/Users/simonn/lighting/mac-packaging/non-flat-packages/microhttpd/ make install | DESTDIR=/Users/simonn/lighting/mac-packaging/non-flat-packages/microhttpd/ make install | ||
</pre> | </pre> | ||
Line 52: | Line 39: | ||
<pre> | <pre> | ||
./configure --disable-dependency-tracking | ./configure --disable-dependency-tracking | ||
− | make CFLAGS="-arch ppc -arch i386" CPPFLAGS="-arch ppc -arch i386" LDFLAGS=" -arch ppc -arch i386" | + | make CFLAGS="-arch ppc -arch i386 -arch x86_64" CPPFLAGS="-arch ppc -arch i386 -arch x86_64" LDFLAGS=" -arch ppc -arch i386 -arch x86_64" |
DESTDIR=/Users/simonn/lighting/mac-packaging/non-flat-packages/protobuf/ make install | DESTDIR=/Users/simonn/lighting/mac-packaging/non-flat-packages/protobuf/ make install | ||
./configure --disable-dependency-tracking | ./configure --disable-dependency-tracking | ||
sudo make install | sudo make install | ||
+ | cd python | ||
+ | python setup.py install --root ~/lighting/mac-packaging/non-flat-packages/protobuf --prefix /usr/local/ | ||
</pre> | </pre> | ||
The second make install is required so that ola-examples builds. I'm sure there is a way around this but I can't figure it out... | The second make install is required so that ola-examples builds. I'm sure there is a way around this but I can't figure it out... | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== Cleanup === | === Cleanup === | ||
Line 85: | Line 65: | ||
<pre> | <pre> | ||
− | + | libusb 1.0.8.mpkg | |
− | + | libusb 1.0.8.pkg | |
− | |||
− | |||
microhttpd 0.4.2.mpkg | microhttpd 0.4.2.mpkg | ||
microhttpd.pkg | microhttpd.pkg | ||
Line 101: | Line 79: | ||
<pre> | <pre> | ||
./configure --disable-dependency-tracking | ./configure --disable-dependency-tracking | ||
− | make CPPFLAGS="-arch ppc -arch i386" LDFLAGS=" -arch ppc -arch i386" | + | make CPPFLAGS="-arch ppc -arch i386 -arch x86_64 -mmacosx-version-min=10.5" LDFLAGS=" -arch ppc -arch i386 -arch x86_64" |
make check | make check | ||
sudo make install | sudo make install | ||
Line 114: | Line 92: | ||
<pre> | <pre> | ||
− | /configure --disable-dependency-tracking | + | ./configure --disable-dependency-tracking |
− | make CPPFLAGS="-arch ppc -arch i386" LDFLAGS=" -arch ppc -arch i386" | + | make CPPFLAGS="-arch ppc -arch i386 -arch x86_64 -mmacosx-version-min=10.5" LDFLAGS=" -arch ppc -arch i386 -arch x86_64" |
DESTDIR=/Users/simonn/lighting/mac-packaging/ola-examples make install | DESTDIR=/Users/simonn/lighting/mac-packaging/ola-examples make install | ||
</pre> | </pre> | ||
− | Clean up the .DS_Store | + | Clean up the .DS_Store and static libs in ola & ola-tools |
<pre> | <pre> | ||
find ./ -name "*.DS_Store" -exec rm {} \; | find ./ -name "*.DS_Store" -exec rm {} \; | ||
+ | find ./ -name "*.a" -exec rm {} \; | ||
</pre> | </pre> | ||
Latest revision as of 08:00, 28 April 2011
These are my notes on building universal binary packages for mac. It's mostly based off the Apple developer notes
Contents
Directory setup
# extracted tarballs ~/mac-packaging/build/libmicrohttpd-0.4.2 ~/mac-packaging/build/protobuf-2.2.0 ~/mac-packaging/build/libusb-1.0.6 # install desintations ~/mac-packaging/non-flat-packages/libmicrohttpd ~/mac-packaging/non-flat-packages/protobuf ~/mac-packaging/non-flat-packages/libusb
Building OLA Dependancies
libusb
In ~/mac-packaging/build/libusb-1.0.6:
./configure --disable-dependency-tracking make CFLAGS="-arch ppc -arch i386 -arch x86_64" LDFLAGS=" -arch ppc -arch i386 -arch x86_64" DESTDIR=/Users/simonn/lighting/mac-packaging/non-flat-packages/libusb/ make install
libmicrohttpd
./configure --disable-dependency-tracking --with-libgcrypt-prefix=/tmp/foo make CFLAGS="-arch ppc -arch i386" CPPFLAGS="-arch ppc -arch i386 -arch x86_64" LDFLAGS=" -arch ppc -arch i386 -arch x86_64" DESTDIR=/Users/simonn/lighting/mac-packaging/non-flat-packages/microhttpd/ make install
protobuf
./configure --disable-dependency-tracking make CFLAGS="-arch ppc -arch i386 -arch x86_64" CPPFLAGS="-arch ppc -arch i386 -arch x86_64" LDFLAGS=" -arch ppc -arch i386 -arch x86_64" DESTDIR=/Users/simonn/lighting/mac-packaging/non-flat-packages/protobuf/ make install ./configure --disable-dependency-tracking sudo make install cd python python setup.py install --root ~/lighting/mac-packaging/non-flat-packages/protobuf --prefix /usr/local/
The second make install is required so that ola-examples builds. I'm sure there is a way around this but I can't figure it out...
Cleanup
In ~/lighting/mac-packaging/non-flat-packages, run
find ./ -name ".DS_Store" -exec rm {} \;
Creating Dependancy Packages
Using PackageMaker, create a distribution package for each of the dependancies. Remember to fix the permissions and set Package Location to 'Same Level'. Build the package and save it in ~/lighting/mac-packaging/non-flat-packages
~/lighting/mac-packaging/non-flat-packages should now look something like:
libusb 1.0.8.mpkg libusb 1.0.8.pkg microhttpd 0.4.2.mpkg microhttpd.pkg protobuf 2.2.0.mpkg protobuf 2.2.0.pkg
Building ola & ola-examples
Unpack the ola tarball, then run
./configure --disable-dependency-tracking make CPPFLAGS="-arch ppc -arch i386 -arch x86_64 -mmacosx-version-min=10.5" LDFLAGS=" -arch ppc -arch i386 -arch x86_64" make check sudo make install DESTDIR=/Users/simonn/lighting/mac-packaging/ola make install
Again, The first make install is required so that ola-examples builds. I'm sure there is a way around this but I can't figure it out...
Unpack the ola-examples tarball and run:
./configure --disable-dependency-tracking make CPPFLAGS="-arch ppc -arch i386 -arch x86_64 -mmacosx-version-min=10.5" LDFLAGS=" -arch ppc -arch i386 -arch x86_64" DESTDIR=/Users/simonn/lighting/mac-packaging/ola-examples make install
Clean up the .DS_Store and static libs in ola & ola-tools
find ./ -name "*.DS_Store" -exec rm {} \; find ./ -name "*.a" -exec rm {} \;
Create the main package & build
Add the 4 dependancies, ola & ola-tools