summaryrefslogtreecommitdiff
path: root/scripts/macosx-build-dependencies.sh
diff options
context:
space:
mode:
authorMarius Kintel <marius@kintel.net>2012-02-14 23:14:27 (GMT)
committerMarius Kintel <marius@kintel.net>2012-02-14 23:14:27 (GMT)
commita9e79409436d9037227dd73571b026c7ff0d4f62 (patch)
tree9412d886831d1405c16af4ee225d7443ce786cf2 /scripts/macosx-build-dependencies.sh
parent8a5f6a4abde265bf7d9316d5aa5437b4eca24866 (diff)
Merged the 64-bit only script back into the main script. Use the -6 option for 64-bit only
Diffstat (limited to 'scripts/macosx-build-dependencies.sh')
-rwxr-xr-xscripts/macosx-build-dependencies.sh103
1 files changed, 73 insertions, 30 deletions
diff --git a/scripts/macosx-build-dependencies.sh b/scripts/macosx-build-dependencies.sh
index a52f1fe..fada8c4 100755
--- a/scripts/macosx-build-dependencies.sh
+++ b/scripts/macosx-build-dependencies.sh
@@ -1,15 +1,16 @@
#!/bin/sh -e
#
# This script builds all library dependencies of OpenSCAD for Mac OS X.
-# The libraries will be build in 32- and 64-bit mode and backwards compatible with
-# 10.5 "Leopard".
+# The libraries will be build in 64-bit (and optionally 32-bit mode) mode
+# and backwards compatible with 10.5 "Leopard".
#
-# Usage:
-# - Edit the BASEDIR variable. This is where libraries will be built and installed
-# - Edit the OPENSCADDIR variable. This is where patches are fetched from
+# This script must be run from the OpenSCAD source root directory
+#
+# Usage: macosx-build-dependencies.sh [-6]
+# -6 Build only 64-bit binaries
#
# Prerequisites:
-# - MacPorts: curl eigen
+# - MacPorts: curl
# - Qt4
#
# FIXME:
@@ -22,9 +23,17 @@ OPENSCADDIR=$PWD
SRCDIR=$BASEDIR/src
DEPLOYDIR=$BASEDIR/install
MAC_OSX_VERSION_MIN=10.5
+OPTION_32BIT=true
+
+printUsage()
+{
+ echo "Usage: $0 [-6]"
+ echo
+ echo " -6 Build only 64-bit binaries"
+}
# Hack warning: gmplib is built separately in 32-bit and 64-bit mode
-# and then merged afterwards. gmplib's header files are dependant on
+# and then merged afterwards. gmplib's header files are dependent on
# the CPU architecture on which configure was run and will be patched accordingly.
build_gmp()
{
@@ -37,12 +46,14 @@ build_gmp()
fi
tar xjf gmp-$version.tar.bz2
cd gmp-$version
- # 32-bit version
- mkdir build-i386
- cd build-i386
- ../configure --prefix=$DEPLOYDIR/i386 "CFLAGS=-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386" LDFLAGS="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386" ABI=32 --enable-cxx
- make install
- cd ..
+ if $OPTION_32BIT; then
+ mkdir build-i386
+ cd build-i386
+ ../configure --prefix=$DEPLOYDIR/i386 "CFLAGS=-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386" LDFLAGS="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386" ABI=32 --enable-cxx
+ make install
+ cd ..
+ fi
+
# 64-bit version
mkdir build-x86_64
cd build-x86_64
@@ -52,10 +63,16 @@ build_gmp()
# merge
cd $DEPLOYDIR
mkdir -p lib
- lipo -create i386/lib/libgmp.dylib x86_64/lib/libgmp.dylib -output lib/libgmp.dylib
+ if $OPTION_32BIT; then
+ lipo -create i386/lib/libgmp.dylib x86_64/lib/libgmp.dylib -output lib/libgmp.dylib
+ else
+ cp x86_64/lib/libgmp.dylib lib/libgmp.dylib
+ fi
install_name_tool -id $DEPLOYDIR/lib/libgmp.dylib lib/libgmp.dylib
- cp lib/libgmp.dylib i386/lib/
- cp lib/libgmp.dylib x86_64/lib/
+ if $OPTION_32BIT; then
+ cp lib/libgmp.dylib i386/lib/
+ cp lib/libgmp.dylib x86_64/lib/
+ fi
mkdir -p include
cp x86_64/include/gmp.h include/
cp x86_64/include/gmpxx.h include/
@@ -111,12 +128,13 @@ build_mpfr()
tar xjf mpfr-$version.tar.bz2
cd mpfr-$version
- # 32-bit version
- mkdir build-i386
- cd build-i386
- ../configure --prefix=$DEPLOYDIR/i386 --with-gmp=$DEPLOYDIR/i386 CFLAGS="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386" LDFLAGS="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386"
- make install
- cd ..
+ if $OPTION_32BIT; then
+ mkdir build-i386
+ cd build-i386
+ ../configure --prefix=$DEPLOYDIR/i386 --with-gmp=$DEPLOYDIR/i386 CFLAGS="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386" LDFLAGS="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386"
+ make install
+ cd ..
+ fi
# 64-bit version
mkdir build-x86_64
@@ -126,7 +144,11 @@ build_mpfr()
# merge
cd $DEPLOYDIR
- lipo -create i386/lib/libmpfr.dylib x86_64/lib/libmpfr.dylib -output lib/libmpfr.dylib
+ if $OPTION_32BIT; then
+ lipo -create i386/lib/libmpfr.dylib x86_64/lib/libmpfr.dylib -output lib/libmpfr.dylib
+ else
+ cp x86_64/lib/libmpfr.dylib lib/libmpfr.dylib
+ fi
install_name_tool -id $DEPLOYDIR/lib/libmpfr.dylib lib/libmpfr.dylib
mkdir -p include
cp x86_64/include/mpfr.h include/
@@ -148,7 +170,10 @@ build_boost()
cd boost_$bversion
# We only need the thread and program_options libraries
./bootstrap.sh --prefix=$DEPLOYDIR --with-libraries=thread,program_options,filesystem,system,regex
- ./bjam cflags="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386 -arch x86_64" linkflags="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386 -arch x86_64"
+ if $OPTION_32BIT; then
+ BOOST_EXTRA_FLAGS="-arch i386"
+ fi
+ ./bjam cflags="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch x86_64 $BOOST_EXTRA_FLAGS" linkflags="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch x86_64 $BOOST_EXTRA_FLAGS"
./bjam install
install_name_tool -id $DEPLOYDIR/lib/libboost_thread.dylib $DEPLOYDIR/lib/libboost_thread.dylib
install_name_tool -id $DEPLOYDIR/lib/libboost_program_options.dylib $DEPLOYDIR/lib/libboost_program_options.dylib
@@ -173,8 +198,11 @@ build_cgal()
fi
tar xzf CGAL-$version.tar.gz
cd CGAL-$version
+ if $OPTION_32BIT; then
+ CGAL_EXTRA_FLAGS=";i386"
+ fi
# We build a static lib. Not really necessary, but it's well tested.
- cmake -DCMAKE_INSTALL_PREFIX=$DEPLOYDIR -DGMP_INCLUDE_DIR=$DEPLOYDIR/include -DGMP_LIBRARIES=$DEPLOYDIR/lib/libgmp.dylib -DGMPXX_INCLUDE_DIR=$DEPLOYDIR/include -DMPFR_INCLUDE_DIR=$DEPLOYDIR/include -DMPFR_LIBRARIES=$DEPLOYDIR/lib/libmpfr.dylib -DWITH_CGAL_Qt3=OFF -DWITH_CGAL_Qt4=OFF -DWITH_CGAL_ImageIO=OFF -DBUILD_SHARED_LIBS=FALSE -DCMAKE_OSX_DEPLOYMENT_TARGET="$MAC_OSX_VERSION_MIN" -DCMAKE_OSX_ARCHITECTURES="i386;x86_64" -DBOOST_ROOT=$DEPLOYDIR
+ cmake -DCMAKE_INSTALL_PREFIX=$DEPLOYDIR -DGMP_INCLUDE_DIR=$DEPLOYDIR/include -DGMP_LIBRARIES=$DEPLOYDIR/lib/libgmp.dylib -DGMPXX_INCLUDE_DIR=$DEPLOYDIR/include -DMPFR_INCLUDE_DIR=$DEPLOYDIR/include -DMPFR_LIBRARIES=$DEPLOYDIR/lib/libmpfr.dylib -DWITH_CGAL_Qt3=OFF -DWITH_CGAL_Qt4=OFF -DWITH_CGAL_ImageIO=OFF -DBUILD_SHARED_LIBS=FALSE -DCMAKE_OSX_DEPLOYMENT_TARGET="$MAC_OSX_VERSION_MIN" -DCMAKE_OSX_ARCHITECTURES="x86_64$CGAL_EXTRA_FLAGS" -DBOOST_ROOT=$DEPLOYDIR
make -j4
make install
}
@@ -193,7 +221,10 @@ build_glew()
mkdir -p $DEPLOYDIR/lib/pkgconfig
# To avoid running strip on a fat archive as this is not supported by strip
sed -i bak -e "s/\$(STRIP) -x lib\/\$(LIB.STATIC)//" Makefile
- make GLEW_DEST=$DEPLOYDIR CFLAGS.EXTRA="-no-cpp-precomp -dynamic -fno-common -mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386 -arch x86_64" LDFLAGS.EXTRA="-mmacosx-version-min=$MAC_OSX_VERSION_MIN -arch i386 -arch x86_64" install
+ if $OPTION_32BIT; then
+ GLEW_EXTRA_FLAGS="-arch i386"
+ fi
+ make GLEW_DEST=$DEPLOYDIR CFLAGS.EXTRA="-no-cpp-precomp -dynamic -fno-common -mmacosx-version-min=$MAC_OSX_VERSION_MIN $GLEW_EXTRA_FLAGS -arch x86_64" LDFLAGS.EXTRA="-mmacosx-version-min=$MAC_OSX_VERSION_MIN $GLEW_EXTRA_FLAGS -arch x86_64" install
}
build_opencsg()
@@ -208,7 +239,10 @@ build_opencsg()
tar xzf OpenCSG-$version.tar.gz
cd OpenCSG-$version
patch -p1 < $OPENSCADDIR/patches/OpenCSG-$version-MacOSX-port.patch
- OPENSCAD_LIBRARIES=$DEPLOYDIR qmake -r CONFIG+="x86 x86_64"
+ if $OPTION_32BIT; then
+ OPENCSG_EXTRA_FLAGS="x86"
+ fi
+ OPENSCAD_LIBRARIES=$DEPLOYDIR qmake -r CONFIG+="x86_64 $OPENCSG_EXTRA_FLAGS"
make install
}
@@ -228,7 +262,10 @@ build_eigen()
## File name for v2.0.17
ln -s eigen-eigen-b23437e61a07 eigen-$version
cd eigen-$version
- cmake -DCMAKE_INSTALL_PREFIX=$DEPLOYDIR -DEIGEN_BUILD_LIB=ON -DBUILD_SHARED_LIBS=FALSE -DCMAKE_OSX_DEPLOYMENT_TARGET="$MAC_OSX_VERSION_MIN" -DCMAKE_OSX_ARCHITECTURES="i386;x86_64"
+ if $OPTION_32BIT; then
+ EIGEN_EXTRA_FLAGS=";i386"
+ fi
+ cmake -DCMAKE_INSTALL_PREFIX=$DEPLOYDIR -DEIGEN_BUILD_LIB=ON -DBUILD_SHARED_LIBS=FALSE -DCMAKE_OSX_DEPLOYMENT_TARGET="$MAC_OSX_VERSION_MIN" -DCMAKE_OSX_ARCHITECTURES="x86_64$EIGEN_EXTRA_FLAGS"
make -j4
make install
}
@@ -238,11 +275,17 @@ if [ ! -f $OPENSCADDIR/openscad.pro ]; then
exit 0
fi
+while getopts '6' c
+do
+ case $c in
+ 6) OPTION_32BIT=false
+ esac
+done
+
echo "Using basedir:" $BASEDIR
-rm -rf $DEPLOYDIR
mkdir -p $SRCDIR $DEPLOYDIR
build_eigen 2.0.17
-build_gmp 5.0.3
+build_gmp 5.0.4
build_mpfr 3.1.0
build_boost 1.47.0
# NB! For CGAL, also update the actual download URL in the function
contact: Jan Huwald // Impressum