#!/bin/sh POSTGRESQL_VERSION=8.3.0 LIBXML_VERSION=2.6.31 UUID_VERSION=1.6.0 # --------------------------- WD=$(pwd) INSTPREFIX_BASE=/tmp/postgresql LIBXML_PREFIX=$WD/libxml-install LIBXML_DOWNLOAD_URL=ftp://xmlsoft.org/libxml2/libxml2-$LIBXML_VERSION.tar.gz UUID_PREFIX=$WD/ossp-uuid-install UUID_DOWNLOAD_URL=ftp://ftp.ossp.org/pkg/lib/uuid/uuid-$UUID_VERSION.tar.gz POSTGRESQL_DOWNLOAD_URL=ftp://ftp9.de.postgresql.org/unix/databases/postgresql/source/v$POSTGRESQL_VERSION/postgresql-$POSTGRESQL_VERSION.tar.gz PREFIX=/usr/local SDK=/Developer/SDKs/MacOSX10.4u.sdk OSTARGET=10.4 [ -e postgresql-$POSTGRESQL_VERSION.tar.gz ] || curl -O $POSTGRESQL_DOWNLOAD_URL || { echo Unable to download $POSTGRESQL_DOWNLOAD_URL; exit; } rm -rf postgresql-$POSTGRESQL_VERSION tar -xzf postgresql-$POSTGRESQL_VERSION.tar.gz || exit # Apple's libxml2 on Leopard is too old. We build our own and link statically. if [ ! -e $LIBXML_PREFIX ]; then [ -e libxml2-$LIBXML_VERSION.tar.gz ] || curl -O $LIBXML_DOWNLOAD_URL || { echo Unable to download $LIBXML_DOWNLOAD_URL; exit; } rm -rf libxml2-$LIBXML_VERSION tar -xzf libxml2-$LIBXML_VERSION.tar.gz rm -rf $LIBXML_PREFIX cd libxml2-$LIBXML_VERSION CFLAGS="-O -mmacosx-version-min=$OSTARGET -arch ppc -arch i386 -isysroot $SDK" \ ./configure --disable-shared --enable-static --prefix=$LIBXML_PREFIX \ --disable-dependency-tracking || exit make -j 2 || exit make install || exit fi if [ ! -e $UUID_PREFIX ]; then [ -e uuid-$UUID_VERSION.tar.gz ] || curl -O $UUID_DOWNLOAD_URL || { echo Unable to download $UUID_DOWNLOAD_URL; exit; } rm -rf uuid-$UUID_VERSION tar -xzf uuid-$UUID_VERSION.tar.gz rm -rf $UUID_PREFIX cd uuid-$UUID_VERSION CFLAGS="-O -mmacosx-version-min=$OSTARGET -arch ppc -arch i386 -isysroot $SDK" ./configure \ --disable-shared --enable-static --prefix=$UUID_PREFIX \ --disable-dependency-tracking || exit MACOSX_DEPLOYMENT_TARGET=$OSTARGET make -j 2 || exit make install || exit fi mkdir $INSTPREFIX_BASE sudo chown -R liyanage $INSTPREFIX_BASE rm -rf $INSTPREFIX_BASE/* INSTPREFIX=$INSTPREFIX_BASE INSTALLDIRS="prefix=$INSTPREFIX$PREFIX/pgsql \ exec_prefix=$INSTPREFIX$PREFIX \ bindir=$INSTPREFIX$PREFIX/bin \ sbindir=$INSTPREFIX$PREFIX/sbin \ sysconfdir=$INSTPREFIX$PREFIX/pgsql/etc \ datadir=$INSTPREFIX$PREFIX/pgsql/share \ includedir=$INSTPREFIX$PREFIX/pgsql/include \ libdir=$INSTPREFIX$PREFIX/pgsql/lib \ libexecdir=$INSTPREFIX$PREFIX/pgsql/libexec \ localstatedir=$INSTPREFIX$PREFIX/pgsql/var \ sharedstatedir=$INSTPREFIX$PREFIX/pgsql/com \ mandir=$INSTPREFIX$PREFIX/man \ infodir=$INSTPREFIX$PREFIX/info" cd postgresql-$POSTGRESQL_VERSION MACOSX_DEPLOYMENT_TARGET=$OSTARGET \ PATH=$LIBXML_PREFIX/bin:$UUID_PREFIX/bin:$PATH \ ./configure --bindir=$PREFIX/bin --mandir=$PREFIX/man/ \ --with-openssl --with-perl --with-python --with-tcl \ --with-bonjour --with-pam --with-krb5 --with-libxml \ --disable-depend --with-ldap --with-ossp-uuid \ CFLAGS="-arch i386 -arch ppc -mmacosx-version-min=$OSTARGET -isysroot $SDK -Wl,-search_paths_first -O" \ LDFLAGS="-arch i386 -arch ppc -lz -liconv -ltcl -L$UUID_PREFIX/lib" \ LD="gcc -mmacosx-version-min=$OSTARGET -isysroot $SDK -nostartfiles -arch i386 -arch ppc" \ CPPFLAGS="-I$UUID_PREFIX/include" [ $? -eq 0 ] || exit make -j 2 make $INSTALLDIRS install cd contrib/uuid-ossp make $INSTALLDIRS install cd ../../contrib/tsearch2 make $INSTALLDIRS install cd ../../contrib/pgcrypto make $INSTALLDIRS install cd ../../contrib/adminpack make $INSTALLDIRS install (cd $INSTPREFIX$PREFIX/pgsql/share && mkdir java && cd java && curl -O http://jdbc.postgresql.org/download/postgresql-8.3-603.jdbc3.jar && ln -s postgresql-*.jar postgresql.jar) sudo chown -R root:admin /tmp/postgresql cd $WD open PostgreSQL.pmdoc