configure

changeset 0
1f419bd32da1
child 79
052224670baf
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/configure	Sat Dec 07 12:14:59 2013 +0100
@@ -0,0 +1,156 @@
+#!/bin/bash
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+#
+# Copyright 2011 Olaf Wintermann. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+#   1. Redistributions of source code must retain the above copyright notice,
+#      this list of conditions and the following disclaimer.
+#
+#   2. Redistributions in binary form must reproduce the above copyright
+#      notice, this list of conditions and the following disclaimer in the
+#      documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+
+OS=`uname -s`
+OS_VERSION=`uname -r`
+PREFIX=/opt/mk12
+
+#
+# parse arguments
+#
+for ARG in $@
+do
+    if [[ $ARG == --prefix=* ]]; then
+        PREFIX=${ARG:9}
+    elif [[ $ARG == --toolkit=* ]]; then
+        # todo: check for invalid toolkit
+        TOOLKIT=${ARG:10}
+    elif [ $ARG = "--help" ]; then
+        # todo: print help text
+        echo "no help yet"
+        exit 0
+    fi
+done
+
+#
+# check_pkgconfig_lib()
+#
+# arg1: display package name
+# arg2: pkg-config package name
+#
+check_pkgconfig_lib()
+{
+    printf "checking for "
+    printf $1
+    printf "... "
+    pkg-config $2
+    RESULT=$?
+    if [ $RESULT -eq 0 ]; then
+        echo "ok"
+    else
+        echo "not found"
+        echo
+        echo "missing package" $1
+        exit -1
+    fi
+}
+
+
+#
+# check OS and libraries
+#
+
+printf "checking for toolchain... "
+if [ $OS = SunOS ]; then
+    BUILD_CONFIG=suncc
+    echo "suncc"
+fi
+
+if [ $OS = Linux ]; then
+    BUILD_CONFIG=gcc
+    echo "gcc"
+fi
+
+if [ $OS = Darwin ]; then
+    BUILD_CONFIG=osx
+    echo "gcc"
+fi
+
+
+if [ $OS != Darwin ]; then
+    check_pkgconfig_lib "libxml2" "libxml-2.0"
+fi
+
+if [ -z $TOOLKIT ]; then
+    printf "checking for gui library... "
+    if [ $OS = SunOS ]; then
+        if [ $OS_VERSION = 5.10 ]; then
+            TOOLKIT=gtk2legacy
+        else
+            TOOLKIT=gtk2
+        fi
+        echo "gtk2"
+    elif [ $OS = Darwin ]; then
+        TOOLKIT=cocoa
+        echo "Cocoa"
+    else
+        pkg-config gtk+-3.0
+        RESULT=$?
+        if [ $RESULT -eq 0 ]; then
+            TOOLKIT=gtk3
+            echo "gtk3"
+        else
+            pkg-config gtk+-2.0
+            RESULT=$?
+            if [ $RESULT -eq 0 ]; then
+                TOOLKIT=gtk2legacy
+                echo "gtk2"
+            else
+                echo "not found"
+                exit 1
+            fi
+        fi
+    fi
+fi
+
+
+# generate config.mk
+
+cat > config.mk << __EOF__
+#
+# config.mk generated by configure
+#
+
+PREFIX = ${PREFIX}
+
+include \$(BUILD_ROOT)/make/${BUILD_CONFIG}.mk
+
+__EOF__
+
+# toolkit config
+make/configure_${TOOLKIT}.sh
+
+
+echo "configure finished"
+echo
+echo "  PREFIX:       $PREFIX"
+echo "  BUILD_CONFIG: $BUILD_CONFIG"
+echo "  TOOLKIT:      $TOOLKIT"
+echo
+

mercurial