From c7c300d3c079bb294d9c6406c5521fced89d3b72 Mon Sep 17 00:00:00 2001
From: Oliver Bock <oliver.bock@aei.mpg.de>
Date: Tue, 20 May 2008 00:56:05 +0200
Subject: [PATCH] More setup script updates

* Using bash explicitly (e.g. for "type" built-in)
* Implemented prerequisite check for executables (GL/GLU should also be checked!)
* Added first parts of error handling harness
* Also: removed KDevelop files of kscreensaver
---
 setup.sh                                      | 113 +++++++++---
 src/keinsteinsaver/keinsteinsaver.kdevelop    | 169 ------------------
 .../keinsteinsaver.kdevelop.pcs               | Bin 10368 -> 0 bytes
 src/keinsteinsaver/keinsteinsaver.kdevses     |  28 ---
 4 files changed, 86 insertions(+), 224 deletions(-)
 delete mode 100644 src/keinsteinsaver/keinsteinsaver.kdevelop
 delete mode 100644 src/keinsteinsaver/keinsteinsaver.kdevelop.pcs
 delete mode 100644 src/keinsteinsaver/keinsteinsaver.kdevses

diff --git a/setup.sh b/setup.sh
index 80e1df9..2a51633 100755
--- a/setup.sh
+++ b/setup.sh
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 
 ###########################################################################
 #   Copyright (C) 2008 by Oliver Bock                                     #
@@ -29,17 +29,19 @@
 
 check_prerequisites()
 {
-	echo "Not yet implemented: check_prerequisites()"
-	# automake
-	# autoconf
-	# cmake
-	# wget
-	# C compiler
-	# libtool
-	# ar
-	# lex or flex
-	# yacc or bison or byacc
-	# m4
+	echo "Checking prerequisites..."
+	
+	# required toolchain
+	TOOLS="automake autoconf m4 cmake wget gcc g++ ld libtool ar lex yacc"
+
+	for tool in $TOOLS; do
+		if ! ( type $tool >/dev/null 2>&1 ); then
+			echo "Error! Missing \"$tool\" which is a required tool! Stopping..."
+			return 1
+		fi
+	done
+
+	return 0
 }
 
 
@@ -105,6 +107,8 @@ prepare_generic()
 		echo "Retrieving BOINC (this may take a while)..." | tee -a $ROOT/setup.log
 		svn checkout http://boinc.berkeley.edu/svn/trunk/boinc . >> $ROOT/setup.log
 	fi
+
+	return 0
 }
 
 
@@ -130,6 +134,8 @@ prepare_win32()
 	# note: svn has no force/overwrite switch. the file might not be updated when patched
 	patch x86-mingw32-build.sh.conf < $ROOT/patches/x86-mingw32-build.sh.conf.patch >> $ROOT/setup.log
 	chmod +x x86-mingw32-build.sh >> $ROOT/setup.log
+
+	return 0
 }
 
 
@@ -176,13 +182,19 @@ build_generic()
 	make >> $ROOT/setup.log
 	make install >> $ROOT/setup.log
 	echo "Successfully built and installed BOINC!" | tee -a $ROOT/setup.log
+
+	return 0
 }
 
+
 build_mingw()
 {
 	echo "Not yet implemented: build_mingw()"
+
+	return 0
 }
 
+
 build_starsphere()
 {
 	echo "Building Starsphere [ORC] (this may take a while)..." | tee -a $ROOT/setup.log
@@ -212,27 +224,40 @@ build_starsphere()
 	make >> $ROOT/setup.log
 	make install >> $ROOT/setup.log
 	echo "Successfully built and installed Starsphere [Application]!" | tee -a $ROOT/setup.log
+
+	return 0
 }
 
+
 build_linux()
 {
 	build_generic
 	build_starsphere
+
+	return 0
 }
 
 
 build_mac()
 {
-	build_generic
-	build_starsphere
+	echo "Not yet implemented: build_mac()"
+
+# 	build_generic
+# 	build_starsphere
+
+	return 0
 }
 
 
 build_win32()
 {
-	build_mingw
-	build_generic
-	build_starsphere
+	echo "Not yet implemented: build_win32()"
+
+# 	build_mingw
+# 	build_generic
+# 	build_starsphere
+
+	return 0
 }
 
 
