2009-09-01 Rodrigo Kumpera <rkumpera@novell.com>
[mono.git] / web / mono-build-mac-fw-release.sh
index 033eea2879d12e19b1e0fa3362ba6a0b37b94e93..ab4bf563c1e9c3dc77465aad9d76c5a077079de9 100644 (file)
-#!/bin/sh\r
-\r
-# this horrid little script updates a mono revision\r
-# Author: Andy Satori <dru@satori-assoc.com>\r
-\r
-set -e \r
-\r
-INITIALDIR=$PWD\r
-VERSION=0.91\r
-PREFIX=/Library/Frameworks/Mono.framework/Versions/$VERSION\r
-\r
-export C_INCLUDE_PATH=$C_INCLUDE_PATH:$PREFIX/include\r
-export LDFLAGS=-L$PREFIX/lib\r
-export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/usr/X11R6/lib:$PREFIX/lib\r
-\r
-if test ! -d "$INITIALDIR/Dependancies"; then\r
-       mkdir $INITIALDIR/Dependancies\r
-fi\r
-\r
-# make the directories as need for the Framework (which isn't really \r
-# a framework, but it looks like one and makes a nice placeholder until \r
-# someone smarter than I am can come in and make it better)\r
-\r
-if test ! -d "/Library/Frameworks/Mono.framework"; then\r
-       mkdir /Library/Frameworks/Mono.framework\r
-       mkdir /Library/Frameworks/Mono.framework/Versions\r
-fi\r
-\r
-if test ! -d "/Library/Frameworks/Mono.framework/Versions/$VERSION"; then\r
-       mkdir /Library/Frameworks/Mono.framework/Versions/$VERSION\r
-fi\r
-\r
-# set up the environment for the build\r
-export PATH=$PREFIX/bin:/usr/X11R6/bin:$PATH\r
-export ACLOCAL_FLAGS="-I $PREFIX/share/aclocal/"\r
-export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/X11R6/lib/pkgconfig\r
-\r
-\r
-cd $INITIALDIR/Dependancies\r
-\r
-# pkg-config\r
-\r
-echo +++ processing pkg-config\r
-\r
-if test ! -f "$PREFIX/bin/pkg-config"; then\r
-       if test ! -d "pkgconfig-0.15.0"; then\r
-               curl http://www.freedesktop.org/software/pkgconfig/releases/pkgconfig-0.15.0.tar.gz -O\r
-               tar xzf pkgconfig-0.15.0.tar.gz\r
-               rm pkgconfig-0.15.0.tar.gz\r
-       fi\r
-       \r
-       cd pkgconfig-0.15.0\r
-       \r
-       ./configure --prefix=$PREFIX\r
-       make\r
-       make install\r
-       make clean\r
-       \r
-       cd ..\r
-fi\r
-\r
-# gettext\r
-\r
-echo +++ processing gettext\r
-\r
-if test ! -f "$PREFIX/bin/gettext"; then\r
-\r
-       if test ! -d "gettext-0.14.1"; then\r
-               curl http://ftp.gnu.org/pub/gnu/gettext/gettext-0.14.1.tar.gz -O\r
-               tar xzf gettext-0.14.1.tar.gz\r
-               rm gettext-0.14.1.tar.gz\r
-       fi\r
-       \r
-       cd gettext-0.14.1\r
-       \r
-       ./configure --prefix=$PREFIX\r
-       make\r
-       make install\r
-       make clean\r
-       \r
-       cd ..\r
-fi\r
-\r
-# glib2\r
-\r
-echo +++ processing glib2\r
-\r
-if test ! -f "$PREFIX/lib/libgobject-2.0.la"; then\r
-       if test ! -d "glib-2.4.0"; then\r
-               curl ftp://ftp.gtk.org/pub/gtk/v2.4/glib-2.4.0.tar.gz -O\r
-               tar xzf glib-2.4.0.tar.gz\r
-               rm glib-2.4.0.tar.gz\r
-       fi\r
-       \r
-       cd glib-2.4.0\r
-       \r
-       ./configure --prefix=$PREFIX \r
-       make\r
-       make install\r
-       make clean\r
-       \r
-       cd ..\r
-fi\r
-\r
-# boehm gc\r
-\r
-echo +++ processing boehm gc\r
-\r
-if test ! -f "$PREFIX/lib/libgc.dylib"; then\r
-       if test ! -d "gc6.3alpha6"; then\r
-               curl http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc6.3alpha5.tar.gz -O\r
-               tar xzf gc6.3alpha5.tar.gz\r
-               rm gc6.3alpha5.tar.gz\r
-       fi\r
-       \r
-       cd gc6.3alpha5\r
-       \r
-       ./configure --prefix=$PREFIX --enable-thread=pthreads\r
-       gnumake\r
-       make install\r
-       make clean\r
-       \r
-       cd ..\r
-fi\r
-\r
-# icu ( http://oss.software.ibm.com/icu/index.html )\r
-\r
-echo +++ processing ICU\r
-\r
-if test ! -f "$PREFIX/lib/libicuuc.dylib.28.0"; then\r
-       if test ! -d "icu"; then\r
-               curl ftp://www-126.ibm.com/pub/icu/2.8/icu-2.8.tgz -O --disable-epsv\r
-               tar xzf icu-2.8.tgz\r
-               rm icu-2.8.tgz\r
-       fi\r
-       \r
-       cd icu/source\r
-       \r
-       ./runConfigureICU MacOSX --with-data-packaging=library --prefix=$PREFIX --libdir=$PREFIX/lib/ \r
-       gnumake\r
-       make install\r
-       make clean\r
-       \r
-       cd $PREFIX/lib\r
-       \r
-       # libicudata\r
-       install_name_tool -id $PREFIX/lib/libicudata.dylib.28 libicudata.dylib.28.0\r
-       \r
-       # libicui18n\r
-       install_name_tool -id $PREFIX/lib/libicui18n.dylib.28 libicui18n.dylib.28.0\r
-       install_name_tool -change libicuuc.dylib.28 $PREFIX/lib/libicuuc.dylib.28 libicui18n.dylib.28.0\r
-       install_name_tool -change libicudata.dylib.28 $PREFIX/lib/libicudata.dylib.28 libicui18n.dylib.28.0\r
-               \r
-       # libicuio\r
-       install_name_tool -id $PREFIX/lib/libicuio.dylib.28 libicuio.dylib.28.0\r
-       install_name_tool -change libicuuc.dylib.28 $PREFIX/lib/libicuuc.dylib.28 libicuio.dylib.28.0\r
-       install_name_tool -change libicudata.dylib.28 $PREFIX/lib/libicudata.dylib.28 libicuio.dylib.28.0       \r
-       install_name_tool -change libicui18n.dylib.28 $PREFIX/lib/libicui18n.dylib.28 libicuio.dylib.28.0       \r
-       \r
-       # libicule\r
-       install_name_tool -id $PREFIX/lib/libicule.dylib.28 libicule.dylib.28.0\r
-       install_name_tool -change libicuuc.dylib.28 $PREFIX/lib/libicuuc.dylib.28 libicule.dylib.28.0\r
-       install_name_tool -change libicudata.dylib.28 $PREFIX/lib/libicudata.dylib.28 libicule.dylib.28.0\r
-\r
-       # libiculx\r
-       install_name_tool -id $PREFIX/lib/libiculx.dylib.28 libiculx.dylib.28.0\r
-       install_name_tool -change libicuuc.dylib.28 $PREFIX/lib/libicuuc.dylib.28 libiculx.dylib.28.0\r
-       install_name_tool -change libicudata.dylib.28 $PREFIX/lib/libicudata.dylib.28 libiculx.dylib.28.0       \r
-       install_name_tool -change libicule.dylib.28 $PREFIX/lib/libicule.dylib.28 libiculx.dylib.28.0   \r
-\r
-       # libicutoolutil\r
-       install_name_tool -id $PREFIX/lib/libicutoolutil.dylib.28 libicutoolutil.dylib.28.0\r
-       install_name_tool -change libicuuc.dylib.28 $PREFIX/lib/libicuuc.dylib.28 libicutoolutil.dylib.28.0\r
-       install_name_tool -change libicudata.dylib.28 $PREFIX/lib/libicudata.dylib.28 libicutoolutil.dylib.28.0\r
-\r
-       # libicuuc\r
-       install_name_tool -id $PREFIX/lib/libicuuc.dylib.28 libicuuc.dylib.28.0\r
-       install_name_tool -change libicudata.dylib.28 $PREFIX/lib/libicudata.dylib.28 libicuuc.dylib.28.0\r
-               \r
-       cd $INITIALDIR\r
-fi\r
-\r
-# mono\r
-\r
-echo +++ processing mono run-time libraries\r
-\r
-if test ! -f "$PREFIX/bin/mono"; then\r
-       if test ! -d "$INITIALDIR/Bootstrap"; then\r
-               mkdir $INITIALDIR/Bootstrap\r
-       fi\r
-       cd $INITIALDIR/Bootstrap\r
-       \r
-       if test ! -d "mono-$VERSION"; then\r
-               curl http://www.go-mono.com/archive/beta1/mono-$VERSION.tar.gz -O\r
-               tar xzf mono-$VERSION.tar.gz\r
-               rm mono-$VERSION.tar.gz\r
-       fi\r
-       \r
-       cd mono-$VERSION\r
-       \r
-       ./configure --prefix=$PREFIX --with-gc=boehm \r
-       make\r
-       make install\r
-       make clean\r
-               \r
-       cd ..\r
-fi\r
-\r
-# setup the Current symlink\r
-\r
-cd /Library/Frameworks/Mono.framework/Versions\r
-\r
-if test -e "/Library/Frameworks/Mono.framework/Versions/Current"; then\r
-       rm Current\r
-fi\r
-ln -s $VERSION Current\r
-\r
-# update the installer source files\r
-\r
-\r
+#!/bin/sh
+
+# this horrid little script updates a mono revision
+# Author: Andy Satori <dru@satori-assoc.com>
+# Modifications: kangaroo
+# Changes June 10/2004
+#  - Updated for beta3 0.96
+# Changes June 2/2004
+#  - Updated for beta2 0.95
+#  - Updated to boehm.gc.a6
+#  - Updated to glib-2.4.1
+
+set -e 
+
+INITIALDIR=$PWD
+VERSION=0.96
+PREFIX=/Library/Frameworks/Mono.framework/Versions/$VERSION
+
+export C_INCLUDE_PATH=$C_INCLUDE_PATH:$PREFIX/include
+export LDFLAGS=-L$PREFIX/lib
+export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/usr/X11R6/lib:$PREFIX/lib
+
+if test ! -d "$INITIALDIR/Dependancies"; then
+       mkdir $INITIALDIR/Dependancies
+fi
+
+# make the directories as need for the Framework (which isn't really 
+# a framework, but it looks like one and makes a nice placeholder until 
+# someone smarter than I am can come in and make it better)
+
+if test ! -d "/Library/Frameworks/Mono.framework"; then
+       mkdir /Library/Frameworks/Mono.framework
+       mkdir /Library/Frameworks/Mono.framework/Versions
+fi
+
+if test ! -d "/Library/Frameworks/Mono.framework/Versions/$VERSION"; then
+       mkdir /Library/Frameworks/Mono.framework/Versions/$VERSION
+fi
+
+# set up the environment for the build
+export PATH=$PREFIX/bin:/usr/X11R6/bin:$PATH
+export ACLOCAL_FLAGS="-I $PREFIX/share/aclocal/"
+export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/X11R6/lib/pkgconfig
+
+
+cd $INITIALDIR/Dependancies
+
+# pkg-config
+
+echo +++ processing pkg-config
+
+if test ! -f "$PREFIX/bin/pkg-config"; then
+       if test ! -d "pkgconfig-0.15.0"; then
+               curl http://www.freedesktop.org/software/pkgconfig/releases/pkgconfig-0.15.0.tar.gz -O
+               tar xzf pkgconfig-0.15.0.tar.gz
+               rm pkgconfig-0.15.0.tar.gz
+       fi
+       
+       cd pkgconfig-0.15.0
+       
+       ./configure --prefix=$PREFIX
+       make
+       make install
+       make clean
+       
+       cd ..
+fi
+
+# gettext
+
+echo +++ processing gettext
+
+if test ! -f "$PREFIX/bin/gettext"; then
+
+       if test ! -d "gettext-0.14.1"; then
+               curl http://ftp.gnu.org/pub/gnu/gettext/gettext-0.14.1.tar.gz -O
+               tar xzf gettext-0.14.1.tar.gz
+               rm gettext-0.14.1.tar.gz
+       fi
+       
+       cd gettext-0.14.1
+       
+       ./configure --prefix=$PREFIX
+       make
+       make install
+       make clean
+       
+       cd ..
+fi
+
+# glib2
+
+echo +++ processing glib2
+
+if test ! -f "$PREFIX/lib/libgobject-2.0.la"; then
+       if test ! -d "glib-2.4.1"; then
+               curl ftp://ftp.gtk.org/pub/gtk/v2.4/glib-2.4.1.tar.gz -O
+               tar xzf glib-2.4.1.tar.gz
+               rm glib-2.4.1.tar.gz
+       fi
+       
+       cd glib-2.4.1
+       
+       ./configure --prefix=$PREFIX 
+       make
+       make install
+       make clean
+       
+       cd ..
+fi
+
+# boehm gc, is now built-in (since 0.95)
+
+# icu ( http://oss.software.ibm.com/icu/index.html )
+
+echo +++ processing ICU
+
+if test ! -f "$PREFIX/lib/libicuuc.dylib.28.0"; then
+       if test ! -d "icu"; then
+               curl ftp://www-126.ibm.com/pub/icu/2.8/icu-2.8.tgz -O --disable-epsv
+               tar xzf icu-2.8.tgz
+               rm icu-2.8.tgz
+       fi
+       
+       cd icu/source
+       
+       ./runConfigureICU MacOSX --with-data-packaging=library --prefix=$PREFIX --libdir=$PREFIX/lib/ 
+       gnumake
+       make install
+       make clean
+       
+       cd $PREFIX/lib
+       
+       # libicudata
+       install_name_tool -id $PREFIX/lib/libicudata.dylib.28 libicudata.dylib.28.0
+       
+       # libicui18n
+       install_name_tool -id $PREFIX/lib/libicui18n.dylib.28 libicui18n.dylib.28.0
+       install_name_tool -change libicuuc.dylib.28 $PREFIX/lib/libicuuc.dylib.28 libicui18n.dylib.28.0
+       install_name_tool -change libicudata.dylib.28 $PREFIX/lib/libicudata.dylib.28 libicui18n.dylib.28.0
+               
+       # libicuio
+       install_name_tool -id $PREFIX/lib/libicuio.dylib.28 libicuio.dylib.28.0
+       install_name_tool -change libicuuc.dylib.28 $PREFIX/lib/libicuuc.dylib.28 libicuio.dylib.28.0
+       install_name_tool -change libicudata.dylib.28 $PREFIX/lib/libicudata.dylib.28 libicuio.dylib.28.0       
+       install_name_tool -change libicui18n.dylib.28 $PREFIX/lib/libicui18n.dylib.28 libicuio.dylib.28.0       
+       
+       # libicule
+       install_name_tool -id $PREFIX/lib/libicule.dylib.28 libicule.dylib.28.0
+       install_name_tool -change libicuuc.dylib.28 $PREFIX/lib/libicuuc.dylib.28 libicule.dylib.28.0
+       install_name_tool -change libicudata.dylib.28 $PREFIX/lib/libicudata.dylib.28 libicule.dylib.28.0
+
+       # libiculx
+       install_name_tool -id $PREFIX/lib/libiculx.dylib.28 libiculx.dylib.28.0
+       install_name_tool -change libicuuc.dylib.28 $PREFIX/lib/libicuuc.dylib.28 libiculx.dylib.28.0
+       install_name_tool -change libicudata.dylib.28 $PREFIX/lib/libicudata.dylib.28 libiculx.dylib.28.0       
+       install_name_tool -change libicule.dylib.28 $PREFIX/lib/libicule.dylib.28 libiculx.dylib.28.0   
+
+       # libicutoolutil
+       install_name_tool -id $PREFIX/lib/libicutoolutil.dylib.28 libicutoolutil.dylib.28.0
+       install_name_tool -change libicuuc.dylib.28 $PREFIX/lib/libicuuc.dylib.28 libicutoolutil.dylib.28.0
+       install_name_tool -change libicudata.dylib.28 $PREFIX/lib/libicudata.dylib.28 libicutoolutil.dylib.28.0
+
+       # libicuuc
+       install_name_tool -id $PREFIX/lib/libicuuc.dylib.28 libicuuc.dylib.28.0
+       install_name_tool -change libicudata.dylib.28 $PREFIX/lib/libicudata.dylib.28 libicuuc.dylib.28.0
+               
+       cd $INITIALDIR
+fi
+
+# mono
+
+echo +++ patching libintl to not be statically linked
+perl -pi -e "s/old_library='libintl.a'/old_library=''/" $PREFIX/lib/libintl.la
+echo +++ processing mono run-time libraries
+
+if test ! -f "$PREFIX/bin/mono"; then
+       if test ! -d "$INITIALDIR/Bootstrap"; then
+               mkdir $INITIALDIR/Bootstrap
+       fi
+       cd $INITIALDIR/Bootstrap
+       
+       if test ! -d "mono-$VERSION"; then
+               curl http://www.go-mono.com/archive/beta3/mono-$VERSION.tar.gz -O
+               tar xzf mono-$VERSION.tar.gz
+               rm mono-$VERSION.tar.gz
+       fi
+       
+       cd mono-$VERSION
+       
+       ./configure --prefix=$PREFIX
+       make
+       make install
+       make clean
+               
+       cd ..
+fi
+
+# setup the Current symlink
+
+cd /Library/Frameworks/Mono.framework/Versions
+
+if test -e "/Library/Frameworks/Mono.framework/Versions/Current"; then
+       rm Current
+fi
+ln -s $VERSION Current
+echo +++ Setup the rest of the framework
+cd /Library/Frameworks/Mono.framework
+ln -s Versions/Current/lib Libraries
+ln -s Versions/Current/include Headers
+ln -s Versions/Current/bin Commands
+for binfile in Commands/*; do
+       sudo rm -f /usr/bin/`echo $binfile | perl -pe 's/\.exe//' | perl -pe 's/Commands\///'`
+       sudo ln -s /Library/Frameworks/Mono.framework/`echo $binfile | perl -pe 's/\.exe//'` /usr/bin/`echo $binfile | perl -pe 's/\.exe//' | perl -pe 's/Commands\///'`
+done
+
+# update the installer source file