summaryrefslogtreecommitdiff
path: root/openbabel.sh
diff options
context:
space:
mode:
Diffstat (limited to 'openbabel.sh')
-rwxr-xr-x[-rw-r--r--]openbabel.sh110
1 files changed, 97 insertions, 13 deletions
diff --git a/openbabel.sh b/openbabel.sh
index a1d90a4..3257146 100644..100755
--- a/openbabel.sh
+++ b/openbabel.sh
@@ -1,15 +1,99 @@
#!/bin/sh
+#
+# Installs Openbabel.
+# A configuration file is created and included in your '$OT_UI_CONF'.
+# Author: Christoph Helma, Andreas Maunz.
+#
+
+. "`pwd`/utils.sh"
+DIR="`pwd`"
+
+if [ "$(id -u)" = "0" ]; then
+ echo "This script must be run as non-root." 1>&2
+ exit 1
+fi
+
+# Utils
+WGET="`which wget`"
+if [ ! -e "$WGET" ]; then
+ echo "'wget' missing. Install 'wget' first. Aborting..."
+ exit 1
+fi
+
+# Pkg
+LOG="/tmp/`basename $0`-log.txt"
+
+echo
+echo "Openbabel ('$OB_DEST', '$LOG'):"
+
+
+mkdir "$OB_DEST" >/dev/null 2>&1
+if [ ! -d "$OB_DEST" ]; then
+ echo "Install directory '$OB_DEST' is not available! Aborting..."
+ exit 1
+else
+ if ! rmdir "$OB_DEST" >/dev/null 2>&1; then # if not empty this will fail
+ OB_DONE=true
+ fi
+fi
+
+if [ ! $OB_DONE ]; then
+ cd "/tmp">>$LOG 2>/dev/null
+ URI="http://downloads.sourceforge.net/project/openbabel/openbabel/$OB_NUM_VER/$OB_VER.tar.gz?use_mirror=kent"
+ if ! [ -d "/tmp/$OB_VER" ]; then
+ cmd="$WGET $URI" && run_cmd "$cmd" "Download"
+ cmd="tar zxf $OB_VER.tar.gz?use_mirror=kent $OB_VER" && run_cmd "$cmd" "Unpack"
+ fi
+ cd "/tmp/$OB_VER">>$LOG 2>/dev/null
+
+ cmd="./configure --prefix=$OB_DEST" && run_cmd "$cmd" "Configure"
+ cmd="make" && run_cmd "$cmd" "Make"
+ cmd="make install" && run_cmd "$cmd" "Install"
+fi
+
+if [ ! -f "$OB_CONF" ]; then
+
+ echo "if echo \"\$PATH\" | grep -v \"$OB_DEST\">/dev/null 2>&1; then export PATH=\"$OB_DEST/bin:\$PATH\"; fi" >> "$OB_CONF"
+ echo "if echo \"\$LD_LIBRARY_PATH\" | grep -v \"$OB_DEST\">/dev/null 2>&1; then export LD_LIBRARY_PATH=\"$OB_DEST/lib:\$LD_LIBRARY_PATH\"; fi" >> "$OB_CONF"
+ echo "if ! [ -d \"$OB_DEST\" ]; then echo \"\$0: '$OB_DEST' is not a directory!\"; fi" >> "$OB_CONF"
+
+ echo "if [ -z \"\$BABEL_LIBDIR\" ]; then export BABEL_LIBDIR=\"$OB_DEST/lib/openbabel/$OB_NUM_VER\"; fi" >> "$OB_CONF"
+ echo "if ! [ -d \"\$BABEL_LIBDIR\" ]; then echo \"\$0: '\$BABEL_LIBDIR' is not a directory!\"; fi" >> "$OB_CONF"
+
+ echo "if [ -z \"\$BABEL_DATADIR\" ]; then export BABEL_DATADIR=\"$OB_DEST/share/openbabel/$OB_NUM_VER\"; fi" >> "$OB_CONF"
+ echo "if ! [ -d \"\$BABEL_DATADIR\" ]; then echo \"\$0: '\$BABEL_DATADIR' is not a directory!\"; fi" >> "$OB_CONF"
+
+ echo "if echo \"\$RUBYLIB\" | grep -v \"$OB_DEST_BINDINGS\">/dev/null 2>&1; then export RUBYLIB=\"$OB_DEST_BINDINGS:\$RUBYLIB\"; fi" >> "$RUBY_CONF"
+ echo "if ! [ -d \"$OB_DEST_BINDINGS\" ]; then echo \"\$0: '$OB_DEST_BINDINGS' is not a directory!\"; fi" >> "$RUBY_CONF"
+
+ echo "Openbabel configuration has been stored in '$OB_CONF'."
+ if ! grep "$OB_CONF" $OT_UI_CONF >/dev/null 2>&1 ; then
+ echo ". \"$OB_CONF\"" >> $OT_UI_CONF
+ fi
+
+fi
+
+echo "Bindings:"
+OB_DONE=false
+. "$OT_UI_CONF"
+mkdir "$OB_DEST_BINDINGS">/dev/null 2>&1
+if [ ! -d "$OB_DEST_BINDINGS" ]; then
+ echo "Install directory '$OB_DEST_BINDINGS' is not available! Aborting..."
+ exit 1
+else
+ if [ "`ls $OB_DEST_BINDINGS | wc -l`" -gt 0 ]; then
+ OB_DONE=true
+ fi
+fi
+
+if ! $OB_DONE ; then
+ cd "/tmp/$OB_VER/scripts/ruby/"
+ cmd="ruby extconf.rb --with-openbabel-include=$OB_DEST/include/openbabel-2.0 --with-openbabel-lib=$OB_DEST/lib" && run_cmd "$cmd" "Code"
+ cmd="make" && run_cmd "$cmd" "Make"
+ cmd="cp openbabel.so $OB_DEST_BINDINGS" && run_cmd "$cmd" "Install"
+ cmd="ln -s $OB_DEST_BINDINGS/openbabel.so $RUBY_DEST/lib/ruby/site_ruby/1.8/`uname -m`-linux/" && run_cmd "$cmd" "Link"
+fi
+
+cd "$DIR"
+
-echo "Installing OpenBabel libraries"
-. /etc/profile
-dir=`pwd`
-cd /tmp
-wget -O - "http://downloads.sourceforge.net/project/openbabel/openbabel/2.2.3/openbabel-2.2.3.tar.gz?use_mirror=kent" | tar zxv
-cd openbabel-2.2.3/
-./configure
-make install
-cd scripts/ruby/
-ruby extconf.rb --with-openbabel-include=/usr/local/include/openbabel-2.0
-make install
-ldconfig
-cd $dir