build.sh: Check for more (all?) programs needed.
authorFlorian Forster <octo@huhu.verplant.org>
Fri, 3 Oct 2008 11:30:58 +0000 (13:30 +0200)
committerFlorian Forster <octo@huhu.verplant.org>
Fri, 3 Oct 2008 11:30:58 +0000 (13:30 +0200)
build.sh

index cede2e4..3822c2b 100755 (executable)
--- a/build.sh
+++ b/build.sh
@@ -1,19 +1,48 @@
 #! /bin/sh
 
-if ! which lex > /dev/null 2>&1; then
-       echo "WARNING: lex not found!" >&2
-       echo "Make sure that you have a flex compatible tool available." >&2
-fi
+GLOBAL_ERROR_INDICATOR=0
 
-if ! which yacc > /dev/null 2>&1; then
-       echo "WARNING: yacc not found!" >&2
-       echo "Make sure that you have a GNU bison compatible tool available." >&2
-fi
+check_for_application ()
+{
+       for PROG in "$@"
+       do
+               if ! which "$PROG" >/dev/null 2>&1; then
+                       cat >&2 <<EOF
+WARNING: \`$PROG' not found!
+    Please make sure that \`$PROG' is installed and is in one of the
+    directories listed in the PATH environment variable.
+EOF
+                       GLOBAL_ERROR_INDICATOR=1
+               fi
+       done
+}
 
-libtoolize=libtoolize
+check_for_application lex yacc autoheader aclocal automake autoconf
 
-if which glibtoolize > /dev/null 2>&1; then
+# Actually we don't need the pkg-config executable, but we need the M4 macros.
+# We check for `pkg-config' here and hope that M4 macros will then be
+# available, too.
+check_for_application pkg-config
+
+libtoolize=""
+if which libtoolize >/dev/null 2>&1
+then
+       libtoolize=libtoolize
+else if which glibtoolize >/dev/null 2>&1
+then
        libtoolize=glibtoolize
+else
+       cat >&2 <<EOF
+WARNING: Neither \`libtoolize' nor \`glibtoolize' have been found!
+    Please make sure that one of them is installed and is in one of the
+    directories listed in the PATH environment variable.
+EOF
+       GLOBAL_ERROR_INDICATOR=1
+fi; fi
+
+if test "$GLOBAL_ERROR_INDICATOR" != "0"
+then
+       exit 1
 fi
 
 set -x