summaryrefslogtreecommitdiffstats
path: root/scripts/build.sh
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2015-02-17 13:10:45 -0800
committerGravatar Dirk Hohndel <dirk@hohndel.org>2015-02-17 13:10:45 -0800
commit0d70a597cd0f1bbf673c6bbf7127b0dfdd1895e2 (patch)
tree946c139cd69b728b34a8d0ef7f15e00f2c11ab7a /scripts/build.sh
parent371feac82f5d8e29bb74d55c3187bd2a38a5e5e1 (diff)
downloadsubsurface-0d70a597cd0f1bbf673c6bbf7127b0dfdd1895e2.tar.gz
Add build and run script for people wanting to build from source
These scripts should make it easier to build from source on platforms where we don't supply binaries. They should ensure the correct libraries are build and then used at run time Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'scripts/build.sh')
-rwxr-xr-xscripts/build.sh87
1 files changed, 87 insertions, 0 deletions
diff --git a/scripts/build.sh b/scripts/build.sh
new file mode 100755
index 000000000..44cf5d52e
--- /dev/null
+++ b/scripts/build.sh
@@ -0,0 +1,87 @@
+#!/bin/bash
+#
+# this should be run from the src directory, the layout is supposed to
+# look like this:
+#.../src/subsurface
+# /libgit2
+# /marble-source
+# /libdivecomputer
+#
+# the script will build these three libraries from source, even if
+# they are installed as part of the host OS since we have seen
+# numerous cases where building with random versions (especially older,
+# but sometimes also newer versions than recommended here) will lead
+# to all kinds of unnecessary pain
+
+SRC=$(pwd)
+if [[ ! -d "subsurface" ]] ; then
+ echo "please start this script from the directory containing the Subsurface source directory"
+ exit 1
+fi
+mkdir -p install
+
+# build libgit2
+
+if [ ! -d libgit2 ] ; then
+ if [[ $1 = local ]] ; then
+ git clone $SRC/../libgit2 libgit2
+ else
+ git clone git://github.com/libgit2/libgit2
+ fi
+fi
+cd libgit2
+git checkout v0.21.5
+mkdir -p build
+cd build
+cmake -DCMAKE_INSTALL_PREFIX=$SRC/install -DCMAKE_BUILD_TYPE=Release -DBUILD_CLAR=OFF ..
+cmake --build . --target install
+
+cd $SRC
+
+# build libdivecomputer
+
+if [ ! -d libdivecomputer ] ; then
+ if [[ $1 = local ]] ; then
+ git clone $SRC/../libdivecomputer libdivecomputer
+ else
+ git clone -b Subsurface-4.4 git://subsurface-divelog.org/libdc libdivecomputer
+ fi
+fi
+cd libdivecomputer
+git checkout Subsurface-4.4
+if [ ! -f configure ] ; then
+ autoreconf --install
+ ./configure --prefix=$SRC/install
+fi
+make -j4
+make install
+
+cd $SRC
+
+# build libssrfmarblewidget
+
+if [ ! -d marble-source ] ; then
+ if [[ $1 = local ]] ; then
+ git clone $SRC/../marble-source marble-source
+ else
+ git clone -b Subsurface-4.4 git://subsurface-divelog.org/marble marble-source
+ fi
+fi
+cd marble-source
+git checkout Subsurface-4.4
+mkdir -p build
+cd build
+cmake -DCMAKE_BUILD_TYPE=Release -DQTONLY=TRUE -DQT5BUILD=ON \
+ -DCMAKE_INSTALL_PREFIX=$SRC/install \
+ -DBUILD_MARBLE_TESTS=NO \
+ -DWITH_DESIGNER_PLUGIN=NO \
+ -DBUILD_MARBLE_APPS=NO \
+ $SRC/marble-source
+cd src/lib/marble
+make -j4
+make install
+
+cd $SRC/subsurface
+qmake-qt5 LIBDCDEVEL=1 LIBMARBLEDEVEL=$SRC/install SPECIAL_MARBLE_PREFIX=1 LIBGIT2DEVEL=$SRC/libgit2 subsurface.pro
+make -j4
+