diff -r 885c2596c964 -r 5d007b20cfd0 qtmobility/configure --- a/qtmobility/configure Thu Aug 19 10:43:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,548 +0,0 @@ -#!/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 ] [headerdir ] [libdir ]" - echo " [-bindir ] [-tests] [-examples] [-no-docs]" - echo " [-no-tools] [-debug] [-release] [-silent]" - echo " [-modules ]" - echo - echo "Options:" - echo - echo "-prefix ..... This will install everything relative to " - echo " (default prefix: $shadowpath/install)" - echo "-headerdir .. Header files will be installed to " - echo " (default prefix: PREFIX/include)" - echo "-libdir ..... Libraries will be installed to " - echo " (default PREFIX/lib)" - echo "-bindir ..... Executables will be installed to " - echo " (default PREFIX/bin)" - echo "-plugindir .. Plug-ins will be installed to " - 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 ... 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 ..........Build using Apple provided 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 -