diff options
author | Michael Goddard <michael.goddard@nokia.com> | 2011-06-29 13:38:46 +1000 |
---|---|---|
committer | Michael Goddard <michael.goddard@nokia.com> | 2011-06-29 13:38:46 +1000 |
commit | 2a34e88c1e1ced28e75c487cd13402e1c9cf9fa3 (patch) | |
tree | e6c1b770c5c47212792a1f9344fa034ea3e54c44 /configure |
Initial copy of QtMultimediaKit.
Comes from original repo, with SHA1:
2c82d5611655e5967f5c5095af50c0991c4378b2
Diffstat (limited to 'configure')
-rwxr-xr-x | configure | 443 |
1 files changed, 443 insertions, 0 deletions
diff --git a/configure b/configure new file mode 100755 index 000000000..da1033a65 --- /dev/null +++ b/configure @@ -0,0 +1,443 @@ +#!/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$ +## GNU Lesser General Public License Usage +## 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. +## +## GNU General Public License Usage +## Alternatively, this file may be used under the terms of the GNU General +## Public License version 3.0 as published by the Free Software Foundation +## and appearing in the file LICENSE.GPL included in the packaging of this +## file. Please review the following information to ensure the GNU General +## Public License version 3.0 requirements will be met: +## http://www.gnu.org/copyleft/gpl.html. +## +## Other Usage +## Alternatively, this file may be used in accordance with the terms and +## conditions contained in a signed written agreement between you and Nokia. +## +## +## +## +## +## $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" -o "$2" = "meego" ]; 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" +BUILD_UNITTESTS= +BUILD_PUBLIC_UNITTESTS= +BUILD_EXAMPLES= +BUILD_DEMOS= +BUILD_DOCS=yes +BUILD_TOOLS=yes +RELEASEMODE= +BUILD_SILENT= +LINUX_TARGET= +LANGUAGES= +QMAKE_CACHE="$shadowpath/.qmake.cache" +QMAKE_EXEC=qmake +LIB_PATH="lib" +BIN_PATH="bin" +PLUGIN_PATH="plugins" +PLATFORM_CONFIG= +MAC_SDK= +QMKSPEC= +OS="other" +# By default, all modules are requested. Reset this later if -modules is supplied +ORGANIZER_REQUESTED=yes +TEST_USE_SIMULATOR= +NFC_SYMBIAN=auto +MAC_DEPLOY= + +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 "-demosdir <dir> ... Demos will be installed to <dir>" + echo " (default: PREFIX/bin)" + echo "-examplesdir <dir> Examples will be installed to <dir>" + echo " (default PREFIX/bin)" + 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 "-demos ............ Build demo 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 gallery location publishsubscribe" + echo " messaging multimedia systeminfo serviceframework" + echo " sensors versit organizer feedback connectivity" + echo " Modules should be separated by a space and surrounded" + echo " by double quotation. If a selected module depends on other modules" + echo " those modules (and their dependencies) will automatically be enabled." + echo "-maemo6 ........... Build Qt Mobility for Maemo6 (Harmattan)." + echo "-maemo5 ........... Build Qt Mobility for Maemo5 (Fremantle)." + echo "-meego ........... Build Qt Mobility for MeeGo." + echo "-sdk <sdk> ........ Build using Apple provided SDK <path/to/sdk>." + echo " example: -sdk /Developer/SDKs/MacOSX10.6.sdk" + echo "-languages ........ Languages/translations to be installed (e.g.: \"ar de ko\")." + echo " (default is empty)" + echo "-qmake-exec <name> Sets custom binary name for qmake binary" + echo " (default: qmake)" + echo "-no-nfc-symbian Disables the NFC Sybmian backend." +# echo "-test-sim Use simulator backend for testing systeminfo" +# echo "-staticconfig <name>" +# echo " Avoids running of configuration tests. The default" +# echo " values are sourced from features/platformconfig/<name>.pri" + echo "-mac-deploy .... Use this option for deploying QtMobility into Qt for use with macdeployqt tool" + echo " This overrides any -prefix that may be set." + 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 + ;; + -tests) + BUILD_UNITTESTS="yes" + ;; + -public-tests-only) + BUILD_PUBLIC_UNITTESTS="yes" + ;; + -demos) + BUILD_DEMOS="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 + ;; + -meego) + LINUX_TARGET=meego + ;; + -sdk) + MAC_SDK="$2" + shift + ;; + -qmake-exec) + QMAKE_EXEC="$2" + shift + ;; + -staticconfig) + PLATFORM_CONFIG=$2 + shift + ;; + -languages) + LANGUAGES=$2 + shift + ;; + -test-sim) + TEST_USE_SIMULATOR="yes" + ;; + -no-nfc-symbian) + NFC_SYMBIAN=no + ;; + -mac-deploy) + MAC_DEPLOY='yes' + shift + ;; + *) + echo "Unknown option: $1" + usage + ;; + esac + shift +done + +if [ -z "$RELEASEMODE" ]; then + RELEASEMODE="debug" +fi +echo "CONFIG += $RELEASEMODE" > "$CONFIG_IN" + + +if [ -n "$BUILD_SILENT" ]; then + echo "CONFIG += silent" >> "$CONFIG_IN" +fi + +checkostype() +{ + match="Darwin" + if [ `uname -s` = "${match}" ]; then + OS="darwin" + QMKSPEC="-spec macx-g++" + if [[ `gcc --version` =~ .*llvm.* ]]; then + QMKSPEC="-spec macx-llvm" + else + QMKSPEC="-spec macx-g++" + fi + echo "QMAKESPEC = "$QMKSPEC >> "$CONFIG_IN" + fi +} + +checkostype + +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_EXEC $QMKSPEC 2.pro 2>&1` + rm 2.pro + if [ -e "mac.inc" ]; then + echo "exists(mac.inc): include(mac.inc)" >> "$CONFIG_IN" + fi +} + +if [ "$OS" = "darwin" ] ; then + findUniversal +fi + +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_PUBLIC_UNITTESTS" ]; then + echo "build_public_unit_tests = no" >> "$CONFIG_IN" +else + echo "build_public_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_DEMOS" ]; then + echo "build_demos = no" >> "$CONFIG_IN" +else + echo "build_demos = 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 + +if [ -z "$TEST_USE_SIMULATOR" ]; then + echo "test_use_sim = no" >> "$CONFIG_IN" +else + echo "test_use_sim = yes" >> "$CONFIG_IN" +fi + +#process languages +if [ -z "LANGUAGES" ]; then + echo "selected_languages =" >> "$CONFIG_IN" +else + echo "selected_languages = $LANGUAGES" >> "$CONFIG_IN" +fi + + +echo "Configuring Qt MultimediaKit" +echo + +WHICH="$relpath/config.tests/tools/which.test" + +printf "Checking available Qt" +if ! "$WHICH" $QMAKE_EXEC 2>/dev/null 1>&2; then + QMAKE_EXEC_ALTERNATIVE= + if "$WHICH" qmake4 2>/dev/null 1>&2; then + QMAKE_EXEC_ALTERNATIVE=qmake4 + elif "$WHICH" qmake-qt4 2>/dev/null 1>&2; then + QMAKE_EXEC_ALTERNATIVE=qmake-qt4 + fi + + if [ -z "$QMAKE_EXEC_ALTERNATIVE" ]; then + printf " ... Not found\n\n" >&2 + echo >&2 "Cannot find "$QMAKE_EXEC" in your PATH."; + echo >&2 "Aborting." + exit 1 + else + QMAKE_EXEC="$QMAKE_EXEC_ALTERNATIVE" + fi +fi + +#we found a qmake binary +printf " ... " +$QMAKE_EXEC -query QT_VERSION + +# 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." + exit 1 +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_EXEC $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" +} + +if [ -z "$PLATFORM_CONFIG" ]; then +#compile tests + compileTest "Gstreamer Photography" gstreamer-photography + compileTest "Gstreamer AppSrc" gstreamer-appsrc + compileTest "Pulse Audio" pulseaudio +else + echo "Skipping configure tests" + echo "Loading ... features/platformconfig/$PLATFORM_CONFIG.pri" + if [ ! -f "$relpath/features/platformconfig/$PLATFORM_CONFIG.pri" ]; then + echo "Invalid platform configuration $PLATFORM_CONFIG.pri" + exit 1; + else + echo "include(\$\${QT_MOBILITY_SOURCE_TREE}/features/platformconfig/$PLATFORM_CONFIG.pri)" >> "$CONFIG_IN" + fi +fi + +mv "$CONFIG_IN" config.pri + |