Subversion compileren op Mac OS X

Monday 19 April 2010, 00:21:00 | mac/osx

In de serie hoe compileer ik mijn eigen software omdat anderen het niet voor me doen, deze keer Subversion op Mac OS X. Merk op dat OS X 10.6 (Snow Leopard) een redelijk nieuwe versie standaard meegeleverd heeft, dus onderstaande is wellicht alleen nuttig als je niet Snow Leopard hebt. Voorheen haalde ik gewoon een install DMG van Collabnet, maar die hebben besloten geen 10.4 binaries meer te maken, en de Python bindings zijn niet voor Python 2.6. Zodoende zelf compileren.

Eigenlijk is het redelijk eenvoudig. Zorg dat je van te voren recente versie van de volgende libraries hebt:

Met de volgende environment variabelen kun je tweaken dat GCC 4.2 gebruikt wordt in plaats van de standaard GCC 4.0:

export CC=/usr/bin/gcc-4.2
export CPP=/usr/bin/cpp-4.2
export CXX=/usr/bin/g++-4.2

Het standaard riedeltje om de libraries te compileren:

tar xzf bla.tgz
cd bla
./configure
make
sudo make install

Hieronder volgen specifieke instructies voor de juiste instellingen voor de bovenstaande libraries.

SQLite: Gebruik de amalgamation tarball.

./configure --enable-threadsafe --enable-readline

Swig: Alleen nodig als je language bindings wilt gebruiken. Swig moet opnieuw gecompiled worden want de standaard swig gebruikt de system python. Zorg dat de juiste Python versie op je path staat zodat swig die kan detecteren.

Neon:

./configure --with-ssl --enable-shared --enable-static

APR: Standaard installeert dit in een subdirectory 'apr' vandaar de prefix override:

./configure --prefix=/usr/local

APR-util: Standaard installeert dit in een subdirectory 'apr' vandaar de prefix override:

./configure --prefix=/usr/local --with-apr=/usr/local

Subversion: Je moet hem even vertellen waar sqlite staat, standaard heeft hij namelijk een voorkeur voor de systeemversie uit /usr/bin.

./configure --with-sqlite=/usr/local LDFLAGS=-L/usr/local/lib

Hij is slim genoeg om te zien dat de Python bindings met gcc-4.0 gecompileerd moeten worden dus je kunt die gcc-4.2 environment settings gewoon actief laten. Als je language bindings wilt dan moet je ook nog dit doen:

make swig-py
sudo make install-swig-py
make check-swig-py