diff options
author | don bright <hugh.m.bright@gmail.com> | 2013-01-28 02:42:20 (GMT) |
---|---|---|
committer | don bright <hugh.m.bright@gmail.com> | 2013-01-28 02:42:20 (GMT) |
commit | 1e64dddf1ea30282c89de7f35854a68614234652 (patch) | |
tree | 165d37c1c66f6ff79d48c74794238b3f0bed09da /scripts/linux-build-dependencies.sh | |
parent | 5c779159c208ca3d88c88479ab29f9cd66574859 (diff) | |
parent | d0856efe6da545693f9c50a8a2514a9f999ab5ef (diff) |
Merge branch 'master' of github.com:openscad/openscad into issue159
Diffstat (limited to 'scripts/linux-build-dependencies.sh')
-rwxr-xr-x | scripts/linux-build-dependencies.sh | 332 |
1 files changed, 0 insertions, 332 deletions
diff --git a/scripts/linux-build-dependencies.sh b/scripts/linux-build-dependencies.sh deleted file mode 100755 index aee423c..0000000 --- a/scripts/linux-build-dependencies.sh +++ /dev/null @@ -1,332 +0,0 @@ -#!/bin/sh -e - -# test_pretty_print copyright 2012 don bright. released under the GPL 2, or -# later, as described in the file named 'COPYING' in OpenSCAD's project root. -# permission to change this license is given to Marius Kintel & Clifford Wolf - -# -# This script builds all library dependencies of OpenSCAD for Linux -# -# This script must be run from the OpenSCAD source root directory -# -# Usage: linux-build-dependencies.sh -# -# Prerequisites: -# - wget or curl -# - Qt4 -# - -printUsage() -{ - echo "Usage: $0" - echo -} - -build_git() -{ - version=$1 - echo "Building git" $version "..." - cd $BASEDIR/src - rm -rf git-$version - if [ ! -f git-$version.tar.gz ]; then - curl -O http://git-core.googlecode.com/files/git-$version.tar.gz - fi - tar zxf git-$version.tar.gz - cd git-$version - ./configure --prefix=$DEPLOYDIR - make -j$NUMCPU - make install -} - -build_cmake() -{ - version=$1 - echo "Building cmake" $version "..." - cd $BASEDIR/src - rm -rf cmake-$version - if [ ! -f cmake-$version.tar.gz ]; then - curl -O http://www.cmake.org/files/v2.8/cmake-$version.tar.gz - fi - tar zxf cmake-$version.tar.gz - cd cmake-$version - mkdir build - cd build - ../configure --prefix=$DEPLOYDIR - make -j$NUMCPU - make install -} - -build_curl() -{ - version=$1 - echo "Building curl" $version "..." - cd $BASEDIR/src - rm -rf curl-$version - if [ ! -f curl-$version.tar.bz2 ]; then - wget http://curl.haxx.se/download/curl-$version.tar.bz2 - fi - tar xjf curl-$version.tar.bz2 - cd curl-$version - mkdir build - cd build - ../configure --prefix=$DEPLOYDIR - make -j$NUMCPU - make install -} - -build_gmp() -{ - version=$1 - echo "Building gmp" $version "..." - cd $BASEDIR/src - rm -rf gmp-$version - if [ ! -f gmp-$version.tar.bz2 ]; then - curl -O ftp://ftp.gmplib.org/pub/gmp-$version/gmp-$version.tar.bz2 - fi - tar xjf gmp-$version.tar.bz2 - cd gmp-$version - mkdir build - cd build - ../configure --prefix=$DEPLOYDIR --enable-cxx - make install -} - -build_mpfr() -{ - version=$1 - echo "Building mpfr" $version "..." - cd $BASEDIR/src - rm -rf mpfr-$version - if [ ! -f mpfr-$version.tar.bz2 ]; then - curl -O http://www.mpfr.org/mpfr-$version/mpfr-$version.tar.bz2 - fi - tar xjf mpfr-$version.tar.bz2 - cd mpfr-$version - mkdir build - cd build - ../configure --prefix=$DEPLOYDIR --with-gmp=$DEPLOYDIR - make install - cd .. -} - -build_boost() -{ - version=$1 - bversion=`echo $version | tr "." "_"` - echo "Building boost" $version "..." - cd $BASEDIR/src - rm -rf boost_$bversion - if [ ! -f boost_$bversion.tar.bz2 ]; then - curl -LO http://downloads.sourceforge.net/project/boost/boost/$version/boost_$bversion.tar.bz2 - fi - tar xjf boost_$bversion.tar.bz2 - cd boost_$bversion - # We only need certain portions of boost - ./bootstrap.sh --prefix=$DEPLOYDIR --with-libraries=thread,program_options,filesystem,system,regex - if [ $CXX ]; then - if [ $CXX = "clang" ]; then - ./b2 -j$NUMCPU toolset=clang install - # ./b2 -j$NUMCPU toolset=clang cxxflags="-stdlib=libc++" linkflags="-stdlib=libc++" install - fi - else - ./b2 -j$NUMCPU - ./b2 install - fi -} - -build_cgal() -{ - version=$1 - echo "Building CGAL" $version "..." - cd $BASEDIR/src - rm -rf CGAL-$version - if [ ! -f CGAL-$version.tar.gz ]; then - #4.0.2 - curl -O https://gforge.inria.fr/frs/download.php/31174/CGAL-$version.tar.bz2 - # 4.0 curl -O https://gforge.inria.fr/frs/download.php/30387/CGAL-$version.tar.gz - # 3.9 curl -O https://gforge.inria.fr/frs/download.php/29125/CGAL-$version.tar.gz - # 3.8 curl -O https://gforge.inria.fr/frs/download.php/28500/CGAL-$version.tar.gz - # 3.7 curl -O https://gforge.inria.fr/frs/download.php/27641/CGAL-$version.tar.gz - fi - tar jxf CGAL-$version.tar.bz2 - cd CGAL-$version - if [ $2 = use-sys-libs ]; then - cmake -DCMAKE_INSTALL_PREFIX=$DEPLOYDIR -DWITH_CGAL_Qt3=OFF -DWITH_CGAL_Qt4=OFF -DWITH_CGAL_ImageIO=OFF -DCMAKE_BUILD_TYPE=Debug - else - cmake -DCMAKE_INSTALL_PREFIX=$DEPLOYDIR -DGMP_INCLUDE_DIR=$DEPLOYDIR/include -DGMP_LIBRARIES=$DEPLOYDIR/lib/libgmp.so -DGMPXX_LIBRARIES=$DEPLOYDIR/lib/libgmpxx.so -DGMPXX_INCLUDE_DIR=$DEPLOYDIR/include -DMPFR_INCLUDE_DIR=$DEPLOYDIR/include -DMPFR_LIBRARIES=$DEPLOYDIR/lib/libmpfr.so -DWITH_CGAL_Qt3=OFF -DWITH_CGAL_Qt4=OFF -DWITH_CGAL_ImageIO=OFF -DBOOST_ROOT=$DEPLOYDIR -DCMAKE_BUILD_TYPE=Debug - fi - make -j$NUMCPU - make install -} - -build_glew() -{ - version=$1 - echo "Building GLEW" $version "..." - cd $BASEDIR/src - rm -rf glew-$version - if [ ! -f glew-$version.tgz ]; then - curl -LO http://downloads.sourceforge.net/project/glew/glew/$version/glew-$version.tgz - fi - tar xzf glew-$version.tgz - cd glew-$version - mkdir -p $DEPLOYDIR/lib/pkgconfig - - # Fedora 64-bit - if [ -e /usr/lib64 ]; then - if [ "`ls /usr/lib64 | grep Xmu`" ]; then - echo "modifying glew makefile for 64 bit machine" - sed -ibak s/"\-lXmu"/"\-L\/usr\/lib64\/libXmu.so.6"/ config/Makefile.linux - fi - fi - - if [ $CC ]; then - if [ $CC = "clang" ]; then - echo "modifying glew makefile for clang" - sed -i s/\$\(CC\)/clang/ Makefile - fi - fi - - GLEW_DEST=$DEPLOYDIR make -j$NUMCPU - GLEW_DEST=$DEPLOYDIR make install -} - -build_opencsg() -{ - version=$1 - echo "Building OpenCSG" $version "..." - cd $BASEDIR/src - rm -rf OpenCSG-$version - if [ ! -f OpenCSG-$version.tar.gz ]; then - curl -O http://www.opencsg.org/OpenCSG-$version.tar.gz - fi - tar xzf OpenCSG-$version.tar.gz - cd OpenCSG-$version - sed -ibak s/example// opencsg.pro # examples might be broken without GLUT - - # Fedora 64-bit - if [ -e /usr/lib64 ]; then - if [ "`ls /usr/lib64 | grep Xmu`" ]; then - echo "modifying opencsg makefile for 64 bit machine" - sed -ibak s/"\-lXmu"/"\-L\/usr\/lib64\/libXmu.so.6"/ src/Makefile - fi - fi - - if [ `uname | grep FreeBSD` ]; then - sed -ibak s/X11R6/local/g src/Makefile - fi - - if [ "`command -v qmake-qt4`" ]; then - OPENCSG_QMAKE=qmake-qt4 - else - OPENCSG_QMAKE=qmake - fi - - if [ $CXX ]; then - if [ $CXX = "clang++" ]; then - cd $BASEDIR/src/OpenCSG-$version/src - $OPENCSG_QMAKE - cd $BASEDIR/src/OpenCSG-$version - $OPENCSG_QMAKE - fi - else - $OPENCSG_QMAKE - fi - - make - - cp -av lib/* $DEPLOYDIR/lib - cp -av include/* $DEPLOYDIR/include - cd $OPENSCADDIR -} - -build_eigen() -{ - version=$1 - echo "Building eigen" $version "..." - cd $BASEDIR/src - rm -rf eigen-$version - ## Directory name for v2.0.17 - rm -rf eigen-eigen-b23437e61a07 - if [ ! -f eigen-$version.tar.bz2 ]; then - curl -LO http://bitbucket.org/eigen/eigen/get/$version.tar.bz2 - mv $version.tar.bz2 eigen-$version.tar.bz2 - fi - tar xjf eigen-$version.tar.bz2 - ## File name for v2.0.17 - ln -s eigen-eigen-b23437e61a07 eigen-$version - cd eigen-$version - cmake -DCMAKE_INSTALL_PREFIX=$DEPLOYDIR - make -j$NUMCPU - make install -} - - -OPENSCADDIR=$PWD -if [ ! -f $OPENSCADDIR/openscad.pro ]; then - echo "Must be run from the OpenSCAD source root directory" - exit 0 -fi - -. ./scripts/setenv-linbuild.sh # '.' is equivalent to 'source' -SRCDIR=$BASEDIR/src - -if [ ! $NUMCPU ]; then - echo "Note: The NUMCPU environment variable can be set for paralell builds" - NUMCPU=1 -fi - -if [ ! -d $BASEDIR/bin ]; then - mkdir -p $BASEDIR/bin -fi - -echo "Using basedir:" $BASEDIR -echo "Using deploydir:" $DEPLOYDIR -echo "Using srcdir:" $SRCDIR -echo "Number of CPUs for parallel builds:" $NUMCPU -mkdir -p $SRCDIR $DEPLOYDIR - -if [ ! "`command -v curl`" ]; then - build_curl 7.26.0 -fi - -# NB! For cmake, also update the actual download URL in the function -if [ ! "`command -v cmake`" ]; then - build_cmake 2.8.8 -fi -if [ "`cmake --version | grep 'version 2.[1-6][^0-9]'`" ]; then - build_cmake 2.8.8 -fi - -# build_git 1.7.10.3 - -# Singly build CGAL or OpenCSG -# (Most systems have all libraries available as packages except CGAL/OpenCSG) -# (They can be built singly here by passing a command line arg to the script) -if [ $1 ]; then - if [ $1 = "cgal-use-sys-libs" ]; then - build_cgal 4.0.2 use-sys-libs - exit - fi - if [ $1 = "opencsg" ]; then - build_opencsg 1.3.2 - exit - fi -fi - - -# -# Main build of libraries -# edit version numbers here as needed. -# - -build_eigen 2.0.17 -build_gmp 5.0.5 -build_mpfr 3.1.1 -build_boost 1.47.0 -# NB! For CGAL, also update the actual download URL in the function -build_cgal 4.0.2 -build_glew 1.7.0 -build_opencsg 1.3.2 - -echo "OpenSCAD dependencies built and installed to " $BASEDIR |