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