--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/qtmobility/configure Wed Sep 01 12:15:07 2010 +0100
@@ -0,0 +1,548 @@
+#!/bin/sh
+#############################################################################
+##
+## Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+## All rights reserved.
+## Contact: Nokia Corporation (qt-info@nokia.com)
+##
+## This file is part of the Qt Mobility Components.
+##
+## $QT_BEGIN_LICENSE:LGPL$
+## No Commercial Usage
+## This file contains pre-release code and may not be distributed.
+## You may use this file in accordance with the terms and conditions
+## contained in the Technology Preview License Agreement accompanying
+## this package.
+##
+## GNU Lesser General Public License Usage
+## Alternatively, this file may be used under the terms of the GNU Lesser
+## General Public License version 2.1 as published by the Free Software
+## Foundation and appearing in the file LICENSE.LGPL included in the
+## packaging of this file. Please review the following information to
+## ensure the GNU Lesser General Public License version 2.1 requirements
+## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+##
+## In addition, as a special exception, Nokia gives you certain additional
+## rights. These rights are described in the Nokia Qt LGPL Exception
+## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+##
+## If you have questions regarding the use of this file, please contact
+## Nokia at qt-info@nokia.com.
+##
+##
+##
+##
+##
+##
+##
+##
+## $QT_END_LICENSE$
+##
+#############################################################################
+
+# return status of 1 if absolute path as first argument
+# also prints the return status
+isAbsPath() {
+ slash=$(echo $1 | cut -c 1)
+ if [ "$slash" != "/" ]; then
+ echo 0
+ return 0
+ fi
+ echo 1
+ return 1
+}
+
+# Returns the absolute path for $1 for target $2
+# as an example $2 might have value "maemo5".
+# This is required because when building in scratchbox for
+# maemo we do not want to follow symbolic links that are
+# introduced by scratchbox
+absPath() {
+ if [ "$2" = "maemo5" -o "$2" = "maemo6" ]; then
+ if [ `isAbsPath $1` = '1' ]; then
+ echo $1;
+ else
+ echo >&2 "Relative prefix/bin/lib/header/plugin paths are not supported for Maemo"
+ exit 1;
+ fi
+ else
+ PATH=`$relpath/bin/pathhelper $1`
+ echo $PATH
+ fi
+}
+
+
+# the current directory (shadow build dir)
+shadowpath=`/bin/pwd`
+# the name of this script
+relconf=`basename $0`
+# the directory of this script is the "source tree"
+relpath=`dirname $0`
+relpath=`(cd "$relpath"; /bin/pwd)`
+
+CONFIG_IN="$shadowpath/config.in"
+QT_MOBILITY_PREFIX=$shadowpath/install
+QT_MOBILITY_INCLUDE=
+QT_MOBILITY_LIB=
+QT_MOBILITY_BIN=
+QT_MOBILITY_PLUGINS=
+BUILD_UNITTESTS=
+BUILD_EXAMPLES=
+BUILD_DOCS=yes
+BUILD_TOOLS=yes
+RELEASEMODE=
+BUILD_SILENT=
+LINUX_TARGET=
+QMAKE_CACHE="$shadowpath/.qmake.cache"
+LIB_PATH="lib"
+BIN_PATH="bin"
+PLUGIN_PATH="plugins"
+MAC_SDK=
+MOBILITY_MODULES="bearer location contacts multimedia publishsubscribe versit messaging systeminfo serviceframework sensors"
+MOBILITY_MODULES_UNPARSED=
+QMKSPEC=
+OS="other"
+
+usage()
+{
+ echo "Usage: configure [-prefix <dir>] [headerdir <dir>] [libdir <dir>]"
+ echo " [-bindir <dir>] [-tests] [-examples] [-no-docs]"
+ echo " [-no-tools] [-debug] [-release] [-silent]"
+ echo " [-modules <list>]"
+ echo
+ echo "Options:"
+ echo
+ echo "-prefix <dir> ..... This will install everything relative to <dir>"
+ echo " (default prefix: $shadowpath/install)"
+ echo "-headerdir <dir> .. Header files will be installed to <dir>"
+ echo " (default prefix: PREFIX/include)"
+ echo "-libdir <dir> ..... Libraries will be installed to <dir>"
+ echo " (default PREFIX/lib)"
+ echo "-bindir <dir> ..... Executables will be installed to <dir>"
+ echo " (default PREFIX/bin)"
+ echo "-plugindir <dir> .. Plug-ins will be installed to <dir>"
+ echo " (default PREFIX/plugins)"
+ echo "-debug ............ Build with debugging symbols"
+ echo "-release .......... Build without debugging symbols"
+ echo "-silent ........... Reduces build output"
+ echo "-tests ............ Build unit tests (not build by default)"
+ echo " Note, this adds test symbols to all libraries"
+ echo " and should not be used for release builds."
+ echo "-examples ......... Build example applications"
+ echo "-no-docs .......... Do not build documentation (build by default)"
+ echo "-no-tools ......... Do not build tools (build by default)"
+ echo "-modules <list> ... Restrict list of modules to build (default all supported)"
+ echo " Choose from: bearer contacts location publishsubscribe"
+ echo " messaging multimedia systeminfo serviceframework versit"
+ echo " sensors"
+ echo " Modules should be separated by a space and surrounded"
+ echo " by double quotation. If a"
+ echo " selected module depends on other modules dependencies"
+ echo " will automatically be enabled."
+ echo "-maemo6 ........... Build Qt Mobility for Maemo6 (Harmattan)."
+ echo "-maemo5 ........... Build Qt Mobility for Maemo5 (Freemantle)."
+ echo "-sdk <sdk>..........Build using Apple provided SDK <path/to/sdk>."
+ echo " example: -sdk /Developer/SDKs/MacOSX10.6.sdk"
+ echo
+
+ rm -f "$CONFIG_IN"
+ exit 1
+}
+
+rm -rf "$QMAKE_CACHE"
+CONFIG_LOG="$shadowpath/config.log"
+rm -rf "$CONFIG_LOG"
+
+while [ "$#" -gt 0 ]; do
+ case "$1" in
+ -h|-help|--help)
+ usage
+ ;;
+ -headerdir)
+ QT_MOBILITY_INCLUDE="$2"
+ shift
+ ;;
+ -libdir)
+ QT_MOBILITY_LIB="$2"
+ shift
+ ;;
+ --prefix|-prefix)
+ QT_MOBILITY_PREFIX="$2"
+ shift
+ ;;
+ -bindir)
+ QT_MOBILITY_BIN="$2"
+ shift
+ ;;
+ -plugindir)
+ QT_MOBILITY_PLUGINS="$2"
+ shift
+ ;;
+ -tests)
+ BUILD_UNITTESTS="yes"
+ ;;
+ -examples)
+ BUILD_EXAMPLES="yes"
+ ;;
+ -no-docs)
+ BUILD_DOCS=
+ ;;
+ -no-tools)
+ BUILD_TOOLS=
+ ;;
+ -debug)
+ RELEASEMODE=debug
+ ;;
+ -release)
+ RELEASEMODE=release
+ ;;
+ -silent)
+ BUILD_SILENT=yes
+ ;;
+ -maemo5)
+ LINUX_TARGET=maemo5
+ ;;
+ -maemo6)
+ LINUX_TARGET=maemo6
+ ;;
+ -sdk)
+ MAC_SDK="$2"
+ shift
+ ;;
+ -modules)
+ MOBILITY_MODULES_UNPARSED=$2
+ #reset default selection
+ MOBILITY_MODULES=
+ for m in $MOBILITY_MODULES_UNPARSED; do
+ case "$m" in
+ bearer|contacts|location|messaging|multimedia|publishsubscribe|serviceframework|systeminfo|versit|sensors)
+ MOBILITY_MODULES="$MOBILITY_MODULES $m";
+ ;;
+ *)
+ echo "Unknown module: $m"
+ echo
+ usage
+ ;;
+
+ esac
+ done
+ if [ -z "$MOBILITY_MODULES" ]; then
+ echo "List of selected modules is empty."
+ echo
+ usage
+ fi
+ shift
+ ;;
+ *)
+ echo "Unknown option: $1"
+ usage
+ ;;
+ esac
+ shift
+done
+
+checkostype()
+{
+ match="darwin"
+ if [ "$OSTYPE" = "${match}"* ]; then
+ OS="darwin"
+ QMKSPEC="-spec macx-g++"
+ echo "QMAKESPEC = "$QMKSPEC >> "$CONFIG_IN"
+ fi
+}
+
+findframeworks()
+{
+# figure out if Qt was built with frameworks
+# if so, install in the correct place.
+# and fix rpath
+ echo "contains(QT_CONFIG,qt_framework):message(1)" > 1.pro
+ SOMETHING=`qmake -spec macx-g++ 1.pro 2>&1`
+ if [ "$SOMETHING" = "Project MESSAGE: 1" ]; then
+ LIB_PATH="Library/Frameworks"
+ BIN_PATH="Applications"
+ fi
+ rm 1.pro
+}
+
+
+findUniversal()
+{
+ if [ -e "mac.inc" ]; then
+ rm mac.inc
+ fi
+ echo "contains(QT_CONFIG,x86): system(echo CONFIG+=x86 >> mac.inc)" > 2.pro
+ echo "contains(QT_CONFIG,ppc): system(echo CONFIG+=ppc >> mac.inc)" >> 2.pro
+ echo "contains(QT_CONFIG,ppc64): system(echo CONFIG+=ppc64 >> mac.inc)" >> 2.pro
+ echo "contains(QT_CONFIG,x86_64): system(echo CONFIG+=x86_64 >> mac.inc)" >> 2.pro
+ SOMETIME=`qmake -spec macx-g++ 2.pro 2>&1`
+ rm 2.pro
+ if [ -e "mac.inc" ]; then
+ echo "exists(mac.inc): include(mac.inc)" >> "$CONFIG_IN"
+ fi
+}
+
+checkostype
+
+if [ "$OS" = "darwin" ] ; then
+ findframeworks
+fi
+
+if [ -n "$BUILD_SILENT" ]; then
+ echo "CONFIG += silent" > "$CONFIG_IN"
+fi
+
+if [ "$OS" = "darwin" ] ; then
+ findUniversal
+fi
+
+if [ -z "$RELEASEMODE" ]; then
+ RELEASEMODE="debug"
+fi
+echo "CONFIG += $RELEASEMODE" >> "$CONFIG_IN"
+
+#do we build for Maemo?
+if [ -n "$LINUX_TARGET" ]; then
+ if [ "$LINUX_TARGET" = "maemo5" ]; then
+ echo "CONFIG+=maemo5" >> "$CONFIG_IN"
+ elif [ "$LINUX_TARGET" = "maemo6" ]; then
+ echo "CONFIG+=maemo6" >> "$CONFIG_IN"
+ fi
+fi
+
+#process PREFIX
+QT_MOBILITY_PREFIX=`absPath $QT_MOBILITY_PREFIX $LINUX_TARGET`
+if [ "$?" -eq "1" ]; then
+ exit 1
+fi
+echo "QT_MOBILITY_PREFIX = $QT_MOBILITY_PREFIX" >> "$CONFIG_IN"
+
+#process include path
+if [ -z "$QT_MOBILITY_INCLUDE" ]; then
+ QT_MOBILITY_INCLUDE="$QT_MOBILITY_PREFIX/include"
+else
+ QT_MOBILITY_INCLUDE=`absPath $QT_MOBILITY_INCLUDE $LINUX_TARGET`
+ if [ "$?" -eq "1" ]; then
+ exit 1
+ fi
+fi
+echo "QT_MOBILITY_INCLUDE = $QT_MOBILITY_INCLUDE" >> "$CONFIG_IN"
+
+
+#process library path
+if [ -z "$QT_MOBILITY_LIB" ]; then
+ QT_MOBILITY_LIB="$QT_MOBILITY_PREFIX/$LIB_PATH"
+else
+ QT_MOBILITY_LIB=`absPath $QT_MOBILITY_LIB $LINUX_TARGET`
+ if [ "$?" -eq "1" ]; then
+ exit 1
+ fi
+fi
+echo "QT_MOBILITY_LIB = $QT_MOBILITY_LIB" >> "$CONFIG_IN"
+
+#process bin path
+if [ -z "$QT_MOBILITY_BIN" ]; then
+ QT_MOBILITY_BIN="$QT_MOBILITY_PREFIX/$BIN_PATH"
+else
+ QT_MOBILITY_BIN=`absPath $QT_MOBILITY_BIN $LINUX_TARGET`
+ if [ "$?" -eq "1" ]; then
+ exit 1
+ fi
+fi
+echo "QT_MOBILITY_BIN = $QT_MOBILITY_BIN" >> "$CONFIG_IN"
+
+#process plugin path
+if [ -z "$QT_MOBILITY_PLUGINS" ]; then
+ QT_MOBILITY_PLUGINS="$QT_MOBILITY_PREFIX/$PLUGIN_PATH"
+else
+ QT_MOBILITY_PLUGINS=`absPath $QT_MOBILITY_PLUGINS $LINUX_TARGET`
+ if [ "$?" -eq "1" ]; then
+ exit 1
+ fi
+fi
+echo "QT_MOBILITY_PLUGINS = $QT_MOBILITY_PLUGINS" >> "$CONFIG_IN"
+
+
+echo "QT_MOBILITY_SOURCE_TREE = $relpath" >> "$QMAKE_CACHE"
+echo "QT_MOBILITY_BUILD_TREE = $shadowpath" >> "$QMAKE_CACHE"
+
+if [ -n "$MAC_SDK" ]; then
+ QMAKE_MAC_SDK="$MAC_SDK"
+ echo "QMAKE_MAC_SDK = $QMAKE_MAC_SDK" >> "$CONFIG_IN"
+fi
+
+if [ -z "$BUILD_UNITTESTS" ]; then
+ echo "build_unit_tests = no" >> "$CONFIG_IN"
+else
+ echo "build_unit_tests = yes" >> "$CONFIG_IN"
+fi
+
+if [ -z "$BUILD_EXAMPLES" ]; then
+ echo "build_examples = no" >> "$CONFIG_IN"
+else
+ echo "build_examples = yes" >> "$CONFIG_IN"
+fi
+
+if [ -z "$BUILD_DOCS" ]; then
+ echo "build_docs = no" >> "$CONFIG_IN"
+else
+ echo "build_docs = yes" >> "$CONFIG_IN"
+fi
+
+if [ -z "$BUILD_TOOLS" ]; then
+ echo "build_tools = no" >> "$CONFIG_IN"
+else
+ echo "build_tools = yes" >> "$CONFIG_IN"
+fi
+
+echo "Configuring Qt Mobility"
+echo
+
+WHICH="$relpath/config.tests/tools/which.test"
+
+printf "Checking available Qt"
+if ! "$WHICH" qmake 2>/dev/null 1>&2; then
+ printf " ... Not found\n\n" >&2
+ echo >&2 "Cannot find 'qmake' in your PATH.";
+ echo >&2 "Aborting."
+else
+ printf " ... "
+ qmake -query QT_VERSION
+fi
+
+# find out which make we want to use
+MAKE=
+for m in make gmake; do
+ if "$WHICH" $m >/dev/null 2>&1; then
+ MAKE=`$WHICH $m`
+ break
+ fi
+done
+if [ -z "$MAKE" ]; then
+ echo >&2 "Cannot find 'make' or 'gmake' in your PATH";
+ echo >&2 "Aborting."
+fi
+
+compileTest()
+{
+ printf "Checking $1"
+ CURRENT_PWD=`pwd`
+
+ if [ "$shadowpath" = "$relpath" ]; then
+ #doing source tree build
+ cd "$relpath/config.tests/$2"
+ rm -rf ./$2
+ else
+ #using shadow build
+ rm -rf config.tests/$2
+ mkdir -p config.tests/$2
+ cd config.tests/$2
+ fi
+
+ qmake $QMKSPEC "$relpath/config.tests/$2/$2.pro" 2>> "$CONFIG_LOG" >> "$CONFIG_LOG"
+ printf " ."
+ "$MAKE" clean >> "$CONFIG_LOG"
+ printf "."
+ "$MAKE" >> "$CONFIG_LOG" 2>&1
+ printf ". "
+ if [ -e ./$2 ]; then
+ echo "OK"
+ echo "$2_enabled = yes" >> "$CONFIG_IN"
+ else
+ echo "Not Found"
+ echo "$2_enabled = no" >> "$CONFIG_IN"
+ fi
+ cd "$CURRENT_PWD"
+}
+
+#compile tests
+compileTest QMF qmf
+compileTest NetworkManager networkmanager
+compileTest "CoreWLAN (MacOS 10.6)" corewlan
+compileTest "Maemo ICD" maemo-icd
+compileTest "Maemo ICD WLAN" maemo-icd-network-wlan
+compileTest "Maemo5 contacts dependencies" maemo5-contacts
+compileTest "Bluez" bluez
+if [ "$LINUX_TARGET" = maemo6 ]; then
+ compileTest sensord sensord
+else
+ echo "sensord_enabled = no" >> "$CONFIG_IN"
+fi
+
+# It's a lot easier to make qmake do the dependency checking...
+echo "mobility_modules = $MOBILITY_MODULES" >> "$CONFIG_IN"
+echo "contains(mobility_modules,versit): mobility_modules *= contacts" >> "$CONFIG_IN"
+echo "maemo5|maemo6:contains(maemo-icd_enabled, no): mobility_modules -= bearer" >> "$CONFIG_IN"
+
+# If libicd-network-wlan-dev.h is not present, use own copy.
+# At time of writing, libicd-network-wlan-dev is not released for maemo5.
+echo "maemo5:contains(maemo-icd-network-wlan_enabled, no): INCLUDEPATH += $relpath/src/3rdparty/icd-network-wlan" >> "$CONFIG_IN"
+
+# Ideally we'd skip generating headers for modules that are not enabled
+echo "Generating Mobility Headers..."
+#remove old headers
+rm -rf $shadowpath/include
+mkdir $shadowpath/include
+for module in $MOBILITY_MODULES; do
+ case "$module" in
+ bearer)
+ $relpath/bin/syncheaders $shadowpath/include/QtBearer $relpath/src/bearer
+ ;;
+ publishsubscribe)
+ $relpath/bin/syncheaders $shadowpath/include/QtPublishSubscribe $relpath/src/publishsubscribe
+ ;;
+ location)
+ $relpath/bin/syncheaders $shadowpath/include/QtLocation $relpath/src/location
+ ;;
+ serviceframework)
+ $relpath/bin/syncheaders $shadowpath/include/QtServiceFramework $relpath/src/serviceframework
+ ;;
+ systeminfo)
+ $relpath/bin/syncheaders $shadowpath/include/QtSystemInfo $relpath/src/systeminfo
+ ;;
+ contacts)
+ $relpath/bin/syncheaders $shadowpath/include/QtContacts $relpath/src/contacts
+ $relpath/bin/syncheaders $shadowpath/include/QtContacts $relpath/src/contacts/details
+ $relpath/bin/syncheaders $shadowpath/include/QtContacts $relpath/src/contacts/requests
+ $relpath/bin/syncheaders $shadowpath/include/QtContacts $relpath/src/contacts/filters
+ ;;
+ multimedia)
+ $relpath/bin/syncheaders $shadowpath/include/QtMultimediaKit $relpath/src/multimedia
+ $relpath/bin/syncheaders $shadowpath/include/QtMultimediaKit $relpath/src/multimedia/audio
+ $relpath/bin/syncheaders $shadowpath/include/QtMultimediaKit $relpath/src/multimedia/video
+ ;;
+ messaging)
+ $relpath/bin/syncheaders $shadowpath/include/QtMessaging $relpath/src/messaging
+ ;;
+ versit)
+ #versit implies contacts
+ $relpath/bin/syncheaders $shadowpath/include/QtVersit $relpath/src/versit
+ $relpath/bin/syncheaders $shadowpath/include/QtContacts $relpath/src/contacts
+ $relpath/bin/syncheaders $shadowpath/include/QtContacts $relpath/src/contacts/details
+ $relpath/bin/syncheaders $shadowpath/include/QtContacts $relpath/src/contacts/requests
+ $relpath/bin/syncheaders $shadowpath/include/QtContacts $relpath/src/contacts/filters
+ ;;
+ sensors)
+ $relpath/bin/syncheaders $shadowpath/include/QtSensors $relpath/src/sensors
+ ;;
+ *)
+ echo "Cannot generate headers for $module"
+ ;;
+ esac
+done
+
+mv "$CONFIG_IN" config.pri
+mkdir -p "$shadowpath/features"
+if [ "$shadowpath" != "$relpath" ]; then
+ cp -f "$relpath/features/strict_flags.prf" "$shadowpath/features"
+fi
+
+echo "Running qmake..."
+if qmake -makefile $QMKSPEC -recursive "$relpath/qtmobility.pro"; then
+ echo ""
+ echo "configure has finished. You may run make or gmake to build the project now."
+else
+ echo ""
+ echo "configure failed."
+fi
+