@@ -246,8 +271,11 @@ check_last_build()
 	fi
 
 	echo "$1" > .lastbuild
+
+	return 0
 }
 
+
 print_usage()
 {
 	cd $ROOT
@@ -262,6 +290,8 @@ print_usage()
 	echo "*************************"
 
 	echo "Wrong usage. Stopping!" >> $ROOT/setup.log
+
+	return 0
 }
 
 
@@ -299,23 +329,52 @@ case "$1" in
 		echo "Building mac version:" | tee -a $ROOT/setup.log
 		;;
 	"--win32")
-			TARGET=$TARGET_WIN32
-			check_last_build "$1"
-			echo "Building win32 version:" | tee -a $ROOT/setup.log
-			;;
+		TARGET=$TARGET_WIN32
+		check_last_build "$1"
+		echo "Building win32 version:" | tee -a $ROOT/setup.log
+		;;
 	*)
-			print_usage
-			exit 1
-			;;
+		print_usage
+		exit 1
+		;;
 esac
 
 # here we go...
 
 check_prerequisites
-prepare_generic
+if [ ! $? -eq 0 ]; then
+	exit 1
+fi
 
-if [ TARGET=$TARGET_LINUX ]; then
-	build_linux
+prepare_generic
+if [ ! $? -eq 0 ]; then
+	exit 1
 fi
 
+case $TARGET in
+	$TARGET_LINUX)
+		build_linux
+		if [ ! $? -eq 0 ]; then
+			exit 1
+		fi
+		;;
+	$TARGET_MAC)
+		build_mac
+		if [ ! $? -eq 0 ]; then
+			exit 1
+		fi
+		;;
+	$TARGET_WIN32)
+		build_win32
+		if [ ! $? -eq 0 ]; then
+			exit 1
+		fi
+		;;
+	*)
+		# should be unreachable
+		print_usage
+		exit 1
+		;;
+esac
+
 exit 0
