SWAMI-2.0 Installation on Mac OS X.5.5 (Leopard)
================================================
Ebrahim Mayat <emayat at users dot sourceforge dot net>
Josh Green <jgreen at users dot sourceforge dot net>

Last updated: 9th October, 2008

Requirements:

- fluidsynth

- fink package distribution <http://www.finkproject.org/download/index.php?phpLang=en>

- X11.app, X11SDK.pkg, OpenGLSDK.pkg and QuickTimeSDK.pkg (Leopard Install DVD)

- fink packages: cairo, gtk+2, gtk+2-dev, audiofile, flac, gettext, intltool, libtool14, 
libgnomecanvas2-dev, libxml2, pygtk2-py24-dev, pkgconfig, libart2, libglade2, 
pango1-xft2-ft219-dev, fftw3 and gtksourceview 
for example: "$ fink install gtk+2-dev"

libinstpatch: configure && make && sudo make install:

$ PKG_CONFIG_PATH=/usr/local/lib/pkgconfig ./configure "LDFLAGS=-L/usr/local/lib -L/sw/lib" "CFLAGS=-I/usr/local/include -I/sw/include"

SWAMI: configure && make && sudo make install


Building an app bundle with GTK-OSX
===================================
BALATON Zoltan <balaton at users dot sourceforge dot net>

Last updated: 16th November, 2013

Resources:
http://www.gtk.org/download/macos.php

IMPORTANT! If you have packages installed from MacPorts, Fink, Homebrew or other
repositories you have to make sure that these are not visible while building
GTK-OSX. The easiest way is to create a new user for this and run everything
while logged in as that user. Mixing GTK-OSX with packages from other builds
will fail so make sure your path and environment is clean before continuing!

1. Build GTK-OSX (see: https://live.gnome.org/GTK%2B/OSX/Building)
- Download and run gtk-osx-build-setup.sh
- Set up your environment:

$ cat <<EOF >>$HOME/.profile

DEVELOPER_DIR="/Volumes/10.7/Developer"
PATH="$DEVELOPER_DIR/usr/bin":$PATH:"$HOME/.local/bin"
export DEVELOPER_DIR PATH
EOF
$ . $HOME/.profile

- Customise .jhbuildrc-custom for example:

setup_sdk("10.6", sdk_version="10.6", architectures=["i386"])
moduleset=os.environ['HOME'] + '/custom.modules'
module_autogenargs['cairo'] = '--enable-ft=no'
skip=["gnome-doc-utils", "cups"]

- Bootstrap jhbuild and build some packages

$ jhbuild shell # make sure to enter the jhbuild shell first
$ jhbuild bootstrap
$ jhbuild build meta-gtk-osx-bootstrap
$ jhbuild build meta-gtk-osx-freetype
$ jhbuild build python
$ jhbuild build meta-gtk-osx-core

2. Teach jhbuild about some more dependencies and build them

- Edit $HOME/custom.modules to have something like this:

<?xml version="1.0" standalone="no"?> <!--*- mode: nxml -*-->
<!DOCTYPE moduleset SYSTEM "moduleset.dtd">
<?xml-stylesheet type="text/xsl" href="moduleset.xsl"?>
<moduleset>

  <include href="/Users/gtkosx/Source/jhbuild/modulesets/gtk-osx.modules"/>

  <tarball id="libfftw3" version="3.3.4" supports-non-srcdir-builds="no"
           autogenargs="--enable-shared --enable-float --enable-sse2">
   <source href="http://www.fftw.org/fftw-3.3.4.tar.gz"
    size="3940427" md5sum="2edab8c06b24feeb3b82bbb3ebf3e7b3"/>
  </tarball>

  <tarball id="libsndfile" version="1.0.25" supports-non-srcdir-builds="no"
           autogenargs="CPPFLAGS=-I$DEVELOPER_DIR/Headers/FlatCarbon">
   <source href="http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.25.tar.gz"
    size="1060692" md5sum="e2b7bb637e01022c7d20f95f9c3990a2"/>
  </tarball>

  <repository type="tarball" name="sourceforge"
              href="http://downloads.sourceforge.net/sourceforge/"/>

  <autotools id="fluidsynth" autogenargs="--without-readline">
    <branch module="fluidsynth/fluidsynth-1.1.6.tar.gz"
            version="1.1.6" repo="sourceforge"
            size="958735" md5sum="ae5aca6de824b4173667cbd3a310b263" />
    <dependencies>
      <dep package="glib"/>
      <dep package="libsndfile"/>
    </dependencies>
  </autotools>

  <repository type="tarball" name="gnome"
              href="http://ftp.gnome.org/pub/GNOME/sources/" />

  <autotools id="libgnomecanvas">
    <branch module="libgnomecanvas/2.30/libgnomecanvas-2.30.3.tar.gz"
            version="2.30.3" repo="gnome"
            size="760152" md5sum="3dbf66a8c492f4e044991669671234e2" />
    <dependencies>
      <dep package="intltool"/>
      <dep package="gtk+"/>
      <dep package="libart_lgpl"/>
      <dep package="gnome-common"/>
    </dependencies>
  </autotools>

</moduleset>

- Build them:

$ jhbuild shell # re-enter shell if exited from it, otherwise not needed
$ jhbuild build libfftw3
$ jhbuild build fluidsynth
$ jhbuild build libgnomecanvas
$ jhbuild build libxml2

3. Now we could teach jhbuild to also build libinstpatch and swami like above if
   we built a release from tarballs but I simply built these by hand instead:

$ jhbuild shell # always use the shell for anything needing stuff built by jhbuild
$ cd $HOME/swami/src/libinstpatch
$ ./configure --prefix=$HOME/swami/inst --build=i386-apple-darwin12.5.0 \
--host=i386-apple-darwin12.5.0 --target=i386-apple-darwin12.5.0
$ make && make install
$ cd $HOME/swami/src/swami
$ ./configure --prefix=$HOME/swami/inst --build=i386-apple-darwin12.5.0 \
--host=i386-apple-darwin12.5.0 --target=i386-apple-darwin12.5.0 \
PKG_CONFIG_PATH=$HOME/swami/inst/lib/pkgconfig:$PKG_CONFIG_PATH
$ make && make install

4. Now we have everything built, let's make an app bundle
- Install gtk-mac-bundler (see https://live.gnome.org/GTK%2B/OSX/Bundling)

$ cd $HOME/Source
$ git clone git://git.gnome.org/gtk-mac-bundler
$ cd gtk-mac-bundler
$ make install

- After reviewing the swami.bundle file for correct paths build a bundle:

$ cd $HOME/swami/src/swami/package/osxbundle
$ jhbuild run gtk-mac-bundler swami.bundle
$ ln -s Resources/lib/swami $HOME/swami/Swami.app/Contents/PlugIns
