[Ipe-discuss] Compiling Ipe 6.0pre32 on Mac OS X 10.6 (Snow Leopard)

Sherif Ghali sherif.ghali at yahoo.com
Sat Jun 5 04:57:07 CEST 2010

Here are some notes for installing ipe-6.0pre32 on Mac OS X 10.6 (Snow Leopard).

The directories used are:
        /usr/local      is a reasonable location for installing Ipe.
        /opt/local      MacPorts installs in this directory.
                        First wipe out /opt/local if one is left-over from Leopard.
                        MacPorts packages installed under Leopard will not run
under Snow Leopard (nor will Ipe if installed under Leopard).
        Xcode is not installed by default. It's on the OS X disk and is also at
        MacPorts is a package manager, similar to Debian's apt-get and
                Fedora's rpm. Download/run it
                then run
                        sudo port -v selfupdate
                Once MacPorts is installed, installing many linux packages is easy.
                For one, Ipe needs Freetype2:
                        sudo port install freetype
        MacTeX is derived from Tex Live
                        1.3GB        download
                        >2GB        installed
                pdflatex is now at:
                MacTeX puts this directory at the beginning of your
                path (and then you are ready to call pdflatex etc
                directly), but MacPorts also puts /opt/local/bin at
                the beginning of your path. If you already had MacTeX
                before you installed MacPorts, you will need to do
                something like:
                        sudo rm /usr/bin/pdflatex
                        sudo ln -s /usr/local/texlive/2009/bin/universal-darwin/pdflatex /usr/bin
                The first is needed only if you upgraded from Leopard to Snow Leopard,
                and TeX was already installed.
                Also make sure you do not have:
                        export IPEPDFLATEX=/opt/local/bin/pdflatex
                in your .bash_profile.
        Qt SDK
                        545MB        download
                        1.7GB        installed
        Unpack ipe in /usr/local:
                cd /usr/local
                [sudo] cp ipe-6.0pre32-src.tar .
                [sudo] tar -xf ipe-6.0pre32-src.tar 
                sudo chown -R myusername /usr/local/ipe-6.0pre32
                cd ipe-6.0pre32/src/
        Edit /usr/local/ipe-6.0pre32/src/config.pri:
                        if you are using emacs, for increased readability
                        replace 'text' in the first line with 'sh-mode'.
                        If you a regular emacs/Qt user, consider using the
                        dedicated .pri/.pro mode.
                        then remove the -*- text -*- line.
                Add the following block somewhere in config.pri.
                        mac {
                          QMAKE_CXXFLAGS   += -m32
                          QMAKE_LFLAGS     += -m32
                          # --------Freetype includes--------
                          # We need the next line because ipefonts.cpp #includes "ft2build.h".
                          FREETYPE_INCLUDE  = /Developer/SDKs/MacOSX10.6.sdk/usr/X11/include
                          # We need also the following line because ft2build.h #includes "freetype/config/ftheader.h"
                          FREETYPE_INCLUDE += /Developer/SDKs/MacOSX10.6.sdk/usr/X11/include/freetype2
                          # ...and we *may* need the next one because other freetype2 are therein.
                          # FREETYPE_INCLUDE += /Developer/SDKs/MacOSX10.6.sdk/usr/X11/include/freetype2/freetype
                          # --------Freetype library--------
                          # The following freetype2 lib is a 32-bit dylib.
                          FREETYPE_LIBPATH  = /Developer/SDKs/MacOSX10.6.sdk/usr/X11/lib
                          # (The one in /opt/local/lib is a 64-bit dylib.)
                          IPEPREFIX         = /usr/local/ipe-6.0pre32
                Insert the "mac { ... }" block somewhere after the line:
                        FREETYPE_INCLUDE  = /usr/include/freetype2
                and before the block where:
                    error( "You need to specify IPEPREFIX!")
            Other possible settings (if you use X11 and i-installer instead of MacPorts) are:
                        FREETYPE_INCLUDE  = /usr/X11/include /usr/X11/include/freetype2
                        FREETYPE_INCLUDE  = /usr/include /usr/include/freetype2                        
                cd /usr/local/ipe-6.0pre32/src
                qmake -spec macx-g++ -recursive
                sudo make install
        Set path to the 14 standard Postscript fonts:
                mkdir -p /usr/local/ipe-6.0pre32/share/ipe/6.0pre32
                cp /usr/local/ipe-6.0pre32/tetex-fontmap.xml /usr/local/ipe-6.0pre32/share/ipe/6.0pre32/fontmap.xml
                In /usr/local/ipe-6.0pre32/fontmap.xml, replace each occurrence of
                If you decide to install TeX through MacPorts rather than as a
                standalone package, the location would be:
        Copy ipekeys.xml to where they are expected:
                cp /usr/local/ipe-6.0pre32/ipekeys.xml /usr/local/ipe-6.0pre32/share/ipe/6.0pre32
Final setup
        To launch from the terminal:
                sudo rm /usr/lib/libipe*
                sudo ln -s /usr/local/ipe-6.0pre32/build/lib/*.1.dylib /usr/lib

                sudo rm /usr/bin/ipe
                sudo rm /usr/bin/ipetoipe 
                sudo ln -s /usr/local/ipe-6.0pre32/build/bin/ipe.app/Contents/MacOS/ipe           /usr/bin
                    (doing 'sudo ln -s /usr/local/ipe-6.0pre32/build/bin/ipe.app           /usr/bin'
                     is not suitable because OSX does not expand *.app in /usr/bin)
                sudo ln -s /usr/local/ipe-6.0pre32/build/bin/ipetoipe.app/Contents/MacOS/ipetoipe /usr/bin

                pdftoipe is separate:
                        sudo rm /usr/bin/pdftoipe 
                        sudo ln -s /usr/local/pdftoipe-20070509/pdftoipe.app/Contents/MacOS/pdftoipe /usr/bin

        To launch from the dock:
                If you also want to use ipe from the dock:
                        sudo ln -s /usr/local/texlive/2009/bin/universal-darwin/pdflatex /usr/bin
                Another option---if TeX is installed via MacPorts:
                        sudo ln -s /opt/local/bin/pdflatex /usr/bin
                In Finder
                        drag /usr/local/ipe-6.0pre32/build/bin/ipe.app to the dock
                        (or else drag /usr/bin/ipe.app to the dock).

Almost everything works perfectly, but there are a few quirks if
one launches ipe from the terminal or by dired-do-shell-command
(key: "!") in emacs dired mode.

-- The ipe window appears second from the top of the window stack,
   underneath the terminal (or emacs) window.

-- The ipe icon appears at the tail end of the Meta-Tab sequence.
   Hint: Type Meta-Tab, Meta-`, Meta-` (or Meta-Tab then point with
   the mouse) to reach it.

-- In the Meta-Tab sequence, ipe appears with the (ugly) generic
   program icon rather than ipe's icon.

All is well if ipe is launched from the dock.


To access the object-properties menu use CTRL-AppleKey-MouseButton on
a single-button mouse and AppleKey-RightButton on a two-button mouse.

To end a path use CTRL-MouseButton on a single-button mouse and 
RightButton on a two-button mouse.

Perhaps the nicest feature of running ipe on a Mac rather than on
Windows is that two-finger swipes perform a zoom in/zoom out. It is
very handy to zoom into a detail, modify something, then zoom out,
recenter (x), and repeat. The same can be done with the scroll wheel
of a mouse if one is attached.
Installing MacTeX: 2GB; Qt: 2GB; XCode: 2GB; MacPorts: 1GB.
Finding that a free-software package is concise, well-written, and
useful: priceless. There are some things money can't buy, for
everything else there's a BiggerDrive.



More information about the Ipe-discuss mailing list