From cf41475f89b9272c91bdc502044b1a92d51e1670 Mon Sep 17 00:00:00 2001 From: Sebastian Reichel Date: Mon, 20 May 2013 19:42:26 +0200 Subject: initial configure script checking build dependencies --- configure | 140 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 140 insertions(+) create mode 100755 configure (limited to 'configure') diff --git a/configure b/configure new file mode 100755 index 0000000..e96745c --- /dev/null +++ b/configure @@ -0,0 +1,140 @@ +#!/bin/sh + +# This awk script is derived from autotools +awk_verscmp=' + # Use only awk features that work with 7th edition Unix awk (1978). + # My, what an old awk you have, Mr. Solaris! + END { + while (length(v1) && length(v2)) { + # Set d1 to be the next thing to compare from v1, and likewise for d2. + # Normally this is a single character, but if v1 and v2 contain digits, + # compare them as integers and fractions as strverscmp does. + if (v1 ~ /^[0-9]/ && v2 ~ /^[0-9]/) { + # Split v1 and v2 into their leading digit string components d1 and d2, + # and advance v1 and v2 past the leading digit strings. + for (len1 = 1; substr(v1, len1 + 1) ~ /^[0-9]/; len1++) continue + for (len2 = 1; substr(v2, len2 + 1) ~ /^[0-9]/; len2++) continue + d1 = substr(v1, 1, len1); v1 = substr(v1, len1 + 1) + d2 = substr(v2, 1, len2); v2 = substr(v2, len2 + 1) + if (d1 ~ /^0/) { + if (d2 ~ /^0/) { + # Compare two fractions. + while (d1 ~ /^0/ && d2 ~ /^0/) { + d1 = substr(d1, 2); len1-- + d2 = substr(d2, 2); len2-- + } + if (len1 != len2 && ! (len1 && len2 && substr(d1, 1, 1) == substr(d2, 1, 1))) { + # The two components differ in length, and the common prefix + # contains only leading zeros. Consider the longer to be less. + d1 = -len1 + d2 = -len2 + } else { + # Otherwise, compare as strings. + d1 = "x" d1 + d2 = "x" d2 + } + } else { + # A fraction is less than an integer. + exit 1 + } + } else { + if (d2 ~ /^0/) { + # An integer is greater than a fraction. + exit 2 + } else { + # Compare two integers. + d1 += 0 + d2 += 0 + } + } + } else { + # The normal case, without worrying about digits. + d1 = substr(v1, 1, 1); v1 = substr(v1, 2) + d2 = substr(v2, 1, 1); v2 = substr(v2, 2) + } + if (d1 < d2) exit 1 + if (d1 > d2) exit 2 + } + # Beware Solaris /usr/xgp4/bin/awk (at least through Solaris 10), + # which mishandles some comparisons of empty strings to integers. + if (length(v2)) exit 1 + if (length(v1)) exit 2 + } +' + +check_prg_version() { + printf " %-29s" "$1..." + + awk "$awk_verscmp" v1="$2" v2="$3" /dev/null + + if [ "$?" = "2" ] ; then + echo "MISSING"; + return 1; + else + echo " OK"; + return 0; + fi +} + +check_pkg_config() { + pkg="$1" + version="$2" + + printf " %-29s" "$1..." + + if [ "x$version" = "x" ] ; then + pkg-config --exists "$1" + else + pkg-config --atleast-version "$2" "$1" + fi + + result=$? + + if [ $result = 1 ] ; then + echo "MISSING" + else + echo " OK" + fi + + return $? +} + +check_dependencies() { + echo "Checking dependencies:" + errors=0 + check_prg_version valac 0.16 `valac --api-version` + errors=`expr $errors + 1` + check_pkg_config ncursesw 5.9 + errors=`expr $errors + 1` + check_pkg_config gdk-2.0 2.24 + errors=`expr $errors + 1` + check_pkg_config gee-1.0 0.6 + errors=`expr $errors + 1` + check_pkg_config gio-2.0 2.36 + errors=`expr $errors + 1` + check_pkg_config gmime-2.6 2.6.10 + errors=`expr $errors + 1` + check_prg_version gpgme 1.2 `gpgme-config --version` + errors=`expr $errors + 1` + check_pkg_config gstreamer-0.10 0.10.36 + errors=`expr $errors + 1` + check_pkg_config libarchive 3.0 + errors=`expr $errors + 1` + check_prg_version libesmtp 0.1 `libesmtp-config --version` + errors=`expr $errors + 1` + check_pkg_config librsvg-2.0 2.36 + errors=`expr $errors + 1` + check_pkg_config libsoup-2.4 2.38 + errors=`expr $errors + 1` + check_pkg_config pangocairo 1.32 + errors=`expr $errors + 1` + check_pkg_config sqlite3 3.7 + errors=`expr $errors + 1` + + if [ $errors -ne 0 ] ; then + echo "Aborting due to errors!" + exit 1; + fi +} + +check_dependencies -- cgit v1.2.3