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
(14 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/ | + | ~/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/ | + | ~/mac-packaging/non-flat-packages/libusb |
</pre> | </pre> | ||
== Building OLA Dependancies == | == Building OLA Dependancies == | ||
− | |||
− | In ~/mac-packaging/build/ | + | === libusb === |
+ | |||
+ | In ~/mac-packaging/build/libusb-1.0.6: | ||
<pre> | <pre> | ||
− | /configure | + | ./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" |
− | make install | + | DESTDIR=/Users/simonn/lighting/mac-packaging/non-flat-packages/libusb/ make install |
</pre> | </pre> | ||
Line 31: | Line 30: | ||
<pre> | <pre> | ||
− | ./configure | + | ./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" |
− | make install | + | DESTDIR=/Users/simonn/lighting/mac-packaging/non-flat-packages/microhttpd/ make install |
</pre> | </pre> | ||
Line 39: | Line 38: | ||
<pre> | <pre> | ||
− | ./configure | + | ./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" |
− | 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 65: | Line 57: | ||
</pre> | </pre> | ||
− | == Creating | + | == 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 | 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 | ||
Line 73: | 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 89: | 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 |
− | + | DESTDIR=/Users/simonn/lighting/mac-packaging/ola make install | |
− | |||
− | make install | ||
</pre> | </pre> | ||
Line 104: | 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" |
− | make install | + | DESTDIR=/Users/simonn/lighting/mac-packaging/ola-examples make install |
</pre> | </pre> | ||
+ | |||
+ | Clean up the .DS_Store and static libs in ola & ola-tools | ||
+ | |||
+ | <pre> | ||
+ | find ./ -name "*.DS_Store" -exec rm {} \; | ||
+ | find ./ -name "*.a" -exec rm {} \; | ||
+ | </pre> | ||
+ | |||
+ | == Create the main package & build == | ||
+ | |||
+ | Add the 4 dependancies, ola & ola-tools |
Latest revision as of 09: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