From: Charles M. <cw...@gm...> - 2007-11-30 04:30:14
|
For reference and possible critique, I wrote up notes on how I built a Universal matplotlib dist. # Build instructions for a matplotlib distribution on OSX # Using python-2.5 package from python.org # Getting starting quaternion:mpl-build cmoad$ pwd /usr/local/src/mpl-build quaternion:mpl-build cmoad$ ll total 11408 -rw-r--r--@ 1 cmoad staff 1.2M Jul 2 18:06 freetype-2.3.5.tar.bz2 -rw-r--r--@ 1 cmoad staff 600K Nov 9 07:31 libpng-1.2.23.tar.bz2 -rw-r--r-- 1 cmoad wheel 3.8M Nov 29 21:47 matplotlib-0.91.1.tar.gz # Setup environment for Universal builds of libpng and freetype quaternion:mpl-build cmoad$ export MACOSX_DEPLOYMENT_TARGET=10.4 quaternion:mpl-build cmoad$ export CFLAGS="-arch i386 -arch ppc - isysroot /Developer/SDKs/MacOSX10.4u.sdk" quaternion:mpl-build cmoad$ export LDFLAGS="-arch i386 -arch ppc - syslibroot,/Developer/SDKs/MacOSX10.4u.sdk" # Starting with libpng quaternion:mpl-build cmoad$ tar -xjf libpng-1.2.23.tar.bz2 quaternion:mpl-build cmoad$ cd libpng-1.2.23 # To avoid errors with "-M" flags and Universal builds, pass "-- disable-dependency-tracking" to configure quaternion:libpng-1.2.23 cmoad$ ./configure --disable-dependency- tracking quaternion:libpng-1.2.23 cmoad$ make -j3 # To make sure we don't link against the dynamic libs, copy the static library to the libpng source root quaternion:libpng-1.2.23 cmoad$ cp .libs/libpng.a ./ # To prove we have a Universal binary quaternion:libpng-1.2.23 cmoad$ file libpng.a libpng.a: Mach-O universal binary with 2 architectures libpng.a (for architecture i386): current ar archive random library libpng.a (for architecture ppc): current ar archive random library # Next to freetype quaternion:libpng-1.2.23 cmoad$ cd ../ quaternion:mpl-build cmoad$ tar -xjf freetype-2.3.5.tar.bz2 quaternion:mpl-build cmoad$ cd freetype-2.3.5 quaternion:freetype-2.3.5 cmoad$ ./configure quaternion:freetype-2.3.5 cmoad$ make -j3 # Copy the freetype static lib to its source root as well quaternion:freetype-2.3.5 cmoad$ cp objs/.libs/libfreetype.a ./ # To prove we have a Universal binary quaternion:freetype-2.3.5 cmoad$ file libfreetype.a libfreetype.a: Mach-O universal binary with 2 architectures libfreetype.a (for architecture i386): current ar archive random library libfreetype.a (for architecture ppc): current ar archive random library # Finally to matplotlib quaternion:freetype-2.3.5 cmoad$ cd ../ # This OSX package from python.org will build Universal python extensions without our help quaternion:mpl-build cmoad$ unset MACOSX_DEPLOYMENT_TARGET quaternion:mpl-build cmoad$ unset CFLAGS quaternion:mpl-build cmoad$ unset LDFLAGS # Point gcc to our new Universal builds of libpng and freetype quaternion:mpl-build cmoad$ export CFLAGS="-arch ppc -arch i386 -I/usr/ local/src/mpl-build/libpng-1.2.23 -I/usr/local/src/mpl-build/ freetype-2.3.5/include" quaternion:mpl-build cmoad$ export LDFLAGS="-arch ppc -arch i386 -L/ usr/local/src/mpl-build/libpng-1.2.23 -L/usr/local/src/mpl-build/ freetype-2.3.5" # Now we are ready to build matplotlib quaternion:mpl-build cmoad$ tar -xzf matplotlib-0.91.1.tar.gz quaternion:mpl-build cmoad$ cd matplotlib-0.91.1 # Matplotlib's detected environment for those interested (I already installed numpy) quaternion:matplotlib-0.91.1 cmoad$ python setupegg.py = = = = ======================================================================== BUILDING MATPLOTLIB matplotlib: 0.91.1 python: 2.5.1 (r251:54869, Apr 18 2007, 22:08:04) [GCC 4.0.1 (Apple Computer, Inc. build 5367)] platform: darwin REQUIRED DEPENDENCIES numpy: 1.0.4 freetype2: found, but unknown version (no pkg-config) OPTIONAL BACKEND DEPENDENCIES libpng: found, but unknown version (no pkg-config) Tkinter: Tkinter: 50704, Tk: 8.4, Tcl: 8.4 wxPython: no * wxPython not found Gtk+: no * Building for Gtk+ requires pygtk; you must be able * to "import gtk" in your build/install environment Qt: no Qt4: no Cairo: no OPTIONAL DATE/TIMEZONE DEPENDENCIES datetime: present, version unknown dateutil: matplotlib will provide pytz: matplotlib will provide OPTIONAL USETEX DEPENDENCIES dvipng: no ghostscript: /bin/sh: gs: command not found latex: no EXPERIMENTAL CONFIG PACKAGE DEPENDENCIES configobj: matplotlib will provide enthought.traits: matplotlib will provide # Finally build the matplotlib egg quaternion:matplotlib-0.91.1 cmoad$ python setupegg.py bdist_egg # The resulting eggs which should be **cross fingers** 10.3+ compatible quaternion:matplotlib-0.91.1 cmoad$ ll dist/ total 12184 -rw-r--r-- 1 cmoad wheel 5.9M Nov 29 23:03 matplotlib-0.91.1-py2.5- macosx-10.3-fat.egg # END Attached as well in case line breaks destroy the readability. |