diff --git a/src/keinsteinsaver/keinsteinsaver.kdevelop b/src/keinsteinsaver/keinsteinsaver.kdevelop
deleted file mode 100644
index dbbc19b..0000000
--- a/src/keinsteinsaver/keinsteinsaver.kdevelop
+++ /dev/null
@@ -1,169 +0,0 @@
-<?xml version = '1.0'?>
-<kdevelop>
-  <general>
-    <author>Oliver Bock</author>
-    <email>oliver.bock@aei.mpg.de</email>
-    <version>0.1</version>
-    <projectmanagement>KDevKDEAutoProject</projectmanagement>
-    <primarylanguage>C++</primarylanguage>
-    <keywords>
-      <keyword>C++</keyword>
-      <keyword>Code</keyword>
-      <keyword>Qt</keyword>
-      <keyword>KDE</keyword>
-      <keyword>kioslave</keyword>
-    </keywords>
-    <ignoreparts/>
-    <projectname>keinsteinsaver</projectname>
-  </general>
-  <kdevcppsupport>
-    <qt>
-      <version>3</version>
-      <used>true</used>
-      <includestyle>3</includestyle>
-      <designerintegration>EmbeddedKDevDesigner</designerintegration>
-      <root>/usr/share/qt3</root>
-      <qmake>/usr/bin/qmake-qt3</qmake>
-      <designer>/usr/bin/designer-qt3</designer>
-      <designerpluginpaths/>
-    </qt>
-    <references>
-      <pcs>Qt4</pcs>
-    </references>
-    <codecompletion>
-      <automaticCodeCompletion>false</automaticCodeCompletion>
-      <automaticArgumentsHint>true</automaticArgumentsHint>
-      <automaticHeaderCompletion>true</automaticHeaderCompletion>
-      <codeCompletionDelay>250</codeCompletionDelay>
-      <argumentsHintDelay>400</argumentsHintDelay>
-      <headerCompletionDelay>250</headerCompletionDelay>
-      <showOnlyAccessibleItems>false</showOnlyAccessibleItems>
-      <completionBoxItemOrder>0</completionBoxItemOrder>
-      <howEvaluationContextMenu>true</howEvaluationContextMenu>
-      <showCommentWithArgumentHint>true</showCommentWithArgumentHint>
-      <statusBarTypeEvaluation>false</statusBarTypeEvaluation>
-      <namespaceAliases>std=_GLIBCXX_STD;__gnu_cxx=std</namespaceAliases>
-      <processPrimaryTypes>true</processPrimaryTypes>
-      <processFunctionArguments>false</processFunctionArguments>
-      <preProcessAllHeaders>false</preProcessAllHeaders>
-      <parseMissingHeadersExperimental>false</parseMissingHeadersExperimental>
-      <resolveIncludePathsUsingMakeExperimental>false</resolveIncludePathsUsingMakeExperimental>
-      <alwaysParseInBackground>true</alwaysParseInBackground>
-      <usePermanentCaching>true</usePermanentCaching>
-      <alwaysIncludeNamespaces>false</alwaysIncludeNamespaces>
-      <includePaths>.;</includePaths>
-    </codecompletion>
-  </kdevcppsupport>
-  <kdevautoproject>
-    <general>
-      <activetarget>src/libkeinsteinsaver.la</activetarget>
-      <useconfiguration>debug</useconfiguration>
-    </general>
-    <configurations>
-      <optimized>
-        <builddir>optimized</builddir>
-        <ccompiler>kdevgccoptions</ccompiler>
-        <cxxcompiler>kdevgppoptions</cxxcompiler>
-        <f77compiler>kdevg77options</f77compiler>
-        <cxxflags>-O2 -g0</cxxflags>
-      </optimized>
-      <debug>
-        <configargs>--enable-debug=full</configargs>
-        <builddir>debug</builddir>
-        <ccompiler>kdevgccoptions</ccompiler>
-        <cxxcompiler>kdevgppoptions</cxxcompiler>
-        <f77compiler>kdevg77options</f77compiler>
-        <cxxflags>-O0 -g3</cxxflags>
-      </debug>
-    </configurations>
-    <make>
-      <envvars>
-        <envvar value="1" name="WANT_AUTOCONF_2_5" />
-        <envvar value="1" name="WANT_AUTOMAKE_1_6" />
-      </envvars>
-    </make>
-  </kdevautoproject>
-  <kdevfileview>
-    <groups>
-      <group pattern="*.cpp;*.cxx;*.h" name="Sources" />
-      <group pattern="*.po;*.ts" name="Translations" />
-      <group pattern="*" name="Others" />
-      <hidenonprojectfiles>false</hidenonprojectfiles>
-      <hidenonlocation>false</hidenonlocation>
-    </groups>
-    <tree>
-      <hidepatterns>*.o,*.lo,CVS</hidepatterns>
-      <hidenonprojectfiles>false</hidenonprojectfiles>
-    </tree>
-  </kdevfileview>
-  <kdevdoctreeview>
-    <ignoretocs>
-      <toc>ada</toc>
-      <toc>ada_bugs_gcc</toc>
-      <toc>bash</toc>
-      <toc>bash_bugs</toc>
-      <toc>clanlib</toc>
-      <toc>fortran_bugs_gcc</toc>
-      <toc>gnome1</toc>
-      <toc>gnustep</toc>
-      <toc>gtk</toc>
-      <toc>gtk_bugs</toc>
-      <toc>haskell</toc>
-      <toc>haskell_bugs_ghc</toc>
-      <toc>java_bugs_gcc</toc>
-      <toc>java_bugs_sun</toc>
-      <toc>opengl</toc>
-      <toc>pascal_bugs_fp</toc>
-      <toc>php</toc>
-      <toc>php_bugs</toc>
-      <toc>perl</toc>
-      <toc>perl_bugs</toc>
-      <toc>python</toc>
-      <toc>python_bugs</toc>
-      <toc>ruby</toc>
-      <toc>ruby_bugs</toc>
-      <toc>sdl</toc>
-      <toc>stl</toc>
-      <toc>sw</toc>
-      <toc>w3c-dom-level2-html</toc>
-      <toc>w3c-svg</toc>
-      <toc>w3c-uaag10</toc>
-      <toc>wxwidgets_bugs</toc>
-    </ignoretocs>
-    <ignoreqt_xml>
-      <toc>qmake User Guide</toc>
-    </ignoreqt_xml>
-  </kdevdoctreeview>
-  <kdevdebugger>
-    <general>
-      <dbgshell>libtool</dbgshell>
-    </general>
-  </kdevdebugger>
-  <kdevfilecreate>
-    <filetypes/>
-    <useglobaltypes>
-      <type ext="ui" />
-      <type ext="cpp" />
-      <type ext="h" />
-    </useglobaltypes>
-  </kdevfilecreate>
-  <kdevdocumentation>
-    <projectdoc>
-      <docsystem>Doxygen Documentation Collection</docsystem>
-      <docurl>keinsteinsaver.tag</docurl>
-    </projectdoc>
-  </kdevdocumentation>
-  <substmap>
-    <APPNAME>keinsteinsaver</APPNAME>
-    <APPNAMELC>keinsteinsaver</APPNAMELC>
-    <APPNAMESC>Keinsteinsaver</APPNAMESC>
-    <APPNAMEUC>KEINSTEINSAVER</APPNAMEUC>
-    <AUTHOR>Oliver Bock</AUTHOR>
-    <EMAIL>oliver.bock@aei.mpg.de</EMAIL>
-    <LICENSE>GPL</LICENSE>
-    <LICENSEFILE>COPYING</LICENSEFILE>
-    <VERSION>0.1</VERSION>
-    <YEAR>2008</YEAR>
-    <dest>/home/oliver/development/aei/lscsoft/src/einsteinathome/graphics/src/keinsteinsaver</dest>
-  </substmap>
-</kdevelop>
diff --git a/src/keinsteinsaver/keinsteinsaver.kdevelop.pcs b/src/keinsteinsaver/keinsteinsaver.kdevelop.pcs
deleted file mode 100644
index 6c29e7e2e2065803f490f6af2788a8fa6ffbac4a..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 10368
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
J1F0ek0{}Xz2#Ejy

