Added helpful notice in configure about how to enable the xcb plugin.
[profile/ivi/qtbase.git] / configure
1 #!/bin/sh
2 #############################################################################
3 ##
4 ## Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
5 ## Contact: http://www.qt-project.org/
6 ##
7 ## This file is the build configuration utility of the Qt Toolkit.
8 ##
9 ## $QT_BEGIN_LICENSE:LGPL$
10 ## GNU Lesser General Public License Usage
11 ## This file may be used under the terms of the GNU Lesser General Public
12 ## License version 2.1 as published by the Free Software Foundation and
13 ## appearing in the file LICENSE.LGPL included in the packaging of this
14 ## file. Please review the following information to ensure the GNU Lesser
15 ## General Public License version 2.1 requirements will be met:
16 ## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
17 ##
18 ## In addition, as a special exception, Nokia gives you certain additional
19 ## rights. These rights are described in the Nokia Qt LGPL Exception
20 ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
21 ##
22 ## GNU General Public License Usage
23 ## Alternatively, this file may be used under the terms of the GNU General
24 ## Public License version 3.0 as published by the Free Software Foundation
25 ## and appearing in the file LICENSE.GPL included in the packaging of this
26 ## file. Please review the following information to ensure the GNU General
27 ## Public License version 3.0 requirements will be met:
28 ## http://www.gnu.org/copyleft/gpl.html.
29 ##
30 ## Other Usage
31 ## Alternatively, this file may be used in accordance with the terms and
32 ## conditions contained in a signed written agreement between you and Nokia.
33 ##
34 ##
35 ##
36 ##
37 ##
38 ##
39 ## $QT_END_LICENSE$
40 ##
41 #############################################################################
42
43 #-------------------------------------------------------------------------------
44 # script initialization
45 #-------------------------------------------------------------------------------
46
47 # the name of this script
48 relconf=`basename $0`
49 # the directory of this script is the "source tree"
50 relpath=`dirname $0`
51 relpath=`(cd "$relpath"; /bin/pwd)`
52 # the current directory is the "build tree" or "object tree"
53 outpath=`/bin/pwd`
54
55 #license file location
56 LICENSE_FILE="$QT_LICENSE_FILE"
57 [ -z "$LICENSE_FILE" ] && LICENSE_FILE="$HOME/.qt-license"
58 if [ -f "$LICENSE_FILE" ]; then
59     tr -d '\r' <"$LICENSE_FILE" >"${LICENSE_FILE}.tmp"
60     diff "${LICENSE_FILE}.tmp" "${LICENSE_FILE}" >/dev/null 2>&1 || LICENSE_FILE="${LICENSE_FILE}.tmp"
61 fi
62
63 # later cache the command line in config.status
64 OPT_CMDLINE=`echo $@ | sed "s,-v ,,g; s,-v$,,g"`
65
66 # initialize global variables
67 QMAKE_SWITCHES=
68 QMAKE_VARS=
69 QMAKE_CONFIG=
70 QTCONFIG_CONFIG=
71 QT_CONFIG=
72 SUPPORTED=
73 QMAKE_VARS_FILE=.qmake.vars
74
75 :> "$QMAKE_VARS_FILE"
76
77 #-------------------------------------------------------------------------------
78 # utility functions
79 #-------------------------------------------------------------------------------
80
81 shellEscape()
82 {
83     echo "$@" | sed 's/ /\ /g'
84 }
85
86 # Adds a new qmake variable to the cache
87 # Usage: QMakeVar mode varname contents
88 #   where mode is one of: set, add, del
89 QMakeVar()
90 {
91     case "$1" in
92         set)
93             eq="="
94             ;;
95         add)
96             eq="+="
97             ;;
98         del)
99             eq="-="
100             ;;
101         *)
102             echo >&2 "BUG: wrong command to QMakeVar: $1"
103             ;;
104     esac
105
106     echo "$2" "$eq" "$3" >> "$QMAKE_VARS_FILE"
107 }
108
109 # Helper function for getQMakeConf. It parses include statements in
110 # qmake.conf and prints out the expanded file
111 getQMakeConf1()
112 {
113     while read line; do case "$line" in
114         include*)
115             inc_file=`echo "$line" | sed -n -e "/^include.*(.*)/s/include.*(\(.*\)).*$/\1/p"`
116             current_dir=`dirname "$1"`
117             conf_file="$current_dir/$inc_file"
118             if [ ! -f  "$conf_file" ]; then
119                 echo "WARNING: Unable to find file $conf_file" >&2
120                 continue
121             fi
122             getQMakeConf1 "$conf_file"
123         ;;
124         *)
125             echo "$line"
126         ;;
127     esac; done < "$1"
128 }
129
130 getQMakeConf2()
131 {
132     $AWK '
133 BEGIN {
134     values["LITERAL_WHITESPACE"] = " "
135     values["LITERAL_DOLLAR"] = "$"
136 }
137 /^[_A-Z0-9.]+[ \t]*\+?=/ {
138     valStart = index($0, "=") + 1
139
140     append = 0
141     if (substr($0, valStart - 2, 1) == "+") {
142         append = 1
143     }
144
145     variable = substr($0, 0, valStart - 2 - append)
146     value = substr($0, valStart)
147     gsub("[ \t]+", "", variable)
148     gsub("^[ \t]+", "", value)
149     gsub("[ \t]+$", "", value)
150
151     ovalue = ""
152     while (match(value, /\$\$(\{[_A-Z0-9.]+\}|[_A-Z0-9.]+)/)) {
153         ovalue = ovalue substr(value, 1, RSTART - 1)
154         var = substr(value, RSTART + 2, RLENGTH - 2)
155         value = substr(value, RSTART + RLENGTH)
156         if (var ~ /^{/) {
157             var = substr(var, 2, length(var) - 2)
158         }
159         ovalue = ovalue values[var]
160     }
161     ovalue = ovalue value
162
163     combinedValue = values[variable]
164     if (append == 1 && length(combinedValue) > 0) {
165         combinedValue = combinedValue " " ovalue
166     } else {
167         combinedValue = ovalue
168     }
169     values[variable] = combinedValue
170 }
171 END {
172     for (var in values) {
173         print var "=" values[var]
174     }
175 }
176 '
177 }
178
179 getQMakeConf3()
180 {
181     echo "$2" | $AWK "/^($1)=/ { print substr(\$0, index(\$0, \"=\") + 1) }"
182 }
183
184 # relies on $QMAKESPEC being set correctly. parses include statements in
185 # qmake.conf and prints out the expanded file
186 getQMakeConf()
187 {
188     if [ -z "$specvals" ]; then
189         specvals=`getQMakeConf1 "$QMAKESPEC/qmake.conf" | getQMakeConf2`
190     fi
191     getQMakeConf3 "$1" "$specvals"
192 }
193
194 getXQMakeConf()
195 {
196     if [ -z "$xspecvals" ]; then
197         xspecvals=`getQMakeConf1 "$XQMAKESPEC/qmake.conf" | getQMakeConf2`
198     fi
199     getQMakeConf3 "$1" "$xspecvals"
200 }
201
202 # relies on $TEST_COMPILER being set correctly
203 compilerSupportsFlag()
204 {
205     cat >conftest.cpp <<EOF
206 int main() { return 0; }
207 EOF
208     "$TEST_COMPILER" "$@" -o conftest.o conftest.cpp
209     ret=$?
210     rm -f conftest.cpp conftest.o
211     return $ret
212 }
213
214 # relies on $TEST_COMPILER being set correctly
215 linkerSupportsFlag()
216 {
217     lflags=-Wl
218     for flag
219     do
220         safe_flag=`shellEscape "$flag"`
221         lflags=$lflags,$safe_flag
222     done
223     compilerSupportsFlag "$lflags" >/dev/null 2>&1
224 }
225
226 #-------------------------------------------------------------------------------
227 # operating system detection
228 #-------------------------------------------------------------------------------
229
230 # need that throughout the script
231 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
232 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
233 UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
234 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
235
236 # detect the "echo without newline" style. usage: echo $ECHO_N "<string>$ECHO_C"
237 if echo '\c' | grep '\c' >/dev/null; then
238     ECHO_N=-n
239 else
240     ECHO_C='\c'
241 fi
242
243 #-------------------------------------------------------------------------------
244 # window system detection
245 #-------------------------------------------------------------------------------
246
247 PLATFORM_X11=no
248 PLATFORM_QPA=yes
249 BUILD_ON_MAC=no
250 PLATFORM_MAC=no
251 if [ -d /System/Library/Frameworks/Carbon.framework ]; then
252     BUILD_ON_MAC=yes
253     PLATFORM_MAC=maybe
254 fi
255
256 #-----------------------------------------------------------------------------
257 # Qt version detection
258 #-----------------------------------------------------------------------------
259 QT_VERSION=`grep '^# *define *QT_VERSION_STR' "$relpath"/src/corelib/global/qglobal.h`
260 QT_MAJOR_VERSION=
261 QT_MINOR_VERSION=0
262 QT_PATCH_VERSION=0
263 if [ -n "$QT_VERSION" ]; then
264    QT_VERSION=`echo $QT_VERSION | sed 's,^# *define *QT_VERSION_STR *"*\([^ ]*\)"$,\1,'`
265    MAJOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
266    if [ -n "$MAJOR" ]; then
267      MINOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
268       PATCH=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
269       QT_MAJOR_VERSION="$MAJOR"
270       [ -z "$MINOR" ] || QT_MINOR_VERSION="$MINOR"
271       [ -z "$PATCH" ] || QT_PATCH_VERSION="$PATCH"
272    fi
273 fi
274 if [ -z "$QT_MAJOR_VERSION" ]; then
275    echo "Cannot process version from qglobal.h: $QT_VERSION"
276    echo "Cannot proceed."
277    exit 1
278 fi
279
280 QT_PACKAGEDATE=`grep '^# *define *QT_PACKAGEDATE_STR' "$relpath"/src/corelib/global/qglobal.h | sed -e 's,^# *define *QT_PACKAGEDATE_STR *"\([^ ]*\)"$,\1,' -e s,-,,g`
281 if [ -z "$QT_PACKAGEDATE" ]; then
282    echo "Unable to determine package date from qglobal.h: '$QT_PACKAGEDATE'"
283    echo "Cannot proceed"
284    exit 1
285 fi
286
287 #-------------------------------------------------------------------------------
288 # check the license
289 #-------------------------------------------------------------------------------
290 COMMERCIAL_USER=ask
291 CFG_DEV=no
292 CFG_RTOS_ENABLED=yes
293 EditionString=Commercial
294
295 earlyArgParse()
296 {
297     # parse the arguments, setting things to "yes" or "no"
298     while [ "$#" -gt 0 ]; do
299         CURRENT_OPT="$1"
300         UNKNOWN_ARG=no
301         case "$1" in
302         #Autoconf style options
303         --enable-*)
304             VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
305             VAL=yes
306             ;;
307         --disable-*)
308             VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
309             VAL=no
310             ;;
311         --*=*)
312             VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
313             VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
314             ;;
315         --no-*)
316             VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
317             VAL=no
318             ;;
319         -embedded-lite|-qpa)
320             VAR=qpa
321             # this option may or may not be followed by an argument
322             if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
323                 VAL=auto
324             else
325                 shift;
326                 VAL=$1
327             fi
328             ;;
329         -h|help|--help|-help)
330             if [ "$VAL" = "yes" ]; then
331                 OPT_HELP="$VAL"
332                 COMMERCIAL_USER="no" #doesn't matter we will display the help
333             else
334                 UNKNOWN_OPT=yes
335                 COMMERCIAL_USER="no" #doesn't matter we will display the help
336             fi
337             ;;
338         --*)
339             VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
340             VAL=yes
341             ;;
342         -*)
343             VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
344             VAL="unknown"
345             ;;
346         *)
347             UNKNOWN_ARG=yes
348             ;;
349         esac
350         if [ "$UNKNOWN_ARG" = "yes" ]; then
351             shift
352             continue
353         fi
354         shift
355
356         UNKNOWN_OPT=no
357         case "$VAR" in
358         qpa)
359             if [ "$PLATFORM_QPA" != "no" ]; then
360                 if [ "$PLATFORM_QPA" = "maybe" ]; then
361                     PLATFORM_X11=no
362                     PLATFORM_MAC=no
363                     PLATFORM_QPA=yes
364                 fi
365             else
366                 echo "No license exists to enable Qt QPA. Disabling."
367             fi
368             ;;
369         developer-build)
370             CFG_DEV="yes"
371             ;;
372         commercial)
373             COMMERCIAL_USER="yes"
374             ;;
375         opensource)
376             COMMERCIAL_USER="no"
377             ;;
378         *)
379             UNKNOWN_OPT=yes
380             ;;
381         esac
382     done
383 }
384
385 earlyArgParse "$@"
386
387 if [ "$COMMERCIAL_USER" = "ask" ]; then
388     while true; do
389         echo "Which edition of Qt do you want to use ?"
390         echo
391         echo "Type 'c' if you want to use the Commercial Edition."
392         echo "Type 'o' if you want to use the Open Source Edition."
393         echo
394         read commercial
395         echo
396         if [ "$commercial" = "c" ]; then
397             COMMERCIAL_USER="yes"
398             break
399         elif [ "$commercial" = "o" ]; then
400             COMMERCIAL_USER="no"
401             break
402         fi
403     done
404 fi
405
406 if [ -f "$relpath"/LICENSE.PREVIEW.COMMERCIAL ] && [ $COMMERCIAL_USER = "yes" ]; then
407     # Commercial preview release
408     [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
409     Licensee="Preview"
410     Edition="Preview"
411     QT_EDITION="QT_EDITION_DESKTOP"
412     LicenseType="Technology Preview"
413 elif [ $COMMERCIAL_USER = "yes" ]; then
414     # one of commercial editions
415     [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
416     [ "$PLATFORM_QPA" = "maybe" ] && PLATFORM_QPA=no
417
418     # read in the license file
419     if [ -f "$LICENSE_FILE" ]; then
420         . "$LICENSE_FILE" >/dev/null 2>&1
421         if [ -z "$LicenseKeyExt" ]; then
422             echo
423             echo "You are using an old license file."
424             echo
425             echo "Please install the license file supplied by Nokia,"
426             echo "or install the Qt Open Source Edition if you intend to"
427             echo "develop free software."
428             exit 1
429         fi
430         if [ -z "$Licensee" ]; then
431             echo
432             echo "Invalid license key. Please check the license key."
433             exit 1
434         fi
435     else
436         if [ -z "$LicenseKeyExt" ]; then
437             echo
438             echo $ECHO_N "Please enter your license key: $ECHO_C"
439             read LicenseKeyExt
440             Licensee="Unknown user"
441         fi
442     fi
443
444     # Key verification
445     echo "$LicenseKeyExt" | grep ".....*-....*-....*-....*-.....*-.....*-...." >/dev/null 2>&1 \
446         && LicenseValid="yes" \
447         || LicenseValid="no"
448     if [ "$LicenseValid" != "yes" ]; then
449         echo
450         echo "Invalid license key. Please check the license key."
451         exit 1
452     fi
453     ProductCode=`echo $LicenseKeyExt | cut -f 1 -d - | cut -b 1`
454     PlatformCode=`echo $LicenseKeyExt | cut -f 2 -d -`
455     LicenseTypeCode=`echo $LicenseKeyExt | cut -f 3 -d -`
456     LicenseFeatureCode=`echo $LicenseKeyExt | cut -f 4 -d - | cut -b 1`
457
458     # determine which edition we are licensed to use
459     case "$LicenseTypeCode" in
460     F4M)
461         LicenseType="Commercial"
462         case $ProductCode in
463         F)
464             Edition="Universal"
465             QT_EDITION="QT_EDITION_UNIVERSAL"
466             ;;
467         B)
468             Edition="FullFramework"
469             EditionString="Full Framework"
470             QT_EDITION="QT_EDITION_DESKTOP"
471             ;;
472         L)
473             Edition="GUIFramework"
474             EditionString="GUI Framework"
475             QT_EDITION="QT_EDITION_DESKTOPLIGHT"
476             ;;
477         esac
478         ;;
479     Z4M|R4M|Q4M)
480         LicenseType="Evaluation"
481         QMakeVar add DEFINES QT_EVAL
482         case $ProductCode in
483          B)
484             Edition="Evaluation"
485             QT_EDITION="QT_EDITION_EVALUATION"
486             ;;
487         esac
488         ;;
489     esac
490     if [ -z "$LicenseType" -o -z "$Edition" -o -z "$QT_EDITION" ]; then
491         echo
492         echo "Invalid license key. Please check the license key."
493         exit 1
494     fi
495
496     # verify that we are licensed to use Qt on this platform
497     LICENSE_EXTENSION=
498     case "$PlatformCode" in
499         *L)
500             CFG_RTOS_ENABLED=yes
501             PlatformCode=`echo "$PlatformCode" | sed 'h;y/8NPQRTZ/UCWX9M7/;x;G;s/\(.\)....\(.\)./\1\2/'`
502             ;;
503         *)
504             CFG_RTOS_ENABLED=no
505             PlatformCode=`echo "$PlatformCode" | sed 's/.$//'`
506             ;;
507     esac
508     ### EMBEDDED_QPA logic missing ###
509     case "$PlatformCode,$PLATFORM_MAC,$PLATFORM_QWS" in
510         X9,* | XC,* | XU,* | XW,* | XM,*)
511             # Qt All-OS
512             LICENSE_EXTENSION="-ALLOS"
513             ;;
514         8M,* | KM,* | S9,* | SC,* | SM,* | SU,* | SW,* | X9,* | XC,* | XU,* | XW,*)
515             # Qt for Embedded Linux
516             LICENSE_EXTENSION="-EMBEDDED"
517             ;;
518         6M,*,no | N7,*,no | N9,*,no | NX,*,no)
519             # Embedded no-deploy
520             LICENSE_EXTENSION="-EMBEDDED"
521             ;;
522         FM,*,no | LM,yes,* | ZM,no,no)
523             # Desktop
524             LICENSE_EXTENSION="-DESKTOP"
525             ;;
526         *)
527             Platform=Linux/X11
528             [ "$PLATFORM_MAC" = "yes" ] && Platform='Mac OS X'
529             echo
530             echo "You are not licensed for the $Platform platform."
531             echo
532             echo "Please contact qt-info@nokia.com to upgrade your license to"
533             echo "include the $Platform platform, or install the Qt Open Source Edition"
534             echo "if you intend to develop free software."
535             exit 1
536             ;;
537     esac
538
539     if test -r "$relpath/.LICENSE"; then
540         # Generic, non-final license
541         LICENSE_EXTENSION=""
542         line=`sed 'y/a-z/A-Z/;q' "$relpath"/.LICENSE`
543         case "$line" in
544             *BETA*)
545                 Edition=Beta
546                 ;;
547             *TECHNOLOGY?PREVIEW*)
548                 Edition=Preview
549                 ;;
550             *EVALUATION*)
551                 Edition=Evaluation
552                 ;;
553             *)
554                 echo >&2 "Invalid license files; cannot continue"
555                 exit 1
556                 ;;
557         esac
558         Licensee="$Edition"
559         EditionString="$Edition"
560         QT_EDITION="QT_EDITION_DESKTOP"
561     fi
562
563     case "$LicenseFeatureCode" in
564     B|G|L|Y)
565         # US
566         case "$LicenseType" in
567         Commercial)
568             cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}-US" "$outpath/LICENSE"
569             ;;
570         Evaluation)
571             cp -f "$relpath/.LICENSE-EVALUATION-US" "$outpath/LICENSE"
572             ;;
573         esac
574         ;;
575     2|4|5|F)
576         # non-US
577         case "$LicenseType" in
578         Commercial)
579             cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}" "$outpath/LICENSE"
580             ;;
581         Evaluation)
582             cp -f "$relpath/.LICENSE-EVALUATION" "$outpath/LICENSE"
583             ;;
584         esac
585         ;;
586     *)
587         echo
588         echo "Invalid license key. Please check the license key."
589         exit 1
590         ;;
591     esac
592     case "$LicenseFeatureCode" in
593         4|B|F|Y)
594             CFG_RTOS_ENABLED=yes
595             ;;
596         2|5|G|L)
597             CFG_RTOS_ENABLED=no
598             ;;
599     esac
600     if [ '!' -f "$outpath/LICENSE" ]; then
601         echo "The LICENSE, LICENSE.GPL3 LICENSE.LGPL file shipped with"
602         echo "this software has disappeared."
603         echo
604         echo "Sorry, you are not licensed to use this software."
605         echo "Try re-installing."
606         echo
607         exit 1
608     fi
609 elif [ $COMMERCIAL_USER = "no" ]; then
610     # Open Source edition - may only be used under the terms of the GPL or LGPL.
611     [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
612     Licensee="Open Source"
613     Edition="OpenSource"
614     EditionString="Open Source"
615     QT_EDITION="QT_EDITION_OPENSOURCE"
616 fi
617
618 #-------------------------------------------------------------------------------
619 # initalize variables
620 #-------------------------------------------------------------------------------
621
622 SYSTEM_VARIABLES="RANLIB STRIP OBJDUMP LD CC CXX CFLAGS CXXFLAGS LDFLAGS"
623 for varname in $SYSTEM_VARIABLES; do
624     qmakevarname="${varname}"
625     # use LDFLAGS for autoconf compat, but qmake uses QMAKE_LFLAGS
626     if [ "${varname}" = "LDFLAGS" ]; then
627         qmakevarname="LFLAGS"
628     elif [ "${varname}" = "LD" ]; then
629         qmakevarname="LINK"
630     fi
631     cmd=`echo \
632 'if [ -n "\$'${varname}'" ]; then
633     QMakeVar set QMAKE_'${qmakevarname}' "\$'${varname}'"
634 fi'`
635     eval "$cmd"
636 done
637 # Use CC/CXX to run config.tests
638 mkdir -p "$outpath/config.tests"
639 rm -f "$outpath/config.tests/.qmake.cache"
640 cp "$QMAKE_VARS_FILE" "$outpath/config.tests/.qmake.cache"
641
642 QMakeVar add styles "cde mac motif plastique cleanlooks windows"
643 QMakeVar add decorations "default windows styled"
644 QMakeVar add mouse-drivers "pc"
645 if [ "$UNAME_SYSTEM" = "Linux" ] ; then
646     QMakeVar add gfx-drivers "linuxfb"
647     QMakeVar add mouse-drivers "linuxtp"
648 fi
649 QMakeVar add kbd-drivers "tty"
650
651 if [ "$CFG_DEV" = "yes" ]; then
652     QMakeVar add kbd-drivers "um"
653 fi
654
655 # QTDIR may be set and point to an old or system-wide Qt installation
656 unset QTDIR
657
658 # the minimum version of libdbus-1 that we require:
659 MIN_DBUS_1_VERSION=0.93
660
661 # initalize internal variables
662 CFG_CONFIGURE_EXIT_ON_ERROR=yes
663 CFG_PROFILE=no
664 CFG_EXCEPTIONS=unspecified
665 CFG_GUI=auto # (yes|no|auto)
666 CFG_INCREMENTAL=auto
667 CFG_QCONFIG=full
668 CFG_DEBUG=auto
669 CFG_MYSQL_CONFIG=
670 CFG_DEBUG_RELEASE=no
671 CFG_SHARED=yes
672 CFG_SM=auto
673 CFG_XSHAPE=auto
674 CFG_XSYNC=auto
675 CFG_XVIDEO=auto
676 CFG_XINERAMA=runtime
677 CFG_XFIXES=runtime
678 CFG_ZLIB=auto
679 CFG_SQLITE=qt
680 CFG_GIF=auto
681 CFG_PNG=yes
682 CFG_LIBPNG=auto
683 CFG_JPEG=auto
684 CFG_LIBJPEG=auto
685 CFG_XCURSOR=runtime
686 CFG_XRANDR=runtime
687 CFG_XRENDER=auto
688 CFG_MITSHM=auto
689 CFG_OPENGL=auto
690 CFG_OPENVG=auto
691 CFG_OPENVG_LC_INCLUDES=no
692 CFG_OPENVG_SHIVA=auto
693 CFG_OPENVG_ON_OPENGL=auto
694 CFG_EGL=no
695 CFG_EGL_GLES_INCLUDES=no
696 CFG_SSE=auto
697 CFG_FONTCONFIG=auto
698 CFG_LIBFREETYPE=auto
699 CFG_SQL_AVAILABLE=
700 QT_DEFAULT_BUILD_PARTS="libs examples tests"
701 CFG_BUILD_PARTS=""
702 CFG_NOBUILD_PARTS=""
703 CFG_RELEASE_QMAKE=no
704 CFG_AUDIO_BACKEND=auto
705 CFG_V8SNAPSHOT=auto
706 CFG_DECLARATIVE_DEBUG=yes
707 CFG_JAVASCRIPTCORE_JIT=auto
708
709 CFG_GFX_AVAILABLE="linuxfb transformed qvfb vnc multiscreen directfb"
710 CFG_GFX_ON="linuxfb multiscreen"
711 CFG_GFX_PLUGIN_AVAILABLE=
712 CFG_GFX_PLUGIN=
713 CFG_GFX_OFF=
714 CFG_KBD_AVAILABLE="tty linuxinput qvfb"
715 CFG_KBD_ON="tty"    #default, see QMakeVar above
716 CFG_MOUSE_AVAILABLE="pc linuxtp linuxinput tslib qvfb"
717 CFG_MOUSE_ON="pc linuxtp"   #default, see QMakeVar above
718
719 CFG_ARCH=
720 CFG_HOST_ARCH=
721 CFG_KBD_PLUGIN_AVAILABLE=
722 CFG_KBD_PLUGIN=
723 CFG_KBD_OFF=
724 CFG_MOUSE_PLUGIN_AVAILABLE=
725 CFG_MOUSE_PLUGIN=
726 CFG_MOUSE_OFF=
727 CFG_USE_GNUMAKE=no
728 CFG_IM=yes
729 CFG_DECORATION_AVAILABLE="styled windows default"
730 CFG_DECORATION_ON="${CFG_DECORATION_AVAILABLE}" # all on by default
731 CFG_DECORATION_PLUGIN_AVAILABLE=
732 CFG_DECORATION_PLUGIN=
733 CFG_XINPUT2=auto
734 CFG_XINPUT=runtime
735 CFG_XKB=auto
736 CFG_XCB=auto
737 CFG_XCB_LIMITED=yes
738 CFG_WAYLAND=auto
739 CFG_LIBUDEV=auto
740 CFG_EVDEV=auto
741 CFG_NIS=auto
742 CFG_CUPS=auto
743 CFG_ICONV=auto
744 CFG_DBUS=auto
745 CFG_GLIB=auto
746 CFG_GSTREAMER=auto
747 CFG_QGTKSTYLE=auto
748 CFG_LARGEFILE=auto
749 CFG_OPENSSL=auto
750 CFG_STL=auto
751 CFG_PRECOMPILE=auto
752 CFG_SEPARATE_DEBUG_INFO=no
753 CFG_SEPARATE_DEBUG_INFO_NOCOPY=no
754 CFG_REDUCE_EXPORTS=auto
755 CFG_MMX=auto
756 CFG_3DNOW=auto
757 CFG_SSE=auto
758 CFG_SSE2=auto
759 CFG_SSE3=auto
760 CFG_SSSE3=auto
761 CFG_SSE4_1=auto
762 CFG_SSE4_2=auto
763 CFG_AVX=auto
764 CFG_REDUCE_RELOCATIONS=auto
765 CFG_NAS=no
766 CFG_ACCESSIBILITY=auto
767 CFG_ENDIAN=auto
768 CFG_HOST_ENDIAN=auto
769 CFG_DOUBLEFORMAT=auto
770 CFG_ARMFPA=auto
771 CFG_IWMMXT=no
772 CFG_NEON=auto
773 CFG_CLOCK_GETTIME=auto
774 CFG_CLOCK_MONOTONIC=auto
775 CFG_MREMAP=auto
776 CFG_GETADDRINFO=auto
777 CFG_IPV6IFNAME=auto
778 CFG_GETIFADDRS=auto
779 CFG_INOTIFY=auto
780 CFG_RPATH=yes
781 CFG_FRAMEWORK=auto
782 CFG_MAC_ARCHS=
783 MAC_CONFIG_TEST_COMMANDLINE=  # used to make the configure tests run with the correct arch's and SDK settings
784 CFG_MAC_DWARF2=auto
785 CFG_MAC_HARFBUZZ=no
786 CFG_SXE=no
787 CFG_PREFIX_INSTALL=yes
788 CFG_SDK=
789 D_FLAGS=
790 I_FLAGS=
791 L_FLAGS=
792 RPATH_FLAGS=
793 l_FLAGS=
794 W_FLAGS=
795 QCONFIG_FLAGS=
796 XPLATFORM=              # This seems to be the QMAKESPEC, like "linux-g++"
797 XPLATFORM_MINGW=no      # Whether target platform is MinGW (win32-g++*)
798 XPLATFORM_MAEMO=no
799 PLATFORM=$QMAKESPEC
800 QT_CROSS_COMPILE=no
801 OPT_CONFIRM_LICENSE=no
802 OPT_SHADOW=maybe
803 OPT_FAST=auto
804 OPT_VERBOSE=no
805 OPT_HELP=
806 CFG_SILENT=no
807 CFG_ALSA=auto
808 CFG_PULSEAUDIO=auto
809 CFG_COREWLAN=auto
810 CFG_NOPROCESS=no
811 CFG_ICU=auto
812 CFG_FORCE_ASSERTS=no
813 CFG_PCRE=auto
814
815 # initalize variables used for installation
816 QT_INSTALL_PREFIX=
817 QT_INSTALL_DOCS=
818 QT_INSTALL_HEADERS=
819 QT_INSTALL_LIBS=
820 QT_INSTALL_BINS=
821 QT_INSTALL_PLUGINS=
822 QT_INSTALL_IMPORTS=
823 QT_INSTALL_DATA=
824 QT_INSTALL_TRANSLATIONS=
825 QT_INSTALL_SETTINGS=
826 QT_INSTALL_EXAMPLES=
827 QT_INSTALL_TESTS=
828 QT_HOST_PREFIX=
829
830 #flags for SQL drivers
831 QT_CFLAGS_PSQL=
832 QT_LFLAGS_PSQL=
833 QT_CFLAGS_MYSQL=
834 QT_LFLAGS_MYSQL=
835 QT_LFLAGS_MYSQL_R=
836 QT_CFLAGS_SQLITE=
837 QT_LFLAGS_SQLITE=
838 QT_LFLAGS_ODBC="-lodbc"
839 QT_LFLAGS_TDS=
840
841 # flags for libdbus-1
842 QT_CFLAGS_DBUS=
843 QT_LIBS_DBUS=
844
845 # flags for Glib (X11 only)
846 QT_CFLAGS_GLIB=
847 QT_LIBS_GLIB=
848
849 # flags for GStreamer (X11 only)
850 QT_CFLAGS_GSTREAMER=
851 QT_LIBS_GSTREAMER=
852
853 #-------------------------------------------------------------------------------
854 # check SQL drivers, mouse drivers and decorations available in this package
855 #-------------------------------------------------------------------------------
856
857 # opensource version removes some drivers, so force them to be off
858 CFG_SQL_tds=no
859 CFG_SQL_oci=no
860 CFG_SQL_db2=no
861
862 CFG_SQL_AVAILABLE=
863 if [ -d "$relpath/src/plugins/sqldrivers" ]; then
864   for a in "$relpath/src/plugins/sqldrivers/"*; do
865      if [ -d "$a" ]; then
866          base_a=`basename "$a"`
867          CFG_SQL_AVAILABLE="${CFG_SQL_AVAILABLE} ${base_a}"
868          eval "CFG_SQL_${base_a}=auto"
869      fi
870   done
871 fi
872
873 CFG_DECORATION_PLUGIN_AVAILABLE=
874 if [ -d "$relpath/src/plugins/decorations" ]; then
875   for a in "$relpath/src/plugins/decorations/"*; do
876      if [ -d "$a" ]; then
877          base_a=`basename "$a"`
878          CFG_DECORATION_PLUGIN_AVAILABLE="${CFG_DECORATION_PLUGIN_AVAILABLE} ${base_a}"
879      fi
880   done
881 fi
882
883 CFG_KBD_PLUGIN_AVAILABLE=
884 if [ -d "$relpath/src/plugins/kbddrivers" ]; then
885   for a in "$relpath/src/plugins/kbddrivers/"*; do
886      if [ -d "$a" ]; then
887          base_a=`basename "$a"`
888          CFG_KBD_PLUGIN_AVAILABLE="${CFG_KBD_PLUGIN_AVAILABLE} ${base_a}"
889      fi
890   done
891 fi
892
893 CFG_MOUSE_PLUGIN_AVAILABLE=
894 if [ -d "$relpath/src/plugins/mousedrivers" ]; then
895   for a in "$relpath/src/plugins/mousedrivers/"*; do
896      if [ -d "$a" ]; then
897          base_a=`basename "$a"`
898          CFG_MOUSE_PLUGIN_AVAILABLE="${CFG_MOUSE_PLUGIN_AVAILABLE} ${base_a}"
899      fi
900   done
901 fi
902
903 CFG_GFX_PLUGIN_AVAILABLE=
904 if [ -d "$relpath/src/plugins/gfxdrivers" ]; then
905   for a in "$relpath/src/plugins/gfxdrivers/"*; do
906      if [ -d "$a" ]; then
907          base_a=`basename "$a"`
908          CFG_GFX_PLUGIN_AVAILABLE="${CFG_GFX_PLUGIN_AVAILABLE} ${base_a}"
909      fi
910   done
911   CFG_GFX_OFF="$CFG_GFX_AVAILABLE" # assume all off
912 fi
913
914 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE=
915 if [ -d "$relpath/src/plugins/imageformats" ]; then
916     for a in "$relpath/src/plugins/imageformats/"*; do
917         if [ -d "$a" ]; then
918             base_a=`basename "$a"`
919             CFG_IMAGEFORMAT_PLUGIN_AVAILABLE="${CFG_IMAGEFORMAT_PLUGIN_AVAILABLE} ${base_a}"
920         fi
921     done
922 fi
923
924 #-------------------------------------------------------------------------------
925 # parse command line arguments
926 #-------------------------------------------------------------------------------
927
928 # parse the arguments, setting things to "yes" or "no"
929 while [ "$#" -gt 0 ]; do
930     CURRENT_OPT="$1"
931     UNKNOWN_ARG=no
932     case "$1" in
933     #Autoconf style options
934     --enable-*)
935         VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
936         VAL=yes
937         ;;
938     --disable-*)
939         VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
940         VAL=no
941         ;;
942     --*=*)
943         VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
944         VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
945         ;;
946     --no-*)
947         VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
948         VAL=no
949         ;;
950     --*)
951         VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
952         VAL=yes
953         ;;
954     #Qt plugin options
955     -no-*-*|-plugin-*-*|-qt-*-*)
956         VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
957         VAL=`echo $1 | sed "s,^-\([^-]*\).*,\1,"`
958         ;;
959     #Qt style no options
960     -no-*)
961         VAR=`echo $1 | sed "s,^-no-\(.*\),\1,"`
962         VAL=no
963         ;;
964     #Qt style yes options
965     -incremental|-qvfb|-profile|-shared|-static|-sm|-xinerama|-xshape|-xsync|-xinput|-xinput2|-egl|-reduce-exports|-pch|-separate-debug-info|-stl|-freetype|-xcursor|-xfixes|-xrandr|-xrender|-mitshm|-fontconfig|-xkb|-xcb|-wayland|-nis|-dbus|-dbus-linked|-glib|-gstreamer|-gtkstyle|-cups|-iconv|-largefile|-h|-help|-v|-verbose|-debug|-release|-fast|-accessibility|-confirm-license|-gnumake|-framework|-debug-and-release|-exceptions|-harfbuzz|-prefix-install|-silent|-armfpa|-optimized-qmake|-dwarf2|-reduce-relocations|-sse|-openssl|-openssl-linked|-phonon-backend|-audio-backend|-declarative-debug|-javascript-jit|-rpath|-force-pkg-config|-icu|-force-asserts|-testcocoon)
966         VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
967         VAL=yes
968         ;;
969     #Qt style options that pass an argument
970     -qconfig)
971         if [ "$PLATFORM_QPA" != "yes" ]; then
972             echo
973             echo "WARNING: -qconfig is only tested and supported on Qt for Embedded Linux."
974             echo
975         fi
976         CFG_QCONFIG="$VAL"
977         VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
978         shift
979         VAL=$1
980         ;;
981     -prefix|-docdir|-headerdir|-plugindir|-importdir|-datadir|-libdir|-bindir|-translationdir|-sysconfdir|-examplesdir|-testsdir|-depths|-make|-nomake|-platform|-xplatform|-sdk|-arch|-host-arch|-mysql_config|-sysroot)
982         VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
983         shift
984         VAL="$1"
985         ;;
986     #Qt style complex options in one command
987     -enable-*|-disable-*)
988         VAR=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
989         VAL=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
990         ;;
991     #Qt Builtin/System style options
992     -no-*|-system-*|-qt-*)
993         VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
994         VAL=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
995         ;;
996     #Options that cannot be generalized
997     -k|-continue)
998         VAR=fatal_error
999         VAL=no
1000         ;;
1001     -embedded-lite|-qpa)
1002         VAR=qpa
1003         # this option may or may not be followed by an argument
1004         if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1005             VAL=auto
1006         else
1007             shift;
1008             VAL=$1
1009         fi
1010         ;;
1011     -opengl)
1012         VAR=opengl
1013         # this option may or may not be followed by an argument
1014         if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1015             VAL=yes
1016         else
1017             shift;
1018             VAL=$1
1019         fi
1020         ;;
1021     -openvg)
1022         VAR=openvg
1023         # this option may or may not be followed by an argument
1024         if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1025             VAL=yes
1026         else
1027             shift;
1028             VAL=$1
1029         fi
1030         ;;
1031     -hostprefix)
1032         VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1033         # this option may or may not be followed by an argument
1034         if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1035             VAL=$outpath
1036         else
1037             shift;
1038             VAL=$1
1039         fi
1040         ;;
1041     -host-*-endian)
1042         VAR=host_endian
1043         VAL=`echo $1 | sed "s,^-.*-\(.*\)-.*,\1,"`
1044         ;;
1045     -*-endian)
1046         VAR=endian
1047         VAL=`echo $1 | sed "s,^-\(.*\)-.*,\1,"`
1048         ;;
1049     -qtnamespace)
1050         VAR="qtnamespace"
1051         shift
1052         VAL="$1"
1053         ;;
1054     -qtlibinfix)
1055         VAR="qtlibinfix"
1056         shift
1057         VAL="$1"
1058         ;;
1059     -D?*|-D)
1060         VAR="add_define"
1061         if [ "$1" = "-D" ]; then
1062             shift
1063             VAL="$1"
1064         else
1065             VAL=`echo $1 | sed 's,-D,,'`
1066         fi
1067         ;;
1068     -fpu)
1069         VAR="fpu"
1070         # this option may or may not be followed by an argument
1071         if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1072             VAL=no
1073         else
1074             shift
1075             VAL=$1
1076         fi
1077         ;;
1078     -I?*|-I)
1079         VAR="add_ipath"
1080         if [ "$1" = "-I" ]; then
1081             shift
1082             VAL="$1"
1083         else
1084             VAL=`echo $1 | sed 's,-I,,'`
1085         fi
1086         ;;
1087     -L?*|-L)
1088         VAR="add_lpath"
1089         if [ "$1" = "-L" ]; then
1090             shift
1091             VAL="$1"
1092         else
1093             VAL=`echo $1 | sed 's,-L,,'`
1094         fi
1095         ;;
1096     -R?*|-R)
1097         VAR="add_rpath"
1098         if [ "$1" = "-R" ]; then
1099             shift
1100             VAL="$1"
1101         else
1102             VAL=`echo $1 | sed 's,-R,,'`
1103         fi
1104         ;;
1105     -l?*)
1106         VAR="add_link"
1107         VAL=`echo $1 | sed 's,-l,,'`
1108         ;;
1109     -F?*|-F)
1110         VAR="add_fpath"
1111         if [ "$1" = "-F" ]; then
1112             shift
1113             VAL="$1"
1114         else
1115             VAL=`echo $1 | sed 's,-F,,'`
1116         fi
1117         ;;
1118     -fw?*|-fw)
1119         VAR="add_framework"
1120         if [ "$1" = "-fw" ]; then
1121             shift
1122             VAL="$1"
1123         else
1124             VAL=`echo $1 | sed 's,-fw,,'`
1125         fi
1126         ;;
1127     -W*)
1128         VAR="add_warn"
1129         VAL="$1"
1130         ;;
1131     -*)
1132         VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1133         VAL="unknown"
1134         ;;
1135     *)
1136         UNKNOWN_ARG=yes
1137         ;;
1138     esac
1139     if [ "$UNKNOWN_ARG" = "yes" ]; then
1140         echo "$1: unknown argument"
1141         OPT_HELP=yes
1142         ERROR=yes
1143         shift
1144         continue
1145      fi
1146     shift
1147
1148     UNKNOWN_OPT=no
1149     case "$VAR" in
1150     accessibility)
1151         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1152             CFG_ACCESSIBILITY="$VAL"
1153         else
1154             UNKNOWN_OPT=yes
1155         fi
1156         ;;
1157     license)
1158         LICENSE_FILE="$VAL"
1159         ;;
1160     gnumake)
1161         CFG_USE_GNUMAKE="$VAL"
1162         ;;
1163     mysql_config)
1164         CFG_MYSQL_CONFIG="$VAL"
1165         ;;
1166     prefix)
1167         QT_INSTALL_PREFIX="$VAL"
1168         ;;
1169     hostprefix)
1170         QT_HOST_PREFIX="$VAL"
1171         ;;
1172     force-pkg-config)
1173         QT_FORCE_PKGCONFIG=yes
1174         ;;
1175     docdir)
1176         QT_INSTALL_DOCS="$VAL"
1177         ;;
1178     headerdir)
1179         QT_INSTALL_HEADERS="$VAL"
1180         ;;
1181     plugindir)
1182         QT_INSTALL_PLUGINS="$VAL"
1183         ;;
1184     importdir)
1185         QT_INSTALL_IMPORTS="$VAL"
1186         ;;
1187     datadir)
1188         QT_INSTALL_DATA="$VAL"
1189         ;;
1190     libdir)
1191         QT_INSTALL_LIBS="$VAL"
1192         ;;
1193     qtnamespace)
1194         QT_NAMESPACE="$VAL"
1195         ;;
1196     qtlibinfix)
1197         QT_LIBINFIX="$VAL"
1198         ;;
1199     translationdir)
1200         QT_INSTALL_TRANSLATIONS="$VAL"
1201         ;;
1202     sysconfdir|settingsdir)
1203         QT_INSTALL_SETTINGS="$VAL"
1204         ;;
1205     examplesdir)
1206         QT_INSTALL_EXAMPLES="$VAL"
1207         ;;
1208     testsdir)
1209         QT_INSTALL_TESTS="$VAL"
1210         ;;
1211     qconfig)
1212         CFG_QCONFIG="$VAL"
1213         ;;
1214     sysroot)
1215         CFG_SYSROOT="$VAL"
1216         ;;
1217     bindir)
1218         QT_INSTALL_BINS="$VAL"
1219         ;;
1220     sxe)
1221         CFG_SXE="$VAL"
1222         ;;
1223     embedded-lite|qpa)
1224         PLATFORM_X11=no
1225         PLATFORM_MAC=no
1226         PLATFORM_QPA=yes
1227         ;;
1228     sse)
1229         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1230             CFG_SSE="$VAL"
1231         else
1232             UNKNOWN_OPT=yes
1233         fi
1234         ;;
1235     endian)
1236         if [ "$VAL" = "little" ]; then
1237             CFG_ENDIAN="Q_LITTLE_ENDIAN"
1238         elif [ "$VAL" = "big" ]; then
1239             CFG_ENDIAN="Q_BIG_ENDIAN"
1240         else
1241             UNKNOWN_OPT=yes
1242         fi
1243         ;;
1244     host_endian)
1245         if [ "$VAL" = "little" ]; then
1246             CFG_HOST_ENDIAN="Q_LITTLE_ENDIAN"
1247         elif [ "$VAL" = "big" ]; then
1248             CFG_HOST_ENDIAN="Q_BIG_ENDIAN"
1249         else
1250             UNKNOWN_OPT=yes
1251         fi
1252         ;;
1253     armfpa)
1254         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1255             CFG_ARMFPA="$VAL"
1256         else
1257             UNKNOWN_OPT=yes
1258         fi
1259         ;;
1260     opengl)
1261         if  [ "$VAL" = "auto" ] || [ "$VAL" = "desktop" ] ||
1262             [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] ||
1263             [ "$VAL" = "es2" ]; then
1264             CFG_OPENGL="$VAL"
1265             if  [ "$VAL" = "es2" ]; then
1266                 CFG_EGL="yes"
1267             fi
1268         else
1269             UNKNOWN_OPT=yes
1270         fi
1271         ;;
1272     openvg)
1273         if [ "$VAL" = "auto" ] || [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1274             CFG_OPENVG="$VAL"
1275             if [ "$CFG_EGL" = "no" ] && [ "$VAL" != "no" ]; then
1276                 CFG_EGL=auto
1277             fi
1278         else
1279             UNKNOWN_OPT=yes
1280         fi
1281         ;;
1282     qvfb) # left for commandline compatibility, not documented
1283         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1284             if [ "$VAL" = "yes" ]; then
1285                 QMakeVar add gfx-drivers qvfb
1286                 QMakeVar add kbd-drivers qvfb
1287                 QMakeVar add mouse-drivers qvfb
1288                 CFG_GFX_ON="$CFG_GFX_ON qvfb"
1289                 CFG_KBD_ON="$CFG_KBD_ON qvfb"
1290                 CFG_MOUSE_ON="$CFG_MOUSE_ON qvfb"
1291             fi
1292         else
1293             UNKNOWN_OPT=yes
1294         fi
1295         ;;
1296     nomake)
1297         CFG_NOBUILD_PARTS="$CFG_NOBUILD_PARTS $VAL"
1298         ;;
1299     make)
1300         CFG_BUILD_PARTS="$CFG_BUILD_PARTS $VAL"
1301         ;;
1302     x11)
1303         PLATFORM_QPA=no
1304         PLATFORM_MAC=no
1305         PLATFORM_X11=yes
1306         ;;
1307     sdk)
1308         if [ "$BUILD_ON_MAC" = "yes" ]; then
1309             CFG_SDK="$VAL"
1310         else
1311             UNKNOWN_OPT=yes
1312         fi
1313         ;;
1314      dwarf2)
1315         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1316             CFG_MAC_DWARF2="$VAL"
1317         else
1318             UNKNOWN_OPT=yes
1319         fi
1320         ;;
1321     arch)
1322         # if this is a Mac then "windows" probably means
1323         # we are cross-compiling for MinGW
1324         if [ "$BUILD_ON_MAC" = "yes" ] && [ "$VAL" != "windows" ]; then
1325             CFG_MAC_ARCHS="$CFG_MAC_ARCHS $VAL"
1326         else
1327             CFG_ARCH=$VAL
1328         fi
1329         ;;
1330     host-arch)
1331         CFG_HOST_ARCH=$VAL
1332         ;;
1333     harfbuzz)
1334         if [ "$BUILD_ON_MAC" = "yes" ] && [ "$VAL" = "yes" ]; then
1335             CFG_MAC_HARFBUZZ="$VAL"
1336         else
1337             UNKNOWN_OPT=yes
1338         fi
1339         ;;
1340
1341     framework)
1342         if [ "$BUILD_ON_MAC" = "yes" ]; then
1343             CFG_FRAMEWORK="$VAL"
1344         else
1345             UNKNOWN_OPT=yes
1346         fi
1347         ;;
1348     profile)
1349         if [ "$VAL" = "yes" ]; then
1350             CFG_PROFILE=yes
1351             QMakeVar add QMAKE_CFLAGS -pg
1352             QMakeVar add QMAKE_CXXFLAGS -pg
1353             QMakeVar add QMAKE_LFLAGS -pg
1354             QMAKE_VARS="$QMAKE_VARS CONFIG+=nostrip"
1355         else
1356             UNKNOWN_OPT=yes
1357         fi
1358         ;;
1359     testcocoon)
1360         if [ "$VAL" = "yes" ]; then
1361             QTCONFIG_CONFIG="$QTCONFIG_CONFIG testcocoon"
1362         fi
1363         ;;
1364     exceptions|g++-exceptions)
1365         if [ "$VAL" = "no" ]; then
1366             CFG_EXCEPTIONS=no
1367         elif [ "$VAL" = "yes" ]; then
1368             CFG_EXCEPTIONS=yes
1369         else
1370             UNKNOWN_OPT=yes
1371         fi
1372         ;;
1373     platform)
1374         PLATFORM="$VAL"
1375         # keep compatibility with old platform names
1376         case $PLATFORM in
1377         aix-64)
1378             PLATFORM=aix-xlc-64
1379             ;;
1380         hpux-o64)
1381             PLATFORM=hpux-acc-o64
1382             ;;
1383         hpux-n64)
1384             PLATFORM=hpux-acc-64
1385             ;;
1386         hpux-acc-n64)
1387             PLATFORM=hpux-acc-64
1388             ;;
1389         irix-n32)
1390             PLATFORM=irix-cc
1391             ;;
1392         irix-64)
1393             PLATFORM=irix-cc-64
1394             ;;
1395         irix-cc-n64)
1396             PLATFORM=irix-cc-64
1397             ;;
1398         reliant-64)
1399             PLATFORM=reliant-cds-64
1400             ;;
1401         solaris-64)
1402             PLATFORM=solaris-cc-64
1403             ;;
1404         openunix-cc)
1405             PLATFORM=unixware-cc
1406             ;;
1407         openunix-g++)
1408             PLATFORM=unixware-g++
1409             ;;
1410         unixware7-cc)
1411             PLATFORM=unixware-cc
1412             ;;
1413         unixware7-g++)
1414             PLATFORM=unixware-g++
1415             ;;
1416         macx-g++-64)
1417             PLATFORM=macx-g++
1418             NATIVE_64_ARCH=
1419             case `uname -p` in
1420             i386) NATIVE_64_ARCH="x86_64" ;;
1421             powerpc) NATIVE_64_ARCH="ppc64" ;;
1422             *)   echo "WARNING: Can't detect CPU architecture for macx-g++-64" ;;
1423             esac
1424             if [ ! -z "$NATIVE_64_ARCH" ]; then
1425                 QTCONFIG_CONFIG="$QTCONFIG_CONFIG $NATIVE_64_ARCH"
1426             fi
1427             ;;
1428         esac
1429         ;;
1430     xplatform)
1431         XPLATFORM="$VAL"
1432         case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
1433         ;;
1434     debug-and-release)
1435         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1436             CFG_DEBUG_RELEASE="$VAL"
1437         else
1438             UNKNOWN_OPT=yes
1439         fi
1440         ;;
1441     optimized-qmake)
1442         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1443             CFG_RELEASE_QMAKE="$VAL"
1444         else
1445             UNKNOWN_OPT=yes
1446         fi
1447         ;;
1448     release)
1449         if [ "$VAL" = "yes" ]; then
1450             CFG_DEBUG=no
1451         elif [ "$VAL" = "no" ]; then
1452             CFG_DEBUG=yes
1453         else
1454             UNKNOWN_OPT=yes
1455         fi
1456         ;;
1457     prefix-install)
1458         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1459             CFG_PREFIX_INSTALL="$VAL"
1460         else
1461             UNKNOWN_OPT=yes
1462         fi
1463         ;;
1464     debug)
1465         CFG_DEBUG="$VAL"
1466         ;;
1467     developer-build|commercial|opensource)
1468         # These switches have been dealt with already
1469         ;;
1470     static)
1471         if [ "$VAL" = "yes" ]; then
1472             CFG_SHARED=no
1473         elif [ "$VAL" = "no" ]; then
1474             CFG_SHARED=yes
1475         else
1476             UNKNOWN_OPT=yes
1477         fi
1478         ;;
1479     incremental)
1480         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1481             CFG_INCREMENTAL="$VAL"
1482         else
1483             UNKNOWN_OPT=yes
1484         fi
1485         ;;
1486     fatal_error)
1487         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1488             CFG_CONFIGURE_EXIT_ON_ERROR="$VAL"
1489         else
1490             UNKNOWN_OPT=yes
1491         fi
1492         ;;
1493     feature-*)
1494             FEATURE=`echo $VAR | sed "s,^[^-]*-\([^-]*\),\1," | tr 'abcdefghijklmnopqrstuvwxyz-' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
1495             if [ "$VAL" = "no" ]; then
1496                 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_$FEATURE"
1497             elif [ "$VAL" = "yes" ] || [ "$VAL" = "unknown" ]; then
1498                 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_$FEATURE"
1499             else
1500                 UNKNOWN_OPT=yes
1501             fi
1502         ;;
1503     shared)
1504         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1505             CFG_SHARED="$VAL"
1506         else
1507             UNKNOWN_OPT=yes
1508         fi
1509         ;;
1510     gif)
1511         if [ "$VAL" = "no" ]; then
1512             CFG_GIF="$VAL"
1513         else
1514             UNKNOWN_OPT=yes
1515         fi
1516         ;;
1517     sm)
1518         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1519             CFG_SM="$VAL"
1520         else
1521             UNKNOWN_OPT=yes
1522         fi
1523
1524         ;;
1525     xinerama)
1526         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1527             CFG_XINERAMA="$VAL"
1528         else
1529             UNKNOWN_OPT=yes
1530         fi
1531         ;;
1532     xshape)
1533         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1534             CFG_XSHAPE="$VAL"
1535         else
1536             UNKNOWN_OPT=yes
1537         fi
1538         ;;
1539     xvideo)
1540         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1541             CFG_XVIDEO="$VAL"
1542         else
1543             UNKNOWN_OPT=yes
1544         fi
1545         ;;
1546     xsync)
1547         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1548             CFG_XSYNC="$VAL"
1549         else
1550             UNKNOWN_OPT=yes
1551         fi
1552         ;;
1553      xinput2)
1554         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1555             CFG_XINPUT2="$VAL"
1556         else
1557             UNKNOWN_OPT=yes
1558         fi
1559         ;;
1560     xinput)
1561         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1562             CFG_XINPUT="$VAL"
1563         else
1564             UNKNOWN_OPT=yes
1565         fi
1566         ;;
1567     egl)
1568         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1569             CFG_EGL="$VAL"
1570         else
1571             UNKNOWN_OPT=yes
1572         fi
1573         ;;
1574     stl)
1575         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1576             CFG_STL="$VAL"
1577         else
1578             UNKNOWN_OPT=yes
1579         fi
1580         ;;
1581     pch)
1582         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1583             CFG_PRECOMPILE="$VAL"
1584         else
1585             UNKNOWN_OPT=yes
1586         fi
1587         ;;
1588     separate-debug-info)
1589         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1590             CFG_SEPARATE_DEBUG_INFO="$VAL"
1591         elif [ "$VAL" = "nocopy" ] ; then
1592             CFG_SEPARATE_DEBUG_INFO="yes"
1593             CFG_SEPARATE_DEBUG_INFO_NOCOPY="yes"
1594         else
1595             UNKNOWN_OPT=yes
1596         fi
1597         ;;
1598     reduce-exports)
1599         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1600             CFG_REDUCE_EXPORTS="$VAL"
1601         else
1602             UNKNOWN_OPT=yes
1603         fi
1604         ;;
1605     mmx)
1606         if [ "$VAL" = "no" ]; then
1607             CFG_MMX="$VAL"
1608         else
1609             UNKNOWN_OPT=yes
1610         fi
1611         ;;
1612     3dnow)
1613         if [ "$VAL" = "no" ]; then
1614             CFG_3DNOW="$VAL"
1615         else
1616             UNKNOWN_OPT=yes
1617         fi
1618         ;;
1619     sse)
1620         if [ "$VAL" = "no" ]; then
1621             CFG_SSE="$VAL"
1622         else
1623             UNKNOWN_OPT=yes
1624         fi
1625         ;;
1626     sse2)
1627         if [ "$VAL" = "no" ]; then
1628             CFG_SSE2="$VAL"
1629         else
1630             UNKNOWN_OPT=yes
1631         fi
1632         ;;
1633     sse3)
1634         if [ "$VAL" = "no" ]; then
1635             CFG_SSE3="$VAL"
1636         else
1637             UNKNOWN_OPT=yes
1638         fi
1639         ;;
1640     ssse3)
1641         if [ "$VAL" = "no" ]; then
1642             CFG_SSSE3="$VAL"
1643         else
1644             UNKNOWN_OPT=yes
1645         fi
1646         ;;
1647     sse4.1)
1648         if [ "$VAL" = "no" ]; then
1649             CFG_SSE4_1="$VAL"
1650         else
1651             UNKNOWN_OPT=yes
1652         fi
1653         ;;
1654     sse4.2)
1655         if [ "$VAL" = "no" ]; then
1656             CFG_SSE4_2="$VAL"
1657         else
1658             UNKNOWN_OPT=yes
1659         fi
1660         ;;
1661     avx)
1662         if [ "$VAL" = "no" ]; then
1663             CFG_AVX="$VAL"
1664         else
1665             UNKNOWN_OPT=yes
1666         fi
1667         ;;
1668     iwmmxt)
1669         CFG_IWMMXT="yes"
1670         ;;
1671     neon)
1672         if [ "$VAL" = "no" ]; then
1673             CFG_NEON="$VAL"
1674         else
1675             UNKNOWN_OPT=yes
1676         fi
1677         ;;
1678     reduce-relocations)
1679         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1680             CFG_REDUCE_RELOCATIONS="$VAL"
1681         else
1682             UNKNOWN_OPT=yes
1683         fi
1684         ;;
1685     zlib)
1686         [ "$VAL" = "qt" ] && VAL=yes
1687         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1688             CFG_ZLIB="$VAL"
1689         else
1690             UNKNOWN_OPT=yes
1691         fi
1692         # No longer supported:
1693         #[ "$VAL" = "no" ] && CFG_LIBPNG=no
1694         ;;
1695     sqlite)
1696         if [ "$VAL" = "system" ]; then
1697             CFG_SQLITE=system
1698         else
1699             UNKNOWN_OPT=yes
1700         fi
1701         ;;
1702     libpng)
1703         [ "$VAL" = "yes" ] && VAL=qt
1704         if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1705             CFG_LIBPNG="$VAL"
1706         else
1707             UNKNOWN_OPT=yes
1708         fi
1709         ;;
1710     libjpeg)
1711         [ "$VAL" = "yes" ] && VAL=qt
1712         if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1713             CFG_LIBJPEG="$VAL"
1714         else
1715             UNKNOWN_OPT=yes
1716         fi
1717         ;;
1718     nas-sound)
1719         if [ "$VAL" = "system" ] || [ "$VAL" = "no" ]; then
1720             CFG_NAS="$VAL"
1721         else
1722             UNKNOWN_OPT=yes
1723         fi
1724         ;;
1725     xcursor)
1726         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1727             CFG_XCURSOR="$VAL"
1728         else
1729             UNKNOWN_OPT=yes
1730         fi
1731         ;;
1732     xfixes)
1733         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1734             CFG_XFIXES="$VAL"
1735         else
1736             UNKNOWN_OPT=yes
1737         fi
1738         ;;
1739     xrandr)
1740         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1741             CFG_XRANDR="$VAL"
1742         else
1743             UNKNOWN_OPT=yes
1744         fi
1745         ;;
1746     xrender)
1747         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1748             CFG_XRENDER="$VAL"
1749         else
1750             UNKNOWN_OPT=yes
1751         fi
1752         ;;
1753     mitshm)
1754         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1755             CFG_MITSHM="$VAL"
1756         else
1757             UNKNOWN_OPT=yes
1758         fi
1759         ;;
1760     fontconfig)
1761         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1762             CFG_FONTCONFIG="$VAL"
1763         else
1764             UNKNOWN_OPT=yes
1765         fi
1766         ;;
1767     xkb)
1768         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1769             CFG_XKB="$VAL"
1770         else
1771             UNKNOWN_OPT=yes
1772         fi
1773         ;;
1774     xcb)
1775         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1776             CFG_XCB="$VAL"
1777         else
1778             UNKNOWN_OPT=yes
1779         fi
1780         ;;
1781     wayland)
1782         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1783             CFG_WAYLAND="$VAL"
1784         else
1785             UNKNOWN_OPT=yes
1786         fi
1787         ;;
1788     libudev)
1789         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1790             CFG_LIBUDEV="$VAL"
1791         else
1792             UNKNOWN_OPT=yes
1793         fi
1794         ;;
1795     evdev)
1796         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1797             CFG_EVDEV="$VAL"
1798         else
1799             UNKNOWN_OPT=yes
1800         fi
1801         ;;
1802     cups)
1803         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1804             CFG_CUPS="$VAL"
1805         else
1806             UNKNOWN_OPT=yes
1807         fi
1808         ;;
1809     iconv)
1810         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1811             CFG_ICONV="$VAL"
1812         else
1813             UNKNOWN_OPT=yes
1814         fi
1815         ;;
1816     glib)
1817         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1818             CFG_GLIB="$VAL"
1819         else
1820             UNKNOWN_OPT=yes
1821         fi
1822         ;;
1823     gstreamer)
1824         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1825             CFG_GSTREAMER="$VAL"
1826         else
1827             UNKNOWN_OPT=yes
1828         fi
1829         ;;
1830     gtkstyle)
1831         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1832             CFG_QGTKSTYLE="$VAL"
1833         else
1834             UNKNOWN_OPT=yes
1835         fi
1836         ;;
1837     gui)
1838         if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1839             CFG_GUI="yes"
1840         else
1841             if [ "$VAL" = "no" ]; then
1842                 CFG_GUI="no"
1843             else
1844                 UNKNOWN_OPT=yes
1845             fi
1846         fi
1847         ;;
1848     dbus)
1849         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "linked" ]; then
1850             CFG_DBUS="$VAL"
1851         elif [ "$VAL" = "runtime" ]; then
1852             CFG_DBUS="yes"
1853         else
1854             UNKNOWN_OPT=yes
1855         fi
1856         ;;
1857     dbus-linked)
1858         if [ "$VAL" = "yes" ]; then
1859             CFG_DBUS="linked"
1860         else
1861             UNKNOWN_OPT=yes
1862         fi
1863         ;;
1864     nis)
1865         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1866             CFG_NIS="$VAL"
1867         else
1868             UNKNOWN_OPT=yes
1869         fi
1870         ;;
1871     largefile)
1872         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1873             CFG_LARGEFILE="$VAL"
1874         else
1875             UNKNOWN_OPT=yes
1876         fi
1877         ;;
1878     openssl)
1879         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1880             CFG_OPENSSL="$VAL"
1881         else
1882             UNKNOWN_OPT=yes
1883         fi
1884         ;;
1885     openssl-linked)
1886         if [ "$VAL" = "yes" ]; then
1887             CFG_OPENSSL="linked"
1888         else
1889             UNKNOWN_OPT=yes
1890         fi
1891         ;;
1892     declarative-debug)
1893         if [ "$VAL" = "yes" ]; then
1894             CFG_DECLARATIVE_DEBUG="yes"
1895         else
1896             if [ "$VAL" = "no" ]; then
1897                 CFG_DECLARATIVE_DEBUG="no"
1898             else
1899                 UNKNOWN_OPT=yes
1900             fi
1901         fi
1902         ;;
1903     javascript-jit)
1904         if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ] || [ "$VAL" = "no" ]; then 
1905             CFG_JAVASCRIPTCORE_JIT="$VAL"
1906         else
1907             UNKNOWN_OPT=yes
1908         fi
1909         ;;
1910     confirm-license)
1911         if [ "$VAL" = "yes" ]; then
1912             OPT_CONFIRM_LICENSE="$VAL"
1913         else
1914             UNKNOWN_OPT=yes
1915         fi
1916         ;;
1917     h|help)
1918         if [ "$VAL" = "yes" ]; then
1919             OPT_HELP="$VAL"
1920         else
1921             UNKNOWN_OPT=yes
1922         fi
1923         ;;
1924     sql-*|gfx-*|decoration-*|kbd-*|mouse-*|imageformat-*)
1925         # if Qt style options were used, $VAL can be "no", "qt", or "plugin"
1926         # if autoconf style options were used, $VAL can be "yes" or "no"
1927         [ "$VAL" = "yes" ] && VAL=qt
1928         # now $VAL should be "no", "qt", or "plugin"... double-check
1929         if [ "$VAL" != "no" ] && [ "$VAL" != "qt" ] && [ "$VAL" != "plugin" ]; then
1930             UNKNOWN_OPT=yes
1931         fi
1932         # now $VAL is "no", "qt", or "plugin"
1933         OPT="$VAL"
1934         VAL=`echo $VAR | sed "s,^[^-]*-\([^-]*\).*,\1,"`
1935         VAR=`echo $VAR | sed "s,^\([^-]*\).*,\1,"`
1936
1937         # Grab the available values
1938         case "$VAR" in
1939         sql)
1940             avail="$CFG_SQL_AVAILABLE"
1941             ;;
1942         gfx)
1943             avail="$CFG_GFX_AVAILABLE"
1944             if [ "$OPT" = "plugin" ]; then
1945                 avail="$CFG_GFX_PLUGIN_AVAILABLE"
1946             fi
1947             ;;
1948         decoration)
1949             avail="$CFG_DECORATION_AVAILABLE"
1950             if [ "$OPT" = "plugin" ]; then
1951                 avail="$CFG_DECORATION_PLUGIN_AVAILABLE"
1952             fi
1953             ;;
1954         kbd)
1955             avail="$CFG_KBD_AVAILABLE"
1956             if [ "$OPT" = "plugin" ]; then
1957                 avail="$CFG_KBD_PLUGIN_AVAILABLE"
1958             fi
1959             ;;
1960         mouse)
1961             avail="$CFG_MOUSE_AVAILABLE"
1962             if [ "$OPT" = "plugin" ]; then
1963                 avail="$CFG_MOUSE_PLUGIN_AVAILABLE"
1964             fi
1965             ;;
1966         imageformat)
1967             avail="$CFG_IMAGEFORMAT_PLUGIN_AVAILABLE"
1968             if [ "$OPT" != "plugin" ]; then
1969                 # png is always built in
1970                 avail="$avail png"
1971             fi
1972             ;;
1973         *)
1974             avail=""
1975             echo "BUG: Unhandled type $VAR used in $CURRENT_OPT"
1976             ;;
1977         esac
1978
1979         # Check that that user's value is available.
1980         found=no
1981         for d in $avail; do
1982             if [ "$VAL" = "$d" ]; then
1983                 found=yes
1984                 break
1985             fi
1986         done
1987         [ "$found" = yes ] || ERROR=yes
1988
1989         if [ "$VAR" = "sql" ]; then
1990             # set the CFG_SQL_driver
1991             eval "CFG_SQL_$VAL=\$OPT"
1992             continue
1993         elif [ "$VAR" = "imageformat" ]; then
1994             [ "$OPT" = "qt" ] && OPT=yes
1995             VAL="`echo $VAL |tr a-z A-Z`"
1996             eval "CFG_$VAL=$OPT"
1997             continue
1998         fi
1999
2000         if [ "$OPT" = "plugin" ] || [ "$OPT" = "qt" ]; then
2001             if [ "$OPT" = "plugin" ]; then
2002                 [ "$VAR" = "decoration" ] && QMakeVar del "${VAR}s" "$VAL"
2003                 [ "$VAR" = "decoration" ] && CFG_DECORATION_ON=`echo "${CFG_DECORATION_ON} " | sed "s,${VAL} ,,g"` && CFG_DECORATION_PLUGIN="$CFG_DECORATION_PLUGIN ${VAL}"
2004                 [ "$VAR" = "kbd" ] && QMakeVar del "${VAR}s" "$VAL"
2005                 [ "$VAR" = "kbd" ] && CFG_KBD_ON=`echo "${CFG_KBD_ON} " | sed "s,${VAL} ,,g"` && CFG_KBD_PLUGIN="$CFG_KBD_PLUGIN ${VAL}"
2006                 [ "$VAR" = "mouse" ] && QMakeVar del "${VAR}s" "$VAL"
2007                 [ "$VAR" = "mouse" ] && CFG_MOUSE_ON=`echo "${CFG_MOUSE_ON} " | sed "s,${VAL} ,,g"` && CFG_MOUSE_PLUGIN="$CFG_MOUSE_PLUGIN ${VAL}"
2008                 [ "$VAR" = "gfx" ] && QMakeVar del "${VAR}s" "$VAL"
2009                 [ "$VAR" = "gfx" ] && CFG_GFX_ON=`echo "${CFG_GFX_ON} " | sed "s,${VAL} ,,g"` && CFG_GFX_PLUGIN="${CFG_GFX_PLUGIN} ${VAL}"
2010                 VAR="${VAR}-${OPT}"
2011             else
2012                 if [ "$VAR" = "gfx" ] || [ "$VAR" = "kbd" ] || [ "$VAR" = "decoration" ] || [ "$VAR" = "mouse" ]; then
2013                     [ "$VAR" = "gfx" ] && CFG_GFX_ON="$CFG_GFX_ON $VAL"
2014                     [ "$VAR" = "kbd" ] && CFG_KBD_ON="$CFG_KBD_ON $VAL"
2015                     [ "$VAR" = "decoration" ] && CFG_DECORATION_ON="$CFG_DECORATION_ON $VAL"
2016                     [ "$VAR" = "mouse" ] && CFG_MOUSE_ON="$CFG_MOUSE_ON $VAL"
2017                     VAR="${VAR}-driver"
2018                 fi
2019             fi
2020             QMakeVar add "${VAR}s" "${VAL}"
2021         elif [ "$OPT" = "no" ]; then
2022             PLUG_VAR="${VAR}-plugin"
2023             if [ "$VAR" = "gfx" ] || [ "$VAR" = "kbd" ] || [ "$VAR" = "mouse" ]; then
2024                 IN_VAR="${VAR}-driver"
2025             else
2026                 IN_VAR="${VAR}"
2027             fi
2028             [ "$VAR" = "decoration" ] && CFG_DECORATION_ON=`echo "${CFG_DECORATION_ON} " | sed "s,${VAL} ,,g"`
2029             [ "$VAR" = "gfx" ] && CFG_GFX_ON=`echo "${CFG_GFX_ON} " | sed "s,${VAL} ,,g"`
2030             [ "$VAR" = "kbd" ] && CFG_KBD_ON=`echo "${CFG_KBD_ON} " | sed "s,${VAL} ,,g"`
2031             [ "$VAR" = "mouse" ] && CFG_MOUSE_ON=`echo "${CFG_MOUSE_ON} " | sed "s,${VAL} ,,g"`
2032             QMakeVar del "${IN_VAR}s" "$VAL"
2033             QMakeVar del "${PLUG_VAR}s" "$VAL"
2034         fi
2035         if [ "$ERROR" = "yes" ]; then
2036            echo "$CURRENT_OPT: unknown argument"
2037            OPT_HELP=yes
2038         fi
2039         ;;
2040     v|verbose)
2041         if [ "$VAL" = "yes" ]; then
2042             if [ "$OPT_VERBOSE" = "$VAL" ]; then            # takes two verboses to turn on qmake debugs
2043                 QMAKE_SWITCHES="$QMAKE_SWITCHES -d"
2044             else
2045                 OPT_VERBOSE=yes
2046             fi
2047         elif [ "$VAL" = "no" ]; then
2048             if [ "$OPT_VERBOSE" = "$VAL" ] && echo "$QMAKE_SWITCHES" | grep ' -d' >/dev/null 2>&1; then
2049                 QMAKE_SWITCHES=`echo $QMAKE_SWITCHES | sed "s, -d,,"`
2050             else
2051                 OPT_VERBOSE=no
2052             fi
2053         else
2054             UNKNOWN_OPT=yes
2055         fi
2056         ;;
2057     fast)
2058         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2059             OPT_FAST="$VAL"
2060         else
2061             UNKNOWN_OPT=yes
2062         fi
2063         ;;
2064     rpath)
2065         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2066             CFG_RPATH="$VAL"
2067         else
2068             UNKNOWN_OPT=yes
2069         fi
2070         ;;
2071     add_define)
2072         D_FLAGS="$D_FLAGS \"$VAL\""
2073         ;;
2074     add_ipath)
2075         I_FLAGS="$I_FLAGS -I\"${VAL}\""
2076         ;;
2077     add_lpath)
2078         L_FLAGS="$L_FLAGS -L\"${VAL}\""
2079         ;;
2080     add_rpath)
2081         RPATH_FLAGS="$RPATH_FLAGS \"${VAL}\""
2082         ;;
2083     add_link)
2084         l_FLAGS="$l_FLAGS -l\"${VAL}\""
2085         ;;
2086     add_fpath)
2087         if [ "$BUILD_ON_MAC" = "yes" ]; then
2088             L_FLAGS="$L_FLAGS -F\"${VAL}\""
2089             I_FLAGS="$I_FLAGS -F\"${VAL}\""
2090         else
2091             UNKNOWN_OPT=yes
2092         fi
2093         ;;
2094     add_framework)
2095         if [ "$BUILD_ON_MAC" = "yes" ]; then
2096             l_FLAGS="$l_FLAGS -framework \"${VAL}\""
2097         else
2098             UNKNOWN_OPT=yes
2099         fi
2100         ;;
2101     add_warn)
2102         W_FLAGS="$W_FLAGS \"${VAL}\""
2103         ;;
2104     silent)
2105         CFG_SILENT="$VAL"
2106         ;;
2107     phonon-backend)
2108         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2109             CFG_PHONON_BACKEND="$VAL"
2110         else
2111             UNKNOWN_OPT=yes
2112         fi
2113         ;;
2114     dont-process)
2115         CFG_NOPROCESS=yes
2116         ;;
2117     process)
2118         CFG_NOPROCESS=no
2119         ;;
2120     audio-backend)
2121         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2122             CFG_AUDIO_BACKEND="$VAL"
2123         else
2124             UNKNOWN_OPT=yes
2125         fi
2126         ;;
2127     icu)
2128         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2129             CFG_ICU="$VAL"
2130         else
2131             UNKNOWN_OPT=yes
2132         fi
2133         ;;
2134     force-asserts)
2135         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2136             CFG_FORCE_ASSERTS="$VAL"
2137         else
2138             UNKNOWN_OPT=yes
2139         fi
2140         ;;
2141     pcre)
2142         if [ "$VAL" = "qt" ] || [ "$VAL" = "system" ]; then
2143             CFG_PCRE="$VAL"
2144         else
2145             UNKNOWN_OPT=yes
2146         fi
2147         ;;
2148     *)
2149         UNKNOWN_OPT=yes
2150         ;;
2151     esac
2152     if [ "$UNKNOWN_OPT" = "yes" ]; then
2153         echo "${CURRENT_OPT}: invalid command-line switch"
2154         OPT_HELP=yes
2155         ERROR=yes
2156     fi
2157 done
2158
2159 # update QT_CONFIG to show our current predefined configuration
2160 case "$CFG_QCONFIG" in
2161 minimal|small|medium|large|full)
2162     # these are a sequence of increasing functionality
2163     for c in minimal small medium large full; do
2164         QT_CONFIG="$QT_CONFIG $c-config"
2165         [ "$CFG_QCONFIG" = $c ] && break
2166     done
2167     ;;
2168 *)
2169     # not known to be sufficient for anything
2170     if [ '!' -f "$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h" ] && [ '!' -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
2171         echo >&2 "Error: configuration file not found:"
2172         echo >&2 "  $relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h"
2173         echo >&2 "  or"
2174         echo >&2 "  `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"`"
2175         OPT_HELP=yes
2176     fi
2177 esac
2178
2179 #-------------------------------------------------------------------------------
2180 # build tree initialization
2181 #-------------------------------------------------------------------------------
2182
2183 # where to find which..
2184 unixtests="$relpath/config.tests/unix"
2185 mactests="$relpath/config.tests/mac"
2186 WHICH="$unixtests/which.test"
2187
2188 PERL=`$WHICH perl 2>/dev/null`
2189
2190 # find out which awk we want to use, prefer gawk, then nawk, then regular awk
2191 AWK=
2192 for e in gawk nawk awk; do
2193     if "$WHICH" $e >/dev/null 2>&1 && ( $e -f /dev/null /dev/null ) >/dev/null 2>&1; then
2194         AWK=$e
2195         break
2196     fi
2197 done
2198
2199 # find perl
2200 PERL="/usr/bin/perl"
2201 if "$WHICH" perl >/dev/null 2>&1 && ( perl /dev/null ) >/dev/null 2>&1; then
2202     PERL=`$WHICH perl`
2203 fi
2204
2205 ### skip this if the user just needs help...
2206 if [ "$OPT_HELP" != "yes" ]; then
2207
2208 # is this a shadow build?
2209 if [ "$OPT_SHADOW" = "maybe" ]; then
2210     OPT_SHADOW=no
2211     if [ "$relpath" != "$outpath" ] && [ '!' -f "$outpath/configure" ]; then
2212         if [ -h "$outpath" ]; then
2213             [ "$relpath" -ef "$outpath" ] || OPT_SHADOW=yes
2214         else
2215             OPT_SHADOW=yes
2216         fi
2217     fi
2218 fi
2219 if [ "$OPT_SHADOW" = "yes" ]; then
2220     if [ -f "$relpath/.qmake.cache" -o -f "$relpath/src/corelib/global/qconfig.h" -o -f "$relpath/src/corelib/global/qconfig.cpp" ]; then
2221         echo >&2 "You cannot make a shadow build from a source tree containing a previous build."
2222         echo >&2 "Cannot proceed."
2223         exit 1
2224     fi
2225     [ "$OPT_VERBOSE" = "yes" ] && echo "Performing shadow build..."
2226 fi
2227
2228 if [ "$PLATFORM_X11" = "yes" -o "$PLATFORM_QPA" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2229     echo
2230     echo "WARNING: -debug-and-release is not supported anymore on Qt/X11 and Qt for Embedded Linux"
2231     echo "Qt can be built in release mode with separate debug information, so"
2232     echo "-debug-and-release is not necessary anymore"
2233     echo
2234 fi
2235
2236 if [ "$CFG_SILENT" = "yes" ]; then
2237     QMAKE_CONFIG="$QMAKE_CONFIG silent"
2238 fi
2239
2240 # if the source tree is different from the build tree,
2241 # symlink or copy part of the sources
2242 if [ "$OPT_SHADOW" = "yes" ]; then
2243     echo "Preparing build tree..."
2244
2245     if [ -z "$PERL" ]; then
2246         echo
2247         echo "You need perl in your PATH to make a shadow build."
2248         echo "Cannot proceed."
2249         exit 1
2250     fi
2251
2252     [ -d "$outpath/bin" ] || mkdir -p "$outpath/bin"
2253
2254     # symlink the qmake directory
2255     find "$relpath/qmake" | while read a; do
2256         my_a=`echo "$a" | sed "s,^${relpath}/,${outpath}/,"`
2257         if [ '!' -f "$my_a" ]; then
2258             if [ -d "$a" ]; then
2259                 # directories are created...
2260                 mkdir -p "$my_a"
2261             else
2262                 a_dir=`dirname "$my_a"`
2263                 [ -d "$a_dir" ] || mkdir -p "$a_dir"
2264                 # ... and files are symlinked
2265                 case `basename "$a"` in
2266                 *.o|*.d|GNUmakefile*|qmake)
2267                     ;;
2268                 *)
2269                     rm -f "$my_a"
2270                     ln -s "$a" "$my_a"
2271                     ;;
2272                 esac
2273             fi
2274         fi
2275     done
2276
2277     # make a syncqt script that can be used in the shadow
2278     rm -f "$outpath/bin/syncqt"
2279     if [ -x "$relpath/bin/syncqt" ]; then
2280         mkdir -p "$outpath/bin"
2281         echo "#!/bin/sh" >"$outpath/bin/syncqt"
2282         echo "perl \"$relpath/bin/syncqt\" -qtdir \"$outpath\" \"\$@\"" >>"$outpath/bin/syncqt"
2283         chmod 755 "$outpath/bin/syncqt"
2284     fi
2285
2286     for i in elf2e32_qtwrapper createpackage patch_capabilities qtmodule-configtests; do
2287         rm -f "$outpath/bin/$i"
2288         if [ -x "$relpath/bin/$i" ]; then
2289             mkdir -p "$outpath/bin"
2290             echo "#!/bin/sh" >"$outpath/bin/$i"
2291             echo "QTDIR=\"$relpath\"; export QTDIR" >>"$outpath/bin/$i"
2292             echo "\"$relpath/bin/$i\" \"\$@\"" >>"$outpath/bin/$i"
2293             chmod 755 "$outpath/bin/$i"
2294         fi
2295     done
2296
2297     # symlink the mkspecs directory
2298     mkdir -p "$outpath/mkspecs"
2299     rm -rf "$outpath"/mkspecs/*
2300     ln -s "$relpath"/mkspecs/* "$outpath/mkspecs"
2301     rm -f "$outpath/mkspecs/default"
2302
2303     ShadowMkspecs()
2304     {
2305         rm -rf "$outpath/mkspecs/$1"
2306         find "$relpath/mkspecs/$1" -type d | sed "s,^$relpath,$outpath," | xargs mkdir -p
2307         find "$relpath/mkspecs/$1" -type f | sed "s,^$relpath/,," | while read f; do ln -s "$relpath/$f" "$outpath/$f"; done
2308     }
2309
2310     # Special case for mkspecs/features directory.
2311     # To be able to place .prf files into a shadow build directory,
2312     # we're creating links for files only. The directory structure is reproduced.
2313     ShadowMkspecs features
2314
2315     # The modules dir is special, too.
2316     ShadowMkspecs modules
2317
2318     # symlink the doc directory
2319     rm -rf "$outpath/doc"
2320     ln -s "$relpath/doc" "$outpath/doc"
2321 fi
2322
2323 # symlink fonts to be able to run application from build directory
2324 if [ "$PLATFORM_QPA" = "yes" ] && [ ! -d "${outpath}/lib/fonts" ]; then
2325     if [ "$PLATFORM" = "$XPLATFORM" ]; then
2326         mkdir -p "${outpath}/lib"
2327         ln -s "${relpath}/lib/fonts" "${outpath}/lib/fonts"
2328     fi
2329 fi
2330
2331 if [ "$OPT_FAST" = "auto" ]; then
2332    if [ '!' -z "$AWK" ] && [ "$CFG_DEV" = "yes" ]; then
2333        OPT_FAST=yes
2334    else
2335        OPT_FAST=no
2336    fi
2337 fi
2338
2339 # find a make command
2340 if [ -z "$MAKE" ]; then
2341     MAKE=
2342     for mk in gmake make; do
2343         if "$WHICH" $mk >/dev/null 2>&1; then
2344             MAKE=`"$WHICH" $mk`
2345             break
2346         fi
2347     done
2348     if [ -z "$MAKE" ]; then
2349         echo >&2 "You don't seem to have 'make' or 'gmake' in your PATH."
2350         echo >&2 "Cannot proceed."
2351         exit 1
2352     fi
2353     # export MAKE, we need it later in the config.tests
2354     export MAKE
2355 fi
2356
2357 fi ### help
2358
2359 #-------------------------------------------------------------------------------
2360 # auto-detect all that hasn't been specified in the arguments
2361 #-------------------------------------------------------------------------------
2362
2363 if [ -z "$PLATFORM" ]; then
2364     PLATFORM_NOTES=
2365     case "$UNAME_SYSTEM:$UNAME_RELEASE" in
2366      Darwin:*)
2367         if [ "$PLATFORM_QPA" = "yes" ]; then
2368           OSX_VERSION=`uname -r | cut -d. -f1`
2369           if [ "$OSX_VERSION" -ge 11 ]; then
2370               # We're on Lion or above. Check if we have a supported Clang version
2371               case "$(clang -v 2>&1 | grep -Po '(?<=version )\d[\d.]+')" in
2372                   3.*)
2373                       PLATFORM=macx-clang
2374                       PLATFORM_NOTES="\n    - Also available for Mac OS X: macx-g++\n"
2375                       ;;
2376                   *)
2377                       PLATFORM=macx-g++
2378                       ;;
2379               esac
2380           else
2381               PLATFORM=macx-g++
2382           fi
2383         else
2384           PLATFORM=darwin-g++
2385         fi
2386         ;;
2387      AIX:*)
2388         #PLATFORM=aix-g++
2389         #PLATFORM=aix-g++-64
2390         PLATFORM=aix-xlc
2391         #PLATFORM=aix-xlc-64
2392         PLATFORM_NOTES="
2393             - Also available for AIX: aix-g++ aix-g++-64 aix-xlc-64
2394         "
2395         ;;
2396      GNU:*)
2397         PLATFORM=hurd-g++
2398         ;;
2399      dgux:*)
2400         PLATFORM=dgux-g++
2401         ;;
2402 #     DYNIX/ptx:4*)
2403 #       PLATFORM=dynix-g++
2404 #       ;;
2405      ULTRIX:*)
2406         PLATFORM=ultrix-g++
2407         ;;
2408      FreeBSD:*)
2409         PLATFORM=freebsd-g++
2410         PLATFORM_NOTES="
2411             - Also available for FreeBSD: freebsd-icc
2412         "
2413         ;;
2414      OpenBSD:*)
2415         PLATFORM=openbsd-g++
2416         ;;
2417      NetBSD:*)
2418         PLATFORM=netbsd-g++
2419         ;;
2420      BSD/OS:*|BSD/386:*)
2421         PLATFORM=bsdi-g++
2422         ;;
2423      IRIX*:*)
2424         #PLATFORM=irix-g++
2425         PLATFORM=irix-cc
2426         #PLATFORM=irix-cc-64
2427         PLATFORM_NOTES="
2428             - Also available for IRIX: irix-g++ irix-cc-64
2429         "
2430         ;;
2431      HP-UX:*)
2432         case "$UNAME_MACHINE" in
2433             ia64)
2434                 #PLATFORM=hpuxi-acc-32
2435                 PLATFORM=hpuxi-acc-64
2436                 PLATFORM_NOTES="
2437                     - Also available for HP-UXi: hpuxi-acc-32
2438                 "
2439             ;;
2440             *)
2441                 #PLATFORM=hpux-g++
2442                 PLATFORM=hpux-acc
2443                 #PLATFORM=hpux-acc-64
2444                 #PLATFORM=hpux-cc
2445                 #PLATFORM=hpux-acc-o64
2446                 PLATFORM_NOTES="
2447                     - Also available for HP-UX: hpux-g++ hpux-acc-64 hpux-acc-o64
2448                 "
2449             ;;
2450         esac
2451         ;;
2452      OSF1:*)
2453         #PLATFORM=tru64-g++
2454         PLATFORM=tru64-cxx
2455         PLATFORM_NOTES="
2456             - Also available for Tru64: tru64-g++
2457         "
2458         ;;
2459      Linux:*)
2460         case "$UNAME_MACHINE" in
2461             x86_64|s390x|ppc64)
2462                 PLATFORM=linux-g++-64
2463                 ;;
2464             *)
2465                 PLATFORM=linux-g++
2466                 ;;
2467         esac
2468         PLATFORM_NOTES="
2469             - Also available for Linux: linux-kcc linux-icc linux-cxx
2470         "
2471         ;;
2472      SunOS:5*)
2473         if [ "$XPLATFORM_MINGW" = "yes" ]; then
2474             PLATFORM="solaris-g++"
2475         else
2476             #PLATFORM=solaris-g++
2477             PLATFORM=solaris-cc
2478             #PLATFORM=solaris-cc64
2479         fi
2480         PLATFORM_NOTES="
2481             - Also available for Solaris: solaris-g++ solaris-cc-64
2482         "
2483         ;;
2484      ReliantUNIX-*:*|SINIX-*:*)
2485         PLATFORM=reliant-cds
2486         #PLATFORM=reliant-cds-64
2487         PLATFORM_NOTES="
2488             - Also available for Reliant UNIX: reliant-cds-64
2489         "
2490         ;;
2491      CYGWIN*:*)
2492         PLATFORM=cygwin-g++
2493         ;;
2494      LynxOS*:*)
2495         PLATFORM=lynxos-g++
2496         ;;
2497      OpenUNIX:*)
2498         #PLATFORM=unixware-g++
2499         PLATFORM=unixware-cc
2500         PLATFORM_NOTES="
2501             - Also available for OpenUNIX: unixware-g++
2502         "
2503         ;;
2504      UnixWare:*)
2505         #PLATFORM=unixware-g++
2506         PLATFORM=unixware-cc
2507         PLATFORM_NOTES="
2508             - Also available for UnixWare: unixware-g++
2509         "
2510         ;;
2511      SCO_SV:*)
2512         #PLATFORM=sco-g++
2513         PLATFORM=sco-cc
2514         PLATFORM_NOTES="
2515             - Also available for SCO OpenServer: sco-g++
2516         "
2517         ;;
2518      UNIX_SV:*)
2519         PLATFORM=unixware-g++
2520         ;;
2521      QNX:*)
2522         PLATFORM=unsupported/qnx-g++
2523         ;;
2524      *)
2525         if [ "$OPT_HELP" != "yes" ]; then
2526             echo
2527             for p in $PLATFORMS; do
2528                 echo "    $relconf $* -platform $p"
2529             done
2530             echo >&2
2531             echo "   The build script does not currently recognize all" >&2
2532             echo "   platforms supported by Qt." >&2
2533             echo "   Rerun this script with a -platform option listed to" >&2
2534             echo "   set the system/compiler combination you use." >&2
2535             echo >&2
2536             exit 2
2537         fi
2538     esac
2539 fi
2540
2541 PLATFORMS=`find "$relpath/mkspecs/" -type f | grep -v qws | sed "s,$relpath/mkspecs/qws/,,"`
2542
2543 [ -z "$XPLATFORM" ] && XPLATFORM="$PLATFORM"
2544
2545 case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
2546 case "$XPLATFORM" in linux-g++-maemo) XPLATFORM_MAEMO=yes;; esac
2547
2548 if [ -d "$PLATFORM" ]; then
2549   QMAKESPEC="$PLATFORM"
2550 else
2551   QMAKESPEC="$relpath/mkspecs/${PLATFORM}"
2552 fi
2553 if [ -d "$XPLATFORM" ]; then
2554   XQMAKESPEC="$XPLATFORM"
2555 else
2556   XQMAKESPEC="$relpath/mkspecs/${XPLATFORM}"
2557 fi
2558 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2559     QT_CROSS_COMPILE=yes
2560     QMAKE_CONFIG="$QMAKE_CONFIG cross_compile"
2561 fi
2562
2563 if [ "$BUILD_ON_MAC" = "yes" ]; then
2564    if [ `basename $QMAKESPEC` = "macx-xcode" ] || [ `basename $XQMAKESPEC` = "macx-xcode" ]; then
2565       echo >&2
2566       echo "   Platform 'macx-xcode' should not be used when building Qt/Mac." >&2
2567       echo "   Please build Qt/Mac with 'macx-g++', then if you would like to" >&2
2568       echo "   use mac-xcode on your application code it can link to a Qt/Mac" >&2
2569       echo "   built with 'macx-g++'" >&2
2570       echo >&2
2571       exit 2
2572     fi
2573 fi
2574
2575 # check specified platforms are supported
2576 if [ '!' -d "$QMAKESPEC" ]; then
2577     echo
2578     echo "   The specified system/compiler is not supported:"
2579     echo
2580     echo "      $QMAKESPEC"
2581     echo
2582     echo "   Please see the README file for a complete list."
2583     echo
2584     exit 2
2585 fi
2586 if [ '!' -d "$XQMAKESPEC" ]; then
2587     echo
2588     echo "   The specified system/compiler is not supported:"
2589     echo
2590     echo "      $XQMAKESPEC"
2591     echo
2592     echo "   Please see the README file for a complete list."
2593     echo
2594     exit 2
2595 fi
2596 if [ '!' -f "${XQMAKESPEC}/qplatformdefs.h" ]; then
2597     echo
2598     echo "   The specified system/compiler port is not complete:"
2599     echo
2600     echo "      $XQMAKESPEC/qplatformdefs.h"
2601     echo
2602     echo "   Please contact qt-info@nokia.com."
2603     echo
2604     exit 2
2605 fi
2606
2607 # now look at the configs and figure out what platform we are config'd for
2608 [ "$PLATFORM_QPA" != "yes" ] \
2609   && [ -n "`getXQMakeConf QMAKE_LIBS_X11`" ] \
2610   && PLATFORM_X11=yes
2611 ### echo "$XQMAKESPEC" | grep mkspecs/qws >/dev/null 2>&1 && PLATFORM_QWS=yes
2612
2613 if [ "$UNAME_SYSTEM" = "SunOS" ]; then
2614     # Solaris 2.5 and 2.6 have libposix4, which was renamed to librt for Solaris 7 and up
2615     if echo $UNAME_RELEASE | grep "^5\.[5|6]" >/dev/null 2>&1; then
2616         sed -e "s,-lrt,-lposix4," "$XQMAKESPEC/qmake.conf" > "$XQMAKESPEC/qmake.conf.new"
2617         mv "$XQMAKESPEC/qmake.conf.new" "$XQMAKESPEC/qmake.conf"
2618     fi
2619 fi
2620
2621 #-------------------------------------------------------------------------------
2622 # determine the system architecture
2623 #-------------------------------------------------------------------------------
2624 if [ "$OPT_VERBOSE" = "yes" ]; then
2625     echo "Determining system architecture... ($UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_MACHINE)"
2626 fi
2627
2628 if [ "$CFG_RTOS_ENABLED" = "no" ]; then
2629     case `basename "$XPLATFORM"` in
2630         qnx-* | vxworks-*)
2631             echo ""
2632             echo "You are not licensed for Qt for `basename $XPLATFORM`."
2633             echo ""
2634             echo "Please contact qt-info@nokia.com to upgrade your license to"
2635             echo "include this platform, or install the Qt Open Source Edition"
2636             echo "if you intend to develop free software."
2637             exit 1
2638             ;;
2639     esac
2640 fi
2641
2642 if [ -z "${CFG_HOST_ARCH}" ]; then
2643     case "$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_MACHINE" in
2644     GNU:*:*)
2645         CFG_HOST_ARCH=`echo ${UNAME_MACHINE} | sed -e 's,[-/].*$,,'`
2646         case "$CFG_HOST_ARCH" in
2647             i?86)
2648                 CFG_HOST_ARCH=i386
2649                 ;;
2650         esac
2651         if [ "$OPT_VERBOSE" = "yes" ]; then
2652             echo "    GNU/Hurd ($CFG_HOST_ARCH)"
2653         fi
2654         ;;
2655     IRIX*:*:*)
2656         CFG_HOST_ARCH=`uname -p`
2657         if [ "$OPT_VERBOSE" = "yes" ]; then
2658             echo "    SGI ($CFG_HOST_ARCH)"
2659         fi
2660         ;;
2661     SunOS:5*:*)
2662         case "$UNAME_MACHINE" in
2663         sun4u*|sun4v*)
2664             if [ "$OPT_VERBOSE" = "yes" ]; then
2665                 echo "    Sun SPARC (sparc)"
2666             fi
2667             CFG_HOST_ARCH=sparc
2668             ;;
2669         i86pc)
2670             case "$PLATFORM" in
2671             *-64*)
2672                 if [ "$OPT_VERBOSE" = "yes" ]; then
2673                     echo "    64-bit AMD 80x86 (x86_64)"
2674                 fi
2675                 CFG_HOST_ARCH=x86_64
2676                 ;;
2677             *)
2678                 if [ "$OPT_VERBOSE" = "yes" ]; then
2679                     echo "    32-bit Intel 80x86 (i386)"
2680                 fi
2681                 CFG_HOST_ARCH=i386
2682                 ;;
2683             esac
2684         esac
2685         ;;
2686     AIX:*:00????????00)
2687         if [ "$OPT_VERBOSE" = "yes" ]; then
2688         echo "    64-bit IBM PowerPC (powerpc)"
2689         fi
2690         CFG_HOST_ARCH=powerpc
2691         ;;
2692     HP-UX:*:9000*)
2693         if [ "$OPT_VERBOSE" = "yes" ]; then
2694             echo "    HP PA-RISC (parisc)"
2695         fi
2696         CFG_HOST_ARCH=parisc
2697         ;;
2698     *:*:i?86)
2699         if [ "$OPT_VERBOSE" = "yes" ]; then
2700             echo "    32-bit Intel 80x86 (i386)"
2701         fi
2702         CFG_HOST_ARCH=i386
2703         ;;
2704     *:*:x86_64|*:*:amd64)
2705         if [ "$PLATFORM" = "linux-g++-32" -o "$PLATFORM" = "linux-icc-32" ]; then
2706             if [ "$OPT_VERBOSE" = "yes" ]; then
2707                 echo "    32 bit on 64-bit AMD 80x86 (i386)"
2708             fi
2709             CFG_HOST_ARCH=i386
2710         else
2711             if [ "$OPT_VERBOSE" = "yes" ]; then
2712                 echo "    64-bit AMD 80x86 (x86_64)"
2713             fi
2714             CFG_HOST_ARCH=x86_64
2715         fi
2716         ;;
2717     *:*:ppc)
2718         if [ "$OPT_VERBOSE" = "yes" ]; then
2719             echo "    32-bit PowerPC (powerpc)"
2720         fi
2721         CFG_HOST_ARCH=powerpc
2722         ;;
2723     *:*:ppc64)
2724         if [ "$OPT_VERBOSE" = "yes" ]; then
2725             echo "    64-bit PowerPC (powerpc)"
2726         fi
2727         CFG_HOST_ARCH=powerpc
2728         ;;
2729     *:*:s390*)
2730         if [ "$OPT_VERBOSE" = "yes" ]; then
2731             echo "    IBM S/390 (s390)"
2732         fi
2733         CFG_HOST_ARCH=s390
2734         ;;
2735     *:*:arm*)
2736         if [ "$OPT_VERBOSE" = "yes" ]; then
2737             echo "    ARM (arm)"
2738         fi
2739         CFG_HOST_ARCH=arm
2740         ;;
2741     Linux:*:sparc*)
2742         if [ "$OPT_VERBOSE" = "yes" ]; then
2743             echo "    Linux on SPARC"
2744         fi
2745         CFG_HOST_ARCH=sparc
2746         ;;
2747     QNX:*:*)
2748         case "$UNAME_MACHINE" in
2749         x86pc)
2750             if [ "$OPT_VERBOSE" = "yes" ]; then
2751                 echo "    QNX on Intel 80x86 (i386)"
2752             fi
2753             CFG_HOST_ARCH=i386
2754             ;;
2755         esac
2756         ;;
2757     *:*:*)
2758         if [ "$OPT_VERBOSE" = "yes" ]; then
2759             echo "    Trying '$UNAME_MACHINE'..."
2760         fi
2761         CFG_HOST_ARCH="$UNAME_MACHINE"
2762         ;;
2763     esac
2764 fi
2765
2766 if [ "$XPLATFORM_MINGW" = "yes" ]; then
2767     [ -z "$CFG_ARCH" ] && CFG_ARCH="windows"
2768 elif [ "$PLATFORM_MAC" = "yes" ] || [ -z "$CFG_ARCH" ]; then
2769     CFG_ARCH=$CFG_HOST_ARCH
2770 fi
2771
2772 # for compatibility
2773 COMPAT_ARCH=
2774 case "$CFG_ARCH" in
2775 arm*)
2776     # previously, armv6 was a different arch
2777     CFG_ARCH=arm
2778     COMPAT_ARCH=armv6
2779     ;;
2780 esac
2781
2782 if [ "$OPT_VERBOSE" = "yes" ]; then
2783     echo "System architecture: '$CFG_ARCH'"
2784     if [ "$PLATFORM_QPA" = "yes" ]; then
2785         echo "Host architecture: '$CFG_HOST_ARCH'"
2786     fi
2787 fi
2788
2789 #-------------------------------------------------------------------------------
2790 # tests that don't need qmake (must be run before displaying help)
2791 #-------------------------------------------------------------------------------
2792
2793 # detect build style
2794 if [ "$CFG_DEBUG" = "auto" ]; then
2795     if [ "$PLATFORM_MAC" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
2796         CFG_DEBUG_RELEASE=yes
2797         CFG_DEBUG=yes
2798     elif [ "$CFG_DEV" = "yes" ]; then
2799         CFG_DEBUG_RELEASE=no
2800         CFG_DEBUG=yes
2801     else
2802         CFG_DEBUG_RELEASE=no
2803         CFG_DEBUG=no
2804     fi
2805 fi
2806 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2807     QT_CONFIG="$QT_CONFIG build_all"
2808 fi
2809
2810 if [ -z "$PKG_CONFIG" ]; then
2811     # See if PKG_CONFIG is set in the mkspec:
2812     PKG_CONFIG=`getXQMakeConf PKG_CONFIG`
2813 fi
2814 if [ -z "$PKG_CONFIG" ]; then
2815     PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
2816 fi
2817
2818 # Work out if we can use pkg-config
2819 if [ "$QT_CROSS_COMPILE" = "yes" ]; then
2820     if [ "$QT_FORCE_PKGCONFIG" = "yes" ]; then
2821         echo >&2 ""
2822         echo >&2 "You have asked to use pkg-config and are cross-compiling."
2823         echo >&2 "Please make sure you have a correctly set-up pkg-config"
2824         echo >&2 "environment!"
2825         echo >&2 ""
2826         if [ -z "$PKG_CONFIG_PATH" ]; then
2827             echo >&2 ""
2828             echo >&2 "Warning: PKG_CONFIG_PATH has not been set.  This could mean"
2829             echo >&2 "the host compiler's .pc files will be used. This is probably"
2830             echo >&2 "not what you want."
2831             echo >&2 ""
2832         elif [ -z "$PKG_CONFIG_SYSROOT" ] && [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
2833             echo >&2 ""
2834             echo >&2 "Warning: PKG_CONFIG_SYSROOT/PKG_CONFIG_SYSROOT_DIR has not"
2835             echo >&2 "been set. This means your toolchain's .pc files must contain"
2836             echo >&2 "the paths to the toolchain's libraries & headers. If configure"
2837             echo >&2 "tests are failing, please check these files."
2838             echo >&2 ""
2839         fi
2840     else
2841         echo >&2 ""
2842         echo >&2 "You have not explicitly asked to use pkg-config and are cross-compiling."
2843         echo >&2 "pkg-config will not be used to automatically query cflag/lib parameters for"
2844         echo >&2 "dependencies"
2845         echo >&2 ""
2846         PKG_CONFIG=""
2847     fi
2848 fi
2849
2850 if [ ! -n "$PKG_CONFIG" ]; then
2851     QT_CONFIG="$QT_CONFIG no-pkg-config"
2852 fi
2853
2854 # pass on $CFG_SDK to the configure tests.
2855 if [ '!' -z "$CFG_SDK" ]; then
2856     MAC_CONFIG_TEST_COMMANDLINE="$MAC_CONFIG_TEST_COMMANDLINE -sdk $CFG_SDK"
2857 fi
2858
2859 # find the default framework value
2860 if [ "$BUILD_ON_MAC" = "yes" ]; then
2861     if [ "$CFG_FRAMEWORK" = "auto" ]; then
2862         CFG_FRAMEWORK="$CFG_SHARED"
2863     elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2864         echo
2865         echo "WARNING: Using static linking will disable the use of Mac frameworks."
2866         echo
2867         CFG_FRAMEWORK="no"
2868     fi
2869 else
2870     CFG_FRAMEWORK=no
2871 fi
2872
2873 QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`
2874
2875 TEST_COMPILER=$QMAKE_CONF_COMPILER
2876 if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
2877     if [ -z "$TEST_COMPILER" ]; then
2878         echo "ERROR: Cannot set the compiler for the configuration tests"
2879         exit 1
2880     fi
2881 fi
2882
2883 SYSROOT_FLAG=
2884 if [ -n "$CFG_SYSROOT" ]; then
2885     if compilerSupportsFlag --sysroot="$CFG_SYSROOT"; then
2886         [ "$OPT_VERBOSE" = "yes" ] && echo "Setting sysroot to: $CFG_SYSROOT"
2887         SYSROOT_FLAG="--sysroot=$CFG_SYSROOT"
2888     else
2889         echo >&2 "The compiler doesn't support the --sysroot flag, I can't set the sysroot"
2890         exit 1
2891     fi
2892 fi
2893 export SYSROOT_FLAG    # used by config.tests/unix/compile.test
2894
2895 # auto-detect precompiled header support
2896 if [ "$CFG_PRECOMPILE" = "auto" ]; then
2897     if "$unixtests/precomp.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2898        CFG_PRECOMPILE=no
2899     else
2900        CFG_PRECOMPILE=yes
2901     fi
2902 fi
2903
2904 #auto-detect DWARF2 on the mac
2905 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_MAC_DWARF2" = "auto" ]; then
2906     if "$mactests/dwarf2.test" "$TEST_COMPILER" "$OPT_VERBOSE" "$mactests" ; then
2907         CFG_MAC_DWARF2=no
2908     else
2909         CFG_MAC_DWARF2=yes
2910     fi
2911 fi
2912
2913 # don't autodetect support for separate debug info on objcopy when
2914 # cross-compiling as lots of toolchains seems to have problems with this
2915 if [ "$QT_CROSS_COMPILE" = "yes" ] && [ "$CFG_SEPARATE_DEBUG_INFO" = "auto" ]; then
2916     CFG_SEPARATE_DEBUG_INFO="no"
2917 fi
2918
2919 # auto-detect support for separate debug info in objcopy
2920 if [ "$CFG_SEPARATE_DEBUG_INFO" != "no" ] && [ "$CFG_SHARED" = "yes" ]; then
2921     TEST_COMPILER_CFLAGS=`getXQMakeConf QMAKE_CFLAGS`
2922     TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS`
2923     TEST_OBJCOPY=`getXQMakeConf QMAKE_OBJCOPY`
2924     COMPILER_WITH_FLAGS="$TEST_COMPILER $TEST_COMPILER_CXXFLAGS"
2925     COMPILER_WITH_FLAGS=`echo "$COMPILER_WITH_FLAGS" | sed -e "s%\\$\\$QMAKE_CFLAGS%$TEST_COMPILER_CFLAGS%g"`
2926     if "$unixtests/objcopy.test" "$COMPILER_WITH_FLAGS" "$TEST_OBJCOPY" "$OPT_VERBOSE"; then
2927        CFG_SEPARATE_DEBUG_INFO=no
2928     else
2929        case "$PLATFORM" in
2930        hpux-*)
2931            # binutils on HP-UX is buggy; default to no.
2932            CFG_SEPARATE_DEBUG_INFO=no
2933            ;;
2934        *)
2935            CFG_SEPARATE_DEBUG_INFO=yes
2936            ;;
2937        esac
2938     fi
2939 fi
2940
2941 # auto-detect -fvisibility support
2942 if [ "$CFG_REDUCE_EXPORTS" = "auto" ]; then
2943     if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2944        CFG_REDUCE_EXPORTS=no
2945     else
2946        CFG_REDUCE_EXPORTS=yes
2947     fi
2948 fi
2949
2950 # detect the availability of the -Bsymbolic-functions linker optimization
2951 if [ "$CFG_REDUCE_RELOCATIONS" != "no" ]; then
2952     if "$unixtests/bsymbolic_functions.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2953         CFG_REDUCE_RELOCATIONS=no
2954     else
2955         CFG_REDUCE_RELOCATIONS=yes
2956     fi
2957 fi
2958
2959 # auto-detect GNU make support
2960 if [ "$CFG_USE_GNUMAKE" = "auto" ] && "$MAKE" -v | grep "GNU Make" >/dev/null 2>&1; then
2961    CFG_USE_GNUMAKE=yes
2962 fi
2963
2964 # find the default framework value
2965 if [ "$BUILD_ON_MAC" = "yes" ]; then
2966     if [ "$CFG_FRAMEWORK" = "auto" ]; then
2967         CFG_FRAMEWORK="$CFG_SHARED"
2968     elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2969         echo
2970         echo "WARNING: Using static linking will disable the use of Mac frameworks."
2971         echo
2972         CFG_FRAMEWORK="no"
2973     fi
2974 else
2975     CFG_FRAMEWORK=no
2976 fi
2977
2978 # x11 tests are done after qmake is built
2979
2980
2981 #setup the build parts
2982 if [ -z "$CFG_BUILD_PARTS" ]; then
2983     CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS"
2984
2985     # don't build tools by default when cross-compiling
2986     if [ "$PLATFORM" != "$XPLATFORM" ]; then
2987         CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
2988     fi
2989 fi
2990 for nobuild in $CFG_NOBUILD_PARTS; do
2991     CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
2992 done
2993 if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then
2994 #    echo
2995 #    echo "WARNING: libs is a required part of the build."
2996 #    echo
2997     CFG_BUILD_PARTS="$CFG_BUILD_PARTS libs"
2998 fi
2999
3000 #-------------------------------------------------------------------------------
3001 # post process QT_INSTALL_* variables
3002 #-------------------------------------------------------------------------------
3003
3004 if [ -z "$QT_INSTALL_PREFIX" ]; then
3005     if [ "$CFG_DEV" = "yes" ]; then
3006         QT_INSTALL_PREFIX="$outpath" # In Development, we use sandboxed builds by default
3007     else
3008         QT_INSTALL_PREFIX="/usr/local/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Qt-$QT_VERSION
3009     fi
3010 fi
3011 QT_INSTALL_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PREFIX"`
3012
3013 if [ -z "$QT_INSTALL_DOCS" ]; then #default
3014     if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
3015         if [ "$BUILD_ON_MAC" = "yes" ]; then
3016             QT_INSTALL_DOCS="/Developer/Documentation/Qt"
3017         fi
3018     fi
3019     [ -z "$QT_INSTALL_DOCS" ] && QT_INSTALL_DOCS="$QT_INSTALL_PREFIX/doc" #fallback
3020
3021 fi
3022 QT_INSTALL_DOCS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DOCS"`
3023
3024 if [ -z "$QT_INSTALL_HEADERS" ]; then #default
3025     if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
3026         if [ "$BUILD_ON_MAC" = "yes" ]; then
3027             if [ "$CFG_FRAMEWORK" = "yes" ]; then
3028                 QT_INSTALL_HEADERS=
3029             fi
3030         fi
3031     fi
3032     [ -z "$QT_INSTALL_HEADERS" ] && QT_INSTALL_HEADERS="$QT_INSTALL_PREFIX/include"
3033
3034 fi
3035 QT_INSTALL_HEADERS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_HEADERS"`
3036
3037 if [ -z "$QT_INSTALL_LIBS" ]; then #default
3038     if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
3039         if [ "$BUILD_ON_MAC" = "yes" ]; then
3040             if [ "$CFG_FRAMEWORK" = "yes" ]; then
3041                 QT_INSTALL_LIBS="/Libraries/Frameworks"
3042             fi
3043         fi
3044     fi
3045     [ -z "$QT_INSTALL_LIBS" ] && QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib" #fallback
3046 fi
3047 QT_INSTALL_LIBS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBS"`
3048
3049 if [ -z "$QT_INSTALL_BINS" ]; then #default
3050     if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
3051         if [ "$BUILD_ON_MAC" = "yes" ]; then
3052             QT_INSTALL_BINS="/Developer/Applications/Qt"
3053         fi
3054     fi
3055     [ -z "$QT_INSTALL_BINS" ] && QT_INSTALL_BINS="$QT_INSTALL_PREFIX/bin" #fallback
3056 fi
3057 QT_INSTALL_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_BINS"`
3058
3059 if [ -z "$QT_INSTALL_PLUGINS" ]; then #default
3060     if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
3061         if [ "$BUILD_ON_MAC" = "yes" ]; then
3062             QT_INSTALL_PLUGINS="/Developer/Applications/Qt/plugins"
3063         fi
3064     fi
3065     [ -z "$QT_INSTALL_PLUGINS" ] && QT_INSTALL_PLUGINS="$QT_INSTALL_PREFIX/plugins" #fallback
3066 fi
3067 QT_INSTALL_PLUGINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PLUGINS"`
3068
3069 if [ -z "$QT_INSTALL_IMPORTS" ]; then #default
3070     if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
3071         if [ "$BUILD_ON_MAC" = "yes" ]; then
3072             QT_INSTALL_IMPORTS="/Developer/Applications/Qt/imports"
3073         fi
3074     fi
3075     [ -z "$QT_INSTALL_IMPORTS" ] && QT_INSTALL_IMPORTS="$QT_INSTALL_PREFIX/imports" #fallback
3076 fi
3077 QT_INSTALL_IMPORTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_IMPORTS"`
3078
3079 if [ -z "$QT_INSTALL_DATA" ]; then #default
3080     QT_INSTALL_DATA="$QT_INSTALL_PREFIX"
3081 fi
3082 QT_INSTALL_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DATA"`
3083
3084 if [ -z "$QT_INSTALL_TRANSLATIONS" ]; then #default
3085     QT_INSTALL_TRANSLATIONS="$QT_INSTALL_PREFIX/translations"
3086 fi
3087 QT_INSTALL_TRANSLATIONS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TRANSLATIONS"`
3088
3089 if [ -z "$QT_INSTALL_SETTINGS" ]; then #default
3090     if [ "$BUILD_ON_MAC" = "yes" ]; then
3091         QT_INSTALL_SETTINGS=/Library/Preferences/Qt
3092     else
3093         QT_INSTALL_SETTINGS=/etc/xdg
3094     fi
3095 fi
3096 QT_INSTALL_SETTINGS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_SETTINGS"`
3097
3098 if [ -z "$QT_INSTALL_EXAMPLES" ]; then #default
3099     if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
3100         if [ "$BUILD_ON_MAC" = "yes" ]; then
3101             QT_INSTALL_EXAMPLES="/Developer/Examples/Qt"
3102         fi
3103     fi
3104     [ -z "$QT_INSTALL_EXAMPLES" ] && QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples" #fallback
3105 fi
3106 QT_INSTALL_EXAMPLES=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_EXAMPLES"`
3107
3108 #tests
3109 if [ -z "$QT_INSTALL_TESTS" ]; then #default
3110     if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
3111         if [ "$BUILD_ON_MAC" = "yes" ]; then
3112             QT_INSTALL_TESTS="/Developer/Tests/Qt"
3113         fi
3114     fi
3115     [ -z "$QT_INSTALL_TESTS" ] && QT_INSTALL_TESTS="$QT_INSTALL_PREFIX/tests" #fallback
3116 fi
3117 QT_INSTALL_TESTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TESTS"`
3118
3119 #-------------------------------------------------------------------------------
3120 # help - interactive parts of the script _after_ this section please
3121 #-------------------------------------------------------------------------------
3122
3123 # next, emit a usage message if something failed.
3124 if [ "$OPT_HELP" = "yes" ]; then
3125     [ "x$ERROR" = "xyes" ] && echo
3126     if [ "$CFG_NIS" = "no" ]; then
3127         NSY=" "
3128         NSN="*"
3129     else
3130         NSY="*"
3131         NSN=" "
3132     fi
3133     if [ "$CFG_CUPS" = "no" ]; then
3134         CUY=" "
3135         CUN="*"
3136     else
3137         CUY="*"
3138         CUN=" "
3139     fi
3140     if [ "$CFG_ICONV" = "no" ]; then
3141         CIY=" "
3142         CIN="*"
3143     else
3144         CIY="*"
3145         CIN=" "
3146     fi
3147     if [ "$CFG_LARGEFILE" = "no" ]; then
3148         LFSY=" "
3149         LFSN="*"
3150     else
3151         LFSY="*"
3152         LFSN=" "
3153     fi
3154     if [ "$CFG_STL" = "auto" ] || [ "$CFG_STL" = "yes" ]; then
3155         SHY="*"
3156         SHN=" "
3157     else
3158         SHY=" "
3159         SHN="*"
3160     fi
3161     if [ "$CFG_PRECOMPILE" = "auto" ] || [ "$CFG_PRECOMPILE" = "no" ]; then
3162         PHY=" "
3163         PHN="*"
3164     else
3165         PHY="*"
3166         PHN=" "
3167     fi
3168
3169     if [ "$CFG_XCB" = "no" ]; then
3170         XCBY=" "
3171         XCBN="*"
3172     else
3173         XCBY="*"
3174         XCBN=" "
3175     fi
3176
3177     if [ "$CFG_WAYLAND" = "no" ]; then
3178         XWY=" "
3179         XWN="*"
3180     else
3181         XWY="*"
3182         XWN=" "
3183     fi
3184     if [ "$CFG_XINPUT2" = "no" ]; then
3185         X2Y=" "
3186         X2N="*"
3187     else
3188         X2Y="*"
3189         X2N=" "
3190     fi
3191
3192     cat <<EOF
3193 Usage:  $relconf [-h] [-prefix <dir>] [-prefix-install] [-bindir <dir>] [-libdir <dir>]
3194         [-docdir <dir>] [-headerdir <dir>] [-plugindir <dir> ] [-importdir <dir>] [-datadir <dir>]
3195         [-translationdir <dir>] [-sysconfdir <dir>] [-examplesdir <dir>] [-testsdir <dir>]
3196         [-release] [-debug] [-debug-and-release]
3197         [-developer-build] [-shared] [-static] [-no-fast] [-fast] [-no-largefile]
3198         [-largefile] [-no-exceptions] [-exceptions] [-no-accessibility]
3199         [-accessibility] [-no-stl] [-stl] [-no-sql-<driver>] [-sql-<driver>]
3200         [-plugin-sql-<driver>] [-system-sqlite]
3201         [-platform] [-D <string>] [-I <string>] [-L <string>] [-help]
3202         [-qt-zlib] [-system-zlib] [-no-gif] [-no-libpng] [-qt-libpng] [-system-libpng]
3203         [-no-libjpeg] [-qt-libjpeg] [-system-libjpeg] [-make <part>]
3204         [-nomake <part>] [-R <string>]  [-l <string>] [-no-rpath]  [-rpath] [-continue]
3205         [-verbose] [-v] [-silent] [-no-nis] [-nis] [-no-cups] [-cups] [-no-iconv]
3206         [-iconv] [-no-pch] [-pch] [-no-dbus] [-dbus] [-dbus-linked] [-no-gui]
3207         [-no-separate-debug-info] [-no-mmx] [-no-3dnow] [-no-sse] [-no-sse2]
3208         [-no-sse3] [-no-ssse3] [-no-sse4.1] [-no-sse4.2] [-no-avx] [-no-neon]
3209         [-qtnamespace <namespace>] [-qtlibinfix <infix>] [-separate-debug-info] [-armfpa]
3210         [-no-phonon-backend] [-phonon-backend] [-no-media-backend] [-media-backend]
3211         [-no-audio-backend] [-audio-backend]
3212         [-no-javascript-jit] [-javascript-jit] [-no-declarative-debug] [-declarative-debug]
3213         [-no-optimized-qmake] [-optimized-qmake]
3214         [-no-openssl] [-openssl] [-openssl-linked]
3215         [-no-gtkstyle] [-gtkstyle]
3216         [-qt-pcre] [-system-pcre]
3217         [additional platform specific options (see below)]
3218
3219
3220 Installation options:
3221
3222     -qpa ................ This will enable the QPA build.
3223                           QPA is a window system agnostic implementation of Qt.
3224
3225  These are optional, but you may specify install directories.
3226
3227     -prefix <dir> ...... This will install everything relative to <dir>
3228                          (default $QT_INSTALL_PREFIX)
3229 EOF
3230 if [ "$PLATFORM_QPA" = "yes" ]; then
3231 cat <<EOF
3232
3233     -hostprefix [dir] .. Tools and libraries needed when developing
3234                          applications are installed in [dir]. If [dir] is
3235                          not given, the current build directory will be used.
3236 EOF
3237 fi
3238 cat <<EOF
3239
3240   * -prefix-install .... Force a sandboxed "local" installation of
3241                          Qt. This will install into
3242                          $QT_INSTALL_PREFIX, if this option is
3243                          disabled then some platforms will attempt a
3244                          "system" install by placing default values to
3245                          be placed in a system location other than
3246                          PREFIX.
3247
3248  You may use these to separate different parts of the install:
3249
3250     -bindir <dir> ......... Executables will be installed to <dir>
3251                             (default PREFIX/bin)
3252     -libdir <dir> ......... Libraries will be installed to <dir>
3253                             (default PREFIX/lib)
3254     -docdir <dir> ......... Documentation will be installed to <dir>
3255                             (default PREFIX/doc)
3256     -headerdir <dir> ...... Headers will be installed to <dir>
3257                             (default PREFIX/include)
3258     -plugindir <dir> ...... Plugins will be installed to <dir>
3259                             (default PREFIX/plugins)
3260     -importdir <dir> ...... Imports for QML will be installed to <dir>
3261                             (default PREFIX/imports)
3262     -datadir <dir> ........ Data used by Qt programs will be installed to <dir>
3263                             (default PREFIX)
3264     -translationdir <dir> . Translations of Qt programs will be installed to <dir>
3265                             (default PREFIX/translations)
3266     -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
3267                             (default PREFIX/etc/settings)
3268     -examplesdir <dir> .... Examples will be installed to <dir>
3269                             (default PREFIX/examples)
3270     -testsdir <dir> ....... Tests will be installed to <dir>
3271                             (default PREFIX/tests)
3272
3273 Configure options:
3274
3275  The defaults (*) are usually acceptable. A plus (+) denotes a default value
3276  that needs to be evaluated. If the evaluation succeeds, the feature is
3277  included. Here is a short explanation of each option:
3278
3279  *  -release ........... Compile and link Qt with debugging turned off.
3280     -debug ............. Compile and link Qt with debugging turned on.
3281     -debug-and-release . Compile and link two versions of Qt, with and without
3282                          debugging turned on (Mac only).
3283
3284     -developer-build ... Compile and link Qt with Qt developer options (including auto-tests exporting)
3285
3286     -opensource ........ Compile and link the Open-Source Edition of Qt.
3287     -commercial ........ Compile and link the Commercial Edition of Qt.
3288
3289
3290  *  -shared ............ Create and use shared Qt libraries.
3291     -static ............ Create and use static Qt libraries.
3292
3293  *  -no-fast ........... Configure Qt normally by generating Makefiles for all
3294                          project files.
3295     -fast .............. Configure Qt quickly by generating Makefiles only for
3296                          library and subdirectory targets.  All other Makefiles
3297                          are created as wrappers, which will in turn run qmake.
3298
3299     -no-largefile ...... Disables large file support.
3300  +  -largefile ......... Enables Qt to access files larger than 4 GB.
3301
3302 EOF
3303 if [ "$PLATFORM_QPA" = "yes" ]; then
3304     EXCN="*"
3305     EXCY=" "
3306 else
3307     EXCN=" "
3308     EXCY="*"
3309 fi
3310 if [ "$CFG_DBUS" = "no" ]; then
3311     DBY=" "
3312     DBN="+"
3313 else
3314     DBY="+"
3315     DBN=" "
3316 fi
3317
3318     cat << EOF
3319  $EXCN  -no-exceptions ..... Disable exceptions on compilers that support it.
3320  $EXCY  -exceptions ........ Enable exceptions on compilers that support it.
3321
3322     -no-accessibility .. Do not compile Accessibility support.
3323  *  -accessibility ..... Compile Accessibility support.
3324
3325  $SHN  -no-stl ............ Do not compile STL support.
3326  $SHY  -stl ............... Compile STL support.
3327
3328     -no-sql-<driver> ... Disable SQL <driver> entirely.
3329     -qt-sql-<driver> ... Enable a SQL <driver> in the QtSql library, by default
3330                          none are turned on.
3331     -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
3332                          at run time.
3333
3334                          Possible values for <driver>:
3335                          [ $CFG_SQL_AVAILABLE ]
3336
3337     -system-sqlite ..... Use sqlite from the operating system.
3338
3339     -no-phonon-backend.. Do not build the platform phonon plugin.
3340  +  -phonon-backend..... Build the platform phonon plugin.
3341
3342     -no-javascript-jit . Do not build the JavaScriptCore JIT compiler.
3343  +  -javascript-jit .... Build the JavaScriptCore JIT compiler.
3344
3345     -no-declarative-debug ..... Do not build the declarative debugging support.
3346  +  -declarative-debug ....... Build the declarative debugging support.
3347
3348     -platform target ... The operating system and compiler you are building
3349                          on ($PLATFORM).
3350
3351                          See the README file for a list of supported
3352                          operating systems and compilers.
3353 EOF
3354
3355 if [ "${PLATFORM_QPA}" != "yes" ]; then
3356 cat << EOF
3357     -graphicssystem <sys> Sets an alternate graphics system. Available options are:
3358                            raster - Software rasterizer
3359                            opengl - Rendering via OpenGL, Experimental!
3360                            openvg - Rendering via OpenVG, Experimental!
3361
3362 EOF
3363 fi
3364
3365 cat << EOF
3366
3367     -no-mmx ............ Do not compile with use of MMX instructions.
3368     -no-3dnow .......... Do not compile with use of 3DNOW instructions.
3369     -no-sse ............ Do not compile with use of SSE instructions.
3370     -no-sse2 ........... Do not compile with use of SSE2 instructions.
3371     -no-sse3 ........... Do not compile with use of SSE3 instructions.
3372     -no-ssse3 .......... Do not compile with use of SSSE3 instructions.
3373     -no-sse4.1.......... Do not compile with use of SSE4.1 instructions.
3374     -no-sse4.2.......... Do not compile with use of SSE4.2 instructions.
3375     -no-avx ............ Do not compile with use of AVX instructions.
3376     -no-neon ........... Do not compile with use of NEON instructions.
3377
3378     -qtnamespace <name>  Wraps all Qt library code in 'namespace <name> {...}'.
3379     -qtlibinfix <infix>  Renames all libQt*.so to libQt*<infix>.so.
3380
3381     -testcocoon          Instrument Qt with the TestCocoon code coverage tool.
3382
3383     -D <string> ........ Add an explicit define to the preprocessor.
3384     -I <string> ........ Add an explicit include path.
3385     -L <string> ........ Add an explicit library path.
3386
3387     -help, -h .......... Display this information.
3388
3389 Third Party Libraries:
3390
3391     -qt-zlib ........... Use the zlib bundled with Qt.
3392  +  -system-zlib ....... Use zlib from the operating system.
3393                          See http://www.gzip.org/zlib
3394
3395     -no-gif ............ Do not compile GIF reading support.
3396
3397     -no-libpng ......... Do not compile PNG support.
3398     -qt-libpng ......... Use the libpng bundled with Qt.
3399  +  -system-libpng ..... Use libpng from the operating system.
3400                          See http://www.libpng.org/pub/png
3401
3402     -no-libjpeg ........ Do not compile JPEG support.
3403     -qt-libjpeg ........ Use the libjpeg bundled with Qt.
3404  +  -system-libjpeg .... Use libjpeg from the operating system.
3405                          See http://www.ijg.org
3406
3407     -no-openssl ........ Do not compile support for OpenSSL.
3408  +  -openssl ........... Enable run-time OpenSSL support.
3409     -openssl-linked .... Enabled linked OpenSSL support.
3410
3411     -qt-pcre ........... Use the PCRE library bundled with Qt.
3412  +  -system-pcre ....... Use the PCRE library from the operating system.
3413
3414 Additional options:
3415
3416     -make <part> ....... Add part to the list of parts to be built at make time.
3417                          ($QT_DEFAULT_BUILD_PARTS)
3418     -nomake <part> ..... Exclude part from the list of parts to be built.
3419
3420     -R <string> ........ Add an explicit runtime library path to the Qt
3421                          libraries.
3422     -l <string> ........ Add an explicit library.
3423
3424     -no-rpath .......... Do not use the library install path as a runtime
3425                          library path.
3426  +  -rpath ............. Link Qt libraries and executables using the library
3427                          install path as a runtime library path. Equivalent
3428                          to -R install_libpath
3429
3430     -continue .......... Continue as far as possible if an error occurs.
3431
3432     -verbose, -v ....... Print verbose information about each step of the
3433                          configure process.
3434
3435     -silent ............ Reduce the build output so that warnings and errors
3436                          can be seen more easily.
3437
3438  *  -no-optimized-qmake ... Do not build qmake optimized.
3439     -optimized-qmake ...... Build qmake optimized.
3440
3441     -no-gui ............ Don't build the Qt GUI library
3442
3443  $NSN  -no-nis ............ Do not compile NIS support.
3444  $NSY  -nis ............... Compile NIS support.
3445
3446  $CUN  -no-cups ........... Do not compile CUPS support.
3447  $CUY  -cups .............. Compile CUPS support.
3448                          Requires cups/cups.h and libcups.so.2.
3449
3450  $CIN  -no-iconv .......... Do not compile support for iconv(3).
3451  $CIY  -iconv ............. Compile support for iconv(3).
3452
3453  $PHN  -no-pch ............ Do not use precompiled header support.
3454  $PHY  -pch ............... Use precompiled header support.
3455
3456  $DBN  -no-dbus ........... Do not compile the QtDBus module.
3457  $DBY  -dbus .............. Compile the QtDBus module and dynamically load libdbus-1.
3458     -dbus-linked ....... Compile the QtDBus module and link to libdbus-1.
3459
3460     -reduce-relocations ..... Reduce relocations in the libraries through extra
3461                               linker optimizations (Qt/X11 and Qt for Embedded Linux only;
3462                               experimental; needs GNU ld >= 2.18).
3463
3464     -force-asserts ........ Force Q_ASSERT to be enabled even in release builds.
3465
3466 EOF
3467
3468 if [ "$CFG_SEPARATE_DEBUG_INFO" = "auto" ]; then
3469     if [ "$QT_CROSS_COMPILE" = "yes" ]; then
3470         SBY=""
3471         SBN="*"
3472     else
3473         SBY="*"
3474         SBN=" "
3475     fi
3476 elif [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
3477     SBY="*"
3478     SBN=" "
3479 else
3480     SBY=" "
3481     SBN="*"
3482 fi
3483
3484 if [ "$PLATFORM_X11" = "yes" -o "$PLATFORM_QPA" = "yes" ]; then
3485
3486     cat << EOF
3487
3488  $SBN  -no-separate-debug-info . Do not store debug information in a separate file.
3489  $SBY  -separate-debug-info .... Strip debug information into a separate .debug file.
3490
3491  $XCBN  -no-xcb ............ Do not compile Xcb (X protocol C-language Binding) support.
3492  $XCBY  -xcb ............... Compile Xcb support.
3493
3494  $XWN  -no-wayland......... Do not compile Wayland support.
3495  $XWY  -wayland  .......... Compile Wayland support.
3496
3497 EOF
3498
3499 fi # X11
3500
3501 if [ "$XPLATFORM_MAEMO" = "yes" ]; then
3502
3503     cat << EOF
3504
3505  $X2N  -no-xinput2......... Do not compile XInput2 support.
3506  $X2Y  -xinput2............ Compile XInput2 support.
3507
3508 EOF
3509
3510 fi
3511
3512 if [ "$PLATFORM_X11" = "yes" ]; then
3513     if [ "$CFG_SM" = "no" ]; then
3514         SMY=" "
3515         SMN="*"
3516     else
3517         SMY="*"
3518         SMN=" "
3519     fi
3520     if [ "$CFG_XSHAPE" = "no" ]; then
3521         SHY=" "
3522         SHN="*"
3523     else
3524         SHY="*"
3525         SHN=" "
3526     fi
3527     if [ "$CFG_XVIDEO" = "no" ]; then
3528         XVY=" "
3529         XVN="*"
3530     else
3531         XVY="*"
3532         XVN=" "
3533     fi
3534     if [ "$CFG_XINERAMA" = "no" ]; then
3535         XAY=" "
3536         XAN="*"
3537     else
3538         XAY="*"
3539         XAN=" "
3540     fi
3541     if [ "$CFG_FONTCONFIG" = "no" ]; then
3542         FCGY=" "
3543         FCGN="*"
3544     else
3545         FCGY="*"
3546         FCGN=" "
3547     fi
3548     if [ "$CFG_XCURSOR" = "no" ]; then
3549         XCY=" "
3550         XCN="*"
3551     else
3552         XCY="*"
3553         XCN=" "
3554     fi
3555     if [ "$CFG_XFIXES" = "no" ]; then
3556         XFY=" "
3557         XFN="*"
3558     else
3559         XFY="*"
3560         XFN=" "
3561     fi
3562     if [ "$CFG_XRANDR" = "no" ]; then
3563         XZY=" "
3564         XZN="*"
3565     else
3566         XZY="*"
3567         XZN=" "
3568     fi
3569     if [ "$CFG_XRENDER" = "no" ]; then
3570         XRY=" "
3571         XRN="*"
3572     else
3573         XRY="*"
3574         XRN=" "
3575     fi
3576     if [ "$CFG_MITSHM" = "no" ]; then
3577         XMY=" "
3578         XMN="*"
3579     else
3580         XMY="*"
3581         XMN=" "
3582     fi
3583     if [ "$CFG_XINPUT" = "no" ]; then
3584         XIY=" "
3585         XIN="*"
3586     else
3587         XIY="*"
3588         XIN=" "
3589     fi
3590     if [ "$CFG_XKB" = "no" ]; then
3591         XKY=" "
3592         XKN="*"
3593     else
3594         XKY="*"
3595         XKN=" "
3596     fi
3597     if [ "$CFG_IM" = "no" ]; then
3598         IMY=" "
3599         IMN="*"
3600     else
3601         IMY="*"
3602         IMN=" "
3603     fi
3604     cat << EOF
3605
3606 Qt/X11 only:
3607
3608     -no-gtkstyle ....... Do not build the GTK theme integration.
3609  +  -gtkstyle .......... Build the GTK theme integration.
3610
3611  *  -no-nas-sound ...... Do not compile in NAS sound support.
3612     -system-nas-sound .. Use NAS libaudio from the operating system.
3613                          See http://radscan.com/nas.html
3614
3615     -egl ............... Use EGL instead of GLX to manage contexts.
3616                          When building for desktop OpenGL, this option will
3617                          make Qt use EGL to manage contexts rather than the
3618                          GLX, which is the default. Note: For OpenGL ES, EGL
3619                          is always used.
3620
3621     -no-opengl ......... Do not support OpenGL.
3622  +  -opengl <api> ...... Enable OpenGL support.
3623                          With no parameter, this will auto-detect the "best"
3624                          OpenGL API to use. If desktop OpenGL is available, it
3625                          will be used. Use desktop or es2 for <api>
3626                          to force the use of the Desktop OpenGL or
3627                          OpenGL ES 2 APIs instead.
3628
3629      -no-openvg ........ Do not support OpenVG.
3630  +   -openvg ........... Enable OpenVG support.
3631                          Requires EGL support, typically supplied by an OpenGL
3632                          or other graphics implementation.
3633
3634  $SMN  -no-sm ............. Do not support X Session Management.
3635  $SMY  -sm ................ Support X Session Management, links in -lSM -lICE.
3636
3637  $SHN  -no-xshape ......... Do not compile XShape support.
3638  $SHY  -xshape ............ Compile XShape support.
3639                          Requires X11/extensions/shape.h.
3640
3641  $XVN  -no-xvideo ......... Do not compile XVideo support.
3642  $XVY  -xvideo ............ Compile XVideo support.
3643                          Requires X11/extensions/Xv.h & Xvlib.h.
3644
3645  $SHN  -no-xsync .......... Do not compile XSync support.
3646  $SHY  -xsync ............. Compile XSync support.
3647                          Requires X11/extensions/sync.h.
3648
3649  $XAN  -no-xinerama ....... Do not compile Xinerama (multihead) support.
3650  $XAY  -xinerama .......... Compile Xinerama support.
3651                          Requires X11/extensions/Xinerama.h and libXinerama.
3652                          By default, Xinerama support will be compiled if
3653                          available and the shared libraries are dynamically
3654                          loaded at runtime.
3655
3656  $XCN  -no-xcursor ........ Do not compile Xcursor support.
3657  $XCY  -xcursor ........... Compile Xcursor support.
3658                          Requires X11/Xcursor/Xcursor.h and libXcursor.
3659                          By default, Xcursor support will be compiled if
3660                          available and the shared libraries are dynamically
3661                          loaded at runtime.
3662
3663  $XFN  -no-xfixes ......... Do not compile Xfixes support.
3664  $XFY  -xfixes ............ Compile Xfixes support.
3665                          Requires X11/extensions/Xfixes.h and libXfixes.
3666                          By default, Xfixes support will be compiled if
3667                          available and the shared libraries are dynamically
3668                          loaded at runtime.
3669
3670  $XZN  -no-xrandr ......... Do not compile Xrandr (resize and rotate) support.
3671  $XZY  -xrandr ............ Compile Xrandr support.
3672                          Requires X11/extensions/Xrandr.h and libXrandr.
3673
3674  $XRN  -no-xrender ........ Do not compile Xrender support.
3675  $XRY  -xrender ........... Compile Xrender support.
3676                          Requires X11/extensions/Xrender.h and libXrender.
3677
3678  $XMN  -no-mitshm ......... Do not compile MIT-SHM support.
3679  $XMY  -mitshm ............ Compile MIT-SHM support.
3680                          Requires sys/ipc.h, sys/shm.h and X11/extensions/XShm.h
3681
3682  $FCGN  -no-fontconfig ..... Do not compile FontConfig (anti-aliased font) support.
3683  $FCGY  -fontconfig ........ Compile FontConfig support.
3684                          Requires fontconfig/fontconfig.h, libfontconfig,
3685                          freetype.h and libfreetype.
3686
3687  $XIN  -no-xinput ......... Do not compile Xinput support.
3688  $XIY  -xinput ............ Compile Xinput support. This also enabled tablet support
3689                          which requires IRIX with wacom.h and libXi or
3690                          XFree86 with X11/extensions/XInput.h and libXi.
3691
3692  $XKN  -no-xkb ............ Do not compile XKB (X KeyBoard extension) support.
3693  $XKY  -xkb ............... Compile XKB support.
3694
3695 EOF
3696 fi
3697
3698 if [ "$BUILD_ON_MAC" = "yes" ]; then
3699     cat << EOF
3700
3701 Qt/Mac only:
3702
3703     -Fstring ........... Add an explicit framework path.
3704     -fw string ......... Add an explicit framework.
3705
3706  *  -framework ......... Build Qt as a series of frameworks and
3707                          link tools against those frameworks.
3708     -no-framework ...... Do not build Qt as a series of frameworks.
3709
3710  *  -dwarf2 ............ Enable dwarf2 debugging symbols.
3711     -no-dwarf2 ......... Disable dwarf2 debugging symbols.
3712
3713     -arch <arch> ....... Build Qt for <arch>. Supported arch values: x86 x86_64.
3714                          Only one arch value can be specified.
3715
3716     -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
3717                          To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
3718
3719     -harfbuzz .......... Use HarfBuzz to do text layout instead of Core Text when possible.
3720  *  -no-harfbuzz ....... Disable HarfBuzz on Mac. It can still be enabled by setting
3721                          QT_ENABLE_HARFBUZZ environment variable.
3722
3723 EOF
3724 fi
3725
3726 if [ "$PLATFORM_QPA" = "yes" ]; then
3727     cat << EOF
3728 Qt for QPA only:
3729 EOF
3730 fi
3731
3732 if [ "$PLATFORM_QPA" = "yes" ]; then
3733     cat << EOF
3734
3735     -xplatform target ... The target platform when cross-compiling.
3736
3737     -no-feature-<feature> Do not compile in <feature>.
3738     -feature-<feature> .. Compile in <feature>. The available features
3739                           are described in src/corelib/global/qfeatures.txt
3740
3741     -armfpa ............. Target platform uses the ARM-FPA floating point format.
3742     -no-armfpa .......... Target platform does not use the ARM-FPA floating point format.
3743
3744                           The floating point format is usually autodetected by configure. Use this
3745                           to override the detected value.
3746
3747     -little-endian ...... Target platform is little endian (LSB first).
3748     -big-endian ......... Target platform is big endian (MSB first).
3749
3750     -host-little-endian . Host platform is little endian (LSB first).
3751     -host-big-endian .... Host platform is big endian (MSB first).
3752
3753                           You only need to specify the endianness when
3754                           cross-compiling, otherwise the host
3755                           endianness will be used.
3756
3757     -no-freetype ........ Do not compile in Freetype2 support.
3758     -qt-freetype ........ Use the libfreetype bundled with Qt.
3759  *  -system-freetype .... Use libfreetype from the operating system.
3760                           See http://www.freetype.org/
3761
3762     -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
3763                           default ($CFG_QCONFIG).
3764
3765     -no-opengl .......... Do not support OpenGL.
3766     -opengl <api> ....... Enable OpenGL ES support
3767                           With no parameter, this will attempt to auto-detect
3768                           OpenGL ES 2, or regular desktop OpenGL.
3769                           Use es2 for <api> to override auto-detection.
3770 EOF
3771 fi
3772
3773 if [ "$PLATFORM_QPA" = "yes" -o "$PLATFORM_X11" = "yes" ]; then
3774     if [ "$CFG_GLIB" = "no" ]; then
3775         GBY=" "
3776         GBN="+"
3777     else
3778         GBY="+"
3779         GBN=" "
3780     fi
3781     cat << EOF
3782  $GBN  -no-glib ........... Do not compile Glib support.
3783  $GBY  -glib .............. Compile Glib support.
3784
3785 EOF
3786 fi
3787
3788    [ "x$ERROR" = "xyes" ] && exit 1
3789    exit 0
3790 fi # Help
3791
3792
3793 # -----------------------------------------------------------------------------
3794 # LICENSING, INTERACTIVE PART
3795 # -----------------------------------------------------------------------------
3796
3797 if [ "$PLATFORM_QPA" = "yes" ]; then
3798     Platform="Qt Lighthouse"
3799 elif [ "$XPLATFORM_MINGW" = "yes" ]; then
3800     Platform="Qt for Windows"
3801 elif [ -n "`getXQMakeConf grep QMAKE_LIBS_X11`" ]; then
3802     PLATFORM_X11=yes
3803     Platform="Qt for Linux/X11"
3804 fi
3805
3806 echo
3807 echo "This is the $Platform ${EditionString} Edition."
3808 echo
3809
3810 if [ "$Edition" = "OpenSource" ]; then
3811     while true; do
3812         echo "You are licensed to use this software under the terms of"
3813         echo "the Lesser GNU General Public License (LGPL) versions 2.1."
3814         if [ -f "$relpath/LICENSE.GPL3" ]; then
3815             echo "You are also licensed to use this software under the terms of"
3816             echo "the GNU General Public License (GPL) versions 3."
3817             affix="either"
3818         else
3819             affix="the"
3820         fi
3821         echo
3822         if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3823             echo "You have already accepted the terms of the $LicenseType license."
3824             acceptance=yes
3825         else
3826             if [ -f "$relpath/LICENSE.GPL3" ]; then
3827                 echo "Type '3' to view the GNU General Public License version 3."
3828             fi
3829             echo "Type 'L' to view the Lesser GNU General Public License version 2.1."
3830             echo "Type 'yes' to accept this license offer."
3831             echo "Type 'no' to decline this license offer."
3832             echo
3833             echo $ECHO_N "Do you accept the terms of $affix license? $ECHO_C"
3834             read acceptance
3835         fi
3836         echo
3837         if [ "$acceptance" = "yes" ] || [ "$acceptance" = "y" ]; then
3838             break
3839         elif [ "$acceptance" = "no" ]; then
3840             echo "You are not licensed to use this software."
3841             echo
3842             exit 1
3843         elif [ "$acceptance" = "3" ]; then
3844             more "$relpath/LICENSE.GPL3"
3845         elif [ "$acceptance" = "L" ]; then
3846             more "$relpath/LICENSE.LGPL"
3847         fi
3848     done
3849 elif [ "$Edition" = "Preview" ]; then
3850     TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
3851     while true; do
3852
3853         if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3854             echo "You have already accepted the terms of the $LicenseType license."
3855             acceptance=yes
3856         else
3857             echo "You are licensed to use this software under the terms of"
3858             echo "the $TheLicense"
3859             echo
3860             echo "Type '?' to read the Preview License."
3861             echo "Type 'yes' to accept this license offer."
3862             echo "Type 'no' to decline this license offer."
3863             echo
3864             echo $ECHO_N "Do you accept the terms of the license? $ECHO_C"
3865             read acceptance
3866         fi
3867         echo
3868         if [ "$acceptance" = "yes" ]; then
3869             break
3870         elif [ "$acceptance" = "no" ] ;then
3871             echo "You are not licensed to use this software."
3872             echo
3873             exit 0
3874         elif [ "$acceptance" = "?" ]; then
3875             more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
3876         fi
3877     done
3878 elif [ "$Edition" != "OpenSource" ]; then
3879     if [ -n "$ExpiryDate" ]; then
3880         ExpiryDate=`echo $ExpiryDate | sed -e "s,-,,g" | tr -d "\n\r"`
3881         [ -z "$ExpiryDate" ] && ExpiryDate="0"
3882         Today=`date +%Y%m%d`
3883         if [ "$Today" -gt "$ExpiryDate" ]; then
3884             case "$LicenseType" in
3885             Commercial|Academic|Educational)
3886                 if [ "$QT_PACKAGEDATE" -gt "$ExpiryDate" ]; then
3887                     echo
3888                     echo "NOTICE  NOTICE  NOTICE  NOTICE"
3889                     echo
3890                     echo "  Your support and upgrade period has expired."
3891                     echo
3892                     echo "  You are no longer licensed to use this version of Qt."
3893                     echo "  Please contact qt-info@nokia.com to renew your support"
3894                     echo "  and upgrades for this license."
3895                     echo
3896                     echo "NOTICE  NOTICE  NOTICE  NOTICE"
3897                     echo
3898                     exit 1
3899                 else
3900                     echo
3901                     echo "WARNING  WARNING  WARNING  WARNING"
3902                     echo
3903                     echo "  Your support and upgrade period has expired."
3904                     echo
3905                     echo "  You may continue to use your last licensed release"
3906                     echo "  of Qt under the terms of your existing license"
3907                     echo "  agreement. But you are not entitled to technical"
3908                     echo "  support, nor are you entitled to use any more recent"
3909                     echo "  Qt releases."
3910                     echo
3911                     echo "  Please contact qt-info@nokia.com to renew your"
3912                     echo "  support and upgrades for this license."
3913                     echo
3914                     echo "WARNING  WARNING  WARNING  WARNING"
3915                     echo
3916                     sleep 3
3917                 fi
3918                 ;;
3919             Evaluation|*)
3920                 echo
3921                 echo "NOTICE  NOTICE  NOTICE  NOTICE"
3922                 echo
3923                 echo "  Your Evaluation license has expired."
3924                 echo
3925                 echo "  You are no longer licensed to use this software. Please"
3926                 echo "  contact qt-info@nokia.com to purchase license, or install"
3927                 echo "  the Qt Open Source Edition if you intend to develop free"
3928                 echo "  software."
3929                 echo
3930                 echo "NOTICE  NOTICE  NOTICE  NOTICE"
3931                 echo
3932                 exit 1
3933                 ;;
3934             esac
3935         fi
3936     fi
3937     TheLicense=`head -n 1 "$outpath/LICENSE"`
3938     while true; do
3939         if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3940             echo "You have already accepted the terms of the $TheLicense."
3941             acceptance=yes
3942         else
3943             echo "You are licensed to use this software under the terms of"
3944             echo "the $TheLicense."
3945             echo
3946             echo "Type '?' to view the $TheLicense."
3947             echo "Type 'yes' to accept this license offer."
3948             echo "Type 'no' to decline this license offer."
3949             echo
3950             echo $ECHO_N "Do you accept the terms of the $TheLicense? $ECHO_C"
3951             read acceptance
3952         fi
3953         echo
3954         if [ "$acceptance" = "yes" ]; then
3955             break
3956         elif [ "$acceptance" = "no" ]; then
3957             echo "You are not licensed to use this software."
3958             echo
3959             exit 1
3960         else [ "$acceptance" = "?" ]
3961             more "$outpath/LICENSE"
3962         fi
3963     done
3964 fi
3965
3966 # this should be moved somewhere else
3967 case "$PLATFORM" in
3968 aix-*)
3969     AIX_VERSION=`uname -v`
3970     if [ "$AIX_VERSION" -lt "5" ]; then
3971         QMakeVar add QMAKE_LIBS_X11 -lbind
3972     fi
3973     ;;
3974 *)
3975     ;;
3976 esac
3977
3978 #-------------------------------------------------------------------------------
3979 # generate qconfig.cpp
3980 #-------------------------------------------------------------------------------
3981 [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
3982
3983 LICENSE_USER_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_lcnsuser=$Licensee"`
3984 LICENSE_PRODUCTS_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_lcnsprod=$Edition"`
3985 PREFIX_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_prfxpath=$QT_INSTALL_PREFIX"`
3986 DOCUMENTATION_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_docspath=$QT_INSTALL_DOCS"`
3987 HEADERS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_hdrspath=$QT_INSTALL_HEADERS"`
3988 LIBRARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_libspath=$QT_INSTALL_LIBS"`
3989 BINARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_binspath=$QT_INSTALL_BINS"`
3990 PLUGINS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_plugpath=$QT_INSTALL_PLUGINS"`
3991 IMPORTS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_impspath=$QT_INSTALL_IMPORTS"`
3992 DATA_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_datapath=$QT_INSTALL_DATA"`
3993 TRANSLATIONS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_trnspath=$QT_INSTALL_TRANSLATIONS"`
3994 SETTINGS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_stngpath=$QT_INSTALL_SETTINGS"`
3995 EXAMPLES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_xmplpath=$QT_INSTALL_EXAMPLES"`
3996 TESTS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_tstspath=$QT_INSTALL_TESTS"`
3997
3998 TODAY=`date +%Y-%m-%d`
3999 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
4000 /* License Info */
4001 static const char qt_configure_licensee_str          [256 + 12] = "$LICENSE_USER_STR";
4002 static const char qt_configure_licensed_products_str [256 + 12] = "$LICENSE_PRODUCTS_STR";
4003
4004 /* Installation date */
4005 static const char qt_configure_installation          [12+11]    = "qt_instdate=$TODAY";
4006 EOF
4007
4008
4009 if [ ! -z "$QT_HOST_PREFIX" ]; then
4010     HOSTPREFIX_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_prfxpath=$QT_HOST_PREFIX"`
4011     HOSTDOCUMENTATION_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_docspath=$QT_HOST_PREFIX/doc"`
4012     HOSTHEADERS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_hdrspath=$QT_HOST_PREFIX/include"`
4013     HOSTLIBRARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_libspath=$QT_HOST_PREFIX/lib"`
4014     HOSTBINARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_binspath=$QT_HOST_PREFIX/bin"`
4015     HOSTPLUGINS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_plugpath=$QT_HOST_PREFIX/plugins"`
4016     HOSTIMPORTS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_impspath=$QT_HOST_PREFIX/IMPORTS"`
4017     HOSTDATA_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_datapath=$QT_HOST_PREFIX"`
4018     HOSTTRANSLATIONS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_trnspath=$QT_HOST_PREFIX/translations"`
4019     HOSTSETTINGS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_stngpath=$QT_INSTALL_SETTINGS"`
4020     HOSTEXAMPLES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_xmplpath=$QT_INSTALL_EXAMPLES"`
4021     HOSTTESTS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_tstspath=$QT_INSTALL_TESTS"`
4022
4023     cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
4024
4025 #if defined(QT_BOOTSTRAPPED) || defined(QT_BUILD_QMAKE)
4026 /* Installation Info */
4027 static const char qt_configure_prefix_path_str       [256 + 12] = "$HOSTPREFIX_PATH_STR";
4028 static const char qt_configure_documentation_path_str[256 + 12] = "$HOSTDOCUMENTATION_PATH_STR";
4029 static const char qt_configure_headers_path_str      [256 + 12] = "$HOSTHEADERS_PATH_STR";
4030 static const char qt_configure_libraries_path_str    [256 + 12] = "$HOSTLIBRARIES_PATH_STR";
4031 static const char qt_configure_binaries_path_str     [256 + 12] = "$HOSTBINARIES_PATH_STR";
4032 static const char qt_configure_plugins_path_str      [256 + 12] = "$HOSTPLUGINS_PATH_STR";
4033 static const char qt_configure_imports_path_str      [256 + 12] = "$HOSTIMPORTS_PATH_STR";
4034 static const char qt_configure_data_path_str         [256 + 12] = "$HOSTDATA_PATH_STR";
4035 static const char qt_configure_translations_path_str [256 + 12] = "$HOSTTRANSLATIONS_PATH_STR";
4036 static const char qt_configure_settings_path_str     [256 + 12] = "$HOSTSETTINGS_PATH_STR";
4037 static const char qt_configure_examples_path_str     [256 + 12] = "$HOSTEXAMPLES_PATH_STR";
4038 static const char qt_configure_tests_path_str        [256 + 12] = "$HOSTTESTS_PATH_STR";
4039 #else // QT_BOOTSTRAPPED
4040 EOF
4041 fi
4042
4043 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
4044 /* Installation Info */
4045 static const char qt_configure_prefix_path_str       [256 + 12] = "$PREFIX_PATH_STR";
4046 static const char qt_configure_documentation_path_str[256 + 12] = "$DOCUMENTATION_PATH_STR";
4047 static const char qt_configure_headers_path_str      [256 + 12] = "$HEADERS_PATH_STR";
4048 static const char qt_configure_libraries_path_str    [256 + 12] = "$LIBRARIES_PATH_STR";
4049 static const char qt_configure_binaries_path_str     [256 + 12] = "$BINARIES_PATH_STR";
4050 static const char qt_configure_plugins_path_str      [256 + 12] = "$PLUGINS_PATH_STR";
4051 static const char qt_configure_imports_path_str      [256 + 12] = "$IMPORTS_PATH_STR";
4052 static const char qt_configure_data_path_str         [256 + 12] = "$DATA_PATH_STR";
4053 static const char qt_configure_translations_path_str [256 + 12] = "$TRANSLATIONS_PATH_STR";
4054 static const char qt_configure_settings_path_str     [256 + 12] = "$SETTINGS_PATH_STR";
4055 static const char qt_configure_examples_path_str     [256 + 12] = "$EXAMPLES_PATH_STR";
4056 static const char qt_configure_tests_path_str        [256 + 12] = "$TESTS_PATH_STR";
4057 EOF
4058
4059 if [ ! -z "$QT_HOST_PREFIX" ]; then
4060     cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
4061 #endif // QT_BOOTSTRAPPED
4062
4063 EOF
4064 fi
4065
4066 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
4067 /* strlen( "qt_lcnsxxxx" ) == 12 */
4068 #define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;
4069 #define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;
4070 #define QT_CONFIGURE_PREFIX_PATH qt_configure_prefix_path_str + 12;
4071 #define QT_CONFIGURE_DOCUMENTATION_PATH qt_configure_documentation_path_str + 12;
4072 #define QT_CONFIGURE_HEADERS_PATH qt_configure_headers_path_str + 12;
4073 #define QT_CONFIGURE_LIBRARIES_PATH qt_configure_libraries_path_str + 12;
4074 #define QT_CONFIGURE_BINARIES_PATH qt_configure_binaries_path_str + 12;
4075 #define QT_CONFIGURE_PLUGINS_PATH qt_configure_plugins_path_str + 12;
4076 #define QT_CONFIGURE_IMPORTS_PATH qt_configure_imports_path_str + 12;
4077 #define QT_CONFIGURE_DATA_PATH qt_configure_data_path_str + 12;
4078 #define QT_CONFIGURE_TRANSLATIONS_PATH qt_configure_translations_path_str + 12;
4079 #define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12;
4080 #define QT_CONFIGURE_EXAMPLES_PATH qt_configure_examples_path_str + 12;
4081 #define QT_CONFIGURE_TESTS_PATH qt_configure_tests_path_str + 12;
4082 EOF
4083
4084 # avoid unecessary rebuilds by copying only if qconfig.cpp has changed
4085 if cmp -s "$outpath/src/corelib/global/qconfig.cpp" "$outpath/src/corelib/global/qconfig.cpp.new"; then
4086     rm -f "$outpath/src/corelib/global/qconfig.cpp.new"
4087 else
4088     [ -f "$outpath/src/corelib/global/qconfig.cpp" ] && chmod +w "$outpath/src/corelib/global/qconfig.cpp"
4089     mv "$outpath/src/corelib/global/qconfig.cpp.new" "$outpath/src/corelib/global/qconfig.cpp"
4090     chmod -w "$outpath/src/corelib/global/qconfig.cpp"
4091 fi
4092
4093 # -----------------------------------------------------------------------------
4094 if [ "$LicenseType" = "Evaluation" ]; then
4095     EVALKEY=`"$relpath/config.tests/unix/padstring" 524 "qt_qevalkey=$LicenseKeyExt"`
4096 elif echo "$D_FLAGS" | grep QT_EVAL >/dev/null 2>&1; then
4097     EVALKEY=`"$relpath/config.tests/unix/padstring" 524 "qt_qevalkey="`
4098 fi
4099
4100 if [ -n "$EVALKEY" ]; then
4101     rm -f "$outpath/src/corelib/global/qconfig_eval.cpp"
4102     cat > "$outpath/src/corelib/global/qconfig_eval.cpp" <<EOF
4103 /* Evaluation license key */
4104 static const volatile char qt_eval_key_data                   [512 + 12] = "$EVALKEY";
4105 EOF
4106     chmod -w "$outpath/src/corelib/global/qconfig_eval.cpp"
4107 fi
4108
4109
4110 # -----------------------------------------------------------------------------
4111 # build qmake
4112 # -----------------------------------------------------------------------------
4113
4114 # symlink includes
4115 if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
4116     SYNCQT_OPTS=
4117     [ "$CFG_DEV" = "yes" ] && SYNCQT_OPTS="$SYNCQT_OPTS -check-includes"
4118     if [ "$OPT_SHADOW" = "yes" ]; then
4119         "$outpath/bin/syncqt" $SYNCQT_OPTS "$relpath" || exit 1
4120     elif [ "$CFG_DEV" = "yes" ] || [ ! -d $relpath/include ] || [ -d $relpath/.git ]; then
4121         QTDIR="$relpath" perl "$outpath/bin/syncqt" $SYNCQT_OPTS || exit 1
4122     fi
4123 fi
4124
4125 # $1: input variable name (awk regexp)
4126 # $2: optional output variable name
4127 # $3: optional value transformation (sed command)
4128 # relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
4129 # is where the resulting variable is written to
4130 setBootstrapVariable()
4131 {
4132     getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
4133 }
4134
4135 # build qmake
4136 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
4137     echo "Creating qmake. Please wait..."
4138
4139     OLD_QCONFIG_H=
4140     QCONFIG_H="$outpath/src/corelib/global/qconfig.h"
4141     QMAKE_QCONFIG_H="${QCONFIG_H}.qmake"
4142     if [ -f "$QCONFIG_H" ]; then
4143          OLD_QCONFIG_H=$QCONFIG_H
4144          mv -f "$OLD_QCONFIG_H" "${OLD_QCONFIG_H}.old"
4145     fi
4146
4147     # create temporary qconfig.h for compiling qmake, if it doesn't exist
4148     # when building qmake, we use #defines for the install paths,
4149     # however they are real functions in the library
4150     if [ '!' -f "$QMAKE_QCONFIG_H" ]; then
4151         mkdir -p "$outpath/src/corelib/global"
4152         [ -f "$QCONFIG_H" ] && chmod +w "$QCONFIG_H"
4153         echo "/* All features enabled while building qmake */" >"$QMAKE_QCONFIG_H"
4154     fi
4155
4156     mv -f "$QMAKE_QCONFIG_H" "$QCONFIG_H"
4157
4158     #mkspecs/default is used as a (gasp!) default mkspec so QMAKESPEC needn't be set once configured
4159     rm -rf mkspecs/default
4160     ln -s `echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default
4161     # fix makefiles
4162     for mkfile in GNUmakefile Makefile; do
4163         EXTRA_LFLAGS=
4164         EXTRA_CFLAGS=
4165         in_mkfile="${mkfile}.in"
4166         if [ "$mkfile" = "Makefile" ]; then
4167 #           if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
4168 #               (cd qmake && qmake) >/dev/null 2>&1 && continue
4169 #           fi
4170             in_mkfile="${mkfile}.unix"
4171         fi
4172         in_mkfile="$relpath/qmake/$in_mkfile"
4173         mkfile="$outpath/qmake/$mkfile"
4174         if [ -f "$mkfile" ]; then
4175             [ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
4176             rm -f "$mkfile"
4177         fi
4178         [ -f "$in_mkfile" ] || continue
4179
4180         echo "########################################################################" > "$mkfile"
4181         echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
4182         echo "########################################################################" >> "$mkfile"
4183         EXTRA_OBJS=
4184         EXTRA_SRCS=
4185         EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
4186         EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
4187         EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
4188
4189         if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then
4190             EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
4191         fi
4192
4193         [ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM=
4194         setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM"
4195         setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM"
4196         setBootstrapVariable QMAKE_CFLAGS
4197         setBootstrapVariable QMAKE_CXXFLAGS
4198         setBootstrapVariable QMAKE_LFLAGS
4199
4200         if [ $QT_EDITION = "QT_EDITION_OPENSOURCE" ]; then
4201             EXTRA_CFLAGS="$EXTRA_CFLAGS -DQMAKE_OPENSOURCE_EDITION"
4202             EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DQMAKE_OPENSOURCE_EDITION"
4203         fi
4204         if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
4205             setBootstrapVariable QMAKE_CFLAGS_RELEASE
4206             setBootstrapVariable QMAKE_CXXFLAGS_RELEASE
4207             EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
4208             EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
4209         elif [ "$CFG_DEBUG" = "yes" ]; then
4210             setBootstrapVariable QMAKE_CFLAGS_DEBUG
4211             setBootstrapVariable QMAKE_CXXFLAGS_DEBUG
4212             EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
4213             EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
4214         fi
4215
4216         if [ -n "$RPATH_FLAGS" ] && [ -n "`getQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
4217             setBootstrapVariable "QMAKE_(LFLAGS_)?RPATH" QMAKE_LFLAGS_RPATH
4218             for rpath in $RPATH_FLAGS; do
4219                 EXTRA_LFLAGS="\$(QMAKE_LFLAGS_RPATH)\"$rpath\" $EXTRA_LFLAGS"
4220             done
4221         fi
4222         if [ "$BUILD_ON_MAC" = "yes" ]; then
4223             echo "export MACOSX_DEPLOYMENT_TARGET = 10.6" >> "$mkfile"
4224             echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
4225             echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
4226             EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
4227             EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
4228             EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
4229             EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
4230             EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
4231             if [ '!' -z "$CFG_SDK" ]; then
4232                 echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
4233                 echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
4234                 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(SDK_CFLAGS)"
4235                 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(SDK_CFLAGS)"
4236                 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(SDK_LFLAGS)"
4237             fi
4238         fi
4239         if [ '!' -z "$D_FLAGS" ]; then
4240             for DEF in $D_FLAGS; do
4241                 EXTRA_CFLAGS="$EXTRA_CFLAGS \"-D${DEF}\""
4242             done
4243         fi
4244         QMAKE_BIN_DIR="$QT_INSTALL_BINS"
4245         [ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
4246         QMAKE_DATA_DIR="$QT_INSTALL_DATA"
4247         [ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
4248         echo >>"$mkfile"
4249         adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
4250         adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
4251         adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
4252         sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
4253             -e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
4254             -e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
4255             -e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
4256             -e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
4257             -e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
4258             -e "s,@QMAKESPEC@,$adjqmakespec,g" -e "s,@QT_VERSION@,$QT_VERSION,g" "$in_mkfile" >>"$mkfile"
4259
4260         if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
4261             (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
4262             sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
4263             sed "s,$outpath,$adjoutpath,g" "$mkfile.tmp" >"$mkfile"
4264             rm "$mkfile.tmp"
4265         fi
4266     done
4267
4268     QMAKE_BUILD_ERROR=no
4269     (cd "$outpath/qmake"; "$MAKE") || QMAKE_BUILD_ERROR=yes
4270     [ '!' -z "$QCONFIG_H" ] && mv -f "$QCONFIG_H" "$QMAKE_QCONFIG_H" #move qmake's qconfig.h to qconfig.h.qmake
4271     [ '!' -z "$OLD_QCONFIG_H" ] && mv -f "${OLD_QCONFIG_H}.old" "$OLD_QCONFIG_H" #put back qconfig.h
4272     [ "$QMAKE_BUILD_ERROR" = "yes" ] && exit 2
4273 fi # Build qmake
4274
4275 #-------------------------------------------------------------------------------
4276 # tests that need qmake
4277 #-------------------------------------------------------------------------------
4278
4279 # detect availability of float math.h functions
4280 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/floatmath "floatmath" $L_FLAGS $I_FLAGS $l_FLAGS; then
4281     CFG_USE_FLOATMATH=yes
4282 else
4283     CFG_USE_FLOATMATH=no
4284 fi
4285
4286 # detect mmx support
4287 if [ "${CFG_MMX}" = "auto" ]; then
4288     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mmx "mmx" $L_FLAGS $I_FLAGS $l_FLAGS "-mmmx"; then
4289         CFG_MMX=yes
4290     else
4291         CFG_MMX=no
4292     fi
4293 fi
4294
4295 # detect 3dnow support
4296 if [ "${CFG_3DNOW}" = "auto" ]; then
4297     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/3dnow "3dnow" $L_FLAGS $I_FLAGS $l_FLAGS "-m3dnow"; then
4298         CFG_3DNOW=yes
4299     else
4300         CFG_3DNOW=no
4301     fi
4302 fi
4303
4304 # detect sse support
4305 if [ "${CFG_SSE}" = "auto" ]; then
4306     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sse "sse" $L_FLAGS $I_FLAGS $l_FLAGS "-msse"; then
4307         CFG_SSE=yes
4308     else
4309         CFG_SSE=no
4310     fi
4311 fi
4312
4313 # detect sse2 support
4314 if [ "${CFG_SSE2}" = "auto" ]; then
4315     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sse2 "sse2" $L_FLAGS $I_FLAGS $l_FLAGS "-msse2"; then
4316        CFG_SSE2=yes
4317     else
4318        CFG_SSE2=no
4319     fi
4320 fi
4321
4322 # detect sse3 support
4323 if [ "${CFG_SSE3}" = "auto" ]; then
4324     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sse3 "sse3" $L_FLAGS $I_FLAGS $l_FLAGS "-msse3"; then
4325        CFG_SSE3=yes
4326     else
4327        CFG_SSE3=no
4328     fi
4329 fi
4330
4331 # detect ssse3 support
4332 if [ "${CFG_SSSE3}" = "auto" ]; then
4333     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/ssse3 "ssse3" $L_FLAGS $I_FLAGS $l_FLAGS "-mssse3"; then
4334        CFG_SSSE3=yes
4335     else
4336        CFG_SSSE3=no
4337     fi
4338 fi
4339
4340 # detect sse4.1 support
4341 if [ "${CFG_SSE4_1}" = "auto" ]; then
4342     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sse4_1 "sse4_1" $L_FLAGS $I_FLAGS $l_FLAGS "-msse4.1"; then
4343        CFG_SSE4_1=yes
4344     else
4345        CFG_SSE4_1=no
4346     fi
4347 fi
4348
4349 # detect sse4.2 support
4350 if [ "${CFG_SSE4_2}" = "auto" ]; then
4351     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sse4_2 "sse4_2" $L_FLAGS $I_FLAGS $l_FLAGS "-msse4.2"; then
4352        CFG_SSE4_2=yes
4353     else
4354        CFG_SSE4_2=no
4355     fi
4356 fi
4357
4358 # detect avx support
4359 if [ "${CFG_AVX}" = "auto" ]; then
4360     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/avx "avx" $L_FLAGS $I_FLAGS $l_FLAGS "-mavx"; then
4361        CFG_AVX=yes
4362     else
4363        CFG_AVX=no
4364     fi
4365 fi
4366
4367 # check iWMMXt support
4368 if [ "$CFG_IWMMXT" = "yes" ]; then
4369     "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/iwmmxt "iwmmxt" $L_FLAGS $I_FLAGS $l_FLAGS "-mcpu=iwmmxt"
4370     if [ $? != "0" ]; then
4371         echo "The iWMMXt functionality test failed!"
4372         echo " Please make sure your compiler supports iWMMXt intrinsics!"
4373         exit 1
4374     fi
4375 fi
4376
4377 # detect neon support
4378 if [ "$CFG_ARCH" = "arm" ] && [ "${CFG_NEON}" = "auto" ]; then
4379     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/neon "neon" $L_FLAGS $I_FLAGS $l_FLAGS "-mfpu=neon"; then
4380         CFG_NEON=yes
4381     else
4382         CFG_NEON=no
4383     fi
4384 fi
4385
4386 [ "$XPLATFORM_MINGW" = "yes" ] && QMakeVar add styles "windowsxp windowsvista"
4387
4388 # detect zlib
4389 if [ "$CFG_ZLIB" = "no" ]; then
4390     # Note: Qt no longer support builds without zlib
4391     # So we force a "no" to be "auto" here.
4392     # If you REALLY really need no zlib support, you can still disable
4393     # it by doing the following:
4394     #   add "no-zlib" to mkspecs/qconfig.pri
4395     #   #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
4396     #
4397     # There's no guarantee that Qt will build under those conditions
4398
4399     CFG_ZLIB=auto
4400     ZLIB_FORCED=yes
4401 fi
4402 if [ "$CFG_ZLIB" = "auto" ]; then
4403     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/zlib "zlib" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4404        CFG_ZLIB=system
4405     else
4406        CFG_ZLIB=yes
4407     fi
4408 fi
4409
4410 if [ "$CFG_LARGEFILE" = "auto" ]; then
4411     #Large files should be enabled for all Linux systems
4412     CFG_LARGEFILE=yes
4413 fi
4414
4415 # detect how jpeg should be built
4416 if [ "$CFG_JPEG" = "auto" ]; then
4417     if [ "$CFG_SHARED" = "yes" ]; then
4418         CFG_JPEG=plugin
4419     else
4420         CFG_JPEG=yes
4421     fi
4422 fi
4423 # detect jpeg
4424 if [ "$CFG_LIBJPEG" = "auto" ]; then
4425     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/libjpeg "libjpeg" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4426        CFG_LIBJPEG=system
4427     else
4428        CFG_LIBJPEG=qt
4429     fi
4430 fi
4431
4432 # detect how gif should be built
4433 if [ "$CFG_GIF" = "auto" ]; then
4434     if [ "$CFG_SHARED" = "yes" ]; then
4435         CFG_GIF=plugin
4436     else
4437         CFG_GIF=yes
4438     fi
4439 fi
4440
4441 # detect png
4442 if [ "$CFG_LIBPNG" = "auto" ]; then
4443     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/libpng "libpng" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4444        CFG_LIBPNG=system
4445     else
4446        CFG_LIBPNG=qt
4447     fi
4448 fi
4449
4450 # detect accessibility
4451 if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
4452     CFG_ACCESSIBILITY=yes
4453 fi
4454
4455 # auto-detect SQL-modules support
4456 for _SQLDR in $CFG_SQL_AVAILABLE; do
4457         case $_SQLDR in
4458         mysql)
4459             if [ "$CFG_SQL_mysql" != "no" ]; then
4460                 [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
4461                 if [ -x "$CFG_MYSQL_CONFIG" ]; then
4462                     QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null`
4463                     QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null`
4464                     QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null`
4465                     QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
4466                     QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
4467                 fi
4468                 if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
4469                     if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4470                         echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
4471                         echo " You need MySql 4 or higher."
4472                         echo " If you believe this message is in error you may use the continue"
4473                         echo " switch (-continue) to $0 to continue."
4474                         exit 101
4475                     else
4476                         CFG_SQL_mysql="no"
4477                         QT_LFLAGS_MYSQL=""
4478                         QT_LFLAGS_MYSQL_R=""
4479                         QT_CFLAGS_MYSQL=""
4480                     fi
4481                 else
4482                     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mysql_r "MySQL (thread-safe)" $QT_LFLAGS_MYSQL_R $L_FLAGS $QT_CFLAGS_MYSQL $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4483                         QMakeVar add CONFIG use_libmysqlclient_r
4484                         if [ "$CFG_SQL_mysql" = "auto" ]; then
4485                             CFG_SQL_mysql=plugin
4486                         fi
4487                         QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
4488                     elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mysql "MySQL (thread-unsafe)" $QT_LFLAGS_MYSQL $L_FLAGS $QT_CFLAGS_MYSQL $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4489                         if [ "$CFG_SQL_mysql" = "auto" ]; then
4490                             CFG_SQL_mysql=plugin
4491                         fi
4492                     else
4493                         if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4494                             echo "MySQL support cannot be enabled due to functionality tests!"
4495                             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4496                             echo " If you believe this message is in error you may use the continue"
4497                             echo " switch (-continue) to $0 to continue."
4498                             exit 101
4499                         else
4500                             CFG_SQL_mysql=no
4501                             QT_LFLAGS_MYSQL=""
4502                             QT_LFLAGS_MYSQL_R=""
4503                             QT_CFLAGS_MYSQL=""
4504                         fi
4505                     fi
4506                 fi
4507             fi
4508             ;;
4509         psql)
4510             if [ "$CFG_SQL_psql" != "no" ]; then
4511                 # Be careful not to use native pg_config when cross building.
4512                 if [ "$XPLATFORM_MINGW" != "yes" ] && "$WHICH" pg_config >/dev/null 2>&1; then
4513                     QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null`
4514                     QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null`
4515                 fi
4516                 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
4517                 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
4518                 # But, respect PSQL_LIBS if set
4519                 [ -z "$PSQL_LIBS" ] || QT_LFLAGS_PSQL="$PSQL_LIBS"
4520                 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/psql "PostgreSQL" $QT_LFLAGS_PSQL $L_FLAGS $QT_CFLAGS_PSQL $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4521                     if [ "$CFG_SQL_psql" = "auto" ]; then
4522                         CFG_SQL_psql=plugin
4523                     fi
4524                 else
4525                     if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4526                         echo "PostgreSQL support cannot be enabled due to functionality tests!"
4527                         echo " Turn on verbose messaging (-v) to $0 to see the final report."
4528                         echo " If you believe this message is in error you may use the continue"
4529                         echo " switch (-continue) to $0 to continue."
4530                         exit 101
4531                     else
4532                         CFG_SQL_psql=no
4533                         QT_CFLAGS_PSQL=""
4534                         QT_LFLAGS_PSQL=""
4535                     fi
4536                 fi
4537             fi
4538         ;;
4539         odbc)
4540             if [ "$CFG_SQL_odbc" != "no" ]; then
4541                 if ( [ "$BUILD_ON_MAC" != "yes" ] || [ "$XPLATFORM_MINGW" = "yes" ] ) && "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/odbc "ODBC" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4542                     if [ "$CFG_SQL_odbc" = "auto" ]; then
4543                         CFG_SQL_odbc=plugin
4544                     fi
4545                 else
4546                     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/iodbc "iODBC" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4547                         QT_LFLAGS_ODBC="-liodbc"
4548                         if [ "$CFG_SQL_odbc" = "auto" ]; then
4549                             CFG_SQL_odbc=plugin
4550                         fi
4551                     else
4552                         if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4553                             echo "ODBC support cannot be enabled due to functionality tests!"
4554                             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4555                             echo " If you believe this message is in error you may use the continue"
4556                             echo " switch (-continue) to $0 to continue."
4557                             exit 101
4558                         else
4559                             CFG_SQL_odbc=no
4560                         fi
4561                     fi
4562                 fi
4563             fi
4564             ;;
4565         oci)
4566             if [ "$CFG_SQL_oci" != "no" ]; then
4567                 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/oci "OCI" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4568                     if [ "$CFG_SQL_oci" = "auto" ]; then
4569                         CFG_SQL_oci=plugin
4570                     fi
4571                 else
4572                     if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4573                         echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
4574                         echo " Turn on verbose messaging (-v) to $0 to see the final report."
4575                         echo " If you believe this message is in error you may use the continue"
4576                         echo " switch (-continue) to $0 to continue."
4577                         exit 101
4578                     else
4579                         CFG_SQL_oci=no
4580                     fi
4581                 fi
4582             fi
4583             ;;
4584         tds)
4585             if [ "$CFG_SQL_tds" != "no" ]; then
4586                 [ -z "$SYBASE" ] || QT_LFLAGS_TDS="-L$SYBASE/lib"
4587                 [ -z "$SYBASE_LIBS" ] || QT_LFLAGS_TDS="$QT_LFLAGS_TDS $SYBASE_LIBS"
4588                 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/tds "TDS" $QT_LFLAGS_TDS $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4589                     if [ "$CFG_SQL_tds" = "auto" ]; then
4590                         CFG_SQL_tds=plugin
4591                     fi
4592                 else
4593                     if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4594                         echo "TDS support cannot be enabled due to functionality tests!"
4595                         echo " Turn on verbose messaging (-v) to $0 to see the final report."
4596                         echo " If you believe this message is in error you may use the continue"
4597                         echo " switch (-continue) to $0 to continue."
4598                         exit 101
4599                     else
4600                         CFG_SQL_tds=no
4601                     fi
4602                 fi
4603             fi
4604             ;;
4605         db2)
4606             if [ "$CFG_SQL_db2" != "no" ]; then
4607                 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/db2 "DB2" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4608                     if [ "$CFG_SQL_db2" = "auto" ]; then
4609                         CFG_SQL_db2=plugin
4610                     fi
4611                 else
4612                     if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4613                         echo "ODBC support cannot be enabled due to functionality tests!"
4614                         echo " Turn on verbose messaging (-v) to $0 to see the final report."
4615                         echo " If you believe this message is in error you may use the continue"
4616                         echo " switch (-continue) to $0 to continue."
4617                         exit 101
4618                     else
4619                         CFG_SQL_db2=no
4620                     fi
4621                 fi
4622             fi
4623             ;;
4624         ibase)
4625             if [ "$CFG_SQL_ibase" != "no" ]; then
4626                 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/ibase "InterBase" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4627                     if [ "$CFG_SQL_ibase" = "auto" ]; then
4628                         CFG_SQL_ibase=plugin
4629                     fi
4630                 else
4631                     if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4632                         echo "InterBase support cannot be enabled due to functionality tests!"
4633                         echo " Turn on verbose messaging (-v) to $0 to see the final report."
4634                         echo " If you believe this message is in error you may use the continue"
4635                         echo " switch (-continue) to $0 to continue."
4636                         exit 101
4637                     else
4638                         CFG_SQL_ibase=no
4639                     fi
4640                 fi
4641             fi
4642             ;;
4643         sqlite2)
4644             if [ "$CFG_SQL_sqlite2" != "no" ]; then
4645                 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sqlite2 "SQLite2" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4646                     if [ "$CFG_SQL_sqlite2" = "auto" ]; then
4647                         CFG_SQL_sqlite2=plugin
4648                     fi
4649                 else
4650                     if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4651                         echo "SQLite2 support cannot be enabled due to functionality tests!"
4652                         echo " Turn on verbose messaging (-v) to $0 to see the final report."
4653                         echo " If you believe this message is in error you may use the continue"
4654                         echo " switch (-continue) to $0 to continue."
4655                         exit 101
4656                     else
4657                         CFG_SQL_sqlite2=no
4658                     fi
4659                 fi
4660             fi
4661             ;;
4662         sqlite)
4663             if [ "$CFG_SQL_sqlite" != "no" ]; then
4664                 SQLITE_AUTODETECT_FAILED="no"
4665                 if [ "$CFG_SQLITE" = "system" ]; then
4666                     if [ -n "$PKG_CONFIG" ]; then
4667                         QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
4668                         QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
4669                     fi
4670                     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sqlite "SQLite" $QT_LFLAGS_SQLITE $L_FLAGS $QT_CFLAGS_SQLITE $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4671                         if [ "$CFG_SQL_sqlite" = "auto" ]; then
4672                             CFG_SQL_sqlite=plugin
4673                         fi
4674                         QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
4675                     else
4676                         SQLITE_AUTODETECT_FAILED="yes"
4677                         CFG_SQL_sqlite=no
4678                     fi
4679                 elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
4680                     if [ "$CFG_SQL_sqlite" = "auto" ]; then
4681                             CFG_SQL_sqlite=plugin
4682                     fi
4683                 else
4684                     SQLITE_AUTODETECT_FAILED="yes"
4685                     CFG_SQL_sqlite=no
4686                 fi
4687
4688                 if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4689                     echo "SQLite support cannot be enabled due to functionality tests!"
4690                     echo " Turn on verbose messaging (-v) to $0 to see the final report."
4691                     echo " If you believe this message is in error you may use the continue"
4692                     echo " switch (-continue) to $0 to continue."
4693                     exit 101
4694                 fi
4695             fi
4696             ;;
4697         *)
4698             if [ "$OPT_VERBOSE" = "yes" ]; then
4699                 echo "unknown SQL driver: $_SQLDR"
4700             fi
4701             ;;
4702         esac
4703 done
4704
4705 # auto-detect NIS support
4706 if [ "$CFG_NIS" != "no" ]; then
4707     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/nis "NIS" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4708         CFG_NIS=yes
4709     else
4710         if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4711             echo "NIS support cannot be enabled due to functionality tests!"
4712             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4713             echo " If you believe this message is in error you may use the continue"
4714             echo " switch (-continue) to $0 to continue."
4715             exit 101
4716         else
4717             CFG_NIS=no
4718         fi
4719     fi
4720 fi
4721
4722 # auto-detect CUPS support
4723 if [ "$CFG_CUPS" != "no" ]; then
4724     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/cups "Cups" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4725         CFG_CUPS=yes
4726     else
4727         if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4728             echo "Cups support cannot be enabled due to functionality tests!"
4729             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4730             echo " If you believe this message is in error you may use the continue"
4731             echo " switch (-continue) to $0 to continue."
4732             exit 101
4733         else
4734             CFG_CUPS=no
4735         fi
4736     fi
4737 fi
4738
4739 # auto-detect iconv(3) support
4740 if [ "$CFG_ICONV" != "no" ]; then
4741     if [ "$XPLATFORM_MINGW" = "yes" ] || [ "$PLATFORM_QPA" = "yes" -a "$CFG_ICONV" = "auto" ]; then
4742         CFG_ICONV=no
4743     elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" "$OPT_VERBOSE" "$relpath" "$outpath" "config.tests/unix/iconv" "POSIX iconv" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4744         CFG_ICONV=yes
4745     elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" "$OPT_VERBOSE" "$relpath" "$outpath" "config.tests/unix/sun-libiconv" "SUN libiconv" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4746         CFG_ICONV=sun
4747     elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" "$OPT_VERBOSE" "$relpath" "$outpath" "config.tests/unix/gnu-libiconv" "GNU libiconv" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4748         CFG_ICONV=gnu
4749     else
4750         if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4751             echo "Iconv support cannot be enabled due to functionality tests!"
4752             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4753             echo " If you believe this message is in error you may use the continue"
4754             echo " switch (-continue) to $0 to continue."
4755             exit 101
4756         else
4757             CFG_ICONV=no
4758         fi
4759     fi
4760 fi
4761
4762 # auto-detect libdbus-1 support
4763 if [ "$CFG_DBUS" != "no" ]; then
4764     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
4765         QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
4766         QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
4767     fi
4768     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/dbus "D-Bus" $L_FLAGS $I_FLAGS $l_FLAGS $QT_CFLAGS_DBUS $QT_LIBS_DBUS $MAC_CONFIG_TEST_COMMANDLINE; then
4769         [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
4770         QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
4771         QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
4772     else
4773         if [ "$CFG_DBUS" = "auto" ]; then
4774             CFG_DBUS=no
4775         elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4776             # CFG_DBUS is "yes" or "linked" here
4777
4778             echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
4779             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4780             echo " If you believe this message is in error you may use the continue"
4781             echo " switch (-continue) to $0 to continue."
4782             exit 101
4783         fi
4784     fi
4785 fi
4786
4787 # X11/Lighthouse
4788 if [ "$PLATFORM_X11" = "yes" -o "$PLATFORM_QPA" = "yes" ]; then
4789
4790     # auto-detect Glib support
4791     if [ "$CFG_GLIB" != "no" ]; then
4792         if [ -n "$PKG_CONFIG" ]; then
4793             QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
4794             QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
4795         fi
4796         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/glib "Glib" $L_FLAGS $I_FLAGS $l_FLAGS $QT_CFLAGS_GLIB $QT_LIBS_GLIB $X11TESTS_FLAGS ; then
4797             CFG_GLIB=yes
4798             QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
4799             QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
4800         else
4801             if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4802                 echo "Glib support cannot be enabled due to functionality tests!"
4803                 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4804                 echo " If you believe this message is in error you may use the continue"
4805                 echo " switch (-continue) to $0 to continue."
4806                 exit 101
4807             else
4808                 CFG_GLIB=no
4809             fi
4810         fi
4811     fi
4812
4813     # ### Vestige
4814     if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
4815         if [ -n "$PKG_CONFIG" ]; then
4816             QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4817             QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4818         fi
4819         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/gstreamer "GStreamer" $L_FLAGS $I_FLAGS $l_FLAGS $QT_CFLAGS_GSTREAMER $QT_LIBS_GSTREAMER $X11TESTS_FLAGS; then
4820             CFG_GSTREAMER=yes
4821             QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
4822             QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
4823         else
4824             if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4825                 echo "Gstreamer support cannot be enabled due to functionality tests!"
4826                 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4827                 echo " If you believe this message is in error you may use the continue"
4828                 echo " switch (-continue) to $0 to continue."
4829                 exit 101
4830             else
4831                 CFG_GSTREAMER=no
4832             fi
4833         fi
4834     elif [ "$CFG_GLIB" = "no" ]; then
4835         CFG_GSTREAMER=no
4836     fi
4837
4838     # auto-detect libicu support
4839     if [ "$CFG_ICU" != "no" ]; then
4840         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/icu "ICU" $L_FLAGS $I_FLAGS $l_FLAGS; then
4841             [ "$CFG_ICU" = "auto" ] && CFG_ICU=yes
4842         else
4843             if [ "$CFG_ICU" = "auto" ]; then
4844                 CFG_ICU=no
4845             elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4846                 # CFG_ICU is "yes"
4847
4848                 echo "The ICU library support cannot be enabled."
4849                 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4850                 echo " If you believe this message is in error you may use the continue"
4851                 echo " switch (-continue) to $0 to continue."
4852                 exit 101
4853             fi
4854         fi
4855     fi
4856
4857     # Auto-detect PulseAudio support
4858     if [ "$CFG_PULSEAUDIO" != "no" ]; then
4859         if [ -n "$PKG_CONFIG" ]; then
4860             QT_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4861             QT_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4862         fi
4863         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/pulseaudio "PulseAudio" $L_FLAGS $I_FLAGS $l_FLAGS $QT_CFLAGS_PULSEAUDIO $QT_LIBS_PULSEAUDIO $X11TESTS_FLAGS; then
4864             CFG_PULSEAUDIO=yes
4865             QMakeVar set QT_CFLAGS_PULSEAUDIO "$QT_CFLAGS_PULSEAUDIO"
4866             QMakeVar set QT_LIBS_PULSEAUDIO "$QT_LIBS_PULSEAUDIO"
4867         else
4868             if [ "$CFG_PULSEAUDIO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4869                 echo "PulseAudio support cannot be enabled due to functionality tests!"
4870                 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4871                 echo " If you believe this message is in error you may use the continue"
4872                 echo " switch (-continue) to $0 to continue."
4873                 exit 101
4874             else
4875                 CFG_PULSEAUDIO=no
4876             fi
4877         fi
4878     fi
4879 fi # X11/Lighthouse
4880
4881 # X11
4882 if [ "$PLATFORM_X11" = "yes" -a "$CFG_GUI" != "no" ]; then
4883     x11tests="$relpath/config.tests/x11"
4884     X11TESTS_FLAGS=
4885
4886     # work around broken X11 headers when using GCC 2.95 or later
4887     NOTYPE=no
4888     "$x11tests/notype.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" && NOTYPE=yes
4889     if [ $NOTYPE = "yes" ]; then
4890         QMakeVar add QMAKE_CXXFLAGS -fpermissive
4891         X11TESTS_FLAGS="$X11TESTS_FLAGS -fpermissive"
4892     fi
4893
4894     # Check we actually have X11 :-)
4895     "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xlib "XLib" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS
4896     if [ $? != "0" ]; then
4897         echo "Basic XLib functionality test failed!"
4898         echo " You might need to modify the include and library search paths by editing"
4899         echo " QMAKE_INCDIR_X11 and QMAKE_LIBDIR_X11 in ${XQMAKESPEC}."
4900         exit 1
4901     fi
4902 fi
4903
4904 # X11/MINGW OpenGL
4905 if [ "$PLATFORM_X11" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
4906     # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4907     if [ "$CFG_GUI" = "no" ]; then
4908         if [ "$CFG_OPENGL" = "auto" ]; then
4909             CFG_OPENGL=no
4910         fi
4911         if [ "$CFG_OPENGL" != "no" ]; then
4912             echo "OpenGL enabled, but GUI disabled."
4913             echo " You might need to either enable the GUI or disable OpenGL"
4914             exit 1
4915         fi
4916     fi
4917     if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4918         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/opengl "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
4919             CFG_OPENGL=desktop
4920         elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles2 "OpenGL ES 2.x" $L_FLAGS $I_FLAGS $l_FLAGS; then
4921             CFG_OPENGL=es2
4922             if [ "$CFG_EGL" = "no" ]; then
4923                 CFG_EGL=auto
4924             fi
4925         else
4926             if [ "$CFG_OPENGL" = "yes" ]; then
4927                 echo "All the OpenGL functionality tests failed!"
4928                 echo " You might need to modify the include and library search paths by editing"
4929                 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4930                 echo " ${XQMAKESPEC}."
4931                 exit 1
4932             fi
4933             CFG_OPENGL=no
4934         fi
4935         case "$PLATFORM" in
4936         hpux*)
4937             # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4938             if [ "$CFG_OPENGL" = "desktop" ]; then
4939                 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/glxfbconfig "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS
4940                 if [ $? != "0" ]; then
4941                     QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4942                 fi
4943             fi
4944             ;;
4945         *)
4946             ;;
4947         esac
4948     elif [ "$CFG_OPENGL" = "es2" ]; then
4949         #OpenGL ES 2.x
4950         "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles2 "OpenGL ES 2.x" $L_FLAGS $I_FLAGS $l_FLAGS
4951         if [ $? != "0" ]; then
4952             echo "The OpenGL ES 2.0 functionality test failed!"
4953             echo " You might need to modify the include and library search paths by editing"
4954             echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4955             echo " ${XQMAKESPEC}."
4956             exit 1
4957         fi
4958     elif [ "$CFG_OPENGL" = "desktop" ]; then
4959         # Desktop OpenGL support
4960         "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/opengl "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS
4961         if [ $? != "0" ]; then
4962             echo "The OpenGL functionality test failed!"
4963             echo " You might need to modify the include and library search paths by editing"
4964             echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4965             echo " ${XQMAKESPEC}."
4966             exit 1
4967         fi
4968         case "$PLATFORM" in
4969         hpux*)
4970             # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4971             "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/glxfbconfig "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS
4972             if [ $? != "0" ]; then
4973                 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4974             fi
4975             ;;
4976         *)
4977             ;;
4978         esac
4979     fi
4980 fi # X11/MINGW OpenGL
4981
4982 # X11
4983 if [ "$PLATFORM_X11" = "yes" ]; then
4984     # auto-detect Xcursor support
4985     if [ "$CFG_XCURSOR" != "no" ]; then
4986         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xcursor "Xcursor" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
4987             if [ "$CFG_XCURSOR" != "runtime" ]; then
4988                 CFG_XCURSOR=yes;
4989             fi
4990         else
4991             if [ "$CFG_XCURSOR" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4992                 echo "Xcursor support cannot be enabled due to functionality tests!"
4993                 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4994                 echo " If you believe this message is in error you may use the continue"
4995                 echo " switch (-continue) to $0 to continue."
4996                 exit 101
4997             else
4998                 CFG_XCURSOR=no
4999             fi
5000         fi
5001     fi
5002
5003     # auto-detect Xfixes support
5004     if [ "$CFG_XFIXES" != "no" ]; then
5005         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xfixes "Xfixes" $L_FLAGS $I_FLAGS $X11TESTS_FLAGS; then
5006             if [ "$CFG_XFIXES" != "runtime" ]; then
5007                 CFG_XFIXES=yes;
5008             fi
5009         else
5010             if [ "$CFG_XFIXES" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5011                 echo "Xfixes support cannot be enabled due to functionality tests!"
5012                 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5013                 echo " If you believe this message is in error you may use the continue"
5014                 echo " switch (-continue) to $0 to continue."
5015                 exit 101
5016             else
5017                 CFG_XFIXES=no
5018             fi
5019         fi
5020     fi
5021
5022     # auto-detect Xrandr support (resize and rotate extension)
5023     if [ "$CFG_XRANDR" != "no" ]; then
5024         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xrandr "Xrandr" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
5025             if [ "$CFG_XRANDR" != "runtime" ]; then
5026             CFG_XRANDR=yes
5027             fi
5028         else
5029             if [ "$CFG_XRANDR" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5030                 echo "Xrandr support cannot be enabled due to functionality tests!"
5031                 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5032                 echo " If you believe this message is in error you may use the continue"
5033                 echo " switch (-continue) to $0 to continue."
5034                 exit 101
5035             else
5036                 CFG_XRANDR=no
5037             fi
5038         fi
5039     fi
5040
5041     # auto-detect Xrender support
5042     if [ "$CFG_XRENDER" != "no" ]; then
5043         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xrender "Xrender" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
5044             CFG_XRENDER=yes
5045         else
5046             if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5047                 echo "Xrender support cannot be enabled due to functionality tests!"
5048                 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5049                 echo " If you believe this message is in error you may use the continue"
5050                 echo " switch (-continue) to $0 to continue."
5051                 exit 101
5052             else
5053                 CFG_XRENDER=no
5054             fi
5055         fi
5056     fi
5057
5058     # auto-detect MIT-SHM support
5059     if [ "$CFG_MITSHM" != "no" ]; then
5060         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/mitshm "mitshm" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
5061             CFG_MITSHM=yes
5062         else
5063             if [ "$CFG_MITSHM" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5064                 echo "MITSHM support cannot be enabled due to functionality tests!"
5065                 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5066                 echo " If you believe this message is in error you may use the continue"
5067                 echo " switch (-continue) to $0 to continue."
5068                 exit 101
5069             else
5070                 CFG_MITSHM=no
5071             fi
5072         fi
5073     fi
5074
5075     # auto-detect FontConfig support
5076     if [ "$CFG_FONTCONFIG" != "no" ]; then
5077     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
5078         QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
5079         QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
5080     else
5081         QT_CFLAGS_FONTCONFIG=
5082         QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
5083     fi
5084     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/fontconfig "FontConfig" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then
5085             CFG_FONTCONFIG=yes
5086         QMakeVar set QMAKE_CFLAGS_X11 "$QT_CFLAGS_FONTCONFIG \$\$QMAKE_CFLAGS_X11"
5087         QMakeVar set QMAKE_LIBS_X11 "$QT_LIBS_FONTCONFIG \$\$QMAKE_LIBS_X11"
5088             CFG_LIBFREETYPE=system
5089         else
5090             if [ "$CFG_FONTCONFIG" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5091                 echo "FontConfig support cannot be enabled due to functionality tests!"
5092                 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5093                 echo " If you believe this message is in error you may use the continue"
5094                 echo " switch (-continue) to $0 to continue."
5095                 exit 101
5096             else
5097                 CFG_FONTCONFIG=no
5098             fi
5099         fi
5100     fi
5101
5102     # auto-detect Session Management support
5103     if [ "$CFG_SM" = "auto" ]; then
5104         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/sm "Session Management" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
5105             CFG_SM=yes
5106         else
5107             if [ "$CFG_SM" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5108                 echo "Session Management support cannot be enabled due to functionality tests!"
5109                 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5110                 echo " If you believe this message is in error you may use the continue"
5111                 echo " switch (-continue) to $0 to continue."
5112                 exit 101
5113             else
5114                 CFG_SM=no
5115             fi
5116         fi
5117     fi
5118
5119     # auto-detect SHAPE support
5120     if [ "$CFG_XSHAPE" != "no" ]; then
5121         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xshape "XShape" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
5122             CFG_XSHAPE=yes
5123         else
5124             if [ "$CFG_XSHAPE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5125                 echo "XShape support cannot be enabled due to functionality tests!"
5126                 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5127                 echo " If you believe this message is in error you may use the continue"
5128                 echo " switch (-continue) to $0 to continue."
5129                 exit 101
5130             else
5131                 CFG_XSHAPE=no
5132             fi
5133         fi
5134     fi
5135
5136     # auto-detect XVideo support
5137     if [ "$CFG_XVIDEO" != "no" ]; then
5138         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xvideo "XVideo" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
5139             CFG_XVIDEO=yes
5140         else
5141             if [ "$CFG_XVIDEO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5142                 echo "XVideo support cannot be enabled due to functionality tests!"
5143                 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5144                 echo " If you believe this message is in error you may use the continue"
5145                 echo " switch (-continue) to $0 to continue."
5146                 exit 101
5147             else
5148                 CFG_XVIDEO=no
5149             fi
5150         fi
5151     fi
5152
5153     # auto-detect XSync support
5154     if [ "$CFG_XSYNC" != "no" ]; then
5155         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xsync "XSync" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
5156             CFG_XSYNC=yes
5157         else
5158             if [ "$CFG_XSYNC" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5159                 echo "XSync support cannot be enabled due to functionality tests!"
5160                 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5161                 echo " If you believe this message is in error you may use the continue"
5162                 echo " switch (-continue) to $0 to continue."
5163                 exit 101
5164             else
5165                 CFG_XSYNC=no
5166             fi
5167         fi
5168     fi
5169
5170     # auto-detect Xinerama support
5171     if [ "$CFG_XINERAMA" != "no" ]; then
5172         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xinerama "Xinerama" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
5173             if [ "$CFG_XINERAMA" != "runtime" ]; then
5174                 CFG_XINERAMA=yes
5175             fi
5176         else
5177             if [ "$CFG_XINERAMA" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5178                 echo "Xinerama support cannot be enabled due to functionality tests!"
5179                 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5180                 echo " If you believe this message is in error you may use the continue"
5181                 echo " switch (-continue) to $0 to continue."
5182                 exit 101
5183             else
5184                 CFG_XINERAMA=no
5185             fi
5186         fi
5187     fi
5188
5189     # auto-detect Xinput support
5190     if [ "$CFG_XINPUT" != "no" ]; then
5191         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xinput "XInput" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
5192             if [ "$CFG_XINPUT" != "runtime" ]; then
5193                 CFG_XINPUT=yes
5194             fi
5195         else
5196             if [ "$CFG_XINPUT" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5197                 echo "Tablet and Xinput support cannot be enabled due to functionality tests!"
5198                 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5199                 echo " If you believe this message is in error you may use the continue"
5200                 echo " switch (-continue) to $0 to continue."
5201                 exit 101
5202             else
5203                 CFG_XINPUT=no
5204             fi
5205         fi
5206     fi
5207
5208     # auto-detect XKB support
5209     if [ "$CFG_XKB" != "no" ]; then
5210         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xkb "XKB" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
5211             CFG_XKB=yes
5212         else
5213             if [ "$CFG_XKB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5214                 echo "XKB support cannot be enabled due to functionality tests!"
5215                 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5216                 echo " If you believe this message is in error you may use the continue"
5217                 echo " switch (-continue) to $0 to continue."
5218                 exit 101
5219             else
5220                 CFG_XKB=no
5221             fi
5222         fi
5223     fi
5224
5225     if [ "$CFG_GLIB" = "yes" -a "$CFG_QGTKSTYLE" != "no" ]; then
5226         if [ -n "$PKG_CONFIG" ]; then
5227             QT_CFLAGS_QGTKSTYLE=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.10 atk 2>/dev/null`
5228             QT_LIBS_QGTKSTYLE=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null`
5229         fi
5230         if [ -n "$QT_CFLAGS_QGTKSTYLE" ] ; then
5231             CFG_QGTKSTYLE=yes
5232             QMakeVar set QT_CFLAGS_QGTKSTYLE "$QT_CFLAGS_QGTKSTYLE"
5233             QMakeVar set QT_LIBS_QGTKSTYLE "$QT_LIBS_QGTKSTYLE"
5234         else
5235             if [ "$CFG_QGTKSTYLE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5236                 echo "Gtk theme support cannot be enabled due to functionality tests!"
5237                 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5238                 echo " If you believe this message is in error you may use the continue"
5239                 echo " switch (-continue) to $0 to continue."
5240                 exit 101
5241             else
5242                 CFG_QGTKSTYLE=no
5243             fi
5244         fi
5245     elif [ "$CFG_GLIB" = "no" ]; then
5246         CFG_QGTKSTYLE=no
5247     fi
5248 fi # X11
5249
5250
5251 if [ "$BUILD_ON_MAC" = "yes" ]; then
5252     if [ "$CFG_PHONON" != "no" ]; then
5253         # Always enable Phonon (unless it was explicitly disabled)
5254         CFG_PHONON=yes
5255     fi
5256
5257     if [ "$CFG_COREWLAN" = "auto" ]; then
5258         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/mac/corewlan "CoreWlan" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
5259             CFG_COREWLAN=yes
5260         else
5261             CFG_COREWLAN=no
5262         fi
5263     fi
5264 fi
5265
5266
5267 if [ "$PLATFORM_QPA" = "yes" ]; then
5268     # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
5269     if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
5270         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengldesktop "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
5271             CFG_OPENGL=desktop
5272         elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles2 "OpenGL ES 2.x" $L_FLAGS $I_FLAGS $l_FLAGS; then
5273             CFG_OPENGL=es2
5274         else
5275             if [ "$CFG_OPENGL" = "yes" ]; then
5276                 echo "All the OpenGL functionality tests failed!"
5277                 echo " You might need to modify the include and library search paths by editing"
5278                 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
5279                 echo " ${XQMAKESPEC}."
5280                 exit 1
5281             fi
5282             CFG_OPENGL=no
5283         fi
5284     elif [ "$CFG_OPENGL" = "es2" ]; then
5285         #OpenGL ES 2.x
5286         if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists glesv2 2>/dev/null; then
5287             QMAKE_INCDIR_OPENGL_ES2=`$PKG_CONFIG --cflags-only-I glesv2 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
5288             QMAKE_LIBDIR_OPENGL_ES2=`$PKG_CONFIG --libs-only-L glesv2 2>/dev/null | sed -e 's,^-L,,g' -e 's, -L, ,g'`
5289             QMAKE_LIBS_OPENGL_ES2=`$PKG_CONFIG --libs glesv2 2>/dev/null`
5290             QMAKE_CFLAGS_OPENGL_ES2=`$PKG_CONFIG --cflags glesv2 2>/dev/null`
5291             QMakeVar set QMAKE_INCDIR_OPENGL_ES2 "$QMAKE_INCDIR_OPENGL_ES2"
5292             QMakeVar set QMAKE_LIBDIR_OPENGL_ES2 "$QMAKE_LIBDIR_OPENGL_ES2"
5293             QMakeVar set QMAKE_LIBS_OPENGL_ES2 "$QMAKE_LIBS_OPENGL_ES2"
5294         fi
5295
5296         "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles2 "OpenGL ES 2.x" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_LIBS_OPENGL_ES2 $QMAKE_CFLAGS_OPENGL_ES2
5297         if [ $? != "0" ]; then
5298             echo "The OpenGL ES 2.0 functionality test failed!"
5299             echo " You might need to modify the include and library search paths by editing"
5300             echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
5301             echo " ${XQMAKESPEC}."
5302             exit 1
5303         fi
5304     elif [ "$CFG_OPENGL" = "desktop" ]; then
5305         # Desktop OpenGL support
5306         "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengldesktop "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS
5307         if [ $? != "0" ]; then
5308             echo "The OpenGL functionality test failed!"
5309             echo " You might need to modify the include and library search paths by editing"
5310             echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
5311             echo " ${XQMAKESPEC}."
5312             exit 1
5313         fi
5314     fi
5315
5316     # auto-detect FontConfig support
5317     if [ "$CFG_FONTCONFIG" != "no" ]; then
5318         if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
5319             QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
5320             QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
5321         else
5322             QT_CFLAGS_FONTCONFIG=
5323             QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
5324         fi
5325         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/fontconfig "FontConfig" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then
5326                 QT_CONFIG="$QT_CONFIG fontconfig"
5327                 QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG"
5328                 QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG"
5329                 CFG_LIBFREETYPE=system
5330         fi
5331
5332     fi
5333
5334     # Save these for a check later
5335     ORIG_CFG_WAYLAND="$CFG_WAYLAND"
5336     ORIG_CFG_XCB="$CFG_XCB"
5337
5338     if [ "$CFG_WAYLAND" != "no" ]; then
5339         if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists wayland-client 2>/dev/null; then
5340             QMAKE_CFLAGS_WAYLAND=`$PKG_CONFIG --cflags wayland-client 2>/dev/null`
5341             QMAKE_LIBS_WAYLAND=`$PKG_CONFIG --libs wayland-client 2>/dev/null`
5342             QMAKE_INCDIR_WAYLAND=`$PKG_CONFIG --cflags-only-I wayland-client 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
5343             QMAKE_LIBDIR_WAYLAND=`$PKG_CONFIG --libs-only-L wayland-client 2>/dev/null | sed -e 's,^-L,,g' -e 's, -L, ,g'`
5344         fi
5345         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qpa/wayland "Wayland" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_CFLAGS_WAYLAND $QMAKE_LIBS_WAYLAND; then
5346             CFG_WAYLAND=yes
5347             QT_CONFIG="$QT_CONFIG wayland"
5348         elif [ "$CFG_WAYLAND" = "yes" ]; then
5349             echo "The Wayland functionality test failed!"
5350             exit 1
5351         else
5352             CFG_WAYLAND=no
5353             QMakeVar add DEFINES QT_NO_WAYLAND
5354         fi
5355     fi
5356
5357     if [ "$CFG_LIBUDEV" != "no" ]; then
5358         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/libudev "libudev" $L_FLAGS $I_FLAGS $l_FLAGS; then
5359             CFG_LIBUDEV=yes
5360             QT_CONFIG="$QT_CONFIG libudev"
5361         elif [ "$CFG_LIBUDEV" = "yes" ]; then
5362             echo "The libudev functionality test failed!"
5363             exit 1
5364         else
5365             CFG_LIBUDEV=no
5366             QMakeVar add DEFINES QT_NO_LIBUDEV
5367         fi
5368     fi
5369
5370     if [ "$CFG_EVDEV" != "no" ]; then
5371         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/evdev "evdev" $L_FLAGS $I_FLAGS $l_FLAGS; then
5372             CFG_EVDEV=yes
5373             QT_CONFIG="$QT_CONFIG evdev"
5374         elif [ "$CFG_EVDEV" = "yes" ]; then
5375             echo "The evdev functionality test failed!"
5376             exit 1
5377         else
5378             CFG_EVDEV=no
5379             QMakeVar add DEFINES QT_NO_EVDEV
5380         fi
5381     fi
5382
5383     # Check we actually have X11 :-)
5384     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xlib "XLib" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
5385         QT_CONFIG="$QT_CONFIG xlib"
5386     fi
5387
5388     # auto-detect Xrender support
5389     if [ "$CFG_XRENDER" != "no" ]; then
5390         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xrender "Xrender" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
5391             CFG_XRENDER=yes
5392             QT_CONFIG="$QT_CONFIG xrender"
5393         else
5394             if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5395                 echo "Xrender support cannot be enabled due to functionality tests!"
5396                 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5397                 echo " If you believe this message is in error you may use the continue"
5398                 echo " switch (-continue) to $0 to continue."
5399                 exit 101
5400             else
5401                 CFG_XRENDER=no
5402             fi
5403         fi
5404     fi
5405
5406     if [ "$CFG_XCB" != "no" ]; then
5407         if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xcb 2>/dev/null; then
5408             QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb 2>/dev/null`"
5409             QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb 2>/dev/null`"
5410         fi
5411         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qpa/xcb "xcb" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
5412             CFG_XCB=yes
5413             if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qpa/xcb-render "xcb-render" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
5414                 QT_CONFIG="$QT_CONFIG xcb-render"
5415             fi
5416
5417             if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qpa/xcb-poll-for-queued-event "xcb-poll-for-queued-event" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
5418                 CFG_XCB_LIMITED=no
5419                 QT_CONFIG="$QT_CONFIG xcb-poll-for-queued-event"
5420             fi
5421
5422             if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qpa/xcb-xlib "xcb-xlib" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
5423                 QT_CONFIG="$QT_CONFIG xcb-xlib"
5424             fi
5425
5426             if [ "$XPLATFORM_MAEMO" = "yes" ]; then
5427                 # auto-detect XInput2/Xinput support
5428                 if [ "$CFG_XINPUT2" != "no" ]; then
5429                     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xinput2 "XInput2" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
5430                     CFG_XINPUT2=yes
5431                     CFG_XINPUT=no
5432                     else
5433                         if [ "$CFG_XINPUT2" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5434                             echo "XInput2 support cannot be enabled due to functionality tests!"
5435                             echo " Turn on verbose messaging (-v) to $0 to see the final report."
5436                             echo " If you believe this message is in error you may use the continue"
5437                             echo " switch (-continue) to $0 to continue."
5438                             exit 101
5439                         else
5440                             CFG_XINPUT2=no
5441                         fi
5442                     fi
5443                 fi
5444             fi
5445         else
5446             if [ "$CFG_XCB" = "yes" ]; then
5447                 echo "The XCB test failed!"
5448                 echo " You might need to install dependency packages."
5449                 echo " See src/plugins/platforms/xcb/README."
5450                 exit 1
5451             fi
5452             CFG_XCB=no
5453             QMakeVar add DEFINES QT_NO_XCB
5454         fi
5455     fi
5456
5457     # Detect libxkbcommon
5458     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
5459         QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
5460         QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon 2>/dev/null`"
5461         if [ "$CFG_WAYLAND" = "yes" ]; then
5462             QMAKE_CFLAGS_WAYLAND="$QMAKE_CFLAGS_WAYLAND $QMAKE_CFLAGS_XKBCOMMON"
5463             QMAKE_LIBS_WAYLAND="$QMAKE_LIBS_WAYLAND $QMAKE_LIBS_XKBCOMMON"
5464         fi
5465         QMAKE_CFLAGS_XCB="$QMAKE_CFLAGS_XCB $QMAKE_CFLAGS_XKBCOMMON"
5466         QMAKE_LIBS_XCB="$QMAKE_LIBS_XCB $QMAKE_LIBS_XKBCOMMON"
5467     else
5468         if [ "$CFG_WAYLAND" = "yes" ]; then
5469             QMAKE_DEFINES_WAYLAND=QT_NO_WAYLAND_XKB
5470         fi
5471         QMAKE_DEFINES_XCB=QT_NO_XCB_XKB
5472     fi
5473
5474     # QMake variables set here override those in the mkspec. Therefore we only set the variables here if they are not zero.
5475     if [ -n "$QMAKE_CFLAGS_WAYLAND" ] || [ -n "$QMAKE_LIBS_WAYLAND" ]; then
5476         QMakeVar set QMAKE_CFLAGS_WAYLAND "$QMAKE_CFLAGS_WAYLAND"
5477         QMakeVar set QMAKE_INCDIR_WAYLAND "$QMAKE_INCDIR_WAYLAND"
5478         QMakeVar set QMAKE_LIBS_WAYLAND "$QMAKE_LIBS_WAYLAND"
5479         QMakeVar set QMAKE_LIBDIR_WAYLAND "$QMAKE_LIBDIR_WAYLAND"
5480         QMakeVar set QMAKE_DEFINES_WAYLAND " $QMAKE_DEFINES_WAYLAND"
5481     fi
5482
5483     if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then
5484         QMakeVar set QMAKE_CFLAGS_XCB "$QMAKE_CFLAGS_XCB"
5485         QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB"
5486         QMakeVar set QMAKE_DEFINES_XCB "$QMAKE_DEFINES_XCB"
5487     fi
5488
5489     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/mac/coreservices "CoreServices" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
5490         QT_CONFIG="$QT_CONFIG coreservices"
5491     else
5492         QMakeVar add DEFINES QT_NO_CORESERVICES
5493     fi
5494
5495     if [ "$PLATFORM_QPA" = "yes" ] && [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ]; then
5496         if [ "$CFG_XCB" = "no" ] && [ "$CFG_WAYLAND" = "no" ]; then
5497             if [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_WAYLAND" = "auto" ]; then
5498                 echo "No QPA platform plugin enabled!"
5499                 echo " If you really want to build without a QPA platform plugin you must pass"
5500                 echo " -no-xcb and -no-wayland to configure. Doing this will produce a Qt that"
5501                 echo " cannot run GUI applications."
5502                 echo " The dependencies needed for xcb to build are listed in"
5503                 echo " src/plugins/platforms/xcb/README"
5504                 exit 1
5505             fi
5506         fi
5507     fi
5508
5509 fi
5510
5511 EGL_VARIANT=none
5512 # EGL Support
5513 if [ "$PLATFORM_X11" = "yes" ]; then
5514     if [ "$CFG_EGL" != "no" ]; then
5515         # detect EGL support
5516         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/egl" "EGL (EGL/egl.h)" $L_FLAGS $I_FLAGS $l_FLAGS; then
5517             # EGL specified by QMAKE_*_EGL, included with <EGL/egl.h>
5518             EGL_VARIANT=regular
5519             CFG_EGL=yes
5520         fi
5521
5522         if [ "$EGL_VARIANT" = "none" ]; then
5523             if [ "$CFG_EGL" = "yes" ]; then
5524                 echo "The EGL functionality test failed!"
5525                 echo " EGL is required for OpenGL ES to manage contexts & surfaces."
5526                 echo " You might need to modify the include and library search paths by editing"
5527                 echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in"
5528                 echo " ${XQMAKESPEC}."
5529                 exit 1
5530             fi
5531             CFG_EGL=no
5532             # If QtOpenGL would be built against OpenGL ES, disable it as we can't to that if EGL is missing
5533             if [ "$CFG_OPENGL" = "es2" ]; then
5534                 CFG_OPENGL=no
5535             fi
5536         fi
5537     fi
5538 fi
5539
5540 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_PHONON" != "no" ] && CFG_PHONON="yes"
5541
5542 # freetype support
5543 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_LIBFREETYPE" = "auto" ] && CFG_LIBFREETYPE=no
5544 if [ "$CFG_LIBFREETYPE" = "auto" ]; then
5545     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/freetype "FreeType" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
5546         CFG_LIBFREETYPE=system
5547     else
5548         CFG_LIBFREETYPE=yes
5549     fi
5550 fi
5551
5552 if [ "$CFG_ENDIAN" = "auto" ]; then
5553     if [ "$XPLATFORM_MINGW" = "yes" ]; then
5554         CFG_ENDIAN="Q_LITTLE_ENDIAN"
5555     else
5556         "$unixtests/endian.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "QMAKE_LFLAGS+=$SYSROOT_FLAG"
5557         F="$?"
5558         if [ "$F" -eq 0 ]; then
5559             CFG_ENDIAN="Q_LITTLE_ENDIAN"
5560         elif [ "$F" -eq 1 ]; then
5561             CFG_ENDIAN="Q_BIG_ENDIAN"
5562         else
5563             echo
5564             echo "The target system byte order could not be detected!"
5565             echo "Turn on verbose messaging (-v) to see the final report."
5566             echo "You can use the -little-endian or -big-endian switch to"
5567             echo "$0 to continue."
5568             exit 101
5569         fi
5570     fi
5571 fi
5572
5573 if [ "$CFG_HOST_ENDIAN" = "auto" ]; then
5574     if [ "$BUILD_ON_MAC" = "yes" ]; then
5575         true #leave as auto
5576     else
5577         "$unixtests/endian.test" "$QMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5578         F="$?"
5579         if [ "$F" -eq 0 ]; then
5580             CFG_HOST_ENDIAN="Q_LITTLE_ENDIAN"
5581         elif [ "$F" -eq 1 ]; then
5582             CFG_HOST_ENDIAN="Q_BIG_ENDIAN"
5583         else
5584             echo
5585             echo "The host system byte order could not be detected!"
5586             echo "Turn on verbose messaging (-v) to see the final report."
5587             echo "You can use the -host-little-endian or -host-big-endian switch to"
5588             echo "$0 to continue."
5589             exit 101
5590         fi
5591     fi
5592 fi
5593
5594 if [ "$CFG_ARMFPA" != "auto" ]; then
5595     if [ "$CFG_ARMFPA" = "yes" ]; then
5596         if [ "$CFG_ENDIAN" = "Q_LITTLE_ENDIAN" ]; then
5597             CFG_DOUBLEFORMAT="Q_DOUBLE_LITTLE_SWAPPED"
5598         else
5599             CFG_DOUBLEFORMAT="Q_DOUBLE_BIG_SWAPPED"
5600         fi
5601     else
5602         CFG_DOUBLEFORMAT="normal"
5603     fi
5604 fi
5605
5606
5607 if [ "$CFG_DOUBLEFORMAT" = "auto" ]; then
5608     if [ "$PLATFORM_QPA" = "yes" ]; then
5609         CFG_DOUBLEFORMAT=normal
5610     else
5611         "$unixtests/doubleformat.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5612         F="$?"
5613         if [ "$F" -eq 10 ] && [ "$CFG_ENDIAN" = "Q_LITTLE_ENDIAN" ]; then
5614             CFG_DOUBLEFORMAT=normal
5615         elif [ "$F" -eq 11 ] && [ "$CFG_ENDIAN" = "Q_BIG_ENDIAN" ]; then
5616             CFG_DOUBLEFORMAT=normal
5617         elif [ "$F" -eq 10 ]; then
5618             CFG_DOUBLEFORMAT="Q_DOUBLE_LITTLE"
5619         elif [ "$F" -eq 11 ]; then
5620             CFG_DOUBLEFORMAT="Q_DOUBLE_BIG"
5621         elif [ "$F" -eq 12 ]; then
5622             CFG_DOUBLEFORMAT="Q_DOUBLE_LITTLE_SWAPPED"
5623             CFG_ARMFPA="yes"
5624         elif [ "$F" -eq 13 ]; then
5625             CFG_DOUBLEFORMAT="Q_DOUBLE_BIG_SWAPPED"
5626             CFG_ARMFPA="yes"
5627         else
5628             echo
5629             echo "The system floating point format could not be detected."
5630             echo "This may cause data to be generated in a wrong format"
5631             echo "Turn on verbose messaging (-v) to see the final report."
5632             # we do not fail on this since this is a new test, and if it fails,
5633             # the old behavior should be correct in most cases
5634             CFG_DOUBLEFORMAT=normal
5635         fi
5636     fi
5637 fi
5638
5639 HAVE_STL=no
5640 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/stl "STL" $L_FLAGS $I_FLAGS $l_FLAGS; then
5641     HAVE_STL=yes
5642 fi
5643
5644 if [ "$CFG_STL" != "no" ]; then
5645     if [ "$HAVE_STL" = "yes" ]; then
5646         CFG_STL=yes
5647     else
5648         if [ "$CFG_STL" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5649             echo "STL support cannot be enabled due to functionality tests!"
5650             echo " Turn on verbose messaging (-v) to $0 to see the final report."
5651             echo " If you believe this message is in error you may use the continue"
5652             echo " switch (-continue) to $0 to continue."
5653             exit 101
5654         else
5655             CFG_STL=no
5656         fi
5657     fi
5658 fi
5659
5660 # detect POSIX clock_gettime()
5661 if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
5662     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/clock-gettime "POSIX clock_gettime()" $L_FLAGS $I_FLAGS $l_FLAGS; then
5663         CFG_CLOCK_GETTIME=yes
5664     else
5665         CFG_CLOCK_GETTIME=no
5666     fi
5667 fi
5668
5669 # detect POSIX monotonic clocks
5670 if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
5671     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/clock-monotonic "POSIX Monotonic Clock" $L_FLAGS $I_FLAGS $l_FLAGS; then
5672         CFG_CLOCK_MONOTONIC=yes
5673     else
5674         CFG_CLOCK_MONOTONIC=no
5675     fi
5676 elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
5677     CFG_CLOCK_MONOTONIC=no
5678 fi
5679
5680 # detect mremap
5681 if [ "$CFG_MREMAP" = "auto" ]; then
5682     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mremap "mremap" $L_FLAGS $I_FLAGS $l_FLAGS; then
5683         CFG_MREMAP=yes
5684     else
5685         CFG_MREMAP=no
5686     fi
5687 fi
5688
5689 # find if the platform provides getaddrinfo (ipv6 dns lookups)
5690 if [ "$CFG_GETADDRINFO" != "no" ]; then
5691     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/getaddrinfo "getaddrinfo" $L_FLAGS $I_FLAGS $l_FLAGS; then
5692         CFG_GETADDRINFO=yes
5693     else
5694         if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5695             echo "getaddrinfo support cannot be enabled due to functionality tests!"
5696             echo " Turn on verbose messaging (-v) to $0 to see the final report."
5697             echo " If you believe this message is in error you may use the continue"
5698             echo " switch (-continue) to $0 to continue."
5699             exit 101
5700         else
5701             CFG_GETADDRINFO=no
5702         fi
5703     fi
5704 fi
5705
5706 # find if the platform provides inotify
5707 if [ "$CFG_INOTIFY" != "no" ]; then
5708     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/inotify "inotify" $L_FLAGS $I_FLAGS $l_FLAGS; then
5709         CFG_INOTIFY=yes
5710     else
5711         if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5712             echo "inotify support cannot be enabled due to functionality tests!"
5713             echo " Turn on verbose messaging (-v) to $0 to see the final report."
5714             echo " If you believe this message is in error you may use the continue"
5715             echo " switch (-continue) to $0 to continue."
5716             exit 101
5717         else
5718             CFG_INOTIFY=no
5719         fi
5720     fi
5721 fi
5722
5723 # find if the platform provides if_nametoindex (ipv6 interface name support)
5724 if [ "$CFG_IPV6IFNAME" != "no" ]; then
5725     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/ipv6ifname "IPv6 interface name" $L_FLAGS $I_FLAGS $l_FLAGS; then
5726         CFG_IPV6IFNAME=yes
5727     else
5728         if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5729             echo "IPv6 interface name support cannot be enabled due to functionality tests!"
5730             echo " Turn on verbose messaging (-v) to $0 to see the final report."
5731             echo " If you believe this message is in error you may use the continue"
5732             echo " switch (-continue) to $0 to continue."
5733             exit 101
5734         else
5735             CFG_IPV6IFNAME=no
5736         fi
5737     fi
5738 fi
5739
5740 # find if the platform provides getifaddrs (network interface enumeration)
5741 if [ "$CFG_GETIFADDRS" != "no" ]; then
5742     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/getifaddrs "getifaddrs" $L_FLAGS $I_FLAGS $l_FLAGS; then
5743         CFG_GETIFADDRS=yes
5744     else
5745         if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5746             echo "getifaddrs support cannot be enabled due to functionality tests!"
5747             echo " Turn on verbose messaging (-v) to $0 to see the final report."
5748             echo " If you believe this message is in error you may use the continue"
5749             echo " switch (-continue) to $0 to continue."
5750             exit 101
5751         else
5752             CFG_GETIFADDRS=no
5753         fi
5754     fi
5755 fi
5756
5757 # detect OpenSSL
5758 if [ "$CFG_OPENSSL" != "no" ]; then
5759     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/openssl "OpenSSL" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
5760         if [ "$CFG_OPENSSL" = "auto" ]; then
5761             CFG_OPENSSL=yes
5762         fi
5763     else
5764         if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5765             echo "OpenSSL support cannot be enabled due to functionality tests!"
5766             echo " Turn on verbose messaging (-v) to $0 to see the final report."
5767             echo " If you believe this message is in error you may use the continue"
5768             echo " switch (-continue) to $0 to continue."
5769             exit 101
5770         else
5771             CFG_OPENSSL=no
5772         fi
5773     fi
5774 fi
5775
5776 # detect PCRE
5777 if [ "$CFG_PCRE" != "qt" ]; then
5778     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/pcre "PCRE" $L_FLAGS $I_FLAGS $l_FLAGS; then
5779         CFG_PCRE=system
5780     else
5781         if [ "$CFG_PCRE" = "system" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5782             echo "PCRE support cannot be enabled due to functionality tests!"
5783             echo " Turn on verbose messaging (-v) to $0 to see the final report."
5784             echo " If you believe this message is in error you may use the continue"
5785             echo " switch (-continue) to $0 to continue."
5786             exit 101
5787         else
5788             CFG_PCRE=qt
5789         fi
5790     fi
5791 fi
5792
5793 # detect OpenVG support
5794 if [ "$CFG_OPENVG" != "no" ]; then
5795     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/openvg" "OpenVG" $L_FLAGS $I_FLAGS $l_FLAGS $CONFIG_ARG; then
5796         if [ "$CFG_OPENVG" = "auto" ]; then
5797             CFG_OPENVG=yes
5798         fi
5799     elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG openvg_on_opengl" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/openvg" "OpenVG" $L_FLAGS $I_FLAGS $l_FLAGS $CONFIG_ARG; then
5800         if [ "$CFG_OPENVG" = "auto" ]; then
5801             CFG_OPENVG=yes
5802         fi
5803         CFG_OPENVG_ON_OPENGL=yes
5804     elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG lower_case_includes" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/openvg" "OpenVG (lc includes)" $L_FLAGS $I_FLAGS $l_FLAGS $CONFIG_ARG; then
5805         if [ "$CFG_OPENVG" = "auto" ]; then
5806             CFG_OPENVG=yes
5807         fi
5808         CFG_OPENVG_LC_INCLUDES=yes
5809     elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG openvg_on_opengl lower_case_includes" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/openvg" "OpenVG (lc includes)" $L_FLAGS $I_FLAGS $l_FLAGS $CONFIG_ARG; then
5810         if [ "$CFG_OPENVG" = "auto" ]; then
5811             CFG_OPENVG=yes
5812         fi
5813         CFG_OPENVG_LC_INCLUDES=yes
5814         CFG_OPENVG_ON_OPENGL=yes
5815     else
5816         if [ "$CFG_OPENVG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5817             echo "$CFG_OPENVG was specified for OpenVG but cannot be enabled due to functionality tests!"
5818             echo " Turn on verbose messaging (-v) to $0 to see the final report."
5819             echo " If you believe this message is in error you may use the continue"
5820             echo " switch (-continue) to $0 to continue."
5821             exit 101
5822         else
5823             CFG_OPENVG=no
5824         fi
5825     fi
5826     if [ "$CFG_OPENVG" = "yes" ] && "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/shivavg" "ShivaVG" $L_FLAGS $I_FLAGS $l_FLAGS $CONFIG_ARG; then
5827         CFG_OPENVG_SHIVA=yes
5828     fi
5829 fi
5830
5831 if [ "$CFG_ALSA" = "auto" ]; then
5832     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/alsa "alsa" $L_FLAGS $I_FLAGS $l_FLAGS; then
5833         CFG_ALSA=yes
5834     else
5835         CFG_ALSA=no
5836     fi
5837 fi
5838
5839 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ] || [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then 
5840     if [ "$CFG_ARCH" = "arm" ]; then
5841        "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/javascriptcore-jit "javascriptcore-jit" $L_FLAGS $I_FLAGS $l_FLAGS
5842         if [ $? != "0" ]; then
5843            CFG_JAVASCRIPTCORE_JIT=no
5844         fi
5845     else
5846         case "$XPLATFORM" in
5847             linux-icc*)
5848                 CFG_JAVASCRIPTCORE_JIT=no
5849                 ;;
5850         esac
5851     fi
5852 fi
5853
5854 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ]; then
5855     QMakeVar set JAVASCRIPTCORE_JIT yes
5856 elif [ "$CFG_JAVASCRIPTCORE_JIT" = "no" ]; then
5857     QMakeVar set JAVASCRIPTCORE_JIT no
5858 fi
5859
5860 if [ "$CFG_AUDIO_BACKEND" = "auto" ]; then
5861     CFG_AUDIO_BACKEND=yes
5862 fi
5863
5864 if [ "$CFG_LARGEFILE" != "yes" ] && [ "$XPLATFORM_MINGW" = "yes" ]; then
5865     echo "Warning: largefile support cannot be disabled for win32."
5866     CFG_LARGEFILE="yes"
5867 fi
5868
5869 #-------------------------------------------------------------------------------
5870 # ask for all that hasn't been auto-detected or specified in the arguments
5871 #-------------------------------------------------------------------------------
5872
5873 # enable dwarf2 support on Mac
5874 if [ "$CFG_MAC_DWARF2" = "yes" ]; then
5875     QT_CONFIG="$QT_CONFIG dwarf2"
5876 fi
5877
5878 # Set the default Mac OS X arch if there are no "-arch" arguments on the configure line
5879 if [ "$BUILD_ON_MAC" = "yes" ]; then
5880     DEFAULT_ARCH="$CFG_MAC_ARCHS"
5881     if [ -z "$DEFAULT_ARCH" ]; then
5882         case `file "${outpath}/bin/qmake"` in
5883         *i?86)
5884             DEFAULT_ARCH=x86
5885             ;;
5886         *x86_64)
5887             DEFAULT_ARCH=x86_64
5888             ;;
5889         *ppc|*ppc64|*)
5890             # unsupported/unknown
5891             ;;
5892         esac
5893     fi
5894     if [ -n "$DEFAULT_ARCH" ]; then
5895         [ "$OPT_VERBOSE" = "yes" ] && echo "Setting default Mac OS X architechture to $DEFAULT_ARCH."
5896         QT_CONFIG="$QT_CONFIG $DEFAULT_ARCH"
5897         QMAKE_CONFIG="$QMAKE_CONFIG $DEFAULT_ARCH"
5898         # Make the application arch follow the Qt arch for single arch builds.
5899         # (for multiple-arch builds, set CONFIG manually in the application .pro file)
5900         [ `echo "$DEFAULT_ARCH" | wc -w` -eq 1 ] && QTCONFIG_CONFIG="$QTCONFIG_CONFIG $DEFAULT_ARCH"
5901     fi
5902 fi
5903
5904 # ### Vestige
5905 if [ "$CFG_PHONON_BACKEND" = "yes" ]; then
5906     QT_CONFIG="$QT_CONFIG phonon-backend"
5907 fi
5908
5909 # disable accessibility
5910 if [ "$CFG_ACCESSIBILITY" = "no" ]; then
5911     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
5912 else
5913     QT_CONFIG="$QT_CONFIG accessibility"
5914 fi
5915
5916 # egl stuff does not belong in lighthouse, but rather in plugins
5917 if [ "$PLATFORM_QPA" = "yes" ]; then
5918     CFG_EGL="no"
5919 fi
5920
5921 # enable egl
5922 if [ "$CFG_EGL" = "no" ]; then
5923     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL"
5924 else
5925     QT_CONFIG="$QT_CONFIG egl"
5926     if [ "$CFG_EGL_GLES_INCLUDES" = "yes" ]; then
5927         QCONFIG_FLAGS="$QCONFIG_FLAGS QT_GLES_EGL"
5928     fi
5929 fi
5930
5931 # enable openvg
5932 if [ "$CFG_OPENVG" = "no" ]; then
5933     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENVG"
5934 else
5935     QT_CONFIG="$QT_CONFIG openvg"
5936     if [ "$CFG_OPENVG_LC_INCLUDES" = "yes" ]; then
5937         QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LOWER_CASE_VG_INCLUDES"
5938     fi
5939     if [ "$CFG_OPENVG_ON_OPENGL" = "yes" ]; then
5940         QT_CONFIG="$QT_CONFIG openvg_on_opengl"
5941     fi
5942     if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
5943         QT_CONFIG="$QT_CONFIG shivavg"
5944         QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SHIVAVG"
5945     fi
5946 fi
5947
5948 # enable opengl
5949 if [ "$CFG_OPENGL" = "no" ]; then
5950     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
5951 else
5952     QT_CONFIG="$QT_CONFIG opengl"
5953 fi
5954
5955 if [ "$CFG_OPENGL" = "es2" ]; then
5956     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
5957 fi
5958
5959 if [ "$CFG_OPENGL" = "es2" ]; then
5960     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
5961     QT_CONFIG="$QT_CONFIG opengles2"
5962 fi
5963
5964 # safe execution environment
5965 if [ "$CFG_SXE" != "no" ]; then
5966     QT_CONFIG="$QT_CONFIG sxe"
5967 fi
5968
5969 # build up the variables for output
5970 if [ "$CFG_DEBUG" = "yes" ]; then
5971     QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
5972     QMAKE_CONFIG="$QMAKE_CONFIG debug"
5973 elif [ "$CFG_DEBUG" = "no" ]; then
5974     QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
5975     QMAKE_CONFIG="$QMAKE_CONFIG release"
5976 fi
5977 if [ "$CFG_SHARED" = "yes" ]; then
5978     QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
5979     QMAKE_CONFIG="$QMAKE_CONFIG shared dll"
5980 elif [ "$CFG_SHARED" = "no" ]; then
5981     QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
5982     QMAKE_CONFIG="$QMAKE_CONFIG static"
5983 fi
5984 if [ "$PLATFORM_QPA" = "yes" ]; then
5985     QMAKE_CONFIG="$QMAKE_CONFIG qpa"
5986     QT_CONFIG="$QT_CONFIG qpa"
5987     QTCONFIG_CONFIG="$QTCONFIG_CONFIG qpa"
5988     rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
5989 fi
5990
5991 if [ "$XPLATFORM_MINGW" != "yes" ]; then
5992     # Do not set this here for Windows. Let qmake do it so
5993     # debug and release precompiled headers are kept separate.
5994     QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
5995 fi
5996 QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
5997 QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
5998 QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
5999 QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
6000 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
6001     QMAKE_CONFIG="$QMAKE_CONFIG largefile"
6002 fi
6003 if [ "$CFG_STL" = "no" ]; then
6004     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STL"
6005 else
6006     QMAKE_CONFIG="$QMAKE_CONFIG stl"
6007 fi
6008 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
6009     QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
6010 fi
6011 [ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
6012 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
6013 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
6014 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
6015     QMakeVar add QMAKE_CFLAGS -g
6016     QMakeVar add QMAKE_CXXFLAGS -g
6017     QT_CONFIG="$QT_CONFIG separate_debug_info"
6018 fi
6019 if [ "$CFG_SEPARATE_DEBUG_INFO_NOCOPY" = "yes" ] ; then
6020     QT_CONFIG="$QT_CONFIG separate_debug_info_nocopy"
6021 fi
6022 [ "$CFG_MMX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mmx"
6023 [ "$CFG_3DNOW" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG 3dnow"
6024 [ "$CFG_SSE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse"
6025 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
6026 [ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3"
6027 [ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3"
6028 [ "$CFG_SSE4_1" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_1"
6029 [ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2"
6030 [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx"
6031 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
6032 [ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
6033 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
6034     QT_CONFIG="$QT_CONFIG clock-gettime"
6035 fi
6036 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
6037     QT_CONFIG="$QT_CONFIG clock-monotonic"
6038 fi
6039 if [ "$CFG_MREMAP" = "yes" ]; then
6040     QT_CONFIG="$QT_CONFIG mremap"
6041 fi
6042 if [ "$CFG_GETADDRINFO" = "yes" ]; then
6043     QT_CONFIG="$QT_CONFIG getaddrinfo"
6044 fi
6045 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
6046     QT_CONFIG="$QT_CONFIG ipv6ifname"
6047 fi
6048 if [ "$CFG_GETIFADDRS" = "yes" ]; then
6049     QT_CONFIG="$QT_CONFIG getifaddrs"
6050 fi
6051 if [ "$CFG_INOTIFY" = "yes" ]; then
6052     QT_CONFIG="$QT_CONFIG inotify"
6053 fi
6054 if [ "$CFG_LIBJPEG" = "no" ]; then
6055     CFG_JPEG="no"
6056 elif [ "$CFG_LIBJPEG" = "system" ]; then
6057     QT_CONFIG="$QT_CONFIG system-jpeg"
6058 fi
6059 if [ "$CFG_JPEG" = "no" ]; then
6060     QT_CONFIG="$QT_CONFIG no-jpeg"
6061 elif [ "$CFG_JPEG" = "yes" ]; then
6062     QT_CONFIG="$QT_CONFIG jpeg"
6063 fi
6064 if [ "$CFG_LIBPNG" = "no" ]; then
6065     CFG_PNG="no"
6066 fi
6067 if [ "$CFG_LIBPNG" = "system" ]; then
6068     QT_CONFIG="$QT_CONFIG system-png"
6069 fi
6070 if [ "$CFG_PNG" = "no" ]; then
6071     QT_CONFIG="$QT_CONFIG no-png"
6072 elif [ "$CFG_PNG" = "yes" ]; then
6073     QT_CONFIG="$QT_CONFIG png"
6074 fi
6075 if [ "$CFG_GIF" = "no" ]; then
6076     QT_CONFIG="$QT_CONFIG no-gif"
6077 elif [ "$CFG_GIF" = "yes" ]; then
6078     QT_CONFIG="$QT_CONFIG gif"
6079 fi
6080 if [ "$CFG_LIBFREETYPE" = "no" ]; then
6081     QT_CONFIG="$QT_CONFIG no-freetype"
6082     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FREETYPE"
6083 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
6084     QT_CONFIG="$QT_CONFIG system-freetype"
6085 else
6086     QT_CONFIG="$QT_CONFIG freetype"
6087 fi
6088 if [ "$CFG_GUI" = "auto" ]; then
6089     CFG_GUI="yes"
6090 fi
6091 if [ "$CFG_GUI" = "no" ]; then
6092     QT_CONFIG="$QT_CONFIG no-gui"
6093 else
6094     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GUI"
6095 fi
6096
6097
6098 if [ "x$BUILD_ON_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
6099     #On Mac we implicitly link against libz, so we
6100     #never use the 3rdparty stuff.
6101     [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
6102 fi
6103 if [ "$CFG_ZLIB" = "yes" ]; then
6104     QT_CONFIG="$QT_CONFIG zlib"
6105 elif [ "$CFG_ZLIB" = "system" ]; then
6106     QT_CONFIG="$QT_CONFIG system-zlib"
6107 fi
6108
6109 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
6110 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
6111 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
6112 [ "$CFG_ICONV" = "sun" ] && QT_CONFIG="$QT_CONFIG sun-libiconv"
6113 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
6114 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
6115 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
6116 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
6117 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
6118 [ "$CFG_NAS" = "system" ] && QT_CONFIG="$QT_CONFIG nas"
6119 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
6120 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
6121 [ "$CFG_MAC_HARFBUZZ" = "yes" ] && QT_CONFIG="$QT_CONFIG harfbuzz"
6122 [ "$CFG_XCB" = "yes" ] && QT_CONFIG="$QT_CONFIG xcb"
6123 [ "$CFG_XINPUT2" = "yes" ] && QT_CONFIG="$QT_CONFIG xinput2"
6124
6125 if [ "$PLATFORM_X11" = "yes" ]; then
6126     [ "$CFG_SM" = "yes" ] && QT_CONFIG="$QT_CONFIG x11sm"
6127
6128     # for some reason, the following libraries are not always built shared,
6129     # so *every* program/lib (including Qt) has to link against them
6130     if [ "$CFG_XSHAPE" = "yes" ]; then
6131         QT_CONFIG="$QT_CONFIG xshape"
6132     fi
6133     if [ "$CFG_XVIDEO" = "yes" ]; then
6134         QT_CONFIG="$QT_CONFIG xvideo"
6135     fi
6136     if [ "$CFG_XSYNC" = "yes" ]; then
6137         QT_CONFIG="$QT_CONFIG xsync"
6138     fi
6139     if [ "$CFG_XINERAMA" = "yes" ]; then
6140         QT_CONFIG="$QT_CONFIG xinerama"
6141         QMakeVar set QMAKE_LIBS_X11 '-lXinerama $$QMAKE_LIBS_X11'
6142     fi
6143     if [ "$CFG_XCURSOR" = "yes" ]; then
6144         QT_CONFIG="$QT_CONFIG xcursor"
6145         QMakeVar set QMAKE_LIBS_X11 '-lXcursor $$QMAKE_LIBS_X11'
6146     fi
6147     if [ "$CFG_XFIXES" = "yes" ]; then
6148         QT_CONFIG="$QT_CONFIG xfixes"
6149         QMakeVar set QMAKE_LIBS_X11 '-lXfixes $$QMAKE_LIBS_X11'
6150     fi
6151     if [ "$CFG_XRANDR" = "yes" ]; then
6152         QT_CONFIG="$QT_CONFIG xrandr"
6153         if [ "$CFG_XRENDER" != "yes" ]; then
6154             # libXrandr uses 1 function from libXrender, so we always have to have it :/
6155             QMakeVar set QMAKE_LIBS_X11 '-lXrandr -lXrender $$QMAKE_LIBS_X11'
6156         else
6157             QMakeVar set QMAKE_LIBS_X11 '-lXrandr $$QMAKE_LIBS_X11'
6158         fi
6159     fi
6160     if [ "$CFG_XRENDER" = "yes" ]; then
6161         QT_CONFIG="$QT_CONFIG xrender"
6162         QMakeVar set QMAKE_LIBS_X11 '-lXrender $$QMAKE_LIBS_X11'
6163     fi
6164     if [ "$CFG_MITSHM" = "yes" ]; then
6165         QT_CONFIG="$QT_CONFIG mitshm"
6166     fi
6167     if [ "$CFG_FONTCONFIG" = "yes" ]; then
6168         QT_CONFIG="$QT_CONFIG fontconfig"
6169     fi
6170     if [ "$CFG_XINPUT" = "yes" ]; then
6171         QMakeVar set QMAKE_LIBS_X11 '-lXi $$QMAKE_LIBS_X11'
6172     fi
6173     if [ "$CFG_XINPUT" = "yes" ]; then
6174         QT_CONFIG="$QT_CONFIG xinput tablet"
6175     fi
6176     if [ "$CFG_XKB" = "yes" ]; then
6177         QT_CONFIG="$QT_CONFIG xkb"
6178     fi
6179 fi
6180
6181 [ '!' -z "$D_FLAGS" ] && QMakeVar add DEFINES "$D_FLAGS"
6182 [ '!' -z "$L_FLAGS" ] && QMakeVar add QMAKE_LIBDIR_FLAGS "$L_FLAGS"
6183 [ '!' -z "$l_FLAGS" ] && QMakeVar add LIBS "$l_FLAGS"
6184
6185 if [ "$PLATFORM_MAC" = "yes" ]; then
6186     if [ "$CFG_RPATH" = "yes" ]; then
6187        QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
6188     fi
6189 elif [ -z "`getXQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
6190     if [ -n "$RPATH_FLAGS" ]; then
6191         echo
6192         echo "ERROR: -R cannot be used on this platform as \$QMAKE_LFLAGS_RPATH is"
6193         echo "       undefined."
6194         echo
6195         exit 1
6196     elif [ "$CFG_RPATH" = "yes" ]; then
6197         RPATH_MESSAGE="        NOTE: This platform does not support runtime library paths, using -no-rpath."
6198         CFG_RPATH=no
6199     fi
6200 else
6201     if [ "$CFG_RPATH" = "yes" ]; then
6202         # set the default rpath to the library installation directory
6203         RPATH_FLAGS="\"$QT_INSTALL_LIBS\" $RPATH_FLAGS"
6204     fi
6205     if [ -n "$RPATH_FLAGS" ]; then
6206         # add the user defined rpaths
6207         QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
6208     fi
6209 fi
6210
6211 if [ '!' -z "$I_FLAGS" ]; then
6212     # add the user define include paths
6213     QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
6214     QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
6215 fi
6216
6217 if [ '!' -z "$W_FLAGS" ]; then
6218     # add the user defined warning flags
6219     QMakeVar add QMAKE_CFLAGS_WARN_ON "$W_FLAGS"
6220     QMakeVar add QMAKE_CXXFLAGS_WARN_ON "$W_FLAGS"
6221     QMakeVar add QMAKE_OBJECTIVE_CFLAGS_WARN_ON "$W_FLAGS"
6222 fi
6223
6224 # turn off exceptions for the compilers that support it
6225 if [ "$XPLATFORM" != "$PLATFORM" ]; then
6226     COMPILER=`echo $XPLATFORM | cut -f 2- -d-`
6227 else
6228     COMPILER=`echo $PLATFORM | cut -f 2- -d-`
6229 fi
6230
6231 if [ "$CFG_EXCEPTIONS" != "no" ]; then
6232     QTCONFIG_CONFIG="$QTCONFIG_CONFIG exceptions"
6233 fi
6234
6235 if [ "$XPLATFORM_MINGW" = "yes" ]; then
6236     # mkspecs/features/win32/default_pre.prf sets "no-rtti".
6237     # Follow default behavior of configure.exe by overriding with "rtti".
6238     QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti"
6239 fi
6240
6241 if [ "$CFG_ALSA" = "yes" ]; then
6242     QT_CONFIG="$QT_CONFIG alsa"
6243 fi
6244
6245 if [ "$CFG_PULSEAUDIO" = "yes" ]; then
6246     QT_CONFIG="$QT_CONFIG pulseaudio"
6247 fi
6248
6249 if [ "$CFG_COREWLAN" = "yes" ]; then
6250     QT_CONFIG="$QT_CONFIG corewlan"
6251 fi
6252
6253 if [ "$CFG_ICU" = "yes" ]; then
6254     QT_CONFIG="$QT_CONFIG icu"
6255 fi
6256
6257 if [ "$CFG_FORCE_ASSERTS" = "yes" ]; then
6258     QT_CONFIG="$QT_CONFIG force_asserts"
6259 fi
6260
6261 if [ "$CFG_PCRE" = "qt" ]; then
6262     QMAKE_CONFIG="$QMAKE_CONFIG pcre"
6263 fi
6264
6265 #
6266 # Some Qt modules are too advanced in C++ for some old compilers
6267 # Detect here the platforms where they are known to work.
6268 #
6269 # See Qt documentation for more information on which features are
6270 # supported and on which compilers.
6271 #
6272 canBuildQtConcurrent="yes"
6273 canUseV8Snapshot="yes"
6274
6275 case "$XPLATFORM" in
6276     hpux-g++*)
6277         # PA-RISC's assembly is too limited
6278         # gcc 3.4 on that platform can't build QtXmlPatterns
6279         # the assembly it generates cannot be compiled
6280
6281         # Check gcc's version
6282         case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
6283             4*)
6284                 ;;
6285             3.4*)
6286                 canBuildQtXmlPatterns="no"
6287                 ;;
6288             *)
6289                 canBuildWebKit="no"
6290                 canBuildQtXmlPatterns="no"
6291                 ;;
6292         esac
6293         ;;
6294     unsupported/vxworks-*-g++*)
6295         canBuildWebKit="no"
6296         ;;
6297     unsupported/vxworks-*-dcc*)
6298         canBuildWebKit="no"
6299         canBuildQtXmlPatterns="no"
6300         ;;
6301     *-g++*)
6302         # Check gcc's version
6303         case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
6304             4*|3.4*)
6305                 ;;
6306             3.3*)
6307                 canBuildWebKit="no"
6308                 ;;
6309             *)
6310                 canBuildWebKit="no"
6311                 canBuildQtXmlPatterns="no"
6312                 ;;
6313         esac
6314         ;;
6315     solaris-cc*)
6316         # Check the compiler version
6317         case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
6318             5.[012345678])
6319                 canBuildWebKit="no"
6320                 canBuildQtXmlPatterns="no"
6321                 canBuildQtConcurrent="no"
6322                 ;;
6323             5.*)
6324                 canBuildWebKit="no"
6325                 canBuildQtConcurrent="no"
6326                 ;;
6327         esac
6328         ;;
6329     hpux-acc*)
6330         canBuildWebKit="no"
6331         canBuildQtXmlPatterns="no"
6332         canBuildQtConcurrent="no"
6333         ;;
6334     hpuxi-acc*)
6335         canBuildWebKit="no"
6336         ;;
6337     aix-xlc*)
6338         # Get the xlC version
6339         cat > xlcver.c <<EOF
6340 #include <stdio.h>
6341 int main()
6342 {
6343     printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
6344     return 0;
6345 }
6346 EOF
6347         xlcver=
6348         if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
6349             xlcver=`./xlcver 2>/dev/null`
6350             rm -f ./xlcver
6351         fi
6352         if [ "$OPT_VERBOSE" = "yes" ]; then
6353             if [ -n "$xlcver" ]; then
6354                 echo Found IBM xlC version: $xlcver.
6355             else
6356                 echo Could not determine IBM xlC version, assuming oldest supported.
6357             fi
6358         fi
6359
6360         case "$xlcver" in
6361             [123456].*)
6362                 canBuildWebKit="no"
6363                 canBuildQtXmlPatterns="no"
6364                 canBuildQtConcurrent="no"
6365                 ;;
6366             *)
6367                 canBuildWebKit="no"
6368                 canBuildQtConcurrent="no"
6369                 ;;
6370         esac
6371         ;;
6372     irix-cc*)
6373         canBuildWebKit="no"
6374         canBuildQtConcurrent="no"
6375         ;;
6376 esac
6377
6378 if [ "$CFG_GUI" = "no" ]; then
6379     # WebKit requires QtGui
6380     canBuildWebKit="no"
6381 fi
6382
6383 if [ "$CFG_SHARED" = "no" ]; then
6384     echo
6385     echo "WARNING: Using static linking will disable the WebKit module."
6386     echo
6387     canBuildWebKit="no"
6388 fi
6389
6390 CFG_CONCURRENT="yes"
6391 if [ "$canBuildQtConcurrent" = "no" ]; then
6392     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
6393     CFG_CONCURRENT="no"
6394 else
6395     QT_CONFIG="$QT_CONFIG concurrent"
6396 fi
6397
6398 # ### Vestige
6399 if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
6400     QT_CONFIG="$QT_CONFIG audio-backend"
6401 fi
6402
6403 # ### Vestige
6404 if [ "$CFG_WEBKIT" = "debug" ]; then
6405     QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug"
6406 fi
6407
6408 # ### Vestige
6409 QT_CONFIG="$QT_CONFIG v8"
6410 # Detect snapshot support
6411 if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
6412     case "$CFG_HOST_ARCH,$CFG_ARCH" in
6413         i386,arm)
6414         ;;
6415     *) canUseV8Snapshot="no"
6416         ;;
6417     esac
6418 else
6419     if [ -n "$_SBOX_DIR" -a "$CFG_ARCH" = "arm" ]; then
6420         # QEMU crashes when building inside Scratchbox with an ARM target
6421         canUseV8Snapshot="no"
6422     fi
6423 fi
6424 if [ "$CFG_V8SNAPSHOT" = "auto" ]; then
6425     CFG_V8SNAPSHOT="$canUseV8Snapshot"
6426 fi
6427 if [ "$CFG_V8SNAPSHOT" = "yes" -a "$canUseV8Snapshot" = "no" ]; then
6428     echo "Error: V8 snapshot was requested, but is not supported on this platform."
6429     exit 1
6430 fi
6431 if [ "$CFG_V8SNAPSHOT" = "yes" ]; then
6432     QT_CONFIG="$QT_CONFIG v8snapshot"
6433 fi
6434
6435 # ### Vestige
6436 if [ "$CFG_DECLARATIVE_DEBUG" = "no" ]; then
6437     QCONFIG_FLAGS="$QCONFIG_FLAGS QDECLARATIVE_NO_DEBUG_PROTOCOL"
6438 fi
6439
6440 if [ "$CFG_EXCEPTIONS" = "no" ]; then
6441     case "$COMPILER" in
6442     g++*)
6443         QMakeVar add QMAKE_CFLAGS -fno-exceptions
6444         QMakeVar add QMAKE_CXXFLAGS -fno-exceptions
6445         QMakeVar add QMAKE_LFLAGS -fno-exceptions
6446         ;;
6447     cc*)
6448         case "$PLATFORM" in
6449         irix-cc*)
6450             QMakeVar add QMAKE_CFLAGS -LANG:exceptions=off
6451             QMakeVar add QMAKE_CXXFLAGS -LANG:exceptions=off
6452             QMakeVar add QMAKE_LFLAGS -LANG:exceptions=off
6453             ;;
6454         *) ;;
6455         esac
6456         ;;
6457     *) ;;
6458     esac
6459     QMAKE_CONFIG="$QMAKE_CONFIG exceptions_off"
6460 fi
6461
6462 case "$COMPILER" in
6463 g++*)
6464     # GNU C++
6465     COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
6466
6467     case "$COMPILER_VERSION" in
6468     *.*.*)
6469         QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
6470         QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
6471         QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
6472         ;;
6473     *.*)
6474         QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
6475         QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
6476         QT_GCC_PATCH_VERSION=0
6477         ;;
6478     esac
6479
6480     ;;
6481 *)
6482     #
6483     ;;
6484 esac
6485
6486 #-------------------------------------------------------------------------------
6487 # part of configuration information goes into qconfig.h
6488 #-------------------------------------------------------------------------------
6489
6490 case "$CFG_QCONFIG" in
6491 full)
6492     echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
6493     ;;
6494 *)
6495     tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
6496     echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
6497     if [ -f "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" ]; then
6498         cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
6499     elif [ -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
6500         cat `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` >>"$tmpconfig"
6501     fi
6502     echo "#endif" >>"$tmpconfig"
6503     ;;
6504 esac
6505
6506 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
6507
6508 /* Qt Edition */
6509 #ifndef QT_EDITION
6510 #  define QT_EDITION $QT_EDITION
6511 #endif
6512
6513 /* Machine byte-order */
6514 #define Q_BIG_ENDIAN 4321
6515 #define Q_LITTLE_ENDIAN 1234
6516 EOF
6517
6518 echo "#ifdef QT_BOOTSTRAPPED" >>"$outpath/src/corelib/global/qconfig.h.new"
6519 if [ "$CFG_HOST_ENDIAN" = "auto" ]; then
6520     cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
6521 #if defined(__BIG_ENDIAN__)
6522 # define Q_BYTE_ORDER Q_BIG_ENDIAN
6523 #elif defined(__LITTLE_ENDIAN__)
6524 # define Q_BYTE_ORDER Q_LITTLE_ENDIAN
6525 #else
6526 # error "Unable to determine byte order!"
6527 #endif
6528 EOF
6529 else
6530     echo "#define Q_BYTE_ORDER $CFG_HOST_ENDIAN" >>"$outpath/src/corelib/global/qconfig.h.new"
6531 fi
6532 echo "#else" >>"$outpath/src/corelib/global/qconfig.h.new"
6533 if [ "$CFG_ENDIAN" = "auto" ]; then
6534     cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
6535 #if defined(__BIG_ENDIAN__)
6536 # define Q_BYTE_ORDER Q_BIG_ENDIAN
6537 #elif defined(__LITTLE_ENDIAN__)
6538 # define Q_BYTE_ORDER Q_LITTLE_ENDIAN
6539 #else
6540 # error "Unable to determine byte order!"
6541 #endif
6542 EOF
6543 else
6544     echo "#define Q_BYTE_ORDER $CFG_ENDIAN" >>"$outpath/src/corelib/global/qconfig.h.new"
6545 fi
6546 echo "#endif" >>"$outpath/src/corelib/global/qconfig.h.new"
6547
6548 if [ "$CFG_DOUBLEFORMAT" != "normal" ]; then
6549     cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
6550 /* Non-IEEE double format */
6551 #define Q_DOUBLE_LITTLE "01234567"
6552 #define Q_DOUBLE_BIG "76543210"
6553 #define Q_DOUBLE_LITTLE_SWAPPED "45670123"
6554 #define Q_DOUBLE_BIG_SWAPPED "32107654"
6555 #define Q_DOUBLE_FORMAT $CFG_DOUBLEFORMAT
6556 EOF
6557 fi
6558 if [ "$CFG_ARMFPA" = "yes" ]; then
6559     if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
6560         cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
6561 #ifndef QT_BOOTSTRAPPED
6562 # define QT_ARMFPA
6563 #endif
6564 EOF
6565     else
6566         echo "#define QT_ARMFPA" >>"$outpath/src/corelib/global/qconfig.h.new"
6567     fi
6568 fi
6569
6570 CFG_ARCH_STR=`echo $CFG_ARCH | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
6571 CFG_HOST_ARCH_STR=`echo $CFG_HOST_ARCH | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
6572 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
6573 /* Machine Architecture */
6574 #ifndef QT_BOOTSTRAPPED
6575 # define QT_ARCH_${CFG_ARCH_STR}
6576 #else
6577 # define QT_ARCH_${CFG_HOST_ARCH_STR}
6578 #endif
6579 EOF
6580
6581 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
6582 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
6583
6584 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
6585     echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
6586 fi
6587
6588 if [ "$CFG_FRAMEWORK" = "yes" ]; then
6589     echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
6590 fi
6591
6592 if [ "$BUILD_ON_MAC" = "yes" ]; then
6593     cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
6594 #if defined(__LP64__)
6595 # define QT_POINTER_SIZE 8
6596 #else
6597 # define QT_POINTER_SIZE 4
6598 #endif
6599 EOF
6600 else
6601     "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
6602     echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
6603 fi
6604
6605 #REDUCE_RELOCATIONS is a elf/unix only thing, so not in windows configure.exe
6606 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
6607     echo "#define QT_REDUCE_RELOCATIONS" >>"$outpath/src/corelib/global/qconfig.h.new"
6608 fi
6609
6610
6611 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
6612
6613 if [ "$CFG_DEV" = "yes" ]; then
6614     echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
6615 fi
6616
6617 if [ "$PLATFORM_QPA" = "yes" ]; then
6618     # Add QPA to config.h
6619     QCONFIG_FLAGS="$QCONFIG_FLAGS Q_WS_QPA QT_NO_QWS_QPF QT_NO_QWS_QPF2"
6620 fi
6621
6622 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
6623     QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
6624 fi
6625
6626 # Add turned on SQL drivers
6627 for DRIVER in $CFG_SQL_AVAILABLE; do
6628     eval "VAL=\$CFG_SQL_$DRIVER"
6629     case "$VAL" in
6630     qt)
6631         ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
6632         QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
6633         SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
6634     ;;
6635     plugin)
6636         SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
6637     ;;
6638     esac
6639 done
6640
6641
6642 QMakeVar set sql-drivers "$SQL_DRIVERS"
6643 QMakeVar set sql-plugins "$SQL_PLUGINS"
6644
6645 # Add other configuration options to the qconfig.h file
6646 [ "$CFG_GIF" = "yes" ]       && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
6647 [ "$CFG_PNG" != "yes" ]      && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
6648 [ "$CFG_JPEG" != "yes" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
6649 [ "$CFG_ZLIB" != "yes" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
6650 [ "$CFG_EXCEPTIONS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EXCEPTIONS"
6651 [ "$CFG_SXE" = "no" ]        && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SXE"
6652 [ "$CFG_DBUS" = "no" ]      && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
6653
6654 # X11/Unix/Mac only configs
6655 [ "$CFG_CUPS" = "no" ]       && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
6656 [ "$CFG_ICONV" = "no" ]      && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
6657 [ "$CFG_GLIB" != "yes" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
6658 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
6659 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
6660 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
6661 [ "$CFG_MREMAP" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
6662 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
6663 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
6664 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
6665 [ "$CFG_INOTIFY" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
6666 [ "$CFG_NAS" = "no" ]        && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NAS"
6667 [ "$CFG_NIS" = "no" ]        && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
6668 [ "$CFG_OPENSSL" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL QT_NO_SSL"
6669 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
6670
6671 [ "$CFG_SM" = "no" ]         && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
6672 [ "$CFG_XCURSOR" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
6673 [ "$CFG_XFIXES" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
6674 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
6675 [ "$CFG_XINERAMA" = "no" ]   && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
6676 [ "$CFG_XKB" = "no" ]        && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
6677 [ "$CFG_XRANDR" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
6678 [ "$CFG_XRENDER" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
6679 [ "$CFG_MITSHM" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
6680 [ "$CFG_XSHAPE" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
6681 [ "$CFG_XVIDEO" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XVIDEO"
6682 [ "$CFG_XSYNC" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
6683 [ "$CFG_XINPUT" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
6684
6685 [ "$CFG_XCURSOR" = "runtime" ]   && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
6686 [ "$CFG_XINERAMA" = "runtime" ]  && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
6687 [ "$CFG_XFIXES" = "runtime" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
6688 [ "$CFG_XRANDR" = "runtime" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
6689 [ "$CFG_XINPUT" = "runtime" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
6690 [ "$CFG_ALSA" = "no" ]           && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
6691 [ "$CFG_PULSEAUDIO" = "no" ]          && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PULSEAUDIO"
6692 [ "$CFG_COREWLAN" = "no" ]       && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_COREWLAN"
6693
6694 # sort QCONFIG_FLAGS for neatness if we can
6695 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
6696 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
6697
6698 if [ -n "$QCONFIG_FLAGS" ]; then
6699 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
6700 #ifndef QT_BOOTSTRAPPED
6701
6702 EOF
6703     for cfg in $QCONFIG_FLAGS; do
6704         cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
6705         cfg=`echo $cfg | sed 's/=/ /'`    # turn first '=' into a space
6706         # figure out define logic, so we can output the correct
6707         # ifdefs to override the global defines in a project
6708         cfgdNeg=
6709         if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
6710             # QT_NO_option can be forcefully turned on by QT_option
6711             cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
6712         elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
6713             # QT_option can be forcefully turned off by QT_NO_option
6714             cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
6715         fi
6716
6717         if [ -z $cfgdNeg ]; then
6718 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
6719 #ifndef $cfgd
6720 # define $cfg
6721 #endif
6722
6723 EOF
6724         else
6725 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
6726 #if defined($cfgd) && defined($cfgdNeg)
6727 # undef $cfgd
6728 #elif !defined($cfgd) && !defined($cfgdNeg)
6729 # define $cfg
6730 #endif
6731
6732 EOF
6733         fi
6734     done
6735 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
6736 #endif // QT_BOOTSTRAPPED
6737
6738 EOF
6739 fi
6740
6741 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
6742 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
6743 #define QT_VISIBILITY_AVAILABLE
6744
6745 EOF
6746 fi
6747
6748 if [ -n "$QT_LIBINFIX" ]; then
6749 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
6750 #define QT_LIBINFIX "$QT_LIBINFIX"
6751
6752 EOF
6753 fi
6754
6755 # avoid unecessary rebuilds by copying only if qconfig.h has changed
6756 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
6757     rm -f "$outpath/src/corelib/global/qconfig.h.new"
6758 else
6759     [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
6760     mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
6761     chmod -w "$outpath/src/corelib/global/qconfig.h"
6762     if [ ! -f "$outpath/include/QtCore/qconfig.h" ]; then
6763         ln -s "$outpath/src/corelib/global/qconfig.h" "$outpath/include/QtCore/qconfig.h"
6764     fi
6765 fi
6766
6767 #-------------------------------------------------------------------------------
6768 # save configuration into qconfig.pri
6769 #-------------------------------------------------------------------------------
6770 QTCONFIG="$outpath/mkspecs/qconfig.pri"
6771 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
6772 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
6773 if [ "$CFG_DEBUG" = "yes" ]; then
6774     QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
6775     if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6776         QT_CONFIG="$QT_CONFIG release"
6777     fi
6778     QT_CONFIG="$QT_CONFIG debug"
6779 elif [ "$CFG_DEBUG" = "no" ]; then
6780     QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
6781     if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6782         QT_CONFIG="$QT_CONFIG debug"
6783     fi
6784     QT_CONFIG="$QT_CONFIG release"
6785 fi
6786 if [ "$CFG_STL" = "yes" ]; then
6787     QTCONFIG_CONFIG="$QTCONFIG_CONFIG stl"
6788 fi
6789 if [ "$CFG_FRAMEWORK" = "no" ]; then
6790     QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
6791 else
6792     QT_CONFIG="$QT_CONFIG qt_framework"
6793     QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
6794 fi
6795 if [ "$CFG_DEV" = "yes" ]; then
6796     QT_CONFIG="$QT_CONFIG private_tests"
6797 fi
6798
6799 cat >>"$QTCONFIG.tmp" <<EOF
6800 #configuration
6801 CONFIG += $QTCONFIG_CONFIG
6802 QT_ARCH = $CFG_ARCH
6803 QT_EDITION = $Edition
6804 QT_CONFIG += $QT_CONFIG
6805
6806 #versioning
6807 QT_VERSION = $QT_VERSION
6808 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
6809 QT_MINOR_VERSION = $QT_MINOR_VERSION
6810 QT_PATCH_VERSION = $QT_PATCH_VERSION
6811
6812 #namespaces
6813 QT_LIBINFIX = $QT_LIBINFIX
6814 QT_NAMESPACE = $QT_NAMESPACE
6815
6816 EOF
6817 if [ -n "$CFG_SYSROOT" ]; then
6818     echo "# sysroot" >>"$QTCONFIG.tmp"
6819     echo `basename "$XQMAKESPEC"` \{ >>"$QTCONFIG.tmp"
6820     echo "  QT_SYSROOT      += \$\$quote($CFG_SYSROOT)" >>"$QTCONFIG.tmp"
6821     echo "  QMAKE_CFLAGS    += --sysroot=\$\$QT_SYSROOT" >>"$QTCONFIG.tmp"
6822     echo "  QMAKE_CXXFLAGS  += --sysroot=\$\$QT_SYSROOT" >>"$QTCONFIG.tmp"
6823     echo "  QMAKE_LFLAGS    += --sysroot=\$\$QT_SYSROOT" >>"$QTCONFIG.tmp"
6824     echo "}" >> "$QTCONFIG.tmp"
6825     echo >> "$QTCONFIG.tmp"
6826 fi
6827 if [ "$CFG_RPATH" = "yes" ]; then
6828     echo "QMAKE_RPATHDIR += \"$QT_INSTALL_LIBS\"" >> "$QTCONFIG.tmp"
6829 fi
6830 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
6831     echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
6832     echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
6833     echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
6834 fi
6835
6836 if [ -n "$QMAKE_INCDIR_OPENGL_ES2" ]; then
6837     echo "#Qt opengl include path" >> "$QTCONFIG.tmp"
6838     echo "QMAKE_INCDIR_OPENGL_ES2 = \"$QMAKE_INCDIR_OPENGL_ES2\"" >> "$QTCONFIG.tmp"
6839 fi
6840
6841 # replace qconfig.pri if it differs from the newly created temp file
6842 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
6843     rm -f "$QTCONFIG.tmp"
6844 else
6845     mv -f "$QTCONFIG.tmp" "$QTCONFIG"
6846 fi
6847
6848 #-------------------------------------------------------------------------------
6849 # save configuration into qmodule.pri
6850 #-------------------------------------------------------------------------------
6851 QTMODULE="$outpath/mkspecs/qmodule.pri"
6852
6853 echo "CONFIG += create_prl link_prl" >> "$QTMODULE.tmp"
6854
6855 # Ensure we can link to uninistalled libraries
6856 if [ "$BUILD_ON_MAC" != "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ] && linkerSupportsFlag -rpath-link "$outpath/lib"; then
6857     echo "QMAKE_LFLAGS    = -Wl,-rpath-link,\$\$QT_BUILD_TREE/lib \$\$QMAKE_LFLAGS" >> "$QTMODULE.tmp"
6858 fi
6859 if [ -n "$QT_CFLAGS_PSQL" ]; then
6860     echo "QT_CFLAGS_PSQL   = $QT_CFLAGS_PSQL" >> "$QTMODULE.tmp"
6861 fi
6862 if [ -n "$QT_LFLAGS_PSQL" ]; then
6863     echo "QT_LFLAGS_PSQL   = $QT_LFLAGS_PSQL" >> "$QTMODULE.tmp"
6864 fi
6865 if [ -n "$QT_CFLAGS_MYSQL" ]; then
6866     echo "QT_CFLAGS_MYSQL   = $QT_CFLAGS_MYSQL" >> "$QTMODULE.tmp"
6867 fi
6868 if [ -n "$QT_LFLAGS_MYSQL" ]; then
6869     echo "QT_LFLAGS_MYSQL   = $QT_LFLAGS_MYSQL" >> "$QTMODULE.tmp"
6870 fi
6871 if [ -n "$QT_CFLAGS_SQLITE" ]; then
6872     echo "QT_CFLAGS_SQLITE   = $QT_CFLAGS_SQLITE" >> "$QTMODULE.tmp"
6873 fi
6874 if [ -n "$QT_LFLAGS_SQLITE" ]; then
6875     echo "QT_LFLAGS_SQLITE   = $QT_LFLAGS_SQLITE" >> "$QTMODULE.tmp"
6876 fi
6877 if [ -n "$QT_LFLAGS_ODBC" ]; then
6878     echo "QT_LFLAGS_ODBC   = $QT_LFLAGS_ODBC" >> "$QTMODULE.tmp"
6879 fi
6880 if [ -n "$QT_LFLAGS_TDS" ]; then
6881     echo "QT_LFLAGS_TDS   = $QT_LFLAGS_TDS" >> "$QTMODULE.tmp"
6882 fi
6883
6884 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
6885     echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$QTMODULE.tmp"
6886 fi
6887
6888 #dump in the OPENSSL_LIBS info
6889 if [ '!' -z "$OPENSSL_LIBS" ]; then
6890     echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$QTMODULE.tmp"
6891 elif [ "$CFG_OPENSSL" = "linked" ]; then
6892     echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$QTMODULE.tmp"
6893 fi
6894
6895 #dump in the SDK info
6896 if [ '!' -z "$CFG_SDK" ]; then
6897    echo "QMAKE_MAC_SDK = $CFG_SDK" >> "$QTMODULE.tmp"
6898 fi
6899
6900 # cmdline args
6901 cat "$QMAKE_VARS_FILE" >> "$QTMODULE.tmp"
6902 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
6903
6904 # replace qmodule.pri if it differs from the newly created temp file
6905 if cmp -s "$QTMODULE.tmp" "$QTMODULE"; then
6906     rm -f "$QTMODULE.tmp"
6907 else
6908     mv -f "$QTMODULE.tmp" "$QTMODULE"
6909 fi
6910
6911 #-------------------------------------------------------------------------------
6912 # save configuration into .qmake.cache
6913 #-------------------------------------------------------------------------------
6914
6915 CACHEFILE="$outpath/.qmake.cache"
6916 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
6917 cat >>"$CACHEFILE.tmp" <<EOF
6918 #paths
6919 QT_SOURCE_TREE = \$\$quote($relpath)
6920 QT_BUILD_TREE = \$\$quote($outpath)
6921 QT_BUILD_PARTS = $CFG_BUILD_PARTS
6922
6923 #local paths that cannot be queried from the QT_INSTALL_* properties while building QTDIR
6924 QMAKE_MOC        = \$\$QT_BUILD_TREE/bin/moc
6925 QMAKE_UIC        = \$\$QT_BUILD_TREE/bin/uic
6926 QMAKE_RCC        = \$\$QT_BUILD_TREE/bin/rcc
6927 QMAKE_INCDIR_QT  = \$\$QT_BUILD_TREE/include
6928 QMAKE_LIBDIR_QT  = \$\$QT_BUILD_TREE/lib
6929
6930 include(\$\$PWD/mkspecs/qmodule.pri)
6931 CONFIG += $QMAKE_CONFIG dylib depend_includepath fix_output_dirs no_private_qt_headers_warning QTDIR_build
6932 QMAKE_ABSOLUTE_SOURCE_ROOT = \$\$QT_SOURCE_TREE
6933 QMAKE_MOC_SRC    = \$\$QT_BUILD_TREE/src/moc
6934
6935 EOF
6936
6937 #dump the qmake spec
6938 if [ -d "$outpath/mkspecs/$XPLATFORM" ]; then
6939    echo "QMAKESPEC = \$\$QT_BUILD_TREE/mkspecs/$XPLATFORM" >> "$CACHEFILE.tmp"
6940 else
6941    echo "QMAKESPEC = $XPLATFORM" >> "$CACHEFILE.tmp"
6942 fi
6943
6944 # incrementals
6945 INCREMENTAL=""
6946 [ "$CFG_INCREMENTAL" = "auto" ] && "$WHICH" p4 >/dev/null 2>&1 && [ "$CFG_DEV" = "yes" ] && CFG_INCREMENTAL="yes"
6947 if [ "$CFG_INCREMENTAL" = "yes" ]; then
6948     find "$relpath" -perm u+w -mtime -3 | grep 'cpp$' | while read f; do
6949         # don't need to worry about generated files
6950         [ -r `echo $f | sed "s,cpp$,ui,"` ] && continue
6951         basename "$f" | grep '^moc_' >/dev/null 2>&1 && continue
6952         # done
6953         INCREMENTAL="$INCREMENTAL `basename \"$f\" | sed 's,.cpp,.o,'`"
6954     done
6955     [ '!' -z "$INCREMENTAL" ] && echo "QMAKE_INCREMENTAL += $INCREMENTAL" >> "$CACHEFILE.tmp"
6956     [ -r "$outpath/.qmake.incremental" ] && echo "include($outpath/.qmake.incremental)" >> "$CACHEFILE.tmp"
6957 fi
6958
6959 # replace .qmake.cache if it differs from the newly created temp file
6960 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
6961     rm -f "$CACHEFILE.tmp"
6962 else
6963     mv -f "$CACHEFILE.tmp" "$CACHEFILE"
6964 fi
6965
6966 #-------------------------------------------------------------------------------
6967 # give feedback on configuration
6968 #-------------------------------------------------------------------------------
6969
6970 case "$COMPILER" in
6971 g++*)
6972     if [ "$CFG_EXCEPTIONS" != "no" ]; then
6973         cat <<EOF
6974
6975         This target is using the GNU C++ compiler ($PLATFORM).
6976
6977         Recent versions of this compiler automatically include code for
6978         exceptions, which increase both the size of the Qt libraries and
6979         the amount of memory taken by your applications.
6980
6981         You may choose to re-run `basename $0` with the -no-exceptions
6982         option to compile Qt without exceptions. This is completely binary
6983         compatible, and existing applications will continue to work.
6984
6985 EOF
6986     fi
6987     ;;
6988 cc*)
6989     case "$PLATFORM" in
6990     irix-cc*)
6991         if [ "$CFG_EXCEPTIONS" != "no" ]; then
6992             cat <<EOF
6993
6994         This target is using the MIPSpro C++ compiler ($PLATFORM).
6995
6996         You may choose to re-run `basename $0` with the -no-exceptions
6997         option to compile Qt without exceptions. This will make the
6998         size of the Qt library smaller and reduce the amount of memory
6999         taken by your applications.
7000
7001 EOF
7002         fi
7003         ;;
7004     *) ;;
7005     esac
7006     ;;
7007 *) ;;
7008 esac
7009
7010 echo
7011 if [ "$XPLATFORM" = "$PLATFORM" ]; then
7012     echo "Build type:    $PLATFORM"
7013 else
7014     echo "Building on:   $PLATFORM"
7015     echo "Building for:  $XPLATFORM"
7016 fi
7017
7018 if [ ! -z "$CFG_MAC_ARCHS" ]; then
7019     echo "Architecture:  $CFG_ARCH ($CFG_MAC_ARCHS )"
7020 else
7021     echo "Architecture:  $CFG_ARCH"
7022 fi
7023
7024 if [ "$PLATFORM_QPA" = "yes" ]; then
7025     echo "Host architecture: $CFG_HOST_ARCH"
7026 fi
7027
7028 if [ -n "$PLATFORM_NOTES" ]; then
7029     echo "Platform notes:"
7030     echo "$PLATFORM_NOTES"
7031 else
7032     echo
7033 fi
7034
7035 if [ "$OPT_VERBOSE" = "yes" ]; then
7036     echo $ECHO_N "qmake vars .......... $ECHO_C"
7037     cat "$QMAKE_VARS_FILE" | tr '\n' ' '
7038     echo "qmake switches ......... $QMAKE_SWITCHES"
7039 fi
7040
7041 [ "$CFG_INCREMENTAL" = "yes" ] && [ '!' -z "$INCREMENTAL" ] && echo "Incremental ............ $INCREMENTAL"
7042 echo "Build .................. $CFG_BUILD_PARTS"
7043 echo "Configuration .......... $QMAKE_CONFIG $QT_CONFIG"
7044 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
7045    echo "Debug .................. yes (combined)"
7046    if [ "$CFG_DEBUG" = "yes" ]; then
7047        echo "Default Link ........... debug"
7048    else
7049        echo "Default Link ........... release"
7050    fi
7051 else
7052    echo "Debug .................. $CFG_DEBUG"
7053 fi
7054 [ "$CFG_DBUS" = "no" ]     && echo "QtDBus module .......... no"
7055 [ "$CFG_DBUS" = "yes" ]    && echo "QtDBus module .......... yes (run-time)"
7056 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)"
7057 echo "QtConcurrent code ...... $CFG_CONCURRENT"
7058 echo "QtGui module ........... $CFG_GUI"
7059 if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
7060     echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore"
7061 else
7062     echo "JavaScriptCore JIT ..... $CFG_JAVASCRIPTCORE_JIT"
7063 fi
7064 echo "Declarative debugging ...$CFG_DECLARATIVE_DEBUG"
7065 echo "STL support ............ $CFG_STL"
7066 echo "PCH support ............ $CFG_PRECOMPILE"
7067 echo "MMX/3DNOW/SSE/SSE2/SSE3. ${CFG_MMX}/${CFG_3DNOW}/${CFG_SSE}/${CFG_SSE2}/${CFG_SSE3}"
7068 echo "SSSE3/SSE4.1/SSE4.2..... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
7069 echo "AVX..................... ${CFG_AVX}"
7070 if [ "$CFG_ARCH" = "arm" ] || [ "$CFG_ARCH" = "armv6" ]; then
7071     echo "iWMMXt support ......... ${CFG_IWMMXT}"
7072     echo "NEON support ........... ${CFG_NEON}"
7073 fi
7074 echo "IPv6 ifname support .... $CFG_IPV6IFNAME"
7075 echo "getaddrinfo support .... $CFG_GETADDRINFO"
7076 echo "getifaddrs support ..... $CFG_GETIFADDRS"
7077 echo "Accessibility .......... $CFG_ACCESSIBILITY"
7078 echo "NIS support ............ $CFG_NIS"
7079 echo "CUPS support ........... $CFG_CUPS"
7080 echo "Iconv support .......... $CFG_ICONV"
7081 echo "Glib support ........... $CFG_GLIB"
7082 echo "GStreamer support ...... $CFG_GSTREAMER"
7083 echo "PulseAudio support ..... $CFG_PULSEAUDIO"
7084 echo "Large File support ..... $CFG_LARGEFILE"
7085 echo "GIF support ............ $CFG_GIF"
7086 if [ "$CFG_JPEG" = "no" ]; then
7087     echo "JPEG support ........... $CFG_JPEG"
7088 else
7089     echo "JPEG support ........... $CFG_JPEG ($CFG_LIBJPEG)"
7090 fi
7091 if [ "$CFG_PNG" = "no" ]; then
7092     echo "PNG support ............ $CFG_PNG"
7093 else
7094     echo "PNG support ............ $CFG_PNG ($CFG_LIBPNG)"
7095 fi
7096 echo "zlib support ........... $CFG_ZLIB"
7097 echo "Session management ..... $CFG_SM"
7098
7099 if [ "$CFG_OPENGL" = "desktop" ]; then
7100     echo "OpenGL support ......... yes (Desktop OpenGL)"
7101 elif [ "$CFG_OPENGL" = "es2" ]; then
7102     echo "OpenGL support ......... yes (OpenGL ES 2.x)"
7103 else
7104     echo "OpenGL support ......... no"
7105 fi
7106 if [ "$CFG_EGL" != "no" ]; then
7107     if [ "$CFG_EGL_GLES_INCLUDES" = "yes" ]; then
7108         echo "EGL support ............ yes <GLES/egl.h>"
7109     else
7110         echo "EGL support ............ yes <EGL/egl.h>"
7111     fi
7112 fi
7113 if [ "$CFG_OPENVG" ]; then
7114     if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
7115         echo "OpenVG support ......... ShivaVG"
7116     else
7117         echo "OpenVG support ......... $CFG_OPENVG"
7118     fi
7119 fi
7120 if [ "$PLATFORM_X11" = "yes" ]; then
7121     echo "NAS sound support ...... $CFG_NAS"
7122     echo "XShape support ......... $CFG_XSHAPE"
7123     echo "XVideo support ......... $CFG_XVIDEO"
7124     echo "XSync support .......... $CFG_XSYNC"
7125     echo "Xinerama support ....... $CFG_XINERAMA"
7126     echo "Xcursor support ........ $CFG_XCURSOR"
7127     echo "Xfixes support ......... $CFG_XFIXES"
7128     echo "Xrandr support ......... $CFG_XRANDR"
7129     echo "Xi support ............. $CFG_XINPUT"
7130     echo "MIT-SHM support ........ $CFG_MITSHM"
7131     echo "FontConfig support ..... $CFG_FONTCONFIG"
7132     echo "XKB Support ............ $CFG_XKB"
7133     echo "immodule support ....... $CFG_IM"
7134     echo "GTK theme support ...... $CFG_QGTKSTYLE"
7135 fi
7136 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support .......... $CFG_SQL_mysql"
7137 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support ..... $CFG_SQL_psql"
7138 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........... $CFG_SQL_odbc"
7139 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ............ $CFG_SQL_oci"
7140 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ............ $CFG_SQL_tds"
7141 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ............ $CFG_SQL_db2"
7142 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ...... $CFG_SQL_ibase"
7143 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support ....... $CFG_SQL_sqlite2"
7144 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ......... $CFG_SQL_sqlite ($CFG_SQLITE)"
7145
7146 OPENSSL_LINKAGE=""
7147 if [ "$CFG_OPENSSL" = "yes" ]; then
7148     OPENSSL_LINKAGE="(run-time)"
7149 elif [ "$CFG_OPENSSL" = "linked" ]; then
7150     OPENSSL_LINKAGE="(linked)"
7151 fi
7152 echo "OpenSSL support ........ $CFG_OPENSSL $OPENSSL_LINKAGE"
7153 echo "Alsa support ........... $CFG_ALSA"
7154 if [ "$BUILD_ON_MAC" = "yes" ]; then
7155     echo "CoreWlan support ....... $CFG_COREWLAN"
7156 fi
7157 echo "libICU support ......... $CFG_ICU"
7158 echo "PCRE support ........... $CFG_PCRE"
7159 if [ "$CFG_XCB_LIMITED" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
7160     echo "Xcb support ............ limited (old version)"
7161 else
7162     echo "Xcb support ............ $CFG_XCB"
7163 fi
7164 echo "Xrender support ........ $CFG_XRENDER"
7165 if [ "$XPLATFORM_MAEMO" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
7166     echo "XInput2 support ........ $CFG_XINPUT2"
7167 fi
7168 echo
7169
7170 # complain about not being able to use dynamic plugins if we are using a static build
7171 if [ "$CFG_SHARED" = "no" ]; then
7172     echo
7173     echo "WARNING: Using static linking will disable the use of dynamically"
7174     echo "loaded plugins. Make sure to import all needed static plugins,"
7175     echo "or compile needed modules into the library."
7176     echo
7177 fi
7178 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
7179     echo
7180     echo "NOTE: When linking against OpenSSL, you can override the default"
7181     echo "library names through OPENSSL_LIBS."
7182     echo "For example:"
7183     echo "    OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
7184     echo
7185 fi
7186 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
7187     echo
7188     echo "Error: debug-only framework builds are not supported. Configure with -no-framework"
7189     echo "if you want a pure debug build."
7190     echo
7191     exit 1
7192 fi
7193
7194 sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
7195 PROCS=1
7196 EXEC=""
7197
7198
7199 #-------------------------------------------------------------------------------
7200 # build makefiles based on the configuration
7201 #-------------------------------------------------------------------------------
7202
7203 echo "Finding project files. Please wait..."
7204 if [ "$CFG_NOPROCESS" != "yes" ]; then
7205     "$outpath/bin/qmake" -prl -r "${relpath}/qtbase.pro"
7206     if [ -f "${relpath}/qtbase.pro" ]; then
7207         mkfile="${outpath}/Makefile"
7208         [ -f "$mkfile" ] && chmod +w "$mkfile"
7209         QTDIR="$outpath" "$outpath/bin/qmake" -spec "$XQMAKESPEC" "${relpath}/qtbase.pro" -o "$mkfile"
7210     fi
7211 fi
7212
7213 # .projects      -> projects to process
7214 # .projects.1    -> qt and moc
7215 # .projects.2    -> subdirs and libs
7216 # .projects.3    -> the rest
7217 rm -f .projects .projects.1 .projects.2 .projects.3
7218
7219 QMAKE_PROJECTS=`find "$relpath/." -name '*.pro' -print | sed 's-/\./-/-'`
7220 if [ -z "$AWK" ]; then
7221     for p in `echo $QMAKE_PROJECTS`; do
7222         echo "$p" >> .projects
7223     done
7224 else
7225     cat >projects.awk <<EOF
7226 BEGIN {
7227     files = 0
7228     target_file = ""
7229     input_file = ""
7230
7231     first = "./.projects.1.tmp"
7232     second = "./.projects.2.tmp"
7233     third = "./.projects.3.tmp"
7234 }
7235
7236 FNR == 1 {
7237     if ( input_file ) {
7238         if ( ! target_file )
7239             target_file = third
7240         print input_file >target_file
7241     }
7242
7243     matched_target = 0
7244     template_lib = 0
7245     input_file = FILENAME
7246     target_file = ""
7247 }
7248
7249 /^(TARGET.*=)/ {
7250     if ( \$3 == "moc" || \$3 ~ /^Qt/ ) {
7251         target_file = first
7252         matched_target = 1
7253     } else if ( \$3 == "lrelease" || \$3 == "qm_phony_target" ) {
7254         target_file = second
7255         matched_target = 1
7256     }
7257 }
7258
7259 matched_target == 0 && /^(TEMPLATE.*=)/ {
7260     if ( \$3 == "subdirs" )
7261         target_file = second
7262     else if ( \$3 == "lib" )
7263         template_lib = 1
7264     else
7265         target_file = third
7266 }
7267
7268 matched_target == 0 && template_lib == 1 && /^(CONFIG.*=)/ {
7269     if ( \$0 ~ /plugin/ )
7270         target_file = third
7271     else
7272         target_file = second
7273 }
7274
7275 END {
7276     if ( input_file ) {
7277         if ( ! target_file )
7278             target_file = third
7279         print input_file >>target_file
7280     }
7281 }
7282
7283 EOF
7284
7285     rm -f .projects.all
7286     for p in `echo $QMAKE_PROJECTS`; do
7287        echo "$p" >> .projects.all
7288     done
7289
7290     # if you get errors about the length of the command line to awk, change the -l arg
7291     # to split below
7292     split -l 100 .projects.all .projects.all.
7293     for p in .projects.all.*; do
7294        "$AWK" -f projects.awk `cat $p`
7295        [ -f .projects.1.tmp ] && cat .projects.1.tmp >> .projects.1
7296        [ -f .projects.2.tmp ] && cat .projects.2.tmp >> .projects.2
7297        [ -f .projects.3.tmp ] && cat .projects.3.tmp >> .projects.3
7298        rm -f .projects.1.tmp .projects.2.tmp .projects.3.tmp $p
7299     done
7300     rm -f .projects.all* projects.awk
7301
7302     [ -f .projects.1 ] && cat .projects.1 >>.projects
7303     [ -f .projects.2 ] && cat .projects.2 >>.projects
7304     rm -f .projects.1 .projects.2
7305     if [ -f .projects.3 ] && [ "$OPT_FAST" = "no" ]; then
7306        cat .projects.3 >>.projects
7307        rm -f .projects.3
7308     fi
7309 fi
7310 # don't sort Qt and MOC in with the other project files
7311 # also work around a segfaulting uniq(1)
7312 if [ -f .sorted.projects.2 ]; then
7313     sort .sorted.projects.2 > .sorted.projects.2.new
7314     mv -f .sorted.projects.2.new .sorted.projects.2
7315     cat .sorted.projects.2 >> .sorted.projects.1
7316 fi
7317 [ -f .sorted.projects.1 ] && sort .sorted.projects.1 >> .sorted.projects
7318 rm -f .sorted.projects.2 .sorted.projects.1
7319
7320 NORM_PROJECTS=0
7321 FAST_PROJECTS=0
7322 if [ -f .projects ]; then
7323    uniq .projects >.tmp
7324    mv -f .tmp .projects
7325    NORM_PROJECTS=`cat .projects | wc -l | sed -e "s, ,,g"`
7326 fi
7327 if [ -f .projects.3 ]; then
7328    uniq .projects.3 >.tmp
7329    mv -f .tmp .projects.3
7330    FAST_PROJECTS=`cat .projects.3 | wc -l | sed -e "s, ,,g"`
7331 fi
7332 echo "  `expr $NORM_PROJECTS + $FAST_PROJECTS` projects found."
7333 echo
7334
7335 PART_ROOTS=
7336 for part in $CFG_BUILD_PARTS; do
7337     case "$part" in
7338     tools) PART_ROOTS="$PART_ROOTS tools" ;;
7339     libs) PART_ROOTS="$PART_ROOTS src" ;;
7340     translations) PART_ROOTS="$PART_ROOTS translations" ;;
7341     examples) PART_ROOTS="$PART_ROOTS examples" ;;
7342     *) ;;
7343     esac
7344 done
7345
7346 if [ "$CFG_DEV" = "yes" ]; then
7347     PART_ROOTS="$PART_ROOTS tests"
7348 fi
7349
7350 echo "Creating makefiles. Please wait..."
7351 for file in .projects .projects.3; do
7352     [ '!' -f "$file" ] && continue
7353     for a in `cat $file`; do
7354         IN_ROOT=no
7355         for r in $PART_ROOTS; do
7356             if echo "$a" | grep "^$r" >/dev/null 2>&1 || echo "$a" | grep "^$relpath/$r" >/dev/null 2>&1; then
7357                 IN_ROOT=yes
7358                 break
7359             fi
7360         done
7361         [ "$IN_ROOT" = "no" ] && continue
7362
7363         case $a in
7364         *winmain/winmain.pro)
7365             if [ "$CFG_NOPROCESS" = "yes" ] || [ "$XPLATFORM_MINGW" != "yes" ]; then
7366                 continue
7367             fi
7368             SPEC=$XQMAKESPEC ;;
7369         */qmake/qmake.pro) continue ;;
7370         *tools/bootstrap*|*tools/moc*|*tools/rcc*|*tools/uic*) SPEC=$QMAKESPEC ;;
7371         *) if [ "$CFG_NOPROCESS" = "yes" ]; then
7372               continue
7373            else
7374               SPEC=$XQMAKESPEC
7375            fi;;
7376         esac
7377         dir=`dirname "$a" | sed -e "s;$sepath;.;g"`
7378         test -d "$dir" || mkdir -p "$dir"
7379         OUTDIR="$outpath/$dir"
7380         if [ -f "${OUTDIR}/Makefile" ] && [ "$OPT_FAST" = "yes" ]; then
7381             # fast configure - the makefile exists, skip it
7382             # since the makefile exists, it was generated by qmake, which means we
7383             # can skip it, since qmake has a rule to regenerate the makefile if the .pro
7384             # file changes...
7385             [ "$OPT_VERBOSE" = "yes" ] && echo "  skipping $a"
7386             continue;
7387         fi
7388         QMAKE_SPEC_ARGS="-spec $SPEC"
7389         echo $ECHO_N "  for $a$ECHO_C"
7390
7391         QMAKE="$outpath/bin/qmake"
7392         QMAKE_ARGS="$QMAKE_SWITCHES $QMAKE_SPEC_ARGS"
7393         if [ "$file" = ".projects.3" ]; then
7394             echo " (fast)"
7395
7396             cat >"${OUTDIR}/Makefile" <<EOF
7397 # ${OUTDIR}/Makefile: generated by configure
7398 #
7399 # WARNING: This makefile will be replaced with a real makefile.
7400 # All changes made to this file will be lost.
7401 EOF
7402             [ "$CFG_DEBUG_RELEASE" = "no" ] && echo "first_target: first" >>${OUTDIR}/Makefile
7403
7404             cat >>"${OUTDIR}/Makefile" <<EOF
7405 QMAKE = "$QMAKE"
7406 all clean install qmake first Makefile: FORCE
7407         \$(QMAKE) $QMAKE_ARGS -o "$OUTDIR" "$a"
7408         cd "$OUTDIR"
7409         \$(MAKE) \$@
7410
7411 FORCE:
7412
7413 EOF
7414         else
7415             if [ "$OPT_VERBOSE" = "yes" ]; then
7416                 echo " (`basename $SPEC`)"
7417                 echo "$QMAKE" $QMAKE_ARGS -o "$OUTDIR" "$a"
7418             else
7419                 echo
7420             fi
7421
7422             [ -f "${OUTDIR}/Makefile" ] && chmod +w "${OUTDIR}/Makefile"
7423             QTDIR="$outpath" "$QMAKE" $QMAKE_ARGS -o "$OUTDIR" "$a"
7424        fi
7425     done
7426 done
7427 rm -f .projects .projects.3
7428
7429 #-------------------------------------------------------------------------------
7430 # check for platforms that we don't yet know about
7431 #-------------------------------------------------------------------------------
7432 if [ "$CFG_ARCH" = "generic" ]; then
7433 cat <<EOF
7434
7435         NOTICE: Atomic operations are not yet supported for this
7436         architecture.
7437
7438         Qt will use the 'generic' architecture instead, which uses a
7439         single pthread_mutex_t to protect all atomic operations. This
7440         implementation is the slow (but safe) fallback implementation
7441         for architectures Qt does not yet support.
7442 EOF
7443 fi
7444
7445 #-------------------------------------------------------------------------------
7446 # check if the user passed the -no-zlib option, which is no longer supported
7447 #-------------------------------------------------------------------------------
7448 if [ -n "$ZLIB_FORCED" ]; then
7449     which_zlib="supplied"
7450     if [ "$CFG_ZLIB" = "system" ]; then
7451         which_zlib="system"
7452     fi
7453
7454 cat <<EOF
7455
7456         NOTICE: The -no-zlib option was supplied but is no longer
7457         supported.
7458
7459         Qt now requires zlib support in all builds, so the -no-zlib
7460         option was ignored. Qt will be built using the $which_zlib
7461         zlib.
7462 EOF
7463 fi
7464
7465 #-------------------------------------------------------------------------------
7466 # finally save the executed command to another script
7467 #-------------------------------------------------------------------------------
7468 if [ `basename $0` != "config.status" ]; then
7469     CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
7470
7471     # add the system variables
7472     for varname in $SYSTEM_VARIABLES; do
7473         cmd=`echo \
7474 'if [ -n "\$'${varname}'" ]; then
7475     CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
7476 fi'`
7477         eval "$cmd"
7478     done
7479
7480     echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
7481
7482     [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
7483     echo "#!/bin/sh" > "$outpath/config.status"
7484     echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
7485     echo "  $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
7486     echo "else" >> "$outpath/config.status"
7487     echo "  $CONFIG_STATUS" >> "$outpath/config.status"
7488     echo "fi" >> "$outpath/config.status"
7489     chmod +x "$outpath/config.status"
7490 fi
7491
7492 if [ -n "$RPATH_MESSAGE" ]; then
7493     echo
7494     echo "$RPATH_MESSAGE"
7495 fi
7496
7497 MAKE=`basename "$MAKE"`
7498 echo
7499 echo Qt is now configured for building. Just run \'$MAKE\'.
7500 if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
7501     echo Once everything is built, Qt is installed.
7502     echo You should not run \'$MAKE install\'.
7503 else
7504     echo Once everything is built, you must run \'$MAKE install\'.
7505     echo Qt will be installed into $QT_INSTALL_PREFIX
7506 fi
7507 echo
7508 echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.
7509 echo