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