diff --git a/src/keinsteinsaver/keinsteinsaver.kdevses b/src/keinsteinsaver/keinsteinsaver.kdevses
deleted file mode 100644
index b24f55d..0000000
--- a/src/keinsteinsaver/keinsteinsaver.kdevses
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE KDevPrjSession>
-<KDevPrjSession>
- <DocsAndViews NumberOfDocuments="1" >
-  <Doc0 NumberOfViews="1" URL="file:///home/oliver/development/aei/lscsoft/src/einsteinathome/graphics/src/keinsteinsaver/src/keinsteinsaver.cpp" >
-   <View0 Encoding="" line="0" Type="Source" />
-  </Doc0>
- </DocsAndViews>
- <pluginList>
-  <kdevdebugger>
-   <breakpointList/>
-   <showInternalCommands value="0" />
-  </kdevdebugger>
-  <kdevastyle>
-   <Extensions ext="*.cpp *.h,*.c *.h,*.cxx *.hxx,*.c++ *.h++,*.cc *.hh,*.C *.H,*.diff,*.inl,*.java,*.moc,*.patch,*.tlh,*.xpm" />
-   <AStyle IndentPreprocessors="0" FillCount="4" PadParenthesesOut="0" IndentNamespaces="0" IndentLabels="0" Fill="Tabs" MaxStatement="40" Brackets="Linux" MinConditional="-1" IndentBrackets="0" PadParenthesesUn="1" BlockBreak="1" KeepStatements="0" KeepBlocks="0" BlockIfElse="1" IndentSwitches="0" PadOperators="1" FStyle="UserDefined" IndentCases="0" FillEmptyLines="0" BracketsCloseHeaders="1" BlockBreakAll="0" PadParenthesesIn="0" IndentClasses="0" IndentBlocks="0" FillForce="1" />
-  </kdevastyle>
-  <kdevbookmarks>
-   <bookmarks/>
-  </kdevbookmarks>
-  <kdevvalgrind>
-   <executable path="" params="" />
-   <valgrind path="" params="" />
-   <calltree path="" params="" />
-   <kcachegrind path="" />
-  </kdevvalgrind>
- </pluginList>
-</KDevPrjSession>
-- 
GitLab