summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorMarius Kintel <marius@kintel.net>2012-07-13 19:29:37 (GMT)
committerMarius Kintel <marius@kintel.net>2012-07-13 19:29:37 (GMT)
commitd88429d7e438822a33aafe01d1451f51b04ed068 (patch)
tree4825fdd8ac76c80ed4a1fb2832dd8515a30c9f70 /scripts
parent1395af1101ab7d5b521bd152f1c883df72250add (diff)
parenta7a8679461e33b3ff99336dc71a060ef1a76cf09 (diff)
Merge branch 'master' of github.com:openscad/openscad
Conflicts: scripts/linux-build-dependencies.sh
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/fedora-build-dependencies.sh29
-rwxr-xr-xscripts/linux-build-dependencies.sh58
-rwxr-xr-xscripts/opensuse-build-dependencies.sh8
-rw-r--r--scripts/setenv-linbuild.sh15
-rwxr-xr-xscripts/ubuntu-build-dependencies.sh46
5 files changed, 137 insertions, 19 deletions
diff --git a/scripts/fedora-build-dependencies.sh b/scripts/fedora-build-dependencies.sh
new file mode 100755
index 0000000..7481a63
--- /dev/null
+++ b/scripts/fedora-build-dependencies.sh
@@ -0,0 +1,29 @@
+echo "Tested on Fedora 17. If this fails try 'old linux' build (see README.md)"
+sleep 2
+
+# Fedora 17 has CGAL 4
+#if [ "`yum list installed | grep -i cgal`" ]; then
+# echo "Please make sure you have removed all cgal packages and retry"
+# exit
+#fi
+
+if [ "`yum list installed | grep -i opencsg`" ]; then
+ echo "Please make sure you have removed all opencsg packages and retry"
+ exit
+fi
+
+sudo yum install qt-devel bison flex eigen2-devel \
+ boost-devel mpfr-devel gmp-devel glew-devel CGAL-devel gcc pkgconfig git
+
+#echo "now copy/paste the following to install CGAL and OpenCSG from source:"
+#echo "sudo BASEDIR=/usr/local ./scripts/linux-build-dependencies.sh cgal-use-sys-libs"
+
+echo
+echo "Now copy/paste the following to install OpenCSG from source:"
+echo
+# https://bugzilla.redhat.com/show_bug.cgi?id=144967
+echo "sudo echo /usr/local/lib | sudo tee -a /etc/ld.so.conf.d/local.conf"
+echo "sudo ldconfig"
+echo "sudo BASEDIR=/usr/local ./scripts/linux-build-dependencies.sh opencsg"
+echo
+
diff --git a/scripts/linux-build-dependencies.sh b/scripts/linux-build-dependencies.sh
index 6647d07..f15110d 100755
--- a/scripts/linux-build-dependencies.sh
+++ b/scripts/linux-build-dependencies.sh
@@ -9,7 +9,6 @@
# Prerequisites:
# - wget or curl
# - Qt4
-# - cmake 2.8 ( force build_cmake at bottom if yours is too old )
#
BASEDIR=$HOME/openscad_deps
@@ -146,7 +145,11 @@ build_cgal()
fi
tar xzf CGAL-$version.tar.gz
cd CGAL-$version
- 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
+ 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
}
@@ -187,10 +190,14 @@ build_opencsg()
# uncomment this kludge for Fedora 64bit
# sed -i s/"\-lXmu"/"\-L\/usr\/lib64\/libXmu.so.6"/ src/Makefile
- qmake-qt4
+ if [ "`command -v qmake-qt4`" ]; then
+ qmake-qt4
+ else
+ qmake
+ fi
make
- install -v lib/* $DEPLOYDIR/lib
- install -v include/* $DEPLOYDIR/include
+ cp -av lib/* $DEPLOYDIR/lib
+ cp -av include/* $DEPLOYDIR/include
}
build_eigen()
@@ -214,11 +221,21 @@ build_eigen()
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
+DEPLOYDIR=$BASEDIR
+if [ ! $NUMCPU ]; then
+ NUMCPU=1 # paralell builds for some libraries
+fi
+
if [ ! -d $BASEDIR/bin ]; then
mkdir --parents $BASEDIR/bin
fi
@@ -226,16 +243,9 @@ fi
echo "Using basedir:" $BASEDIR
echo "Using deploydir:" $DEPLOYDIR
echo "Using srcdir:" $SRCDIR
-echo "Number of CPUs for parallel builds:" $NUMCPU "(use export NUMCPU=x)"
+echo "Number of CPUs for parallel builds:" $NUMCPU "(export NUMCPU=x to modify)"
mkdir -p $SRCDIR $DEPLOYDIR
-export PATH=$BASEDIR/bin:$PATH
-export LD_LIBRARY_PATH=$DEPLOYDIR/lib:$DEPLOYDIR/lib64:$LD_LIBRARY_PATH
-export LD_RUN_PATH=$DEPLOYDIR/lib:$DEPLOYDIR/lib64:$LD_RUN_PATH
-echo "PATH modified temporarily"
-echo "LD_LIBRARY_PATH modified temporarily"
-echo "LD_RUN_PATH modified temporarily"
-
if [ ! "`command -v curl`" ]; then
build_curl 7.26.0
fi
@@ -250,6 +260,26 @@ 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 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
@@ -259,4 +289,4 @@ build_cgal 4.0
build_glew 1.7.0
build_opencsg 1.3.2
-echo "OpenSCAD dependencies built in " $BASEDIR
+echo "OpenSCAD dependencies built and installed to " $BASEDIR
diff --git a/scripts/opensuse-build-dependencies.sh b/scripts/opensuse-build-dependencies.sh
new file mode 100755
index 0000000..623d7d0
--- /dev/null
+++ b/scripts/opensuse-build-dependencies.sh
@@ -0,0 +1,8 @@
+echo "tested on OpenSUSE 12. If this fails try 'old linux' build (see README.md)"
+
+sudo zypper install libeigen2-devel mpfr-devel gmp-devel boost-devel \
+ libqt4-devel glew-devel cmake git
+
+echo "now copy/paste the following to install CGAL and OpenCSG from source:"
+echo "sudo BASEDIR=/usr/local ./scripts/linux-build-dependencies.sh cgal-use-sys-libs"
+echo "sudo BASEDIR=/usr/local ./scripts/linux-build-dependencies.sh opencsg"
diff --git a/scripts/setenv-linbuild.sh b/scripts/setenv-linbuild.sh
index 290a90a..6361dd4 100644
--- a/scripts/setenv-linbuild.sh
+++ b/scripts/setenv-linbuild.sh
@@ -1,10 +1,15 @@
-# setup env variables for building OpenSCAD against custom built
-# dependency libraries from linux-build-dependencies.sh
+# setup environment variables for building OpenSCAD against custom built
+# dependency libraries. called by linux-build-dependencies.sh
-# run this file with 'source setenv-linbuild.sh'
+# run this file with 'source setenv-linbuild.sh' every time you re-login
+# and want to build or run openscad against custom libraries installed
+# into BASEDIR.
-# BASEDIR and DEPLOYDIR must be the same as in linux-build-dependencies.sh
-BASEDIR=$HOME/openscad_deps
+# copy this file to your .bashrc if desired.
+
+if [ ! $BASEDIR ]; then
+ BASEDIR=$HOME/openscad_deps
+fi
DEPLOYDIR=$BASEDIR
export PATH=$BASEDIR/bin:$PATH
diff --git a/scripts/ubuntu-build-dependencies.sh b/scripts/ubuntu-build-dependencies.sh
new file mode 100755
index 0000000..0609172
--- /dev/null
+++ b/scripts/ubuntu-build-dependencies.sh
@@ -0,0 +1,46 @@
+
+too_old()
+{
+ echo "System version too low. Please try 'old linux' build (see README.md)"
+ exit
+}
+
+if [ "`cat /etc/issue | grep 'Debian GNU/Linux 6.0'`" ]; then
+ too_old
+fi
+if [ "`cat /etc/issue | grep 'Debian GNU/Linux 5'`" ]; then
+ too_old
+fi
+if [ "`cat /etc/issue | grep 'Ubunutu 10'`" ]; then
+ too_old
+fi
+if [ "`cat /etc/issue | grep 'Ubunutu 9'`" ]; then
+ too_old
+fi
+if [ "`cat /etc/issue | grep 'Ubunutu 8'`" ]; then
+ too_old
+fi
+if [ "`cat /etc/issue | grep 'Ubunutu 7'`" ]; then
+ too_old
+fi
+
+echo "tested on Ubuntu 12. If this fails try 'old linux' build (see README.md)"
+
+
+if [ "`dpkg --list | grep -i cgal`" ]; then
+ echo "Please make sure you have run apt-get purge on all cgal packages"
+ exit
+fi
+
+if [ "`dpkg --list | grep -i opencsg`" ]; then
+ echo "Please make sure you have run apt-get purge on all opencsg packages"
+ exit
+fi
+
+sudo apt-get install build-essential libqt4-dev libqt4-opengl-dev \
+ libxmu-dev cmake bison flex libeigen2-dev git-core libboost-all-dev \
+ libXi-dev libmpfr-dev libgmp-dev libboost-dev libglew1.6-dev
+
+echo "now copy/paste the following to install CGAL and OpenCSG from source:"
+echo "sudo BASEDIR=/usr/local ./scripts/linux-build-dependencies.sh cgal-use-sys-libs"
+echo "sudo BASEDIR=/usr/local ./scripts/linux-build-dependencies.sh opencsg"
contact: Jan Huwald // Impressum