Define QT_NO_FOO also when -no-foo is passed to configure.
[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_PROCESS=yes
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     dont-process)
1972         CFG_PROCESS=no
1973         ;;
1974     process)
1975         CFG_PROCESS=partial
1976         ;;
1977     fully-process)
1978         CFG_PROCESS=full
1979         ;;
1980     audio-backend)
1981         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1982             CFG_AUDIO_BACKEND="$VAL"
1983         else
1984             UNKNOWN_OPT=yes
1985         fi
1986         ;;
1987     icu)
1988         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1989             CFG_ICU="$VAL"
1990         else
1991             UNKNOWN_OPT=yes
1992         fi
1993         ;;
1994     force-asserts)
1995         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1996             CFG_FORCE_ASSERTS="$VAL"
1997         else
1998             UNKNOWN_OPT=yes
1999         fi
2000         ;;
2001     pcre)
2002         if [ "$VAL" = "qt" ] || [ "$VAL" = "system" ]; then
2003             CFG_PCRE="$VAL"
2004         else
2005             UNKNOWN_OPT=yes
2006         fi
2007         ;;
2008     c++11)
2009         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2010             CFG_CXX11="$VAL"
2011         else
2012             UNKNOWN_OPT=yes
2013         fi
2014         ;;
2015     *)
2016         UNKNOWN_OPT=yes
2017         ;;
2018     esac
2019     if [ "$UNKNOWN_OPT" = "yes" ]; then
2020         echo "${CURRENT_OPT}: invalid command-line switch"
2021         OPT_HELP=yes
2022         ERROR=yes
2023     fi
2024 done
2025
2026 # update QT_CONFIG to show our current predefined configuration
2027 case "$CFG_QCONFIG" in
2028 minimal|small|medium|large|full)
2029     # these are a sequence of increasing functionality
2030     for c in minimal small medium large full; do
2031         QT_CONFIG="$QT_CONFIG $c-config"
2032         [ "$CFG_QCONFIG" = $c ] && break
2033     done
2034     ;;
2035 *)
2036     # not known to be sufficient for anything
2037     if [ '!' -f "$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h" ] && [ '!' -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
2038         echo >&2 "Error: configuration file not found:"
2039         echo >&2 "  $relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h"
2040         echo >&2 "  or"
2041         echo >&2 "  `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"`"
2042         OPT_HELP=yes
2043     fi
2044 esac
2045
2046 #-------------------------------------------------------------------------------
2047 # build tree initialization
2048 #-------------------------------------------------------------------------------
2049
2050 # where to find which..
2051 unixtests="$relpath/config.tests/unix"
2052 mactests="$relpath/config.tests/mac"
2053 WHICH="$unixtests/which.test"
2054
2055 PERL=`$WHICH perl 2>/dev/null`
2056
2057 # find out which awk we want to use, prefer gawk, then nawk, then regular awk
2058 AWK=
2059 for e in gawk nawk awk; do
2060     if "$WHICH" $e >/dev/null 2>&1 && ( $e -f /dev/null /dev/null ) >/dev/null 2>&1; then
2061         AWK=$e
2062         break
2063     fi
2064 done
2065
2066 # find perl
2067 PERL="/usr/bin/perl"
2068 if "$WHICH" perl >/dev/null 2>&1 && ( perl /dev/null ) >/dev/null 2>&1; then
2069     PERL=`$WHICH perl`
2070 fi
2071
2072 ### skip this if the user just needs help...
2073 if [ "$OPT_HELP" != "yes" ]; then
2074
2075 # is this a shadow build?
2076 if [ "$OPT_SHADOW" = "maybe" ]; then
2077     OPT_SHADOW=no
2078     if [ "$relpath" != "$outpath" ] && [ '!' -f "$outpath/configure" ]; then
2079         if [ -h "$outpath" ]; then
2080             [ "$relpath" -ef "$outpath" ] || OPT_SHADOW=yes
2081         else
2082             OPT_SHADOW=yes
2083         fi
2084     fi
2085 fi
2086 if [ "$OPT_SHADOW" = "yes" ]; then
2087     if [ -f "$relpath/.qmake.cache" -o -f "$relpath/src/corelib/global/qconfig.h" -o -f "$relpath/src/corelib/global/qconfig.cpp" ]; then
2088         echo >&2 "You cannot make a shadow build from a source tree containing a previous build."
2089         echo >&2 "Cannot proceed."
2090         exit 1
2091     fi
2092     [ "$OPT_VERBOSE" = "yes" ] && echo "Performing shadow build..."
2093 fi
2094
2095 if [ "$PLATFORM_MAC" = "no" -a "$CFG_DEBUG_RELEASE" = "yes" ]; then
2096     echo
2097     echo "WARNING: -debug-and-release is not supported outside of Mac OS X."
2098     echo "Qt can be built in release mode with separate debug information, so"
2099     echo "-debug-and-release is not necessary anymore"
2100     echo
2101 fi
2102
2103 if [ "$CFG_SILENT" = "yes" ]; then
2104     QMAKE_CONFIG="$QMAKE_CONFIG silent"
2105 fi
2106
2107 # if the source tree is different from the build tree,
2108 # symlink or copy part of the sources
2109 if [ "$OPT_SHADOW" = "yes" ]; then
2110     echo "Preparing build tree..."
2111
2112     if [ -z "$PERL" ]; then
2113         echo
2114         echo "You need perl in your PATH to make a shadow build."
2115         echo "Cannot proceed."
2116         exit 1
2117     fi
2118
2119     [ -d "$outpath/bin" ] || mkdir -p "$outpath/bin"
2120
2121     # make a syncqt script that can be used in the shadow
2122     rm -f "$outpath/bin/syncqt"
2123     if [ -x "$relpath/bin/syncqt" ]; then
2124         mkdir -p "$outpath/bin"
2125         echo "#!/bin/sh" >"$outpath/bin/syncqt"
2126         echo "perl \"$relpath/bin/syncqt\" -qtdir \"$outpath\" \"\$@\"" >>"$outpath/bin/syncqt"
2127         chmod 755 "$outpath/bin/syncqt"
2128     fi
2129
2130     for i in elf2e32_qtwrapper createpackage patch_capabilities qtmodule-configtests; do
2131         rm -f "$outpath/bin/$i"
2132         if [ -x "$relpath/bin/$i" ]; then
2133             mkdir -p "$outpath/bin"
2134             echo "#!/bin/sh" >"$outpath/bin/$i"
2135             echo "QTDIR=\"$relpath\"; export QTDIR" >>"$outpath/bin/$i"
2136             echo "\"$relpath/bin/$i\" \"\$@\"" >>"$outpath/bin/$i"
2137             chmod 755 "$outpath/bin/$i"
2138         fi
2139     done
2140
2141     # save a pre-existing mkspecs/modules dir
2142     test -d "$outpath/mkspecs/modules" && \
2143         mv "$outpath/mkspecs/modules" "$outpath/mkspecs-modules"
2144     # ditto for mkspecs/modules-inst
2145     test -d "$outpath/mkspecs/modules-inst" && \
2146         mv "$outpath/mkspecs/modules-inst" "$outpath/mkspecs-modules-inst"
2147
2148     # symlink the mkspecs directory
2149     mkdir -p "$outpath/mkspecs"
2150     rm -rf "$outpath"/mkspecs/*
2151     ln -s "$relpath"/mkspecs/* "$outpath/mkspecs"
2152     rm -f "$outpath/mkspecs/default"
2153
2154     ShadowMkspecs()
2155     {
2156         rm -rf "$outpath/mkspecs/$1"
2157         find "$relpath/mkspecs/$1" -type d | sed "s,^$relpath,$outpath," | xargs mkdir -p
2158         find "$relpath/mkspecs/$1" -type f | sed "s,^$relpath/,," | while read f; do ln -s "$relpath/$f" "$outpath/$f"; done
2159     }
2160
2161     # Special case for mkspecs/features directory.
2162     # To be able to place .prf files into a shadow build directory,
2163     # we're creating links for files only. The directory structure is reproduced.
2164     ShadowMkspecs features
2165
2166     # The modules dir is special, too.
2167     if test -d "$outpath/mkspecs-modules"; then
2168         rm -rf "$outpath/mkspecs/modules"
2169         mv "$outpath/mkspecs-modules" "$outpath/mkspecs/modules"
2170     else
2171         ShadowMkspecs modules
2172     fi
2173
2174     # The modules-inst dir is not quite as special, but still.
2175     if test -d "$outpath/mkspecs-modules-inst"; then
2176         rm -rf "$outpath/mkspecs/modules-inst"
2177         mv "$outpath/mkspecs-modules-inst" "$outpath/mkspecs/modules-inst"
2178     fi
2179
2180     # symlink the doc directory
2181     rm -rf "$outpath/doc"
2182     ln -s "$relpath/doc" "$outpath/doc"
2183 fi
2184
2185 # symlink fonts to be able to run application from build directory
2186 if [ ! -d "${outpath}/lib/fonts" ]; then
2187     if [ "$PLATFORM" = "$XPLATFORM" ]; then
2188         mkdir -p "${outpath}/lib"
2189         ln -s "${relpath}/lib/fonts" "${outpath}/lib/fonts"
2190     fi
2191 fi
2192
2193 if [ "$OPT_FAST" = "auto" ]; then
2194    if [ '!' -z "$AWK" ] && [ "$CFG_DEV" = "yes" ]; then
2195        OPT_FAST=yes
2196    else
2197        OPT_FAST=no
2198    fi
2199 fi
2200
2201 # find a make command
2202 if [ -z "$MAKE" ]; then
2203     MAKE=
2204     for mk in gmake make; do
2205         if "$WHICH" $mk >/dev/null 2>&1; then
2206             MAKE=`"$WHICH" $mk`
2207             break
2208         fi
2209     done
2210     if [ -z "$MAKE" ]; then
2211         echo >&2 "You don't seem to have 'make' or 'gmake' in your PATH."
2212         echo >&2 "Cannot proceed."
2213         exit 1
2214     fi
2215     # export MAKE, we need it later in the config.tests
2216     export MAKE
2217 fi
2218
2219 fi ### help
2220
2221 #-------------------------------------------------------------------------------
2222 # auto-detect all that hasn't been specified in the arguments
2223 #-------------------------------------------------------------------------------
2224
2225 if [ -z "$PLATFORM" ]; then
2226     PLATFORM_NOTES=
2227     case "$UNAME_SYSTEM:$UNAME_RELEASE" in
2228      Darwin:*)
2229          OSX_VERSION=`uname -r | cut -d. -f1`
2230          # Select compiler. Use g++ unless we find a usable Clang version
2231          PLATFORM=macx-g++
2232          if [ "$OSX_VERSION" -ge 12 ]; then
2233             # We're on Mountain Lion or above. Use Clang. Don't advertise gcc.
2234             PLATFORM=macx-clang
2235          elif [ "$OSX_VERSION" -eq 11 ]; then
2236              # We're on Lion. Check if we have a supported Clang version
2237              case "$(clang -v 2>&1 | grep -Po '(?<=version )\d[\d.]+')" in
2238                  3.*)
2239                      PLATFORM=macx-clang
2240                      PLATFORM_NOTES="\n    - Also available for Mac OS X: macx-g++\n"
2241                      ;;
2242              esac
2243          fi
2244          ;;
2245      AIX:*)
2246         #PLATFORM=aix-g++
2247         #PLATFORM=aix-g++-64
2248         PLATFORM=aix-xlc
2249         #PLATFORM=aix-xlc-64
2250         PLATFORM_NOTES="
2251             - Also available for AIX: aix-g++ aix-g++-64 aix-xlc-64
2252         "
2253         ;;
2254      GNU:*)
2255         PLATFORM=hurd-g++
2256         ;;
2257      dgux:*)
2258         PLATFORM=dgux-g++
2259         ;;
2260 #     DYNIX/ptx:4*)
2261 #       PLATFORM=dynix-g++
2262 #       ;;
2263      ULTRIX:*)
2264         PLATFORM=ultrix-g++
2265         ;;
2266      FreeBSD:*)
2267         PLATFORM=freebsd-g++
2268         PLATFORM_NOTES="
2269             - Also available for FreeBSD: freebsd-icc
2270         "
2271         ;;
2272      OpenBSD:*)
2273         PLATFORM=openbsd-g++
2274         ;;
2275      NetBSD:*)
2276         PLATFORM=netbsd-g++
2277         ;;
2278      BSD/OS:*|BSD/386:*)
2279         PLATFORM=bsdi-g++
2280         ;;
2281      IRIX*:*)
2282         #PLATFORM=irix-g++
2283         PLATFORM=irix-cc
2284         #PLATFORM=irix-cc-64
2285         PLATFORM_NOTES="
2286             - Also available for IRIX: irix-g++ irix-cc-64
2287         "
2288         ;;
2289      HP-UX:*)
2290         case "$UNAME_MACHINE" in
2291             ia64)
2292                 #PLATFORM=hpuxi-acc-32
2293                 PLATFORM=hpuxi-acc-64
2294                 PLATFORM_NOTES="
2295                     - Also available for HP-UXi: hpuxi-acc-32
2296                 "
2297             ;;
2298             *)
2299                 #PLATFORM=hpux-g++
2300                 PLATFORM=hpux-acc
2301                 #PLATFORM=hpux-acc-64
2302                 #PLATFORM=hpux-cc
2303                 #PLATFORM=hpux-acc-o64
2304                 PLATFORM_NOTES="
2305                     - Also available for HP-UX: hpux-g++ hpux-acc-64 hpux-acc-o64
2306                 "
2307             ;;
2308         esac
2309         ;;
2310      OSF1:*)
2311         #PLATFORM=tru64-g++
2312         PLATFORM=tru64-cxx
2313         PLATFORM_NOTES="
2314             - Also available for Tru64: tru64-g++
2315         "
2316         ;;
2317      Linux:*)
2318         case "$UNAME_MACHINE" in
2319             x86_64|s390x|ppc64)
2320                 PLATFORM=linux-g++-64
2321                 ;;
2322             *)
2323                 PLATFORM=linux-g++
2324                 ;;
2325         esac
2326         PLATFORM_NOTES="
2327             - Also available for Linux: linux-kcc linux-icc linux-cxx
2328         "
2329         ;;
2330      SunOS:5*)
2331         if [ "$XPLATFORM_MINGW" = "yes" ]; then
2332             PLATFORM="solaris-g++"
2333         else
2334             #PLATFORM=solaris-g++
2335             PLATFORM=solaris-cc
2336             #PLATFORM=solaris-cc64
2337         fi
2338         PLATFORM_NOTES="
2339             - Also available for Solaris: solaris-g++ solaris-cc-64
2340         "
2341         ;;
2342      ReliantUNIX-*:*|SINIX-*:*)
2343         PLATFORM=reliant-cds
2344         #PLATFORM=reliant-cds-64
2345         PLATFORM_NOTES="
2346             - Also available for Reliant UNIX: reliant-cds-64
2347         "
2348         ;;
2349      CYGWIN*:*)
2350         PLATFORM=cygwin-g++
2351         ;;
2352      LynxOS*:*)
2353         PLATFORM=lynxos-g++
2354         ;;
2355      OpenUNIX:*)
2356         #PLATFORM=unixware-g++
2357         PLATFORM=unixware-cc
2358         PLATFORM_NOTES="
2359             - Also available for OpenUNIX: unixware-g++
2360         "
2361         ;;
2362      UnixWare:*)
2363         #PLATFORM=unixware-g++
2364         PLATFORM=unixware-cc
2365         PLATFORM_NOTES="
2366             - Also available for UnixWare: unixware-g++
2367         "
2368         ;;
2369      SCO_SV:*)
2370         #PLATFORM=sco-g++
2371         PLATFORM=sco-cc
2372         PLATFORM_NOTES="
2373             - Also available for SCO OpenServer: sco-g++
2374         "
2375         ;;
2376      UNIX_SV:*)
2377         PLATFORM=unixware-g++
2378         ;;
2379      QNX:*)
2380         PLATFORM=unsupported/qnx-g++
2381         ;;
2382      *)
2383         if [ "$OPT_HELP" != "yes" ]; then
2384             echo >&2
2385             echo "   The build script does not currently recognize all" >&2
2386             echo "   platforms supported by Qt." >&2
2387             echo "   Rerun this script with a -platform option listed to" >&2
2388             echo "   set the system/compiler combination you use." >&2
2389             echo >&2
2390             exit 2
2391         fi
2392     esac
2393 fi
2394
2395 [ -z "$XPLATFORM" ] && XPLATFORM="$PLATFORM"
2396
2397 case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
2398 case "$XPLATFORM" in linux-g++-maemo) XPLATFORM_MAEMO=yes;; esac
2399 case "$XPLATFORM" in *qnx-*|*blackberry-*) XPLATFORM_QNX=yes;; esac
2400
2401 if [ -d "$PLATFORM" ]; then
2402   QMAKESPEC="$PLATFORM"
2403 else
2404   QMAKESPEC="$relpath/mkspecs/${PLATFORM}"
2405 fi
2406 if [ -d "$XPLATFORM" ]; then
2407   XQMAKESPEC="$XPLATFORM"
2408 else
2409   XQMAKESPEC="$relpath/mkspecs/${XPLATFORM}"
2410 fi
2411 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2412     QT_CROSS_COMPILE=yes
2413     QMAKE_CONFIG="$QMAKE_CONFIG cross_compile"
2414     QTCONFIG_CONFIG="$QTCONFIG_CONFIG cross_compile"
2415 fi
2416
2417 if [ "$BUILD_ON_MAC" = "yes" ]; then
2418    if [ `basename $QMAKESPEC` = "macx-xcode" ] || [ `basename $XQMAKESPEC` = "macx-xcode" ]; then
2419       echo >&2
2420       echo "   Platform 'macx-xcode' should not be used when building Qt/Mac." >&2
2421       echo "   Please build Qt/Mac with 'macx-g++', then if you would like to" >&2
2422       echo "   use mac-xcode on your application code it can link to a Qt/Mac" >&2
2423       echo "   built with 'macx-g++'" >&2
2424       echo >&2
2425       exit 2
2426     fi
2427 fi
2428
2429 # check specified platforms are supported
2430 if [ '!' -d "$QMAKESPEC" ]; then
2431     echo
2432     echo "   The specified system/compiler is not supported:"
2433     echo
2434     echo "      $QMAKESPEC"
2435     echo
2436     echo "   Please see the README file for a complete list."
2437     echo
2438     exit 2
2439 fi
2440 if [ '!' -d "$XQMAKESPEC" ]; then
2441     echo
2442     echo "   The specified system/compiler is not supported:"
2443     echo
2444     echo "      $XQMAKESPEC"
2445     echo
2446     echo "   Please see the README file for a complete list."
2447     echo
2448     exit 2
2449 fi
2450 if [ '!' -f "${XQMAKESPEC}/qplatformdefs.h" ]; then
2451     echo
2452     echo "   The specified system/compiler port is not complete:"
2453     echo
2454     echo "      $XQMAKESPEC/qplatformdefs.h"
2455     echo
2456     echo "   Please contact qt-info@nokia.com."
2457     echo
2458     exit 2
2459 fi
2460
2461 if [ "$UNAME_SYSTEM" = "SunOS" ]; then
2462     # Solaris 2.5 and 2.6 have libposix4, which was renamed to librt for Solaris 7 and up
2463     if echo $UNAME_RELEASE | grep "^5\.[5|6]" >/dev/null 2>&1; then
2464         sed -e "s,-lrt,-lposix4," "$XQMAKESPEC/qmake.conf" > "$XQMAKESPEC/qmake.conf.new"
2465         mv "$XQMAKESPEC/qmake.conf.new" "$XQMAKESPEC/qmake.conf"
2466     fi
2467 fi
2468
2469 if [ "$CFG_RTOS_ENABLED" = "no" ]; then
2470     case `basename "$XPLATFORM"` in
2471         qnx-* | vxworks-*)
2472             echo ""
2473             echo "You are not licensed for Qt for `basename $XPLATFORM`."
2474             echo ""
2475             echo "Please contact qt-info@nokia.com to upgrade your license to"
2476             echo "include this platform, or install the Qt Open Source Edition"
2477             echo "if you intend to develop free software."
2478             exit 1
2479             ;;
2480     esac
2481 fi
2482
2483 #-------------------------------------------------------------------------------
2484 # tests that don't need qmake (must be run before displaying help)
2485 #-------------------------------------------------------------------------------
2486
2487 # detect build style
2488 if [ "$CFG_DEBUG" = "auto" ]; then
2489     if [ "$PLATFORM_MAC" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
2490         CFG_DEBUG_RELEASE=yes
2491         CFG_DEBUG=yes
2492     elif [ "$CFG_DEV" = "yes" ]; then
2493         CFG_DEBUG_RELEASE=no
2494         CFG_DEBUG=yes
2495     else
2496         CFG_DEBUG_RELEASE=no
2497         CFG_DEBUG=no
2498     fi
2499 fi
2500 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2501     QT_CONFIG="$QT_CONFIG build_all debug_and_release"
2502 fi
2503
2504 # pass on $CFG_SDK to the configure tests.
2505 if [ '!' -z "$CFG_SDK" ]; then
2506     MAC_CONFIG_TEST_COMMANDLINE="$MAC_CONFIG_TEST_COMMANDLINE -sdk $CFG_SDK"
2507 fi
2508
2509 # find the default framework value
2510 if [ "$BUILD_ON_MAC" = "yes" ]; then
2511     if [ "$CFG_FRAMEWORK" = "auto" ]; then
2512         CFG_FRAMEWORK="$CFG_SHARED"
2513     elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2514         echo
2515         echo "WARNING: Using static linking will disable the use of Mac frameworks."
2516         echo
2517         CFG_FRAMEWORK="no"
2518     fi
2519 else
2520     CFG_FRAMEWORK=no
2521 fi
2522
2523 QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`
2524
2525 TEST_COMPILER=$QMAKE_CONF_COMPILER
2526 if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
2527     if [ -z "$TEST_COMPILER" ]; then
2528         echo "ERROR: Cannot set the compiler for the configuration tests"
2529         exit 1
2530     fi
2531 fi
2532
2533 GCC_MACHINE_DUMP=
2534 case "$TEST_COMPILER" in *g++) GCC_MACHINE_DUMP=$($TEST_COMPILER -dumpmachine);; esac
2535 if [ -n "$GCC_MACHINE_DUMP" ]; then
2536     DeviceVar set GCC_MACHINE_DUMP $($TEST_COMPILER -dumpmachine)
2537 fi
2538
2539 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
2540     SYSROOT_FLAG="--sysroot=$CFG_SYSROOT"
2541 else
2542     SYSROOT_FLAG=
2543 fi
2544 export SYSROOT_FLAG    # used by config.tests/unix/{compile.test,arch.test}
2545
2546 # auto-detect precompiled header support
2547 if [ "$CFG_PRECOMPILE" = "auto" ]; then
2548     if "$unixtests/precomp.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2549        CFG_PRECOMPILE=no
2550     else
2551        CFG_PRECOMPILE=yes
2552     fi
2553 fi
2554
2555 # auto-detect support for separate debug info in objcopy
2556 if [ "$CFG_SEPARATE_DEBUG_INFO" != "no" ] && [ "$CFG_SHARED" = "yes" ]; then
2557     TEST_COMPILER_CFLAGS=`getXQMakeConf QMAKE_CFLAGS`
2558     TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS`
2559     TEST_OBJCOPY=`getXQMakeConf QMAKE_OBJCOPY`
2560     COMPILER_WITH_FLAGS="$TEST_COMPILER $TEST_COMPILER_CXXFLAGS"
2561     COMPILER_WITH_FLAGS=`echo "$COMPILER_WITH_FLAGS" | sed -e "s%\\$\\$QMAKE_CFLAGS%$TEST_COMPILER_CFLAGS%g"`
2562     if "$unixtests/objcopy.test" "$COMPILER_WITH_FLAGS" "$TEST_OBJCOPY" "$OPT_VERBOSE"; then
2563        CFG_SEPARATE_DEBUG_INFO=no
2564     else
2565        case "$PLATFORM" in
2566        hpux-*)
2567            # binutils on HP-UX is buggy; default to no.
2568            CFG_SEPARATE_DEBUG_INFO=no
2569            ;;
2570        *)
2571            CFG_SEPARATE_DEBUG_INFO=yes
2572            ;;
2573        esac
2574     fi
2575 fi
2576
2577 # auto-detect -fvisibility support
2578 if [ "$CFG_REDUCE_EXPORTS" != "no" ]; then
2579     if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2580        if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
2581            echo "-reduce-exports was requested but this compiler does not support it"
2582            echo "Re-run configure with -v for more information"
2583            exit 1
2584        fi
2585        CFG_REDUCE_EXPORTS=no
2586     else
2587        CFG_REDUCE_EXPORTS=yes
2588     fi
2589 fi
2590
2591 # detect the availability of the -Bsymbolic-functions linker optimization
2592 if [ "$CFG_REDUCE_RELOCATIONS" != "no" ]; then
2593     if "$unixtests/bsymbolic_functions.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2594        if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
2595            echo "-reduce-relocations was requested but this compiler does not support it"
2596            echo "Re-run configure with -v for more information"
2597            exit 1
2598        fi
2599         CFG_REDUCE_RELOCATIONS=no
2600     else
2601         CFG_REDUCE_RELOCATIONS=yes
2602     fi
2603 fi
2604
2605 # auto-detect GNU make support
2606 if [ "$CFG_USE_GNUMAKE" = "auto" ] && "$MAKE" -v | grep "GNU Make" >/dev/null 2>&1; then
2607    CFG_USE_GNUMAKE=yes
2608 fi
2609
2610 # find the default framework value
2611 if [ "$BUILD_ON_MAC" = "yes" ]; then
2612     if [ "$CFG_FRAMEWORK" = "auto" ]; then
2613         CFG_FRAMEWORK="$CFG_SHARED"
2614     elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2615         echo
2616         echo "WARNING: Using static linking will disable the use of Mac frameworks."
2617         echo
2618         CFG_FRAMEWORK="no"
2619     fi
2620 else
2621     CFG_FRAMEWORK=no
2622 fi
2623
2624 #setup the build parts
2625 if [ -z "$CFG_BUILD_PARTS" ]; then
2626     CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS"
2627
2628     # build tests by default, if a developer build
2629     if [ "$CFG_DEV" = "yes" ]; then
2630         CFG_BUILD_PARTS="$CFG_BUILD_PARTS tests"
2631     fi
2632
2633     # don't build tools by default when cross-compiling
2634     if [ "$PLATFORM" != "$XPLATFORM" ]; then
2635         CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
2636     fi
2637 fi
2638 for nobuild in $CFG_NOBUILD_PARTS; do
2639     CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
2640 done
2641 if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then
2642 #    echo
2643 #    echo "WARNING: libs is a required part of the build."
2644 #    echo
2645     CFG_BUILD_PARTS="$CFG_BUILD_PARTS libs"
2646 fi
2647
2648 #-------------------------------------------------------------------------------
2649 # post process QT_INSTALL_* variables
2650 #-------------------------------------------------------------------------------
2651
2652 if [ -z "$QT_INSTALL_PREFIX" ]; then
2653     if [ "$CFG_DEV" = "yes" ]; then
2654         QT_INSTALL_PREFIX="$outpath" # In Development, we use sandboxed builds by default
2655     else
2656         QT_INSTALL_PREFIX="/usr/local/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Qt-$QT_VERSION
2657     fi
2658 fi
2659 QT_INSTALL_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PREFIX"`
2660
2661 if [ -z "$QT_INSTALL_DOCS" ]; then #default
2662     if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2663         if [ "$BUILD_ON_MAC" = "yes" ]; then
2664             QT_INSTALL_DOCS="/Developer/Documentation/Qt"
2665         fi
2666     fi
2667     [ -z "$QT_INSTALL_DOCS" ] && QT_INSTALL_DOCS="$QT_INSTALL_PREFIX/doc" #fallback
2668
2669 fi
2670 QT_INSTALL_DOCS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DOCS"`
2671
2672 if [ -z "$QT_INSTALL_HEADERS" ]; then #default
2673     if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2674         if [ "$BUILD_ON_MAC" = "yes" ]; then
2675             if [ "$CFG_FRAMEWORK" = "yes" ]; then
2676                 QT_INSTALL_HEADERS=
2677             fi
2678         fi
2679     fi
2680     [ -z "$QT_INSTALL_HEADERS" ] && QT_INSTALL_HEADERS="$QT_INSTALL_PREFIX/include"
2681
2682 fi
2683 QT_INSTALL_HEADERS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_HEADERS"`
2684
2685 if [ -z "$QT_INSTALL_LIBS" ]; then #default
2686     if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2687         if [ "$BUILD_ON_MAC" = "yes" ]; then
2688             if [ "$CFG_FRAMEWORK" = "yes" ]; then
2689                 QT_INSTALL_LIBS="/Library/Frameworks"
2690             fi
2691         fi
2692     fi
2693     [ -z "$QT_INSTALL_LIBS" ] && QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib" #fallback
2694 fi
2695 QT_INSTALL_LIBS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBS"`
2696
2697 if [ -z "$QT_INSTALL_BINS" ]; then #default
2698     if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2699         if [ "$BUILD_ON_MAC" = "yes" ]; then
2700             QT_INSTALL_BINS="/Developer/Applications/Qt"
2701         fi
2702     fi
2703     [ -z "$QT_INSTALL_BINS" ] && QT_INSTALL_BINS="$QT_INSTALL_PREFIX/bin" #fallback
2704 fi
2705 QT_INSTALL_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_BINS"`
2706
2707 if [ -z "$QT_INSTALL_PLUGINS" ]; then #default
2708     if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2709         if [ "$BUILD_ON_MAC" = "yes" ]; then
2710             QT_INSTALL_PLUGINS="/Developer/Applications/Qt/plugins"
2711         fi
2712     fi
2713     [ -z "$QT_INSTALL_PLUGINS" ] && QT_INSTALL_PLUGINS="$QT_INSTALL_PREFIX/plugins" #fallback
2714 fi
2715 QT_INSTALL_PLUGINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PLUGINS"`
2716
2717 if [ -z "$QT_INSTALL_IMPORTS" ]; then #default
2718     if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2719         if [ "$BUILD_ON_MAC" = "yes" ]; then
2720             QT_INSTALL_IMPORTS="/Developer/Applications/Qt/imports"
2721         fi
2722     fi
2723     [ -z "$QT_INSTALL_IMPORTS" ] && QT_INSTALL_IMPORTS="$QT_INSTALL_PREFIX/imports" #fallback
2724 fi
2725 QT_INSTALL_IMPORTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_IMPORTS"`
2726
2727 if [ -z "$QT_INSTALL_DATA" ]; then #default
2728     QT_INSTALL_DATA="$QT_INSTALL_PREFIX"
2729 fi
2730 QT_INSTALL_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DATA"`
2731
2732 if [ -z "$QT_INSTALL_TRANSLATIONS" ]; then #default
2733     QT_INSTALL_TRANSLATIONS="$QT_INSTALL_PREFIX/translations"
2734 fi
2735 QT_INSTALL_TRANSLATIONS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TRANSLATIONS"`
2736
2737 if [ -z "$QT_INSTALL_SETTINGS" ]; then #default
2738     if [ "$BUILD_ON_MAC" = "yes" ]; then
2739         QT_INSTALL_SETTINGS=/Library/Preferences/Qt
2740     else
2741         QT_INSTALL_SETTINGS=/etc/xdg
2742     fi
2743 fi
2744 QT_INSTALL_SETTINGS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_SETTINGS"`
2745
2746 if [ -z "$QT_INSTALL_EXAMPLES" ]; then #default
2747     if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2748         if [ "$BUILD_ON_MAC" = "yes" ]; then
2749             QT_INSTALL_EXAMPLES="/Developer/Examples/Qt"
2750         fi
2751     fi
2752     [ -z "$QT_INSTALL_EXAMPLES" ] && QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples" #fallback
2753 fi
2754 QT_INSTALL_EXAMPLES=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_EXAMPLES"`
2755
2756 #tests
2757 if [ -z "$QT_INSTALL_TESTS" ]; then #default
2758     if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2759         if [ "$BUILD_ON_MAC" = "yes" ]; then
2760             QT_INSTALL_TESTS="/Developer/Tests/Qt"
2761         fi
2762     fi
2763     [ -z "$QT_INSTALL_TESTS" ] && QT_INSTALL_TESTS="$QT_INSTALL_PREFIX/tests" #fallback
2764 fi
2765 QT_INSTALL_TESTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TESTS"`
2766
2767 #------- host paths --------
2768
2769 if [ -z "$QT_HOST_PREFIX" ]; then
2770     QT_HOST_PREFIX=$QT_INSTALL_PREFIX
2771     haveHpx=false
2772 else
2773     QT_HOST_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_PREFIX"`
2774     haveHpx=true
2775 fi
2776
2777 if [ -z "$QT_HOST_BINS" ]; then #default
2778     if $haveHpx; then
2779         if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2780             if [ "$BUILD_ON_MAC" = "yes" ]; then
2781                 QT_HOST_BINS="/Developer/Applications/Qt"
2782             fi
2783         fi
2784         [ -z "$QT_HOST_BINS" ] && QT_HOST_BINS="$QT_HOST_PREFIX/bin" #fallback
2785     else
2786         QT_HOST_BINS="$QT_INSTALL_BINS"
2787     fi
2788 fi
2789 QT_HOST_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_BINS"`
2790
2791 if [ -z "$QT_HOST_DATA" ]; then #default
2792     if $haveHpx; then
2793         QT_HOST_DATA="$QT_HOST_PREFIX"
2794     else
2795         QT_HOST_DATA="$QT_INSTALL_DATA"
2796     fi
2797 else
2798     QT_HOST_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_DATA"`
2799 fi
2800
2801 #-------------------------------------------------------------------------------
2802 # help - interactive parts of the script _after_ this section please
2803 #-------------------------------------------------------------------------------
2804
2805 # next, emit a usage message if something failed.
2806 if [ "$OPT_HELP" = "yes" ]; then
2807     [ "x$ERROR" = "xyes" ] && echo
2808     if [ "$CFG_NIS" = "no" ]; then
2809         NSY=" "
2810         NSN="*"
2811     else
2812         NSY="*"
2813         NSN=" "
2814     fi
2815     if [ "$CFG_CUPS" = "no" ]; then
2816         CUY=" "
2817         CUN="*"
2818     else
2819         CUY="*"
2820         CUN=" "
2821     fi
2822     if [ "$CFG_ICONV" = "no" ]; then
2823         CIY=" "
2824         CIN="*"
2825     else
2826         CIY="*"
2827         CIN=" "
2828     fi
2829     if [ "$CFG_LARGEFILE" = "no" ]; then
2830         LFSY=" "
2831         LFSN="*"
2832     else
2833         LFSY="*"
2834         LFSN=" "
2835     fi
2836     if [ "$CFG_PRECOMPILE" = "auto" ] || [ "$CFG_PRECOMPILE" = "no" ]; then
2837         PHY=" "
2838         PHN="*"
2839     else
2840         PHY="*"
2841         PHN=" "
2842     fi
2843
2844     if [ "$CFG_XCB" = "no" ]; then
2845         XCBY=" "
2846         XCBN="*"
2847     else
2848         XCBY="*"
2849         XCBN=" "
2850     fi
2851
2852     if [ "$CFG_EGLFS" = "no" ]; then
2853         EGLFSY=" "
2854         EGLFSN="*"
2855     else
2856         EGLFSY="*"
2857         EGLFSN=" "
2858     fi
2859
2860     if [ "$CFG_DIRECTFB" = "no" ]; then
2861         DFBY=" "
2862         DFBN="*"
2863     else
2864         DFBY="*"
2865         DFBN=" "
2866     fi
2867
2868     if [ "$CFG_LINUXFB" = "no" ]; then
2869         LFBY=" "
2870         LFBN="*"
2871     else
2872         LFBY="*"
2873         LFBN=" "
2874     fi
2875
2876     if [ "$CFG_KMS" = "no" ]; then
2877         KMSY=" "
2878         KMSN="*"
2879     else
2880         KMSY="*"
2881         KMSN=" "
2882     fi
2883
2884     if [ "$CFG_XINPUT2" = "no" ]; then
2885         X2Y=" "
2886         X2N="*"
2887     else
2888         X2Y="*"
2889         X2N=" "
2890     fi
2891
2892     if [ "$CFG_DBUS" = "no" ]; then
2893         DBY=" "
2894         DBN="+"
2895     else
2896         DBY="+"
2897         DBN=" "
2898     fi
2899
2900     if [ "$CFG_SEPARATE_DEBUG_INFO" = "no" ]; then
2901         SBY=" "
2902         SBN="*"
2903     else
2904         SBY="*"
2905         SBN=" "
2906     fi
2907
2908     if [ "$CFG_GLIB" = "no" ]; then
2909         GBY=" "
2910         GBN="+"
2911     else
2912         GBY="+"
2913         GBN=" "
2914     fi
2915
2916     cat <<EOF
2917 Usage:  $relconf [options]
2918
2919 Installation options:
2920
2921  These are optional, but you may specify install directories.
2922
2923     -prefix <dir> ...... This will install everything relative to <dir>
2924                          (default $QT_INSTALL_PREFIX)
2925
2926     -hostprefix [dir] .. Tools and libraries needed when developing
2927                          applications are installed in [dir]. If [dir] is
2928                          not given, the current build directory will be used.
2929                          (default PREFIX)
2930
2931   * -prefix-install .... Force a sandboxed "local" installation of
2932                          Qt. This will install into
2933                          $QT_INSTALL_PREFIX, if this option is
2934                          disabled then some platforms will attempt a
2935                          "system" install by placing default values to
2936                          be placed in a system location other than
2937                          PREFIX.
2938
2939  You may use these to separate different parts of the install:
2940
2941     -bindir <dir> ......... Executables will be installed to <dir>
2942                             (default PREFIX/bin)
2943     -libdir <dir> ......... Libraries will be installed to <dir>
2944                             (default PREFIX/lib)
2945     -docdir <dir> ......... Documentation will be installed to <dir>
2946                             (default PREFIX/doc)
2947     -headerdir <dir> ...... Headers will be installed to <dir>
2948                             (default PREFIX/include)
2949     -plugindir <dir> ...... Plugins will be installed to <dir>
2950                             (default PREFIX/plugins)
2951     -importdir <dir> ...... Imports for QML will be installed to <dir>
2952                             (default PREFIX/imports)
2953     -datadir <dir> ........ Data used by Qt programs will be installed to <dir>
2954                             (default PREFIX)
2955     -translationdir <dir> . Translations of Qt programs will be installed to <dir>
2956                             (default PREFIX/translations)
2957     -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
2958                             (default PREFIX/etc/settings)
2959     -examplesdir <dir> .... Examples will be installed to <dir>
2960                             (default PREFIX/examples)
2961     -testsdir <dir> ....... Tests will be installed to <dir>
2962                             (default PREFIX/tests)
2963
2964     -hostbindir <dir> .. Host executables will be installed to <dir>
2965                          (default HOSTPREFIX/bin)
2966     -hostdatadir <dir> . Data used by qmake will be installed to <dir>
2967                          (default HOSTPREFIX)
2968
2969 Configure options:
2970
2971  The defaults (*) are usually acceptable. A plus (+) denotes a default value
2972  that needs to be evaluated. If the evaluation succeeds, the feature is
2973  included. Here is a short explanation of each option:
2974
2975  *  -release ........... Compile and link Qt with debugging turned off.
2976     -debug ............. Compile and link Qt with debugging turned on.
2977     -debug-and-release . Compile and link two versions of Qt, with and without
2978                          debugging turned on (Mac only).
2979
2980     -developer-build ... Compile and link Qt with Qt developer options (including auto-tests exporting)
2981
2982     -opensource ........ Compile and link the Open-Source Edition of Qt.
2983     -commercial ........ Compile and link the Commercial Edition of Qt.
2984
2985     -no-c++11 .......... Do not compile Qt with C++11 support enabled.
2986  +  -c++11 ............. Compile Qt with C++11 support enabled.
2987
2988  *  -shared ............ Create and use shared Qt libraries.
2989     -static ............ Create and use static Qt libraries.
2990
2991  *  -process ........... Generate only a top-level Makefile.
2992     -fully-process ..... Generate Makefiles for the entire Qt tree.
2993     -dont-process ...... Do not generate any Makefiles.
2994
2995  *  -no-fast ........... Configure Qt normally by generating Makefiles for all
2996                          project files.
2997     -fast .............. Configure Qt quickly by generating Makefiles only for
2998                          library and subdirectory targets.  All other Makefiles
2999                          are created as wrappers, which will in turn run qmake.
3000
3001     -no-largefile ...... Disables large file support.
3002  +  -largefile ......... Enables Qt to access files larger than 4 GB.
3003
3004     -no-accessibility .. Do not compile Accessibility support.
3005  *  -accessibility ..... Compile Accessibility support.
3006
3007     -no-sql-<driver> ... Disable SQL <driver> entirely.
3008     -qt-sql-<driver> ... Enable a SQL <driver> in the QtSql library, by default
3009                          none are turned on.
3010     -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
3011                          at run time.
3012
3013                          Possible values for <driver>:
3014                          [ $CFG_SQL_AVAILABLE ]
3015
3016     -system-sqlite ..... Use sqlite from the operating system.
3017
3018     -no-javascript-jit . Do not build the JavaScriptCore JIT compiler.
3019  +  -javascript-jit .... Build the JavaScriptCore JIT compiler.
3020
3021     -no-qml-debug ...... Do not build the in-process QML debugging support.
3022  +  -qml-debug ......... Build the QML debugging support.
3023
3024     -platform target ... The operating system and compiler you are building
3025                          on ($PLATFORM).
3026
3027                          See the README file for a list of supported
3028                          operating systems and compilers.
3029
3030     -no-sse2 ........... Do not compile with use of SSE2 instructions.
3031     -no-sse3 ........... Do not compile with use of SSE3 instructions.
3032     -no-ssse3 .......... Do not compile with use of SSSE3 instructions.
3033     -no-sse4.1.......... Do not compile with use of SSE4.1 instructions.
3034     -no-sse4.2.......... Do not compile with use of SSE4.2 instructions.
3035     -no-avx ............ Do not compile with use of AVX instructions.
3036     -no-avx2 ........... Do not compile with use of AVX2 instructions.
3037     -no-neon ........... Do not compile with use of NEON instructions.
3038     -no-mips_dsp ....... Do not compile with use of MIPS DSP instructions.
3039     -no-mips_dspr2 ..... Do not compile with use of MIPS DSP rev2 instructions.
3040
3041     -qtnamespace <name>  Wraps all Qt library code in 'namespace <name> {...}'.
3042     -qtlibinfix <infix>  Renames all libQt*.so to libQt*<infix>.so.
3043
3044     -testcocoon          Instrument Qt with the TestCocoon code coverage tool.
3045
3046     -D <string> ........ Add an explicit define to the preprocessor.
3047     -I <string> ........ Add an explicit include path.
3048     -L <string> ........ Add an explicit library path.
3049
3050  +  -pkg-config ........ Use pkg-config to detect include and library paths. By default,
3051                          configure determines whether to use pkg-config or not with
3052                          some heuristics such as checking the environment variables.
3053     -no-pkg-config ..... Disable use of pkg-config.
3054     -force-pkg-config .. Force usage of pkg-config (skips pkg-config usability
3055                          detection heuristic).
3056
3057     -help, -h .......... Display this information.
3058
3059 Third Party Libraries:
3060
3061     -qt-zlib ........... Use the zlib bundled with Qt.
3062  +  -system-zlib ....... Use zlib from the operating system.
3063                          See http://www.gzip.org/zlib
3064
3065     -no-gif ............ Do not compile GIF reading support.
3066
3067     -no-libpng ......... Do not compile PNG support.
3068     -qt-libpng ......... Use the libpng bundled with Qt.
3069  +  -system-libpng ..... Use libpng from the operating system.
3070                          See http://www.libpng.org/pub/png
3071
3072     -no-libjpeg ........ Do not compile JPEG support.
3073     -qt-libjpeg ........ Use the libjpeg bundled with Qt.
3074  +  -system-libjpeg .... Use libjpeg from the operating system.
3075                          See http://www.ijg.org
3076
3077     -no-openssl ........ Do not compile support for OpenSSL.
3078  +  -openssl ........... Enable run-time OpenSSL support.
3079     -openssl-linked .... Enabled linked OpenSSL support.
3080
3081     -qt-pcre ........... Use the PCRE library bundled with Qt.
3082  +  -system-pcre ....... Use the PCRE library from the operating system.
3083
3084 Additional options:
3085
3086     -make <part> ....... Add part to the list of parts to be built at make time.
3087                          ($QT_DEFAULT_BUILD_PARTS)
3088     -nomake <part> ..... Exclude part from the list of parts to be built.
3089
3090     -R <string> ........ Add an explicit runtime library path to the Qt
3091                          libraries.
3092     -l <string> ........ Add an explicit library.
3093
3094     -no-rpath .......... Do not use the library install path as a runtime
3095                          library path.
3096  +  -rpath ............. Link Qt libraries and executables using the library
3097                          install path as a runtime library path. Equivalent
3098                          to -R install_libpath
3099
3100     -continue .......... Continue as far as possible if an error occurs.
3101
3102     -verbose, -v ....... Print verbose information about each step of the
3103                          configure process.
3104
3105     -silent ............ Reduce the build output so that warnings and errors
3106                          can be seen more easily.
3107
3108  *  -no-optimized-qmake ... Do not build qmake optimized.
3109     -optimized-qmake ...... Build qmake optimized.
3110
3111     -no-gui ............ Don't build the Qt GUI library
3112
3113  $NSN  -no-nis ............ Do not compile NIS support.
3114  $NSY  -nis ............... Compile NIS support.
3115
3116  $CUN  -no-cups ........... Do not compile CUPS support.
3117  $CUY  -cups .............. Compile CUPS support.
3118                          Requires cups/cups.h and libcups.so.2.
3119
3120  $CIN  -no-iconv .......... Do not compile support for iconv(3).
3121  $CIY  -iconv ............. Compile support for iconv(3).
3122
3123  $PHN  -no-pch ............ Do not use precompiled header support.
3124  $PHY  -pch ............... Use precompiled header support.
3125
3126  $DBN  -no-dbus ........... Do not compile the QtDBus module.
3127  $DBY  -dbus .............. Compile the QtDBus module and dynamically load libdbus-1.
3128     -dbus-linked ....... Compile the QtDBus module and link to libdbus-1.
3129
3130     -reduce-relocations ..... Reduce relocations in the libraries through extra
3131                               linker optimizations (Qt/X11 and Qt for Embedded Linux only;
3132                               experimental; needs GNU ld >= 2.18).
3133
3134     -force-asserts ........ Force Q_ASSERT to be enabled even in release builds.
3135
3136     -device <name> ............... Cross-compile for device <name> (experimental)
3137     -device-option <key=value> ... Add device specific options for the device mkspec
3138                                    (experimental)
3139
3140  $SBN  -no-separate-debug-info . Do not store debug information in a separate file.
3141  $SBY  -separate-debug-info .... Strip debug information into a separate .debug file.
3142
3143  $XCBN  -no-xcb ............ Do not compile Xcb (X protocol C-language Binding) support.
3144  $XCBY  -xcb ............... Compile Xcb support.
3145
3146  $EGLFSN  -no-eglfs .......... Do not compile EGLFS (EGL Full Screen/Single Surface) support.
3147  $EGLFSY  -eglfs ............. Compile EGLFS support (Requires OpenGL ES 2 support).
3148
3149  $DFBN  -no-directfb ....... Do not compile DirectFB support.
3150  $DFBY  -directfb .......... Compile DirectFB support.
3151
3152  $LFBN  -no-linuxfb ........ Do not compile Linux Framebuffer support.
3153  $LFBY  -linuxfb ........... Compile Linux Framebuffer support.
3154
3155  $KMSN  -no-kms ............ Do not compile KMS support.
3156  $KMSY  -kms ............... Compile KMS support (Requires EGL and OpenGL ES 2 support).
3157
3158     -qpa <name> ......... Sets the default QPA platform (e.g xcb, cocoa, windows).
3159
3160     -xplatform target ... The target platform when cross-compiling.
3161
3162     -sysroot <dir> ...... Sets <dir> as the target compiler's and qmake's sysroot and also sets pkg-config paths.
3163     -no-gcc-sysroot ..... When using -sysroot, it disables the passing of --sysroot to the compiler
3164
3165     -no-feature-<feature> Do not compile in <feature>.
3166     -feature-<feature> .. Compile in <feature>. The available features
3167                           are described in src/corelib/global/qfeatures.txt
3168
3169     -no-freetype ........ Do not compile in Freetype2 support.
3170     -qt-freetype ........ Use the libfreetype bundled with Qt.
3171  *  -system-freetype .... Use libfreetype from the operating system.
3172                           See http://www.freetype.org/
3173
3174     -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
3175                           default ($CFG_QCONFIG).
3176
3177     -no-opengl .......... Do not support OpenGL.
3178     -opengl <api> ....... Enable OpenGL support
3179                           With no parameter, this will attempt to auto-detect
3180                           OpenGL ES 2, or regular desktop OpenGL.
3181                           Use es2 for <api> to override auto-detection.
3182
3183  $GBN  -no-glib ........... Do not compile Glib support.
3184  $GBY  -glib .............. Compile Glib support.
3185 EOF
3186
3187 if [ "$XPLATFORM_MAEMO" = "yes" ]; then
3188     cat << EOF
3189
3190  $X2N  -no-xinput2......... Do not compile XInput2 support.
3191  $X2Y  -xinput2............ Compile XInput2 support.
3192
3193 EOF
3194
3195 fi
3196
3197 if [ "$BUILD_ON_MAC" = "yes" ]; then
3198     cat << EOF
3199
3200 Qt/Mac only:
3201
3202     -Fstring ........... Add an explicit framework path.
3203     -fw string ......... Add an explicit framework.
3204
3205  *  -framework ......... Build Qt as a series of frameworks and
3206                          link tools against those frameworks.
3207     -no-framework ...... Do not build Qt as a series of frameworks.
3208
3209     -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
3210                          To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
3211
3212     -harfbuzz .......... Use HarfBuzz to do text layout instead of Core Text when possible.
3213  *  -no-harfbuzz ....... Disable HarfBuzz on Mac. It can still be enabled by setting
3214                          QT_ENABLE_HARFBUZZ environment variable.
3215
3216 EOF
3217 fi
3218
3219    [ "x$ERROR" = "xyes" ] && exit 1
3220    exit 0
3221 fi # Help
3222
3223
3224 # -----------------------------------------------------------------------------
3225 # LICENSING, INTERACTIVE PART
3226 # -----------------------------------------------------------------------------
3227
3228 echo
3229 echo "This is the Qt ${EditionString} Edition."
3230 echo
3231
3232 if [ "$Edition" = "OpenSource" ]; then
3233     while true; do
3234         echo "You are licensed to use this software under the terms of"
3235         echo "the Lesser GNU General Public License (LGPL) versions 2.1."
3236         if [ -f "$relpath/LICENSE.GPL3" ]; then
3237             echo "You are also licensed to use this software under the terms of"
3238             echo "the GNU General Public License (GPL) versions 3."
3239             affix="either"
3240         else
3241             affix="the"
3242         fi
3243         echo
3244         if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3245             echo "You have already accepted the terms of the $LicenseType license."
3246             acceptance=yes
3247         else
3248             if [ -f "$relpath/LICENSE.GPL3" ]; then
3249                 echo "Type '3' to view the GNU General Public License version 3."
3250             fi
3251             echo "Type 'L' to view the Lesser GNU General Public License version 2.1."
3252             echo "Type 'yes' to accept this license offer."
3253             echo "Type 'no' to decline this license offer."
3254             echo
3255             echo $ECHO_N "Do you accept the terms of $affix license? $ECHO_C"
3256             read acceptance
3257         fi
3258         echo
3259         if [ "$acceptance" = "yes" ] || [ "$acceptance" = "y" ]; then
3260             break
3261         elif [ "$acceptance" = "no" ]; then
3262             echo "You are not licensed to use this software."
3263             echo
3264             exit 1
3265         elif [ "$acceptance" = "3" ]; then
3266             more "$relpath/LICENSE.GPL3"
3267         elif [ "$acceptance" = "L" ]; then
3268             more "$relpath/LICENSE.LGPL"
3269         fi
3270     done
3271 elif [ "$Edition" = "Preview" ]; then
3272     TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
3273     while true; do
3274
3275         if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3276             echo "You have already accepted the terms of the $LicenseType license."
3277             acceptance=yes
3278         else
3279             echo "You are licensed to use this software under the terms of"
3280             echo "the $TheLicense"
3281             echo
3282             echo "Type '?' to read the Preview License."
3283             echo "Type 'yes' to accept this license offer."
3284             echo "Type 'no' to decline this license offer."
3285             echo
3286             echo $ECHO_N "Do you accept the terms of the license? $ECHO_C"
3287             read acceptance
3288         fi
3289         echo
3290         if [ "$acceptance" = "yes" ]; then
3291             break
3292         elif [ "$acceptance" = "no" ] ;then
3293             echo "You are not licensed to use this software."
3294             echo
3295             exit 0
3296         elif [ "$acceptance" = "?" ]; then
3297             more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
3298         fi
3299     done
3300 elif [ "$Edition" != "OpenSource" ]; then
3301     if [ -n "$ExpiryDate" ]; then
3302         ExpiryDate=`echo $ExpiryDate | sed -e "s,-,,g" | tr -d "\n\r"`
3303         [ -z "$ExpiryDate" ] && ExpiryDate="0"
3304         Today=`date +%Y%m%d`
3305         if [ "$Today" -gt "$ExpiryDate" ]; then
3306             case "$LicenseType" in
3307             Commercial|Academic|Educational)
3308                 if [ "$QT_PACKAGEDATE" -gt "$ExpiryDate" ]; then
3309                     echo
3310                     echo "NOTICE  NOTICE  NOTICE  NOTICE"
3311                     echo
3312                     echo "  Your support and upgrade period has expired."
3313                     echo
3314                     echo "  You are no longer licensed to use this version of Qt."
3315                     echo "  Please contact qt-info@nokia.com to renew your support"
3316                     echo "  and upgrades for this license."
3317                     echo
3318                     echo "NOTICE  NOTICE  NOTICE  NOTICE"
3319                     echo
3320                     exit 1
3321                 else
3322                     echo
3323                     echo "WARNING  WARNING  WARNING  WARNING"
3324                     echo
3325                     echo "  Your support and upgrade period has expired."
3326                     echo
3327                     echo "  You may continue to use your last licensed release"
3328                     echo "  of Qt under the terms of your existing license"
3329                     echo "  agreement. But you are not entitled to technical"
3330                     echo "  support, nor are you entitled to use any more recent"
3331                     echo "  Qt releases."
3332                     echo
3333                     echo "  Please contact qt-info@nokia.com to renew your"
3334                     echo "  support and upgrades for this license."
3335                     echo
3336                     echo "WARNING  WARNING  WARNING  WARNING"
3337                     echo
3338                     sleep 3
3339                 fi
3340                 ;;
3341             Evaluation|*)
3342                 echo
3343                 echo "NOTICE  NOTICE  NOTICE  NOTICE"
3344                 echo
3345                 echo "  Your Evaluation license has expired."
3346                 echo
3347                 echo "  You are no longer licensed to use this software. Please"
3348                 echo "  contact qt-info@nokia.com to purchase license, or install"
3349                 echo "  the Qt Open Source Edition if you intend to develop free"
3350                 echo "  software."
3351                 echo
3352                 echo "NOTICE  NOTICE  NOTICE  NOTICE"
3353                 echo
3354                 exit 1
3355                 ;;
3356             esac
3357         fi
3358     fi
3359     TheLicense=`head -n 1 "$outpath/LICENSE"`
3360     while true; do
3361         if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3362             echo "You have already accepted the terms of the $TheLicense."
3363             acceptance=yes
3364         else
3365             echo "You are licensed to use this software under the terms of"
3366             echo "the $TheLicense."
3367             echo
3368             echo "Type '?' to view the $TheLicense."
3369             echo "Type 'yes' to accept this license offer."
3370             echo "Type 'no' to decline this license offer."
3371             echo
3372             echo $ECHO_N "Do you accept the terms of the $TheLicense? $ECHO_C"
3373             read acceptance
3374         fi
3375         echo
3376         if [ "$acceptance" = "yes" ]; then
3377             break
3378         elif [ "$acceptance" = "no" ]; then
3379             echo "You are not licensed to use this software."
3380             echo
3381             exit 1
3382         else [ "$acceptance" = "?" ]
3383             more "$outpath/LICENSE"
3384         fi
3385     done
3386 fi
3387
3388 # this should be moved somewhere else
3389 case "$PLATFORM" in
3390 aix-*)
3391     AIX_VERSION=`uname -v`
3392     if [ "$AIX_VERSION" -lt "5" ]; then
3393         QMakeVar add QMAKE_LIBS_X11 -lbind
3394     fi
3395     ;;
3396 *)
3397     ;;
3398 esac
3399
3400 #-------------------------------------------------------------------------------
3401 # generate qconfig.cpp
3402 #-------------------------------------------------------------------------------
3403 [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
3404
3405 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3406 /* License Info */
3407 static const char qt_configure_licensee_str          [256 + 12] = "qt_lcnsuser=$Licensee";
3408 static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$Edition";
3409
3410 /* Installation date */
3411 static const char qt_configure_installation          [12+11]    = "qt_instdate=`date +%Y-%m-%d`";
3412
3413 /* Installation Info */
3414 static const char qt_configure_prefix_path_strs[][256 + 12] = {
3415     "qt_prfxpath=$QT_INSTALL_PREFIX",
3416     "qt_docspath=$QT_INSTALL_DOCS",
3417     "qt_hdrspath=$QT_INSTALL_HEADERS",
3418     "qt_libspath=$QT_INSTALL_LIBS",
3419     "qt_binspath=$QT_INSTALL_BINS",
3420     "qt_plugpath=$QT_INSTALL_PLUGINS",
3421     "qt_impspath=$QT_INSTALL_IMPORTS",
3422     "qt_datapath=$QT_INSTALL_DATA",
3423     "qt_trnspath=$QT_INSTALL_TRANSLATIONS",
3424     "qt_xmplpath=$QT_INSTALL_EXAMPLES",
3425     "qt_tstspath=$QT_INSTALL_TESTS",
3426 #ifdef QT_BUILD_QMAKE
3427     "qt_ssrtpath=$CFG_SYSROOT",
3428     "qt_hpfxpath=$QT_HOST_PREFIX",
3429     "qt_hbinpath=$QT_HOST_BINS",
3430     "qt_hdatpath=$QT_HOST_DATA",
3431 #endif
3432 };
3433 static const char qt_configure_settings_path_str[256 + 12] = "qt_stngpath=$QT_INSTALL_SETTINGS";
3434 EOF
3435
3436 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3437
3438 /* strlen( "qt_lcnsxxxx" ) == 12 */
3439 #define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;
3440 #define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;
3441
3442 #define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12;
3443 EOF
3444
3445 # avoid unecessary rebuilds by copying only if qconfig.cpp has changed
3446 if cmp -s "$outpath/src/corelib/global/qconfig.cpp" "$outpath/src/corelib/global/qconfig.cpp.new"; then
3447     rm -f "$outpath/src/corelib/global/qconfig.cpp.new"
3448 else
3449     [ -f "$outpath/src/corelib/global/qconfig.cpp" ] && chmod +w "$outpath/src/corelib/global/qconfig.cpp"
3450     mv "$outpath/src/corelib/global/qconfig.cpp.new" "$outpath/src/corelib/global/qconfig.cpp"
3451     chmod -w "$outpath/src/corelib/global/qconfig.cpp"
3452 fi
3453
3454 # -----------------------------------------------------------------------------
3455 if [ "$LicenseType" = "Evaluation" ]; then
3456     EVALKEY=qt_qevalkey=$LicenseKeyExt
3457 elif echo "$DEFINES" | grep QT_EVAL >/dev/null 2>&1; then
3458     EVALKEY=qt_qevalkey=
3459 fi
3460
3461 if [ -n "$EVALKEY" ]; then
3462     rm -f "$outpath/src/corelib/global/qconfig_eval.cpp"
3463     cat > "$outpath/src/corelib/global/qconfig_eval.cpp" <<EOF
3464 /* Evaluation license key */
3465 static const volatile char qt_eval_key_data                   [512 + 12] = "$EVALKEY";
3466 EOF
3467     chmod -w "$outpath/src/corelib/global/qconfig_eval.cpp"
3468 fi
3469
3470
3471 # -----------------------------------------------------------------------------
3472 # build qmake
3473 # -----------------------------------------------------------------------------
3474
3475 # symlink includes
3476 if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
3477     SYNCQT_OPTS=
3478     [ "$CFG_DEV" = "yes" ] && SYNCQT_OPTS="$SYNCQT_OPTS -check-includes"
3479     if [ "$OPT_SHADOW" = "yes" ]; then
3480         "$outpath/bin/syncqt" $SYNCQT_OPTS "$relpath" || exit 1
3481     elif [ "$CFG_DEV" = "yes" ] || [ ! -d $relpath/include ] || [ -d $relpath/.git ]; then
3482         QTDIR="$relpath" perl "$outpath/bin/syncqt" $SYNCQT_OPTS || exit 1
3483     fi
3484 fi
3485
3486 # $1: input variable name (awk regexp)
3487 # $2: optional output variable name
3488 # $3: optional value transformation (sed command)
3489 # relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
3490 # is where the resulting variable is written to
3491 setBootstrapVariable()
3492 {
3493     getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
3494 }
3495
3496 # build qmake
3497 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
3498     echo "Creating qmake. Please wait..."
3499
3500     OLD_QCONFIG_H=
3501     QCONFIG_H="$outpath/src/corelib/global/qconfig.h"
3502     QMAKE_QCONFIG_H="${QCONFIG_H}.qmake"
3503     if [ -f "$QCONFIG_H" ]; then
3504          OLD_QCONFIG_H=$QCONFIG_H
3505          mv -f "$OLD_QCONFIG_H" "${OLD_QCONFIG_H}.old"
3506     fi
3507
3508     # create temporary qconfig.h for compiling qmake, if it doesn't exist
3509     # when building qmake, we use #defines for the install paths,
3510     # however they are real functions in the library
3511     if [ '!' -f "$QMAKE_QCONFIG_H" ]; then
3512         mkdir -p "$outpath/src/corelib/global"
3513         [ -f "$QCONFIG_H" ] && chmod +w "$QCONFIG_H"
3514         echo "/* All features enabled while building qmake */" >"$QMAKE_QCONFIG_H"
3515     fi
3516
3517     mv -f "$QMAKE_QCONFIG_H" "$QCONFIG_H"
3518
3519     #mkspecs/default is used as a (gasp!) default mkspec so QMAKESPEC needn't be set once configured
3520     rm -rf mkspecs/default mkspecs/default-host
3521     ln -s `echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default
3522     ln -s `echo $QMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default-host
3523     mkdir -p "$outpath/qmake" || exit
3524     # fix makefiles
3525     for mkfile in GNUmakefile Makefile; do
3526         EXTRA_LFLAGS=
3527         EXTRA_CFLAGS=
3528         in_mkfile="${mkfile}.in"
3529         if [ "$mkfile" = "Makefile" ]; then
3530 #           if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
3531 #               (cd qmake && qmake) >/dev/null 2>&1 && continue
3532 #           fi
3533             in_mkfile="${mkfile}.unix"
3534         fi
3535         in_mkfile="$relpath/qmake/$in_mkfile"
3536         mkfile="$outpath/qmake/$mkfile"
3537         if [ -f "$mkfile" ]; then
3538             [ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
3539             rm -f "$mkfile"
3540         fi
3541         [ -f "$in_mkfile" ] || continue
3542
3543         echo "########################################################################" > "$mkfile"
3544         echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
3545         echo "########################################################################" >> "$mkfile"
3546         EXTRA_OBJS=
3547         EXTRA_SRCS=
3548         EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
3549         EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
3550         EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
3551
3552         if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then
3553             EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
3554         fi
3555
3556         [ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM=
3557         setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM"
3558         setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM"
3559         setBootstrapVariable QMAKE_CFLAGS
3560         setBootstrapVariable QMAKE_CXXFLAGS
3561         setBootstrapVariable QMAKE_LFLAGS
3562
3563         if [ $QT_EDITION = "QT_EDITION_OPENSOURCE" ]; then
3564             EXTRA_CFLAGS="$EXTRA_CFLAGS -DQMAKE_OPENSOURCE_EDITION"
3565             EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DQMAKE_OPENSOURCE_EDITION"
3566         fi
3567         if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
3568             setBootstrapVariable QMAKE_CFLAGS_RELEASE
3569             setBootstrapVariable QMAKE_CXXFLAGS_RELEASE
3570             EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
3571             EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
3572         elif [ "$CFG_DEBUG" = "yes" ]; then
3573             setBootstrapVariable QMAKE_CFLAGS_DEBUG
3574             setBootstrapVariable QMAKE_CXXFLAGS_DEBUG
3575             EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
3576             EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
3577         fi
3578
3579         if [ -n "$RPATH_FLAGS" ] && [ -n "`getQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
3580             setBootstrapVariable "QMAKE_(LFLAGS_)?RPATH" QMAKE_LFLAGS_RPATH
3581             for rpath in $RPATH_FLAGS; do
3582                 EXTRA_LFLAGS="\$(QMAKE_LFLAGS_RPATH)\"$rpath\" $EXTRA_LFLAGS"
3583             done
3584         fi
3585         if [ "$BUILD_ON_MAC" = "yes" ]; then
3586             echo "export MACOSX_DEPLOYMENT_TARGET = 10.6" >> "$mkfile"
3587             echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
3588             echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
3589             EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
3590             EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
3591             EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
3592             EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
3593             EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
3594             if [ '!' -z "$CFG_SDK" ]; then
3595                 echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
3596                 echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
3597                 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(SDK_CFLAGS)"
3598                 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(SDK_CFLAGS)"
3599                 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(SDK_LFLAGS)"
3600             fi
3601         fi
3602         if [ '!' -z "$D_FLAGS" ]; then
3603             EXTRA_CFLAGS="$EXTRA_CFLAGS $D_FLAGS"
3604         fi
3605         QMAKE_BIN_DIR="$QT_INSTALL_BINS"
3606         [ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
3607         QMAKE_DATA_DIR="$QT_INSTALL_DATA"
3608         [ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
3609         echo >>"$mkfile"
3610         adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
3611         adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
3612         adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
3613         sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
3614             -e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
3615             -e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
3616             -e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
3617             -e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
3618             -e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
3619             -e "s,@QMAKESPEC@,$adjqmakespec,g" -e "s,@QT_VERSION@,$QT_VERSION,g" "$in_mkfile" >>"$mkfile"
3620
3621         if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
3622             (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
3623             sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
3624             sed "s,$outpath,$adjoutpath,g" "$mkfile.tmp" >"$mkfile"
3625             rm "$mkfile.tmp"
3626         fi
3627     done
3628
3629     QMAKE_BUILD_ERROR=no
3630     (cd "$outpath/qmake"; "$MAKE") || QMAKE_BUILD_ERROR=yes
3631     [ '!' -z "$QCONFIG_H" ] && mv -f "$QCONFIG_H" "$QMAKE_QCONFIG_H" #move qmake's qconfig.h to qconfig.h.qmake
3632     [ '!' -z "$OLD_QCONFIG_H" ] && mv -f "${OLD_QCONFIG_H}.old" "$OLD_QCONFIG_H" #put back qconfig.h
3633     [ "$QMAKE_BUILD_ERROR" = "yes" ] && exit 2
3634 fi # Build qmake
3635
3636 #-------------------------------------------------------------------------------
3637 # create a qt.conf for the Qt build tree itself
3638 #-------------------------------------------------------------------------------
3639
3640 QTCONFFILE="$outpath/bin/qt.conf"
3641 cat > "$QTCONFFILE" <<EOF
3642 [EffectivePaths]
3643 Prefix=..
3644 EOF
3645
3646 #-------------------------------------------------------------------------------
3647 # Detect pkg-config
3648 #-------------------------------------------------------------------------------
3649 if [ -z "$PKG_CONFIG" ]; then
3650     # See if PKG_CONFIG is set in the mkspec:
3651     PKG_CONFIG=`getXQMakeConf PKG_CONFIG`
3652 fi
3653 if [ -z "$PKG_CONFIG" ]; then
3654     PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
3655 fi
3656
3657 if [ "$CFG_PKGCONFIG" = "no" ]; then
3658     PKG_CONFIG=
3659 elif [ "$CFG_PKGCONFIG" = "force" ]; then
3660     echo >&2 ""
3661     echo >&2 "You have asked to use pkg-config. Please make sure you have"
3662     echo >&2 "a correctly setup pkg-config environment!"
3663     echo >&2 ""
3664 elif [ -n "$PKG_CONFIG" ]; then
3665     # found a pkg-config
3666     if [ "$QT_CROSS_COMPILE" = "yes" ]; then
3667         # when xcompiling, check environment to see if it's actually usable
3668         if [ -z "$PKG_CONFIG_LIBDIR" ]; then
3669             if [ -n "$CFG_SYSROOT" ] && [ -d "$CFG_SYSROOT/usr/lib/pkgconfig" ]; then
3670                 PKG_CONFIG_LIBDIR=$CFG_SYSROOT/usr/lib/pkgconfig:$CFG_SYSROOT/usr/share/pkgconfig
3671                 if [ -n "$GCC_MACHINE_DUMP" ]; then
3672                     PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:$CFG_SYSROOT/usr/lib/$GCC_MACHINE_DUMP/pkgconfig
3673                 fi
3674                 export PKG_CONFIG_LIBDIR
3675                 echo >&2 "Note: PKG_CONFIG_LIBDIR automatically set to $PKG_CONFIG_LIBDIR"
3676             elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3677                 echo >&2 "Error: PKG_CONFIG_LIBDIR has not been set. This could mean"
3678                 echo >&2 "the host's .pc files will be used (even if you set PKG_CONFIG_PATH)."
3679                 echo >&2 "Set this variable to the directory that contains target .pc files"
3680                 echo >&2 "for pkg-config to function correctly when cross-compiling or"
3681                 echo >&2 "use -force-pkg-config to override this test."
3682                 exit 101
3683             else
3684                 PKG_CONFIG=
3685                 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_LIBDIR is not set."
3686             fi
3687         fi
3688         if [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
3689             if [ -n "$CFG_SYSROOT" ]; then
3690                 PKG_CONFIG_SYSROOT_DIR=$CFG_SYSROOT
3691                 export PKG_CONFIG_SYSROOT_DIR
3692                 echo >&2 "Note: PKG_CONFIG_SYSROOT_DIR automatically set to $PKG_CONFIG_SYSROOT_DIR"
3693             elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3694                 echo >&2 "Error: PKG_CONFIG_SYSROOT_DIR has not been set. Set this variable"
3695                 echo >&2 "to your sysroot for pkg-config to function correctly when cross-compiling"
3696                 echo >&2 "or use -force-pkg-config to override this test."
3697                 exit 101
3698             else
3699                 PKG_CONFIG=
3700                 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_SYSROOT_DIR is not set."
3701             fi
3702         fi
3703     fi
3704 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3705     echo >&2 "Could not detect pkg-config from mkspec or PATH."
3706     exit 101
3707 fi
3708
3709 if [ -z "$PKG_CONFIG" ]; then
3710     QT_CONFIG="$QT_CONFIG no-pkg-config"
3711 fi
3712
3713 #-------------------------------------------------------------------------------
3714 # write out device config before we run the test.
3715 #-------------------------------------------------------------------------------
3716 DEVICE_VARS_OUTFILE="$outpath/mkspecs/qdevice.pri"
3717 if cmp -s "$DEVICE_VARS_FILE" "$DEVICE_VARS_OUTFILE"; then
3718     rm -f "$DEVICE_VARS_FILE"
3719 else
3720     mv -f $DEVICE_VARS_FILE "$DEVICE_VARS_OUTFILE"
3721     DEVICE_VARS_FILE="$DEVICE_VARS_OUTFILE"
3722 fi
3723
3724 #-------------------------------------------------------------------------------
3725 # tests that need qmake
3726 #-------------------------------------------------------------------------------
3727
3728 #-------------------------------------------------------------------------------
3729 # determine the target and host architectures
3730 #-------------------------------------------------------------------------------
3731
3732 # Use config.tests/arch/arch.pro to have the compiler tell us what the target architecture is
3733 OUTFILE=$outpath/arch.result
3734 "$unixtests/arch.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG" $MAC_CONFIG_TEST_COMMANDLINE
3735 if [ $? -eq 0 ]; then
3736     eval `cat "$OUTFILE"`
3737 else
3738     echo
3739     echo "Could not determine the target architecture!"
3740     echo "Turn on verbose messaging (-v) to see the final report."
3741 fi
3742 rm -f "$OUTFILE" 2>/dev/null
3743 [ -z "$CFG_ARCH" ] && CFG_ARCH="unknown"
3744
3745 if [ "$QMAKESPEC" != "$XQMAKESPEC" ]; then
3746     # Do the same test again, using the host compiler
3747     SYSROOT_FLAG= "$unixtests/arch.test" "$QMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG_HOST" $MAC_CONFIG_TEST_COMMANDLINE
3748     if [ $? -eq 0 ]; then
3749         eval `cat "$OUTFILE"`
3750     else
3751         echo
3752         echo "Could not determine the host architecture!"
3753         echo "Turn on verbose messaging (-v) to see the final report."
3754     fi
3755     rm -f "$OUTFILE" 2>/dev/null
3756     [ -z "$CFG_HOST_ARCH" ] && CFG_HOST_ARCH="unknown"
3757 else
3758     # not cross compiling, host == target
3759     CFG_HOST_ARCH="$CFG_ARCH"
3760     CFG_HOST_CPUFEATURES="$CFG_CPUFEATURES"
3761 fi
3762 unset OUTFILE
3763
3764 if [ "$OPT_VERBOSE" = "yes" ]; then
3765     echo "System architecture: '$CFG_ARCH'"
3766     echo "Host architecture: '$CFG_HOST_ARCH'"
3767 fi
3768
3769 #-------------------------------------------------------------------------------
3770 # functionality tests
3771 #-------------------------------------------------------------------------------
3772
3773 # Detect C++11 support
3774 if [ "$CFG_CXX11" != "no" ]; then
3775     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
3776         CFG_CXX11="yes"
3777     elif [ "$CFG_CXX11" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3778         echo "C++11 support cannot be enabled due to functionality tests!"
3779         echo " Turn on verbose messaging (-v) to $0 to see the final report."
3780         echo " If you believe this message is in error you may use the continue"
3781         echo " switch (-continue) to $0 to continue."
3782         exit 101
3783     else
3784         CFG_CXX11="no"
3785     fi
3786 fi
3787
3788 # detect availability of float math.h functions
3789 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
3790     CFG_USE_FLOATMATH=yes
3791 else
3792     CFG_USE_FLOATMATH=no
3793 fi
3794
3795 # detect sse2 support
3796 if [ "${CFG_SSE2}" = "auto" ]; then
3797     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
3798        CFG_SSE2=yes
3799     else
3800        CFG_SSE2=no
3801     fi
3802 fi
3803
3804 # detect sse3 support
3805 if [ "${CFG_SSE3}" = "auto" ]; then
3806     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
3807        CFG_SSE3=yes
3808     else
3809        CFG_SSE3=no
3810     fi
3811 fi
3812
3813 # detect ssse3 support
3814 if [ "${CFG_SSSE3}" = "auto" ]; then
3815     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
3816        CFG_SSSE3=yes
3817     else
3818        CFG_SSSE3=no
3819     fi
3820 fi
3821
3822 # detect sse4.1 support
3823 if [ "${CFG_SSE4_1}" = "auto" ]; then
3824     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
3825        CFG_SSE4_1=yes
3826     else
3827        CFG_SSE4_1=no
3828     fi
3829 fi
3830
3831 # detect sse4.2 support
3832 if [ "${CFG_SSE4_2}" = "auto" ]; then
3833     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
3834        CFG_SSE4_2=yes
3835     else
3836        CFG_SSE4_2=no
3837     fi
3838 fi
3839
3840 # detect avx support
3841 if [ "${CFG_AVX}" = "auto" ]; then
3842     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
3843        case "$XQMAKESPEC" in
3844            *g++*|*-clang*)
3845                # Some clang versions produce internal compiler errors compiling Qt AVX code
3846                case `$TEST_COMPILER --version` in
3847                    Apple\ clang\ version\ 2*|Apple\ clang\ version\ 3.0*)
3848                        CFG_AVX=no
3849                        if [ "$OPT_VERBOSE" = "yes" ]; then
3850                            echo 'AVX support disabled for blacklisted clang compiler'
3851                        fi
3852                        ;;
3853                    *)
3854                        CFG_AVX=yes
3855                        ;;
3856                esac
3857                ;;
3858            *)
3859                CFG_AVX=yes
3860                ;;
3861        esac
3862     else
3863        CFG_AVX=no
3864     fi
3865 fi
3866
3867 # detect avx2 support
3868 if [ "${CFG_AVX}" = "no" ]; then
3869     CFG_AVX2=no
3870 fi
3871 if [ "${CFG_AVX2}" = "auto" ]; then
3872     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
3873        CFG_AVX2=yes
3874     else
3875        CFG_AVX2=no
3876     fi
3877 fi
3878
3879 # check iWMMXt support
3880 if [ "$CFG_IWMMXT" = "yes" ]; then
3881     "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/iwmmxt "iwmmxt" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS
3882     if [ $? != "0" ]; then
3883         echo "The iWMMXt functionality test failed!"
3884         echo " Please make sure your compiler supports iWMMXt intrinsics!"
3885         exit 1
3886     fi
3887 fi
3888
3889 # detect neon support
3890 if [ "$CFG_ARCH" = "arm" ] && [ "${CFG_NEON}" = "auto" ]; then
3891     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
3892         CFG_NEON=yes
3893     else
3894         CFG_NEON=no
3895     fi
3896 elif [ "$CFG_ARCH" != "arm" ]; then
3897     CFG_NEON=no
3898 fi
3899
3900 # detect mips_dsp support
3901 if [ "${CFG_ARCH}" = "mips" ] && [ "${CFG_MIPS_DSP}" = "yes" ]; then
3902   CFG_MIPS_DSP=yes
3903     else
3904   CFG_MIPS_DSP=no
3905 fi
3906
3907 # detect mips_dspr2 support
3908 if [ "${CFG_ARCH}" = "mips" ] && [ "${CFG_MIPS_DSPR2}" = "yes" ]; then
3909   CFG_MIPS_DSPR2=yes
3910     else
3911   CFG_MIPS_DSPR2=no
3912 fi
3913
3914 [ "$XPLATFORM_MINGW" = "yes" ] && QMakeVar add styles "windowsxp windowsvista"
3915
3916 # detect zlib
3917 if [ "$CFG_ZLIB" = "no" ]; then
3918     # Note: Qt no longer support builds without zlib
3919     # So we force a "no" to be "auto" here.
3920     # If you REALLY really need no zlib support, you can still disable
3921     # it by doing the following:
3922     #   add "no-zlib" to mkspecs/qconfig.pri
3923     #   #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
3924     #
3925     # There's no guarantee that Qt will build under those conditions
3926
3927     CFG_ZLIB=auto
3928     ZLIB_FORCED=yes
3929 fi
3930 if [ "$CFG_ZLIB" = "auto" ]; then
3931     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
3932        CFG_ZLIB=system
3933     else
3934        CFG_ZLIB=yes
3935     fi
3936 fi
3937
3938 if [ "$CFG_LARGEFILE" = "auto" ]; then
3939     #Large files should be enabled for all Linux systems
3940     CFG_LARGEFILE=yes
3941 fi
3942
3943 if [ "$CFG_GUI" = "no" ]; then
3944     QPA_PLATFORM_GUARD=no
3945 fi
3946
3947 # detect how jpeg should be built
3948 if [ "$CFG_JPEG" = "auto" ]; then
3949     if [ "$CFG_SHARED" = "yes" ]; then
3950         CFG_JPEG=plugin
3951     else
3952         CFG_JPEG=yes
3953     fi
3954 fi
3955 # detect jpeg
3956 if [ "$CFG_LIBJPEG" = "auto" ]; then
3957     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
3958        CFG_LIBJPEG=system
3959     else
3960        CFG_LIBJPEG=qt
3961     fi
3962 fi
3963
3964 # detect how gif should be built
3965 if [ "$CFG_GIF" = "auto" ]; then
3966     if [ "$CFG_SHARED" = "yes" ]; then
3967         CFG_GIF=plugin
3968     else
3969         CFG_GIF=yes
3970     fi
3971 fi
3972
3973 # detect png
3974 if [ "$CFG_LIBPNG" = "auto" ]; then
3975     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
3976        CFG_LIBPNG=system
3977     else
3978        CFG_LIBPNG=qt
3979     fi
3980 fi
3981
3982 # detect accessibility
3983 if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
3984     CFG_ACCESSIBILITY=yes
3985 fi
3986
3987 if [ "$CFG_EGLFS" = "yes" ]; then
3988     if [ "$CFG_EGL" = "no" ]; then
3989         echo "The EGLFS plugin requires EGL support and cannot be built"
3990         exit 101
3991     fi
3992     if [ "$CFG_OPENGL" != "es2" ]; then
3993         echo "The EGLFS plugin requires OpenGL ES 2 support and cannot be built"
3994         exit 101
3995     fi
3996     CFG_OPENGL="es2"
3997     CFG_EGL=yes
3998 fi
3999
4000 if [ "$CFG_KMS" = "yes" ]; then
4001     if [ "$CFG_EGL" = "no" ]; then
4002         echo "The KMS plugin requires EGL support and cannot be built"
4003         exit 101
4004     fi
4005     if [ "$CFG_OPENGL" != "es2" ]; then
4006         echo "The KMS plugin requires OpenGL ES 2 support and cannot be built"
4007         exit 101
4008     fi
4009 fi
4010
4011 # auto-detect SQL-modules support
4012 for _SQLDR in $CFG_SQL_AVAILABLE; do
4013         case $_SQLDR in
4014         mysql)
4015             if [ "$CFG_SQL_mysql" != "no" ]; then
4016                 [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
4017                 if [ -x "$CFG_MYSQL_CONFIG" ]; then
4018                     QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null`
4019                     QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null`
4020                     QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null`
4021                     QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
4022                     QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
4023                 fi
4024                 if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
4025                     if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4026                         echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
4027                         echo " You need MySql 4 or higher."
4028                         echo " If you believe this message is in error you may use the continue"
4029                         echo " switch (-continue) to $0 to continue."
4030                         exit 101
4031                     else
4032                         CFG_SQL_mysql="no"
4033                         QT_LFLAGS_MYSQL=""
4034                         QT_LFLAGS_MYSQL_R=""
4035                         QT_CFLAGS_MYSQL=""
4036                     fi
4037                 else
4038                     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
4039                         QMakeVar add CONFIG use_libmysqlclient_r
4040                         if [ "$CFG_SQL_mysql" = "auto" ]; then
4041                             CFG_SQL_mysql=plugin
4042                         fi
4043                         QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
4044                     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
4045                         if [ "$CFG_SQL_mysql" = "auto" ]; then
4046                             CFG_SQL_mysql=plugin
4047                         fi
4048                     else
4049                         if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4050                             echo "MySQL support cannot be enabled due to functionality tests!"
4051                             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4052                             echo " If you believe this message is in error you may use the continue"
4053                             echo " switch (-continue) to $0 to continue."
4054                             exit 101
4055                         else
4056                             CFG_SQL_mysql=no
4057                             QT_LFLAGS_MYSQL=""
4058                             QT_LFLAGS_MYSQL_R=""
4059                             QT_CFLAGS_MYSQL=""
4060                         fi
4061                     fi
4062                 fi
4063             fi
4064             ;;
4065         psql)
4066             if [ "$CFG_SQL_psql" != "no" ]; then
4067                 # Be careful not to use native pg_config when cross building.
4068                 if [ "$XPLATFORM_MINGW" != "yes" ] && "$WHICH" pg_config >/dev/null 2>&1; then
4069                     QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null`
4070                     QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null`
4071                 fi
4072                 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
4073                 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
4074                 # But, respect PSQL_LIBS if set
4075                 [ -z "$PSQL_LIBS" ] || QT_LFLAGS_PSQL="$PSQL_LIBS"
4076                 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
4077                     if [ "$CFG_SQL_psql" = "auto" ]; then
4078                         CFG_SQL_psql=plugin
4079                     fi
4080                 else
4081                     if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4082                         echo "PostgreSQL support cannot be enabled due to functionality tests!"
4083                         echo " Turn on verbose messaging (-v) to $0 to see the final report."
4084                         echo " If you believe this message is in error you may use the continue"
4085                         echo " switch (-continue) to $0 to continue."
4086                         exit 101
4087                     else
4088                         CFG_SQL_psql=no
4089                         QT_CFLAGS_PSQL=""
4090                         QT_LFLAGS_PSQL=""
4091                     fi
4092                 fi
4093             fi
4094         ;;
4095         odbc)
4096             if [ "$CFG_SQL_odbc" != "no" ]; then
4097                 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
4098                     if [ "$CFG_SQL_odbc" = "auto" ]; then
4099                         CFG_SQL_odbc=plugin
4100                     fi
4101                 else
4102                     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
4103                         QT_LFLAGS_ODBC="-liodbc"
4104                         if [ "$CFG_SQL_odbc" = "auto" ]; then
4105                             CFG_SQL_odbc=plugin
4106                         fi
4107                     else
4108                         if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4109                             echo "ODBC support cannot be enabled due to functionality tests!"
4110                             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4111                             echo " If you believe this message is in error you may use the continue"
4112                             echo " switch (-continue) to $0 to continue."
4113                             exit 101
4114                         else
4115                             CFG_SQL_odbc=no
4116                         fi
4117                     fi
4118                 fi
4119             fi
4120             ;;
4121         oci)
4122             if [ "$CFG_SQL_oci" != "no" ]; then
4123                 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
4124                     if [ "$CFG_SQL_oci" = "auto" ]; then
4125                         CFG_SQL_oci=plugin
4126                     fi
4127                 else
4128                     if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4129                         echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
4130                         echo " Turn on verbose messaging (-v) to $0 to see the final report."
4131                         echo " If you believe this message is in error you may use the continue"
4132                         echo " switch (-continue) to $0 to continue."
4133                         exit 101
4134                     else
4135                         CFG_SQL_oci=no
4136                     fi
4137                 fi
4138             fi
4139             ;;
4140         tds)
4141             if [ "$CFG_SQL_tds" != "no" ]; then
4142                 [ -z "$SYBASE" ] || QT_LFLAGS_TDS="-L$SYBASE/lib"
4143                 [ -z "$SYBASE_LIBS" ] || QT_LFLAGS_TDS="$QT_LFLAGS_TDS $SYBASE_LIBS"
4144                 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
4145                     if [ "$CFG_SQL_tds" = "auto" ]; then
4146                         CFG_SQL_tds=plugin
4147                     fi
4148                 else
4149                     if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4150                         echo "TDS support cannot be enabled due to functionality tests!"
4151                         echo " Turn on verbose messaging (-v) to $0 to see the final report."
4152                         echo " If you believe this message is in error you may use the continue"
4153                         echo " switch (-continue) to $0 to continue."
4154                         exit 101
4155                     else
4156                         CFG_SQL_tds=no
4157                     fi
4158                 fi
4159             fi
4160             ;;
4161         db2)
4162             if [ "$CFG_SQL_db2" != "no" ]; then
4163                 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
4164                     if [ "$CFG_SQL_db2" = "auto" ]; then
4165                         CFG_SQL_db2=plugin
4166                     fi
4167                 else
4168                     if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4169                         echo "ODBC support cannot be enabled due to functionality tests!"
4170                         echo " Turn on verbose messaging (-v) to $0 to see the final report."
4171                         echo " If you believe this message is in error you may use the continue"
4172                         echo " switch (-continue) to $0 to continue."
4173                         exit 101
4174                     else
4175                         CFG_SQL_db2=no
4176                     fi
4177                 fi
4178             fi
4179             ;;
4180         ibase)
4181             if [ "$CFG_SQL_ibase" != "no" ]; then
4182                 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
4183                     if [ "$CFG_SQL_ibase" = "auto" ]; then
4184                         CFG_SQL_ibase=plugin
4185                     fi
4186                 else
4187                     if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4188                         echo "InterBase support cannot be enabled due to functionality tests!"
4189                         echo " Turn on verbose messaging (-v) to $0 to see the final report."
4190                         echo " If you believe this message is in error you may use the continue"
4191                         echo " switch (-continue) to $0 to continue."
4192                         exit 101
4193                     else
4194                         CFG_SQL_ibase=no
4195                     fi
4196                 fi
4197             fi
4198             ;;
4199         sqlite2)
4200             if [ "$CFG_SQL_sqlite2" != "no" ]; then
4201                 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
4202                     if [ "$CFG_SQL_sqlite2" = "auto" ]; then
4203                         CFG_SQL_sqlite2=plugin
4204                     fi
4205                 else
4206                     if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4207                         echo "SQLite2 support cannot be enabled due to functionality tests!"
4208                         echo " Turn on verbose messaging (-v) to $0 to see the final report."
4209                         echo " If you believe this message is in error you may use the continue"
4210                         echo " switch (-continue) to $0 to continue."
4211                         exit 101
4212                     else
4213                         CFG_SQL_sqlite2=no
4214                     fi
4215                 fi
4216             fi
4217             ;;
4218         sqlite)
4219             if [ "$CFG_SQL_sqlite" != "no" ]; then
4220                 SQLITE_AUTODETECT_FAILED="no"
4221                 if [ "$CFG_SQLITE" = "system" ]; then
4222                     if [ -n "$PKG_CONFIG" ]; then
4223                         QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
4224                         QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
4225                     else
4226                         QT_CFLAGS_SQLITE=
4227                         QT_LFLAGS_SQLITE="-lsqlite3 -lz"
4228                     fi
4229                     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
4230                         if [ "$CFG_SQL_sqlite" = "auto" ]; then
4231                             CFG_SQL_sqlite=plugin
4232                         fi
4233                         QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
4234                     else
4235                         SQLITE_AUTODETECT_FAILED="yes"
4236                         CFG_SQL_sqlite=no
4237                     fi
4238                 elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
4239                     if [ "$CFG_SQL_sqlite" = "auto" ]; then
4240                             CFG_SQL_sqlite=plugin
4241                     fi
4242                 else
4243                     SQLITE_AUTODETECT_FAILED="yes"
4244                     CFG_SQL_sqlite=no
4245                 fi
4246
4247                 if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4248                     echo "SQLite support cannot be enabled due to functionality tests!"
4249                     echo " Turn on verbose messaging (-v) to $0 to see the final report."
4250                     echo " If you believe this message is in error you may use the continue"
4251                     echo " switch (-continue) to $0 to continue."
4252                     exit 101
4253                 fi
4254             fi
4255             ;;
4256         *)
4257             if [ "$OPT_VERBOSE" = "yes" ]; then
4258                 echo "unknown SQL driver: $_SQLDR"
4259             fi
4260             ;;
4261         esac
4262 done
4263
4264 # auto-detect NIS support
4265 if [ "$CFG_NIS" != "no" ]; then
4266     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
4267         CFG_NIS=yes
4268     else
4269         if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4270             echo "NIS support cannot be enabled due to functionality tests!"
4271             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4272             echo " If you believe this message is in error you may use the continue"
4273             echo " switch (-continue) to $0 to continue."
4274             exit 101
4275         else
4276             CFG_NIS=no
4277         fi
4278     fi
4279 fi
4280
4281 # auto-detect CUPS support
4282 if [ "$CFG_CUPS" != "no" ]; then
4283     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
4284         CFG_CUPS=yes
4285     else
4286         if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4287             echo "Cups support cannot be enabled due to functionality tests!"
4288             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4289             echo " If you believe this message is in error you may use the continue"
4290             echo " switch (-continue) to $0 to continue."
4291             exit 101
4292         else
4293             CFG_CUPS=no
4294         fi
4295     fi
4296 fi
4297
4298 # auto-detect iconv(3) support
4299 if [ "$CFG_ICONV" != "no" ]; then
4300     if [ "$XPLATFORM_MINGW" = "yes" ]; then
4301         CFG_ICONV=no
4302     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
4303         CFG_ICONV=yes
4304     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
4305         CFG_ICONV=sun
4306     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
4307         CFG_ICONV=gnu
4308     else
4309         if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4310             echo "Iconv support cannot be enabled due to functionality tests!"
4311             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4312             echo " If you believe this message is in error you may use the continue"
4313             echo " switch (-continue) to $0 to continue."
4314             exit 101
4315         else
4316             CFG_ICONV=no
4317         fi
4318     fi
4319 fi
4320
4321 # auto-detect libdbus-1 support
4322 if [ "$CFG_DBUS" != "no" ]; then
4323     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
4324         QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
4325         QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
4326     fi
4327     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
4328         [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
4329         QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
4330         QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
4331     else
4332         if [ "$CFG_DBUS" = "auto" ]; then
4333             CFG_DBUS=no
4334         elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4335             # CFG_DBUS is "yes" or "linked" here
4336
4337             echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
4338             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4339             echo " If you believe this message is in error you may use the continue"
4340             echo " switch (-continue) to $0 to continue."
4341             exit 101
4342         fi
4343     fi
4344 fi
4345
4346 # auto-detect Glib support
4347 if [ "$CFG_GLIB" != "no" ]; then
4348     if [ -n "$PKG_CONFIG" ]; then
4349         QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
4350         QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
4351     fi
4352     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
4353         CFG_GLIB=yes
4354         QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
4355         QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
4356     else
4357         if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4358             echo "Glib support cannot be enabled due to functionality tests!"
4359             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4360             echo " If you believe this message is in error you may use the continue"
4361             echo " switch (-continue) to $0 to continue."
4362             exit 101
4363         else
4364             CFG_GLIB=no
4365         fi
4366     fi
4367 fi
4368
4369 # auto-detect GTK style support
4370 if [ "$CFG_GLIB" = "yes" -a "$CFG_QGTKSTYLE" != "no" ]; then
4371     if [ -n "$PKG_CONFIG" ]; then
4372         QT_CFLAGS_QGTKSTYLE=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.10 atk 2>/dev/null`
4373         QT_LIBS_QGTKSTYLE=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null`
4374     fi
4375     if [ -n "$QT_CFLAGS_QGTKSTYLE" ] ; then
4376         CFG_QGTKSTYLE=yes
4377         QT_CONFIG="$QT_CONFIG gtkstyle"
4378         QMakeVar set QT_CFLAGS_QGTKSTYLE "$QT_CFLAGS_QGTKSTYLE"
4379         QMakeVar set QT_LIBS_QGTKSTYLE "$QT_LIBS_QGTKSTYLE"
4380     else
4381         if [ "$CFG_QGTKSTYLE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4382             echo "Gtk theme support cannot be enabled due to functionality tests!"
4383             echo " Turn on verbose messaging (-v) to $0 to see the fin  al report."
4384             echo " If you believe this message is in error you may use the continue"
4385             echo " switch (-continue) to $0 to continue."
4386             exit 101
4387         else
4388             CFG_QGTKSTYLE=no
4389         fi
4390     fi
4391 elif [ "$CFG_GLIB" = "no" ]; then
4392     CFG_QGTKSTYLE=no
4393 fi
4394
4395 # ### Vestige
4396 if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
4397     if [ -n "$PKG_CONFIG" ]; then
4398         QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4399         QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4400     fi
4401     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
4402         CFG_GSTREAMER=yes
4403         QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
4404         QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
4405     else
4406         if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4407             echo "Gstreamer support cannot be enabled due to functionality tests!"
4408             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4409             echo " If you believe this message is in error you may use the continue"
4410             echo " switch (-continue) to $0 to continue."
4411             exit 101
4412         else
4413             CFG_GSTREAMER=no
4414         fi
4415     fi
4416 elif [ "$CFG_GLIB" = "no" ]; then
4417     CFG_GSTREAMER=no
4418 fi
4419
4420 # auto-detect libicu support
4421 if [ "$CFG_ICU" != "no" ]; then
4422     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
4423         [ "$CFG_ICU" = "auto" ] && CFG_ICU=yes
4424     else
4425         if [ "$CFG_ICU" = "auto" ]; then
4426             CFG_ICU=no
4427         elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4428             # CFG_ICU is "yes"
4429
4430             echo "The ICU library support cannot be enabled."
4431             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4432             echo " If you believe this message is in error you may use the continue"
4433             echo " switch (-continue) to $0 to continue."
4434             exit 101
4435         fi
4436     fi
4437 fi
4438
4439 # Auto-detect PulseAudio support
4440 if [ "$CFG_PULSEAUDIO" != "no" ]; then
4441     if [ -n "$PKG_CONFIG" ]; then
4442         QT_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4443         QT_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4444     fi
4445     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
4446         CFG_PULSEAUDIO=yes
4447         QMakeVar set QT_CFLAGS_PULSEAUDIO "$QT_CFLAGS_PULSEAUDIO"
4448         QMakeVar set QT_LIBS_PULSEAUDIO "$QT_LIBS_PULSEAUDIO"
4449     else
4450         if [ "$CFG_PULSEAUDIO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4451             echo "PulseAudio support cannot be enabled due to functionality tests!"
4452             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4453             echo " If you believe this message is in error you may use the continue"
4454             echo " switch (-continue) to $0 to continue."
4455             exit 101
4456         else
4457             CFG_PULSEAUDIO=no
4458         fi
4459     fi
4460 fi
4461
4462 # X11/MINGW OpenGL
4463 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4464     # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4465     if [ "$CFG_GUI" = "no" ]; then
4466         if [ "$CFG_OPENGL" = "auto" ]; then
4467             CFG_OPENGL=no
4468         fi
4469         if [ "$CFG_OPENGL" != "no" ]; then
4470             echo "OpenGL enabled, but GUI disabled."
4471             echo " You might need to either enable the GUI or disable OpenGL"
4472             exit 1
4473         fi
4474     fi
4475     if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4476         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
4477             CFG_OPENGL=desktop
4478         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
4479             CFG_OPENGL=es2
4480         else
4481             if [ "$CFG_OPENGL" = "yes" ]; then
4482                 echo "All the OpenGL functionality tests failed!"
4483                 echo " You might need to modify the include and library search paths by editing"
4484                 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4485                 echo " ${XQMAKESPEC}."
4486                 exit 1
4487             fi
4488             CFG_OPENGL=no
4489         fi
4490         case "$PLATFORM" in
4491         hpux*)
4492             # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4493             if [ "$CFG_OPENGL" = "desktop" ]; then
4494                 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/glxfbconfig "OpenGL" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS
4495                 if [ $? != "0" ]; then
4496                     QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4497                 fi
4498             fi
4499             ;;
4500         *)
4501             ;;
4502         esac
4503     elif [ "$CFG_OPENGL" = "es2" ]; then
4504         #OpenGL ES 2.x
4505         "$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
4506         if [ $? != "0" ]; then
4507             echo "The OpenGL ES 2.0 functionality test failed!"
4508             echo " You might need to modify the include and library search paths by editing"
4509             echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4510             echo " ${XQMAKESPEC}."
4511             exit 1
4512         fi
4513     elif [ "$CFG_OPENGL" = "desktop" ]; then
4514         # Desktop OpenGL support
4515         "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/opengl "OpenGL" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS
4516         if [ $? != "0" ]; then
4517             echo "The OpenGL functionality test failed!"
4518             echo " You might need to modify the include and library search paths by editing"
4519             echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4520             echo " ${XQMAKESPEC}."
4521             exit 1
4522         fi
4523         case "$PLATFORM" in
4524         hpux*)
4525             # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4526             "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/glxfbconfig "OpenGL" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS
4527             if [ $? != "0" ]; then
4528                 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4529             fi
4530             ;;
4531         *)
4532             ;;
4533         esac
4534     fi
4535 fi # X11/MINGW OpenGL
4536
4537 if [ "$BUILD_ON_MAC" = "yes" ]; then
4538     if [ "$CFG_COREWLAN" = "auto" ]; then
4539         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
4540             CFG_COREWLAN=yes
4541         else
4542             CFG_COREWLAN=no
4543         fi
4544     fi
4545 fi
4546
4547 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4548 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4549     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
4550         CFG_OPENGL=desktop
4551     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
4552         CFG_OPENGL=es2
4553     else
4554         if [ "$CFG_OPENGL" = "yes" ]; then
4555             echo "All the OpenGL functionality tests failed!"
4556             echo " You might need to modify the include and library search paths by editing"
4557             echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4558             echo " ${XQMAKESPEC}."
4559             exit 1
4560         fi
4561         CFG_OPENGL=no
4562     fi
4563 elif [ "$CFG_OPENGL" = "es2" ]; then
4564     #OpenGL ES 2.x
4565     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists glesv2 2>/dev/null; then
4566         QMAKE_INCDIR_OPENGL_ES2=`$PKG_CONFIG --cflags-only-I glesv2 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4567         QMAKE_LIBDIR_OPENGL_ES2=`$PKG_CONFIG --libs-only-L glesv2 2>/dev/null | sed -e 's,^-L,,g' -e 's, -L, ,g'`
4568         QMAKE_LIBS_OPENGL_ES2=`$PKG_CONFIG --libs glesv2 2>/dev/null`
4569         QMAKE_CFLAGS_OPENGL_ES2=`$PKG_CONFIG --cflags glesv2 2>/dev/null`
4570         QMakeVar set QMAKE_INCDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`"
4571         QMakeVar set QMAKE_LIBDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBDIR_OPENGL_ES2"`"
4572         QMakeVar set QMAKE_LIBS_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBS_OPENGL_ES2"`"
4573     fi
4574
4575     "$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
4576     if [ $? != "0" ]; then
4577         echo "The OpenGL ES 2.0 functionality test failed!"
4578         echo " You might need to modify the include and library search paths by editing"
4579         echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4580         echo " ${XQMAKESPEC}."
4581         exit 1
4582     fi
4583 elif [ "$CFG_OPENGL" = "desktop" ]; then
4584     # Desktop OpenGL support
4585     "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengldesktop "OpenGL" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS
4586     if [ $? != "0" ]; then
4587         echo "The OpenGL functionality test failed!"
4588         echo " You might need to modify the include and library search paths by editing"
4589         echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4590         echo " ${XQMAKESPEC}."
4591         exit 1
4592     fi
4593 fi
4594
4595 # auto-detect FontConfig support
4596 if [ "$CFG_FONTCONFIG" != "no" ]; then
4597     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
4598         QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
4599         QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
4600     else
4601         QT_CFLAGS_FONTCONFIG=
4602         QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
4603     fi
4604     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
4605         QT_CONFIG="$QT_CONFIG fontconfig"
4606         QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG"
4607         QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG"
4608         CFG_FONTCONFIG=yes
4609         CFG_LIBFREETYPE=system
4610     else
4611         CFG_FONTCONFIG=no
4612     fi
4613
4614 fi
4615
4616 # Save these for a check later
4617 ORIG_CFG_XCB="$CFG_XCB"
4618 ORIG_CFG_EGLFS="$CFG_EGLFS"
4619 ORIG_CFG_DIRECTFB="$CFG_DIRECTFB"
4620 ORIG_CFG_LINUXFB="$CFG_LINUXFB"
4621 ORIG_CFG_KMS="$CFG_KMS"
4622
4623 if [ "$CFG_LIBUDEV" != "no" ]; then
4624     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then
4625         QMAKE_INCDIR_LIBUDEV=`$PKG_CONFIG --cflags-only-I libudev 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4626         QMAKE_LIBS_LIBUDEV=`$PKG_CONFIG --libs libudev 2>/dev/null`
4627         QMakeVar set QMAKE_INCDIR_LIBUDEV "$QMAKE_INCDIR_LIBUDEV"
4628         QMakeVar set QMAKE_LIBS_LIBUDEV "$QMAKE_LIBS_LIBUDEV"
4629     fi
4630     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
4631         CFG_LIBUDEV=yes
4632         QT_CONFIG="$QT_CONFIG libudev"
4633     elif [ "$CFG_LIBUDEV" = "yes" ]; then
4634         echo "The libudev functionality test failed!"
4635         exit 1
4636     else
4637         CFG_LIBUDEV=no
4638     fi
4639 fi
4640 if [ "$CFG_LIBUDEV" = "no" ]; then
4641     QMakeVar add DEFINES QT_NO_LIBUDEV
4642 fi
4643
4644 if [ "$CFG_EVDEV" != "no" ]; then
4645     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
4646         CFG_EVDEV=yes
4647         QT_CONFIG="$QT_CONFIG evdev"
4648     elif [ "$CFG_EVDEV" = "yes" ]; then
4649         echo "The evdev functionality test failed!"
4650         exit 1
4651     else
4652         CFG_EVDEV=no
4653     fi
4654 fi
4655 if [ "$CFG_EVDEV" = "no" ]; then
4656     QMakeVar add DEFINES QT_NO_EVDEV
4657 fi
4658
4659 # Check we actually have X11 :-)
4660 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
4661     QT_CONFIG="$QT_CONFIG xlib"
4662 fi
4663
4664 # auto-detect Xrender support
4665 if [ "$CFG_XRENDER" != "no" ]; then
4666     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
4667         CFG_XRENDER=yes
4668         QT_CONFIG="$QT_CONFIG xrender"
4669     else
4670         if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4671             echo "Xrender support cannot be enabled due to functionality tests!"
4672             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4673             echo " If you believe this message is in error you may use the continue"
4674             echo " switch (-continue) to $0 to continue."
4675             exit 101
4676         else
4677             CFG_XRENDER=no
4678         fi
4679     fi
4680 fi
4681
4682 if [ "$CFG_XCB" != "no" ]; then
4683     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4684         QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb 2>/dev/null`"
4685         QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb 2>/dev/null`"
4686     fi
4687     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
4688         CFG_XCB=yes
4689         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
4690             QT_CONFIG="$QT_CONFIG xcb-render"
4691         fi
4692
4693         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
4694             CFG_XCB_LIMITED=no
4695             QT_CONFIG="$QT_CONFIG xcb-poll-for-queued-event"
4696         fi
4697
4698         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
4699             QT_CONFIG="$QT_CONFIG xcb-xlib"
4700         fi
4701
4702         # auto-detect XInput2 support. Needed by xcb too.
4703         if [ "$CFG_XINPUT2" != "no" ]; then
4704             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
4705                 CFG_XINPUT2=yes
4706                 CFG_XINPUT=no
4707             else
4708                 if [ "$CFG_XINPUT2" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4709                     echo "XInput2 support cannot be enabled due to functionality tests!"
4710                     echo " Turn on verbose messaging (-v) to $0 to see the final report."
4711                     echo " If you believe this message is in error you may use the continue"
4712                     echo " switch (-continue) to $0 to continue."
4713                     exit 101
4714                 else
4715                     CFG_XINPUT2=no
4716                 fi
4717             fi
4718         fi
4719     else
4720         if [ "$CFG_XCB" = "yes" ]; then
4721             echo "The XCB test failed!"
4722             echo " You might need to install dependency packages."
4723             echo " See src/plugins/platforms/xcb/README."
4724             exit 1
4725         fi
4726         CFG_XCB=no
4727     fi
4728 fi
4729 if [ "$CFG_XCB" = "no" ]; then
4730     QMakeVar add DEFINES QT_NO_XCB
4731 fi
4732
4733 if [ "$CFG_DIRECTFB" != "no" ]; then
4734     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists directfb 2>/dev/null; then
4735         QMAKE_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
4736         QMAKE_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
4737         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
4738             CFG_DIRECTFB=yes
4739         elif [ "$CFG_DIRECTFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4740             echo " DirectFB support cannot be enabled due to functionality tests!"
4741             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4742             echo " If you believe this message is in error you may use the continue"
4743             echo " switch (-continue) to $0 to continue."
4744             exit 101
4745         else
4746             CFG_DIRECTFB=no
4747         fi
4748     else
4749         CFG_DIRECTFB=no
4750     fi
4751 fi
4752
4753 if [ "$CFG_LINUXFB" != "no" ]; then
4754     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
4755         CFG_LINUXFB=yes
4756     elif [ "$CFG_LINUXFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4757         echo " Linux Framebuffer support cannot be enabled due to functionality tests!"
4758         echo " Turn on verbose messaging (-v) to $0 to see the final report."
4759         echo " If you believe this message is in error you may use the continue"
4760         echo " switch (-continue) to $0 to continue."
4761         exit 101
4762     else
4763         CFG_LINUXFB=no
4764     fi
4765 fi
4766
4767 if [ "$CFG_KMS" != "no" ]; then
4768     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
4769         CFG_KMS=yes
4770     elif [ "$CFG_KMS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4771         echo " KMS support cannot be enabled due to functionality tests!"
4772         echo " Turn on verbose messaging (-v) to $0 to see the final report."
4773         echo " If you believe this message is in error you may use the continue"
4774         echo " switch (-continue) to $0 to continue."
4775         exit 101
4776     else
4777         CFG_KMS=no
4778     fi
4779 fi
4780
4781 # Detect libxkbcommon
4782 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
4783     QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
4784     QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon 2>/dev/null`"
4785     QMAKE_CFLAGS_XCB="$QMAKE_CFLAGS_XCB $QMAKE_CFLAGS_XKBCOMMON"
4786     QMAKE_LIBS_XCB="$QMAKE_LIBS_XCB $QMAKE_LIBS_XKBCOMMON"
4787 else
4788     QMAKE_DEFINES_XCB=QT_NO_XCB_XKB
4789 fi
4790
4791 # EGL Support
4792 if [ "$CFG_EGL" != "no" ] && [ "$CFG_OPENGL" != "desktop" ]; then
4793     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then
4794         QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4795         QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null`
4796         QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null`
4797         QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL"
4798         QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL"
4799     fi       # detect EGL support
4800     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
4801         CFG_EGL=yes
4802     elif [ "$CFG_EGL" = "yes" ]; then
4803         echo " The EGL functionality test failed; EGL is required by some QPA plugins to manage contexts & surfaces."
4804         echo " You might need to modify the include and library search paths by editing"
4805         echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in ${XQMAKESPEC}."
4806         exit 1
4807     else
4808         CFG_EGL=no
4809     fi
4810 elif [ "$CFG_OPENGL" = "desktop" ]; then
4811     if [ "$CFG_EGL" = "yes" ]; then
4812         echo "EGL support was requested but Qt is being configured for desktop OpenGL."
4813         echo "Either disable EGL support or enable OpenGL ES support."
4814         exit 101
4815     fi
4816     CFG_EGL=no
4817 fi
4818
4819 if [ "$CFG_EGLFS" != "no" ]; then
4820     if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EVDEV" = "yes" ]; then
4821         CFG_EGLFS="$CFG_EGL"
4822     else
4823         CFG_EGLFS="no"
4824     fi
4825 fi
4826
4827 if [ "$CFG_KMS" = "yes" ]; then
4828     if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EGL" = "yes" ]; then
4829         CFG_KMS="yes"
4830     else
4831         CFG_KMS="no"
4832     fi
4833 fi
4834
4835 # Determine the default QPA platform
4836 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4837     # check the mkspec
4838     QT_QPA_DEFAULT_PLATFORM=`getXQMakeConf QT_QPA_DEFAULT_PLATFORM`
4839     if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4840         if [ "$XPLATFORM_MINGW" = "yes" ]; then
4841             QT_QPA_DEFAULT_PLATFORM="windows"
4842         elif [ "$BUILD_ON_MAC" = "yes" ]; then
4843             QT_QPA_DEFAULT_PLATFORM="cocoa"
4844         elif [ "$UNAME_SYSTEM" = "QNX" ]; then
4845             QT_QPA_DEFAULT_PLATFORM="qnx"
4846         else
4847             QT_QPA_DEFAULT_PLATFORM="xcb"
4848         fi
4849     fi
4850 fi
4851
4852 if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then
4853     QMakeVar set QMAKE_CFLAGS_XCB "$QMAKE_CFLAGS_XCB"
4854     QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB"
4855     QMakeVar set QMAKE_DEFINES_XCB "$QMAKE_DEFINES_XCB"
4856 fi
4857 if [ "$CFG_DIRECTFB" = "yes" ]; then
4858     QT_CONFIG="$QT_CONFIG directfb"
4859     QMakeVar set QMAKE_CFLAGS_DIRECTFB "$QMAKE_CFLAGS_DIRECTFB"
4860     QMakeVar set QMAKE_LIBS_DIRECTFB "$QMAKE_LIBS_DIRECTFB"
4861 fi
4862 if [ "$CFG_LINUXFB" = "yes" ]; then
4863     QT_CONFIG="$QT_CONFIG linuxfb"
4864 fi
4865 if [ "$CFG_KMS" = "yes" ]; then
4866     QT_CONFIG="$QT_CONFIG kms"
4867 fi
4868
4869 if [ "$BUILD_ON_MAC" = "yes" ]; then
4870     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
4871         QT_CONFIG="$QT_CONFIG coreservices"
4872     else
4873         QMakeVar add DEFINES QT_NO_CORESERVICES
4874     fi
4875 fi
4876
4877 if [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ] && [ "$XPLATFORM_QNX" = "no" ]; then
4878     if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ] && [ "$CFG_DIRECTFB" = "no" ] && [ "$CFG_LINUXFB" = "no" ] && [ "$CFG_KMS" = "no" ]; then
4879         if [ "$QPA_PLATFORM_GUARD" = "yes" ] &&
4880             ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] || [ "$ORIG_CFG_DIRECTFB" = "auto" ] || [ "$ORIG_CFG_LINUXFB" = "auto" ] || [ "$ORIG_CFG_KMS" = "auto" ] ); then
4881         echo "No QPA platform plugin enabled!"
4882         echo " If you really want to build without a QPA platform plugin you must pass"
4883         echo " -no-qpa-platform-guard to configure. Doing this will"
4884         echo " produce a Qt that can not run GUI applications."
4885         echo " The dependencies needed for xcb to build are listed in"
4886         echo " src/plugins/platforms/xcb/README"
4887         exit 1
4888     fi
4889 fi
4890     fi
4891
4892 # freetype support
4893 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_LIBFREETYPE" = "auto" ] && CFG_LIBFREETYPE=no
4894 if [ "$CFG_LIBFREETYPE" = "auto" ]; then
4895     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
4896         CFG_LIBFREETYPE=system
4897     else
4898         CFG_LIBFREETYPE=yes
4899     fi
4900 fi
4901
4902 if ! "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/stl "STL" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS &&
4903     [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4904     echo "STL functionality check failed! Cannot build Qt with this STL library."
4905     echo " Turn on verbose messaging (-v) to $0 to see the final report."
4906     exit 101
4907 fi
4908
4909
4910 # detect POSIX clock_gettime()
4911 if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
4912     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
4913         CFG_CLOCK_GETTIME=yes
4914     else
4915         CFG_CLOCK_GETTIME=no
4916     fi
4917 fi
4918
4919 # detect POSIX monotonic clocks
4920 if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
4921     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
4922         CFG_CLOCK_MONOTONIC=yes
4923     else
4924         CFG_CLOCK_MONOTONIC=no
4925     fi
4926 elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
4927     CFG_CLOCK_MONOTONIC=no
4928 fi
4929
4930 # detect mremap
4931 if [ "$CFG_MREMAP" = "auto" ]; then
4932     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
4933         CFG_MREMAP=yes
4934     else
4935         CFG_MREMAP=no
4936     fi
4937 fi
4938
4939 # find if the platform provides getaddrinfo (ipv6 dns lookups)
4940 if [ "$CFG_GETADDRINFO" != "no" ]; then
4941     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
4942         CFG_GETADDRINFO=yes
4943     else
4944         if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4945             echo "getaddrinfo support cannot be enabled due to functionality tests!"
4946             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4947             echo " If you believe this message is in error you may use the continue"
4948             echo " switch (-continue) to $0 to continue."
4949             exit 101
4950         else
4951             CFG_GETADDRINFO=no
4952         fi
4953     fi
4954 fi
4955
4956 # find if the platform provides inotify
4957 if [ "$CFG_INOTIFY" != "no" ]; then
4958     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
4959         CFG_INOTIFY=yes
4960     else
4961         if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4962             echo "inotify support cannot be enabled due to functionality tests!"
4963             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4964             echo " If you believe this message is in error you may use the continue"
4965             echo " switch (-continue) to $0 to continue."
4966             exit 101
4967         else
4968             CFG_INOTIFY=no
4969         fi
4970     fi
4971 fi
4972
4973 # find if the platform provides if_nametoindex (ipv6 interface name support)
4974 if [ "$CFG_IPV6IFNAME" != "no" ]; then
4975     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
4976         CFG_IPV6IFNAME=yes
4977     else
4978         if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4979             echo "IPv6 interface name support cannot be enabled due to functionality tests!"
4980             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4981             echo " If you believe this message is in error you may use the continue"
4982             echo " switch (-continue) to $0 to continue."
4983             exit 101
4984         else
4985             CFG_IPV6IFNAME=no
4986         fi
4987     fi
4988 fi
4989
4990 # find if the platform provides getifaddrs (network interface enumeration)
4991 if [ "$CFG_GETIFADDRS" != "no" ]; then
4992     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
4993         CFG_GETIFADDRS=yes
4994     else
4995         if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4996             echo "getifaddrs support cannot be enabled due to functionality tests!"
4997             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4998             echo " If you believe this message is in error you may use the continue"
4999             echo " switch (-continue) to $0 to continue."
5000             exit 101
5001         else
5002             CFG_GETIFADDRS=no
5003         fi
5004     fi
5005 fi
5006
5007 # detect OpenSSL
5008 if [ "$CFG_OPENSSL" != "no" ]; then
5009     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
5010         if [ "$CFG_OPENSSL" = "auto" ]; then
5011             CFG_OPENSSL=yes
5012         fi
5013     else
5014         if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5015             echo "OpenSSL support cannot be enabled due to functionality tests!"
5016             echo " Turn on verbose messaging (-v) to $0 to see the final report."
5017             echo " If you believe this message is in error you may use the continue"
5018             echo " switch (-continue) to $0 to continue."
5019             exit 101
5020         else
5021             CFG_OPENSSL=no
5022         fi
5023     fi
5024 fi
5025
5026 # detect PCRE
5027 if [ "$CFG_PCRE" != "qt" ]; then
5028     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
5029         CFG_PCRE=system
5030     else
5031         if [ "$CFG_PCRE" = "system" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5032             echo "PCRE support cannot be enabled due to functionality tests!"
5033             echo " Turn on verbose messaging (-v) to $0 to see the final report."
5034             echo " If you believe this message is in error you may use the continue"
5035             echo " switch (-continue) to $0 to continue."
5036             exit 101
5037         else
5038             CFG_PCRE=qt
5039         fi
5040     fi
5041 fi
5042
5043 # detect OpenVG support
5044 if [ "$CFG_OPENVG" != "no" ]; then
5045     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
5046         if [ "$CFG_OPENVG" = "auto" ]; then
5047             CFG_OPENVG=yes
5048         fi
5049     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
5050         if [ "$CFG_OPENVG" = "auto" ]; then
5051             CFG_OPENVG=yes
5052         fi
5053         CFG_OPENVG_ON_OPENGL=yes
5054     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
5055         if [ "$CFG_OPENVG" = "auto" ]; then
5056             CFG_OPENVG=yes
5057         fi
5058         CFG_OPENVG_LC_INCLUDES=yes
5059     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
5060         if [ "$CFG_OPENVG" = "auto" ]; then
5061             CFG_OPENVG=yes
5062         fi
5063         CFG_OPENVG_LC_INCLUDES=yes
5064         CFG_OPENVG_ON_OPENGL=yes
5065     else
5066         if [ "$CFG_OPENVG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5067             echo "$CFG_OPENVG was specified for OpenVG but cannot be enabled due to functionality tests!"
5068             echo " Turn on verbose messaging (-v) to $0 to see the final report."
5069             echo " If you believe this message is in error you may use the continue"
5070             echo " switch (-continue) to $0 to continue."
5071             exit 101
5072         else
5073             CFG_OPENVG=no
5074         fi
5075     fi
5076     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
5077         CFG_OPENVG_SHIVA=yes
5078     fi
5079 fi
5080
5081 if [ "$CFG_ALSA" = "auto" ]; then
5082     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
5083         CFG_ALSA=yes
5084     else
5085         CFG_ALSA=no
5086     fi
5087 fi
5088
5089 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ] || [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then 
5090     if [ "$CFG_ARCH" = "arm" ]; then
5091        "$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
5092         if [ $? != "0" ]; then
5093            CFG_JAVASCRIPTCORE_JIT=no
5094         fi
5095     else
5096         case "$XPLATFORM" in
5097             linux-icc*)
5098                 CFG_JAVASCRIPTCORE_JIT=no
5099                 ;;
5100         esac
5101     fi
5102 fi
5103
5104 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ]; then
5105     QMakeVar set JAVASCRIPTCORE_JIT yes
5106 elif [ "$CFG_JAVASCRIPTCORE_JIT" = "no" ]; then
5107     QMakeVar set JAVASCRIPTCORE_JIT no
5108 fi
5109
5110 if [ "$CFG_AUDIO_BACKEND" = "auto" ]; then
5111     CFG_AUDIO_BACKEND=yes
5112 fi
5113
5114 if [ "$CFG_LARGEFILE" != "yes" ] && [ "$XPLATFORM_MINGW" = "yes" ]; then
5115     echo "Warning: largefile support cannot be disabled for win32."
5116     CFG_LARGEFILE="yes"
5117 fi
5118
5119 #-------------------------------------------------------------------------------
5120 # ask for all that hasn't been auto-detected or specified in the arguments
5121 #-------------------------------------------------------------------------------
5122
5123 [ "$CFG_CXX11" = "yes" ] && QT_CONFIG="$QT_CONFIG c++11"
5124
5125 # disable accessibility
5126 if [ "$CFG_ACCESSIBILITY" = "no" ]; then
5127     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
5128 else
5129     QT_CONFIG="$QT_CONFIG accessibility"
5130 fi
5131
5132 # enable egl
5133 if [ "$CFG_EGL" = "yes" ]; then
5134     QT_CONFIG="$QT_CONFIG egl"
5135 else
5136     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL"
5137 fi
5138
5139 # enable eglfs
5140 if [ "$CFG_EGLFS" = "yes" ]; then
5141     QT_CONFIG="$QT_CONFIG eglfs"
5142 else
5143     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGLFS"
5144 fi
5145
5146 # enable openvg
5147 if [ "$CFG_OPENVG" = "no" ]; then
5148     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENVG"
5149 else
5150     QT_CONFIG="$QT_CONFIG openvg"
5151     if [ "$CFG_OPENVG_LC_INCLUDES" = "yes" ]; then
5152         QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LOWER_CASE_VG_INCLUDES"
5153     fi
5154     if [ "$CFG_OPENVG_ON_OPENGL" = "yes" ]; then
5155         QT_CONFIG="$QT_CONFIG openvg_on_opengl"
5156     fi
5157     if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
5158         QT_CONFIG="$QT_CONFIG shivavg"
5159         QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SHIVAVG"
5160     fi
5161 fi
5162
5163 # enable opengl
5164 if [ "$CFG_OPENGL" = "no" ]; then
5165     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
5166 else
5167     QT_CONFIG="$QT_CONFIG opengl"
5168 fi
5169
5170 if [ "$CFG_OPENGL" = "es2" ]; then
5171     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
5172 fi
5173
5174 if [ "$CFG_OPENGL" = "es2" ]; then
5175     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
5176     QT_CONFIG="$QT_CONFIG opengles2"
5177 fi
5178
5179 # build up the variables for output
5180 if [ "$CFG_DEBUG" = "yes" ]; then
5181     QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
5182 elif [ "$CFG_DEBUG" = "no" ]; then
5183     QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
5184 fi
5185 if [ "$CFG_SHARED" = "yes" ]; then
5186     QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
5187     QT_CONFIG="$QT_CONFIG shared"
5188 elif [ "$CFG_SHARED" = "no" ]; then
5189     QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
5190     QT_CONFIG="$QT_CONFIG static"
5191 fi
5192
5193 #FIXME: qpa is implicit this should all be removed
5194 QMAKE_CONFIG="$QMAKE_CONFIG qpa"
5195 QT_CONFIG="$QT_CONFIG qpa"
5196 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qpa"
5197 rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
5198
5199 if [ "$XPLATFORM_MINGW" != "yes" ]; then
5200     # Do not set this here for Windows. Let qmake do it so
5201     # debug and release precompiled headers are kept separate.
5202     QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
5203 fi
5204 QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
5205 QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
5206 QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
5207 QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
5208 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5209     QMAKE_CONFIG="$QMAKE_CONFIG largefile"
5210 fi
5211 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
5212     QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
5213 fi
5214 [ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
5215 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
5216 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
5217 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
5218     QMakeVar add QMAKE_CFLAGS -g
5219     QMakeVar add QMAKE_CXXFLAGS -g
5220     QT_CONFIG="$QT_CONFIG separate_debug_info"
5221 fi
5222 if [ "$CFG_SEPARATE_DEBUG_INFO_NOCOPY" = "yes" ] ; then
5223     QT_CONFIG="$QT_CONFIG separate_debug_info_nocopy"
5224 fi
5225 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
5226 [ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3"
5227 [ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3"
5228 [ "$CFG_SSE4_1" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_1"
5229 [ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2"
5230 [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx"
5231 [ "$CFG_AVX2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx2"
5232 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
5233 [ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
5234 if [ "$CFG_ARCH" = "mips" ]; then
5235     [ "$CFG_MIPS_DSP" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dsp"
5236     [ "$CFG_MIPS_DSPR2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dspr2"
5237 fi
5238 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
5239     QT_CONFIG="$QT_CONFIG clock-gettime"
5240 fi
5241 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
5242     QT_CONFIG="$QT_CONFIG clock-monotonic"
5243 fi
5244 if [ "$CFG_MREMAP" = "yes" ]; then
5245     QT_CONFIG="$QT_CONFIG mremap"
5246 fi
5247 if [ "$CFG_GETADDRINFO" = "yes" ]; then
5248     QT_CONFIG="$QT_CONFIG getaddrinfo"
5249 fi
5250 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
5251     QT_CONFIG="$QT_CONFIG ipv6ifname"
5252 fi
5253 if [ "$CFG_GETIFADDRS" = "yes" ]; then
5254     QT_CONFIG="$QT_CONFIG getifaddrs"
5255 fi
5256 if [ "$CFG_INOTIFY" = "yes" ]; then
5257     QT_CONFIG="$QT_CONFIG inotify"
5258 fi
5259 if [ "$CFG_LIBJPEG" = "no" ]; then
5260     CFG_JPEG="no"
5261 elif [ "$CFG_LIBJPEG" = "system" ]; then
5262     QT_CONFIG="$QT_CONFIG system-jpeg"
5263 fi
5264 if [ "$CFG_JPEG" = "no" ]; then
5265     QT_CONFIG="$QT_CONFIG no-jpeg"
5266 elif [ "$CFG_JPEG" = "yes" ]; then
5267     QT_CONFIG="$QT_CONFIG jpeg"
5268 fi
5269 if [ "$CFG_LIBPNG" = "no" ]; then
5270     CFG_PNG="no"
5271 fi
5272 if [ "$CFG_LIBPNG" = "system" ]; then
5273     QT_CONFIG="$QT_CONFIG system-png"
5274 fi
5275 if [ "$CFG_PNG" = "no" ]; then
5276     QT_CONFIG="$QT_CONFIG no-png"
5277 elif [ "$CFG_PNG" = "yes" ]; then
5278     QT_CONFIG="$QT_CONFIG png"
5279 fi
5280 if [ "$CFG_GIF" = "no" ]; then
5281     QT_CONFIG="$QT_CONFIG no-gif"
5282 elif [ "$CFG_GIF" = "yes" ]; then
5283     QT_CONFIG="$QT_CONFIG gif"
5284 fi
5285 if [ "$CFG_LIBFREETYPE" = "no" ]; then
5286     QT_CONFIG="$QT_CONFIG no-freetype"
5287     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FREETYPE"
5288 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
5289     QT_CONFIG="$QT_CONFIG system-freetype"
5290 else
5291     QT_CONFIG="$QT_CONFIG freetype"
5292 fi
5293 if [ "$CFG_GUI" = "auto" ]; then
5294     CFG_GUI="yes"
5295 fi
5296 if [ "$CFG_GUI" = "no" ]; then
5297     QT_CONFIG="$QT_CONFIG no-gui"
5298     CFG_WIDGETS="no"
5299 fi
5300 if [ "$CFG_WIDGETS" = "no" ]; then
5301     QT_CONFIG="$QT_CONFIG no-widgets"
5302     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WIDGETS"
5303 fi
5304
5305 if [ "x$BUILD_ON_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5306     #On Mac we implicitly link against libz, so we
5307     #never use the 3rdparty stuff.
5308     [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
5309 fi
5310 if [ "$CFG_ZLIB" = "yes" ]; then
5311     QT_CONFIG="$QT_CONFIG zlib"
5312 elif [ "$CFG_ZLIB" = "system" ]; then
5313     QT_CONFIG="$QT_CONFIG system-zlib"
5314 fi
5315
5316 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
5317 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
5318 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
5319 [ "$CFG_ICONV" = "sun" ] && QT_CONFIG="$QT_CONFIG sun-libiconv"
5320 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
5321 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
5322 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
5323 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
5324 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
5325 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
5326 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
5327 [ "$CFG_MAC_HARFBUZZ" = "yes" ] && QT_CONFIG="$QT_CONFIG harfbuzz"
5328 [ "$CFG_XCB" = "yes" ] && QT_CONFIG="$QT_CONFIG xcb"
5329 [ "$CFG_XINPUT2" = "yes" ] && QT_CONFIG="$QT_CONFIG xinput2"
5330
5331 [ '!' -z "$DEFINES" ] && QMakeVar add DEFINES "$DEFINES"
5332 [ '!' -z "$L_FLAGS" ] && QMakeVar add QMAKE_LIBDIR_FLAGS "$L_FLAGS"
5333 [ '!' -z "$l_FLAGS" ] && QMakeVar add LIBS "$l_FLAGS"
5334
5335 if [ "$PLATFORM_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
5336     if [ "$CFG_RPATH" = "yes" ]; then
5337        QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
5338        # set the default rpath to the library installation directory
5339        RPATH_FLAGS="\"$QT_INSTALL_LIBS\" $RPATH_FLAGS"
5340     fi
5341 elif [ -z "`getXQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
5342     if [ -n "$RPATH_FLAGS" ]; then
5343         echo
5344         echo "ERROR: -R cannot be used on this platform as \$QMAKE_LFLAGS_RPATH is"
5345         echo "       undefined."
5346         echo
5347         exit 1
5348     elif [ "$CFG_RPATH" = "yes" ]; then
5349         RPATH_MESSAGE="        NOTE: This platform does not support runtime library paths, using -no-rpath."
5350         CFG_RPATH=no
5351     fi
5352 else
5353     if [ "$CFG_RPATH" = "yes" ]; then
5354         # set the default rpath to the library installation directory
5355         RPATH_FLAGS="\"$QT_INSTALL_LIBS\" $RPATH_FLAGS"
5356     fi
5357     if [ -n "$RPATH_FLAGS" ]; then
5358         # add the user defined rpaths
5359         QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
5360     fi
5361 fi
5362
5363 if [ '!' -z "$I_FLAGS" ]; then
5364     # add the user define include paths
5365     QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
5366     QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
5367 fi
5368
5369 if [ '!' -z "$W_FLAGS" ]; then
5370     # add the user defined warning flags
5371     QMakeVar add QMAKE_CFLAGS_WARN_ON "$W_FLAGS"
5372     QMakeVar add QMAKE_CXXFLAGS_WARN_ON "$W_FLAGS"
5373     QMakeVar add QMAKE_OBJECTIVE_CFLAGS_WARN_ON "$W_FLAGS"
5374 fi
5375
5376 if [ "$XPLATFORM_MINGW" = "yes" ]; then
5377     # mkspecs/features/win32/default_pre.prf sets "no-rtti".
5378     # Follow default behavior of configure.exe by overriding with "rtti".
5379     QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti"
5380 fi
5381
5382 if [ "$CFG_ALSA" = "yes" ]; then
5383     QT_CONFIG="$QT_CONFIG alsa"
5384 fi
5385
5386 if [ "$CFG_PULSEAUDIO" = "yes" ]; then
5387     QT_CONFIG="$QT_CONFIG pulseaudio"
5388 fi
5389
5390 if [ "$CFG_COREWLAN" = "yes" ]; then
5391     QT_CONFIG="$QT_CONFIG corewlan"
5392 fi
5393
5394 if [ "$CFG_ICU" = "yes" ]; then
5395     QT_CONFIG="$QT_CONFIG icu"
5396 fi
5397
5398 if [ "$CFG_FORCE_ASSERTS" = "yes" ]; then
5399     QT_CONFIG="$QT_CONFIG force_asserts"
5400 fi
5401
5402 if [ "$CFG_PCRE" = "qt" ]; then
5403     QMAKE_CONFIG="$QMAKE_CONFIG pcre"
5404 fi
5405
5406 #
5407 # Some Qt modules are too advanced in C++ for some old compilers
5408 # Detect here the platforms where they are known to work.
5409 #
5410 # See Qt documentation for more information on which features are
5411 # supported and on which compilers.
5412 #
5413 canBuildQtConcurrent="yes"
5414 canUseV8Snapshot="yes"
5415
5416 case "$XPLATFORM" in
5417     hpux-g++*)
5418         # PA-RISC's assembly is too limited
5419         # gcc 3.4 on that platform can't build QtXmlPatterns
5420         # the assembly it generates cannot be compiled
5421
5422         # Check gcc's version
5423         case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5424             4*)
5425                 ;;
5426             3.4*)
5427                 canBuildQtXmlPatterns="no"
5428                 ;;
5429             *)
5430                 canBuildWebKit="no"
5431                 canBuildQtXmlPatterns="no"
5432                 ;;
5433         esac
5434         ;;
5435     unsupported/vxworks-*-g++*)
5436         canBuildWebKit="no"
5437         ;;
5438     unsupported/vxworks-*-dcc*)
5439         canBuildWebKit="no"
5440         canBuildQtXmlPatterns="no"
5441         ;;
5442     *-g++*)
5443         # Check gcc's version
5444         case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5445             4*|3.4*)
5446                 ;;
5447             3.3*)
5448                 canBuildWebKit="no"
5449                 ;;
5450             *)
5451                 canBuildWebKit="no"
5452                 canBuildQtXmlPatterns="no"
5453                 ;;
5454         esac
5455         ;;
5456     solaris-cc*)
5457         # Check the compiler version
5458         case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
5459             5.[012345678])
5460                 canBuildWebKit="no"
5461                 canBuildQtXmlPatterns="no"
5462                 canBuildQtConcurrent="no"
5463                 ;;
5464             5.*)
5465                 canBuildWebKit="no"
5466                 canBuildQtConcurrent="no"
5467                 ;;
5468         esac
5469         ;;
5470     hpux-acc*)
5471         canBuildWebKit="no"
5472         canBuildQtXmlPatterns="no"
5473         canBuildQtConcurrent="no"
5474         ;;
5475     hpuxi-acc*)
5476         canBuildWebKit="no"
5477         ;;
5478     aix-xlc*)
5479         # Get the xlC version
5480         cat > xlcver.c <<EOF
5481 #include <stdio.h>
5482 int main()
5483 {
5484     printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
5485     return 0;
5486 }
5487 EOF
5488         xlcver=
5489         if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
5490             xlcver=`./xlcver 2>/dev/null`
5491             rm -f ./xlcver
5492         fi
5493         if [ "$OPT_VERBOSE" = "yes" ]; then
5494             if [ -n "$xlcver" ]; then
5495                 echo Found IBM xlC version: $xlcver.
5496             else
5497                 echo Could not determine IBM xlC version, assuming oldest supported.
5498             fi
5499         fi
5500
5501         case "$xlcver" in
5502             [123456].*)
5503                 canBuildWebKit="no"
5504                 canBuildQtXmlPatterns="no"
5505                 canBuildQtConcurrent="no"
5506                 ;;
5507             *)
5508                 canBuildWebKit="no"
5509                 canBuildQtConcurrent="no"
5510                 ;;
5511         esac
5512         ;;
5513     irix-cc*)
5514         canBuildWebKit="no"
5515         canBuildQtConcurrent="no"
5516         ;;
5517 esac
5518
5519 if [ "$CFG_GUI" = "no" ]; then
5520     # WebKit requires QtGui
5521     canBuildWebKit="no"
5522 fi
5523
5524 if [ "$CFG_SHARED" = "no" ]; then
5525     echo
5526     echo "WARNING: Using static linking will disable the WebKit module."
5527     echo
5528     canBuildWebKit="no"
5529 fi
5530
5531 CFG_CONCURRENT="yes"
5532 if [ "$canBuildQtConcurrent" = "no" ]; then
5533     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
5534     CFG_CONCURRENT="no"
5535 else
5536     QT_CONFIG="$QT_CONFIG concurrent"
5537 fi
5538
5539 # ### Vestige
5540 if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
5541     QT_CONFIG="$QT_CONFIG audio-backend"
5542 fi
5543
5544 # ### Vestige
5545 if [ "$CFG_WEBKIT" = "debug" ]; then
5546     QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug"
5547 fi
5548
5549 # ### Vestige
5550 QT_CONFIG="$QT_CONFIG v8"
5551 # Detect snapshot support
5552 if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
5553     case "$CFG_HOST_ARCH,$CFG_ARCH" in
5554         i386,arm)
5555         ;;
5556     *) canUseV8Snapshot="no"
5557         ;;
5558     esac
5559 else
5560     if [ -n "$_SBOX_DIR" -a "$CFG_ARCH" = "arm" ]; then
5561         # QEMU crashes when building inside Scratchbox with an ARM target
5562         canUseV8Snapshot="no"
5563     fi
5564 fi
5565 if [ "$CFG_V8SNAPSHOT" = "auto" ]; then
5566     CFG_V8SNAPSHOT="$canUseV8Snapshot"
5567 fi
5568 if [ "$CFG_V8SNAPSHOT" = "yes" -a "$canUseV8Snapshot" = "no" ]; then
5569     echo "Error: V8 snapshot was requested, but is not supported on this platform."
5570     exit 1
5571 fi
5572 if [ "$CFG_V8SNAPSHOT" = "yes" ]; then
5573     QT_CONFIG="$QT_CONFIG v8snapshot"
5574 fi
5575
5576 # ### Vestige
5577 if [ "$CFG_QML_DEBUG" = "no" ]; then
5578     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QML_NO_DEBUGGER"
5579 fi
5580
5581 case "$QMAKE_CONF_COMPILER" in
5582 *g++*)
5583     # GNU C++
5584     COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
5585
5586     case "$COMPILER_VERSION" in
5587     *.*.*)
5588         QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
5589         QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
5590         QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
5591         ;;
5592     *.*)
5593         QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
5594         QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
5595         QT_GCC_PATCH_VERSION=0
5596         ;;
5597     esac
5598
5599     ;;
5600 *)
5601     #
5602     ;;
5603 esac
5604
5605 #-------------------------------------------------------------------------------
5606 # part of configuration information goes into qconfig.h
5607 #-------------------------------------------------------------------------------
5608
5609 case "$CFG_QCONFIG" in
5610 full)
5611     echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
5612     ;;
5613 *)
5614     tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
5615     echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
5616     if [ -f "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" ]; then
5617         cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
5618     elif [ -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
5619         cat `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` >>"$tmpconfig"
5620     fi
5621     echo "#endif" >>"$tmpconfig"
5622     ;;
5623 esac
5624
5625 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5626
5627 /* Qt Edition */
5628 #ifndef QT_EDITION
5629 #  define QT_EDITION $QT_EDITION
5630 #endif
5631 EOF
5632
5633 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
5634 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5635
5636 if [ "$CFG_SHARED" = "no" ]; then
5637     cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5638 /* Qt was configured for a static build */
5639 #if !defined(QT_SHARED) && !defined(QT_STATIC)
5640 # define QT_STATIC
5641 #endif
5642
5643 EOF
5644 fi
5645
5646 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5647     echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
5648 fi
5649
5650 if [ "$CFG_FRAMEWORK" = "yes" ]; then
5651     echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
5652 fi
5653
5654 if [ "$BUILD_ON_MAC" = "yes" ]; then
5655     cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5656 #if defined(__LP64__)
5657 # define QT_POINTER_SIZE 8
5658 #else
5659 # define QT_POINTER_SIZE 4
5660 #endif
5661 EOF
5662 else
5663     "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5664     echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
5665 fi
5666
5667 #REDUCE_RELOCATIONS is a elf/unix only thing, so not in windows configure.exe
5668 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
5669     echo "#define QT_REDUCE_RELOCATIONS" >>"$outpath/src/corelib/global/qconfig.h.new"
5670 fi
5671
5672
5673 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5674
5675 if [ "$CFG_DEV" = "yes" ]; then
5676     echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
5677 fi
5678
5679 # Add QPA to config.h
5680 QCONFIG_FLAGS="$QCONFIG_FLAGS"
5681
5682 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
5683     QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
5684 fi
5685
5686 # Add turned on SQL drivers
5687 for DRIVER in $CFG_SQL_AVAILABLE; do
5688     eval "VAL=\$CFG_SQL_$DRIVER"
5689     case "$VAL" in
5690     qt)
5691         ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
5692         QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
5693         SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
5694     ;;
5695     plugin)
5696         SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
5697     ;;
5698     esac
5699 done
5700
5701
5702 QMakeVar set sql-drivers "$SQL_DRIVERS"
5703 QMakeVar set sql-plugins "$SQL_PLUGINS"
5704
5705 # Add other configuration options to the qconfig.h file
5706 [ "$CFG_GIF" = "yes" ]       && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
5707 [ "$CFG_PNG" != "yes" ]      && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
5708 [ "$CFG_JPEG" != "yes" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
5709 [ "$CFG_ZLIB" != "yes" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
5710 [ "$CFG_DBUS" = "no" ]      && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
5711
5712 # X11/Unix/Mac only configs
5713 [ "$CFG_CUPS" = "no" ]       && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
5714 [ "$CFG_ICONV" = "no" ]      && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
5715 [ "$CFG_GLIB" != "yes" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
5716 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
5717 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
5718 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
5719 [ "$CFG_MREMAP" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
5720 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
5721 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
5722 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
5723 [ "$CFG_INOTIFY" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
5724 [ "$CFG_NIS" = "no" ]        && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
5725 [ "$CFG_OPENSSL" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL QT_NO_SSL"
5726 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
5727
5728 [ "$CFG_SM" = "no" ]         && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
5729 [ "$CFG_XCURSOR" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
5730 [ "$CFG_XFIXES" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
5731 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
5732 [ "$CFG_XINERAMA" = "no" ]   && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
5733 [ "$CFG_XKB" = "no" ]        && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
5734 [ "$CFG_XRANDR" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
5735 [ "$CFG_XRENDER" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
5736 [ "$CFG_MITSHM" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
5737 [ "$CFG_XSHAPE" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
5738 [ "$CFG_XVIDEO" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XVIDEO"
5739 [ "$CFG_XSYNC" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
5740 [ "$CFG_XINPUT" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
5741
5742 [ "$CFG_XCURSOR" = "runtime" ]   && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
5743 [ "$CFG_XINERAMA" = "runtime" ]  && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
5744 [ "$CFG_XFIXES" = "runtime" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
5745 [ "$CFG_XRANDR" = "runtime" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
5746 [ "$CFG_XINPUT" = "runtime" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
5747 [ "$CFG_ALSA" = "no" ]           && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
5748 [ "$CFG_PULSEAUDIO" = "no" ]          && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PULSEAUDIO"
5749 [ "$CFG_COREWLAN" = "no" ]       && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_COREWLAN"
5750
5751 # sort QCONFIG_FLAGS for neatness if we can
5752 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
5753 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
5754
5755 if [ -n "$QCONFIG_FLAGS" ]; then
5756 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5757 #ifndef QT_BOOTSTRAPPED
5758
5759 EOF
5760     for cfg in $QCONFIG_FLAGS; do
5761         cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
5762         cfg=`echo $cfg | sed 's/=/ /'`    # turn first '=' into a space
5763         # figure out define logic, so we can output the correct
5764         # ifdefs to override the global defines in a project
5765         cfgdNeg=
5766         if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
5767             # QT_NO_option can be forcefully turned on by QT_option
5768             cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
5769         elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
5770             # QT_option can be forcefully turned off by QT_NO_option
5771             cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
5772         fi
5773
5774         if [ -z $cfgdNeg ]; then
5775 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5776 #ifndef $cfgd
5777 # define $cfg
5778 #endif
5779
5780 EOF
5781         else
5782 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5783 #if defined($cfgd) && defined($cfgdNeg)
5784 # undef $cfgd
5785 #elif !defined($cfgd) && !defined($cfgdNeg)
5786 # define $cfg
5787 #endif
5788
5789 EOF
5790         fi
5791     done
5792 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5793 #endif // QT_BOOTSTRAPPED
5794
5795 EOF
5796 fi
5797
5798 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
5799 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5800 #define QT_VISIBILITY_AVAILABLE
5801
5802 EOF
5803 fi
5804
5805 if [ -n "$QT_LIBINFIX" ]; then
5806 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5807 #define QT_LIBINFIX "$QT_LIBINFIX"
5808
5809 EOF
5810 fi
5811
5812 echo "#define QT_QPA_DEFAULT_PLATFORM_NAME \"$QT_QPA_DEFAULT_PLATFORM\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5813
5814 # avoid unecessary rebuilds by copying only if qconfig.h has changed
5815 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
5816     rm -f "$outpath/src/corelib/global/qconfig.h.new"
5817 else
5818     [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
5819     mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
5820     chmod -w "$outpath/src/corelib/global/qconfig.h"
5821     if [ ! -f "$outpath/include/QtCore/qconfig.h" ]; then
5822         ln -s "$outpath/src/corelib/global/qconfig.h" "$outpath/include/QtCore/qconfig.h"
5823     fi
5824 fi
5825
5826 #-------------------------------------------------------------------------------
5827 # save configuration into qconfig.pri
5828 #-------------------------------------------------------------------------------
5829 QTCONFIG="$outpath/mkspecs/qconfig.pri"
5830 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
5831 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
5832 if [ "$CFG_DEBUG" = "yes" ]; then
5833     QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
5834     if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5835         QT_CONFIG="$QT_CONFIG release"
5836     fi
5837     QT_CONFIG="$QT_CONFIG debug"
5838 elif [ "$CFG_DEBUG" = "no" ]; then
5839     QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
5840     if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5841         QT_CONFIG="$QT_CONFIG debug"
5842     fi
5843     QT_CONFIG="$QT_CONFIG release"
5844 fi
5845 if [ "$CFG_FRAMEWORK" = "no" ]; then
5846     QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
5847 else
5848     QT_CONFIG="$QT_CONFIG qt_framework"
5849     QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
5850 fi
5851 if [ "$CFG_DEV" = "yes" ]; then
5852     QT_CONFIG="$QT_CONFIG private_tests"
5853 fi
5854
5855 cat >>"$QTCONFIG.tmp" <<EOF
5856 #configuration
5857 CONFIG += $QTCONFIG_CONFIG
5858 QT_ARCH = $CFG_ARCH
5859 QT_HOST_ARCH = $CFG_HOST_ARCH
5860 QT_CPU_FEATURES = $CFG_CPUFEATURES
5861 QT_HOST_CPU_FEATURES = $CFG_HOST_CPUFEATURES
5862 QT_EDITION = $Edition
5863 QT_CONFIG += $QT_CONFIG
5864
5865 #versioning
5866 QT_VERSION = $QT_VERSION
5867 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
5868 QT_MINOR_VERSION = $QT_MINOR_VERSION
5869 QT_PATCH_VERSION = $QT_PATCH_VERSION
5870
5871 #namespaces
5872 QT_LIBINFIX = $QT_LIBINFIX
5873 QT_NAMESPACE = $QT_NAMESPACE
5874
5875 EOF
5876
5877 if [ -n "$PKG_CONFIG_SYSROOT_DIR" ] || [ -n "$PKG_CONFIG_LIBDIR" ]; then
5878     echo "# pkgconfig" >> "$QTCONFIG.tmp"
5879     echo "PKG_CONFIG_SYSROOT_DIR = $PKG_CONFIG_SYSROOT_DIR" >> "$QTCONFIG.tmp"
5880     echo "PKG_CONFIG_LIBDIR = $PKG_CONFIG_LIBDIR" >> "$QTCONFIG.tmp"
5881     echo >> "$QTCONFIG.tmp"
5882 fi
5883
5884 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
5885     echo "# sysroot" >>"$QTCONFIG.tmp"
5886     echo "!host_build {" >>"$QTCONFIG.tmp"
5887     echo "    QMAKE_CFLAGS    += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5888     echo "    QMAKE_CXXFLAGS  += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5889     echo "    QMAKE_LFLAGS    += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5890     echo "}" >> "$QTCONFIG.tmp"
5891     echo >> "$QTCONFIG.tmp"
5892 fi
5893 if [ -n "$RPATH_FLAGS" ]; then
5894     echo "QMAKE_RPATHDIR += $RPATH_FLAGS" >> "$QTCONFIG.tmp"
5895 fi
5896 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
5897     echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
5898     echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
5899     echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
5900 fi
5901
5902 if [ -n "$QMAKE_INCDIR_OPENGL_ES2" ]; then
5903     echo "#Qt opengl include path" >> "$QTCONFIG.tmp"
5904     echo "QMAKE_INCDIR_OPENGL_ES2 = `shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`" >> "$QTCONFIG.tmp"
5905 fi
5906
5907 # replace qconfig.pri if it differs from the newly created temp file
5908 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
5909     rm -f "$QTCONFIG.tmp"
5910 else
5911     mv -f "$QTCONFIG.tmp" "$QTCONFIG"
5912 fi
5913
5914 #-------------------------------------------------------------------------------
5915 # save configuration into qmodule.pri
5916 #-------------------------------------------------------------------------------
5917 QTMODULE="$outpath/mkspecs/qmodule.pri"
5918
5919 echo "CONFIG += $QMAKE_CONFIG create_prl link_prl" >> "$QTMODULE.tmp"
5920 echo "QT_BUILD_PARTS += $CFG_BUILD_PARTS" >> "$QTMODULE.tmp"
5921
5922 if [ -n "$QT_CFLAGS_PSQL" ]; then
5923     echo "QT_CFLAGS_PSQL   = $QT_CFLAGS_PSQL" >> "$QTMODULE.tmp"
5924 fi
5925 if [ -n "$QT_LFLAGS_PSQL" ]; then
5926     echo "QT_LFLAGS_PSQL   = $QT_LFLAGS_PSQL" >> "$QTMODULE.tmp"
5927 fi
5928 if [ -n "$QT_CFLAGS_MYSQL" ]; then
5929     echo "QT_CFLAGS_MYSQL   = $QT_CFLAGS_MYSQL" >> "$QTMODULE.tmp"
5930 fi
5931 if [ -n "$QT_LFLAGS_MYSQL" ]; then
5932     echo "QT_LFLAGS_MYSQL   = $QT_LFLAGS_MYSQL" >> "$QTMODULE.tmp"
5933 fi
5934 if [ -n "$QT_CFLAGS_SQLITE" ]; then
5935     echo "QT_CFLAGS_SQLITE   = $QT_CFLAGS_SQLITE" >> "$QTMODULE.tmp"
5936 fi
5937 if [ -n "$QT_LFLAGS_SQLITE" ]; then
5938     echo "QT_LFLAGS_SQLITE   = $QT_LFLAGS_SQLITE" >> "$QTMODULE.tmp"
5939 fi
5940 if [ -n "$QT_LFLAGS_ODBC" ]; then
5941     echo "QT_LFLAGS_ODBC   = $QT_LFLAGS_ODBC" >> "$QTMODULE.tmp"
5942 fi
5943 if [ -n "$QT_LFLAGS_TDS" ]; then
5944     echo "QT_LFLAGS_TDS   = $QT_LFLAGS_TDS" >> "$QTMODULE.tmp"
5945 fi
5946
5947 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
5948     echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$QTMODULE.tmp"
5949 fi
5950
5951 #dump in the OPENSSL_LIBS info
5952 if [ '!' -z "$OPENSSL_LIBS" ]; then
5953     echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$QTMODULE.tmp"
5954 elif [ "$CFG_OPENSSL" = "linked" ]; then
5955     echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$QTMODULE.tmp"
5956 fi
5957
5958 #dump in the SDK info
5959 if [ '!' -z "$CFG_SDK" ]; then
5960    echo "QMAKE_MAC_SDK = $CFG_SDK" >> "$QTMODULE.tmp"
5961 fi
5962
5963 # cmdline args
5964 cat "$QMAKE_VARS_FILE" >> "$QTMODULE.tmp"
5965 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
5966
5967 # replace qmodule.pri if it differs from the newly created temp file
5968 if cmp -s "$QTMODULE.tmp" "$QTMODULE"; then
5969     rm -f "$QTMODULE.tmp"
5970 else
5971     mv -f "$QTMODULE.tmp" "$QTMODULE"
5972 fi
5973
5974 #-------------------------------------------------------------------------------
5975 # save configuration into .qmake.cache
5976 #-------------------------------------------------------------------------------
5977
5978 CACHEFILE="$outpath/.qmake.cache"
5979 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
5980 cat >>"$CACHEFILE.tmp" <<EOF
5981 #paths
5982 QT_SOURCE_TREE = \$\$quote($relpath)
5983 QT_BUILD_TREE = \$\$quote($outpath)
5984
5985 include(\$\$PWD/mkspecs/qmodule.pri)
5986 CONFIG += dylib depend_includepath fix_output_dirs no_private_qt_headers_warning QTDIR_build
5987
5988 EOF
5989
5990 # replace .qmake.cache if it differs from the newly created temp file
5991 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
5992     rm -f "$CACHEFILE.tmp"
5993 else
5994     mv -f "$CACHEFILE.tmp" "$CACHEFILE"
5995 fi
5996
5997 #-------------------------------------------------------------------------------
5998 # give feedback on configuration
5999 #-------------------------------------------------------------------------------
6000 exec 3>&1 1>$outpath/config.summary # redirect output temporarily to config.summary
6001
6002 echo
6003 if [ "$XPLATFORM" = "$PLATFORM" ]; then
6004     echo "Build type:    $PLATFORM"
6005 else
6006     echo "Building on:   $PLATFORM"
6007     echo "Building for:  $XPLATFORM"
6008 fi
6009
6010 # the missing space before $CFG_FEATURES is intentional
6011 echo "Architecture:  $CFG_ARCH, features:$CFG_CPUFEATURES"
6012 echo "Host architecture: $CFG_HOST_ARCH, features:$CFG_HOST_CPUFEATURES"
6013
6014 if [ -n "$PLATFORM_NOTES" ]; then
6015     echo "Platform notes:"
6016     echo "$PLATFORM_NOTES"
6017 else
6018     echo
6019 fi
6020
6021 if [ "$OPT_VERBOSE" = "yes" ]; then
6022     echo $ECHO_N "qmake vars .......... $ECHO_C"
6023     cat "$QMAKE_VARS_FILE" | tr '\n' ' '
6024     echo "qmake switches ......... $QMAKE_SWITCHES"
6025 fi
6026
6027 echo "Build .................. $CFG_BUILD_PARTS"
6028 echo "Configuration .......... $QMAKE_CONFIG $QT_CONFIG"
6029 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6030    echo "Debug .................. yes (combined)"
6031    if [ "$CFG_DEBUG" = "yes" ]; then
6032        echo "Default Link ........... debug"
6033    else
6034        echo "Default Link ........... release"
6035    fi
6036 else
6037    echo "Debug .................. $CFG_DEBUG"
6038 fi
6039 echo "C++11 support .......... $CFG_CXX11"
6040 if [ -n "$PKG_CONFIG" ]; then
6041     echo "pkg-config ............. yes"
6042 else
6043     echo "pkg-config ............. no"
6044 fi
6045 [ "$CFG_DBUS" = "no" ]     && echo "QtDBus module .......... no"
6046 [ "$CFG_DBUS" = "yes" ]    && echo "QtDBus module .......... yes (run-time)"
6047 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)"
6048 echo "QtConcurrent code ...... $CFG_CONCURRENT"
6049 echo "QtGui module ........... $CFG_GUI"
6050 echo "QtWidgets module ....... $CFG_WIDGETS"
6051 if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
6052     echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore"
6053 else
6054     echo "JavaScriptCore JIT ..... $CFG_JAVASCRIPTCORE_JIT"
6055 fi
6056 echo "QML debugging .......... $CFG_QML_DEBUG"
6057 echo "PCH support ............ $CFG_PRECOMPILE"
6058 if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
6059     echo "SSE2/SSE3/SSSE3......... ${CFG_SSE2}/${CFG_SSE3}/${CFG_SSSE3}"
6060     echo "SSE4.1/SSE4.2........... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
6061     echo "AVX/AVX2................ ${CFG_AVX}/${CFG_AVX2}"
6062 elif [ "$CFG_ARCH" = "arm" ]; then
6063     echo "iWMMXt support ......... ${CFG_IWMMXT}"
6064     echo "NEON support ........... ${CFG_NEON}"
6065 fi
6066 if [ "$CFG_ARCH" = "mips" ]; then
6067     echo "MIPS_DSP/MIPS_DSPR2..... ${CFG_MIPS_DSP}/${CFG_MIPS_DSPR2}"
6068 fi
6069 echo "IPv6 ifname support .... $CFG_IPV6IFNAME"
6070 echo "getaddrinfo support .... $CFG_GETADDRINFO"
6071 echo "getifaddrs support ..... $CFG_GETIFADDRS"
6072 echo "Accessibility .......... $CFG_ACCESSIBILITY"
6073 echo "NIS support ............ $CFG_NIS"
6074 echo "CUPS support ........... $CFG_CUPS"
6075 echo "Iconv support .......... $CFG_ICONV"
6076 echo "Glib support ........... $CFG_GLIB"
6077 echo "GStreamer support ...... $CFG_GSTREAMER"
6078 echo "PulseAudio support ..... $CFG_PULSEAUDIO"
6079 echo "Large File support ..... $CFG_LARGEFILE"
6080 echo "GIF support ............ $CFG_GIF"
6081 if [ "$CFG_JPEG" = "no" ]; then
6082     echo "JPEG support ........... $CFG_JPEG"
6083 else
6084     echo "JPEG support ........... $CFG_JPEG ($CFG_LIBJPEG)"
6085 fi
6086 if [ "$CFG_PNG" = "no" ]; then
6087     echo "PNG support ............ $CFG_PNG"
6088 else
6089     echo "PNG support ............ $CFG_PNG ($CFG_LIBPNG)"
6090 fi
6091 echo "zlib support ........... $CFG_ZLIB"
6092 echo "Session management ..... $CFG_SM"
6093 echo "libudev support ........ $CFG_LIBUDEV"
6094
6095 if [ "$CFG_OPENGL" = "desktop" ]; then
6096     echo "OpenGL support ......... yes (Desktop OpenGL)"
6097 elif [ "$CFG_OPENGL" = "es2" ]; then
6098     echo "OpenGL support ......... yes (OpenGL ES 2.x)"
6099 else
6100     echo "OpenGL support ......... no"
6101 fi
6102
6103 if [ "$CFG_OPENVG" ]; then
6104     if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
6105         echo "OpenVG support ......... ShivaVG"
6106     else
6107         echo "OpenVG support ......... $CFG_OPENVG"
6108     fi
6109 fi
6110
6111 echo "XShape support ......... $CFG_XSHAPE"
6112 echo "XVideo support ......... $CFG_XVIDEO"
6113 echo "XSync support .......... $CFG_XSYNC"
6114 echo "Xinerama support ....... $CFG_XINERAMA"
6115 echo "Xcursor support ........ $CFG_XCURSOR"
6116 echo "Xfixes support ......... $CFG_XFIXES"
6117 echo "Xrandr support ......... $CFG_XRANDR"
6118 echo "Xi support ............. $CFG_XINPUT"
6119 echo "Xi2 support ............ $CFG_XINPUT2"
6120 echo "MIT-SHM support ........ $CFG_MITSHM"
6121 echo "FontConfig support ..... $CFG_FONTCONFIG"
6122 echo "XKB Support ............ $CFG_XKB"
6123 echo "immodule support ....... $CFG_IM"
6124 echo "GTK theme support ...... $CFG_QGTKSTYLE"
6125
6126 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support .......... $CFG_SQL_mysql"
6127 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support ..... $CFG_SQL_psql"
6128 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........... $CFG_SQL_odbc"
6129 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ............ $CFG_SQL_oci"
6130 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ............ $CFG_SQL_tds"
6131 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ............ $CFG_SQL_db2"
6132 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ...... $CFG_SQL_ibase"
6133 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support ....... $CFG_SQL_sqlite2"
6134 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ......... $CFG_SQL_sqlite ($CFG_SQLITE)"
6135
6136 OPENSSL_LINKAGE=""
6137 if [ "$CFG_OPENSSL" = "yes" ]; then
6138     OPENSSL_LINKAGE="(run-time)"
6139 elif [ "$CFG_OPENSSL" = "linked" ]; then
6140     OPENSSL_LINKAGE="(linked)"
6141 fi
6142 echo "OpenSSL support ........ $CFG_OPENSSL $OPENSSL_LINKAGE"
6143 echo "Alsa support ........... $CFG_ALSA"
6144 if [ "$BUILD_ON_MAC" = "yes" ]; then
6145     echo "CoreWlan support ....... $CFG_COREWLAN"
6146 fi
6147 echo "libICU support ......... $CFG_ICU"
6148 echo "PCRE support ........... $CFG_PCRE"
6149 if [ "$CFG_XCB_LIMITED" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6150     echo "Xcb support ............ limited (old version)"
6151 else
6152     echo "Xcb support ............ $CFG_XCB"
6153 fi
6154 echo "Xrender support ........ $CFG_XRENDER"
6155 if [ "$XPLATFORM_MAEMO" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6156     echo "XInput2 support ........ $CFG_XINPUT2"
6157 fi
6158 echo "EGLFS support .......... $CFG_EGLFS"
6159 echo "DirectFB support ....... $CFG_DIRECTFB"
6160 echo "LinuxFB support ........ $CFG_LINUXFB"
6161 echo "KMS support ............ $CFG_KMS"
6162 echo
6163
6164 # complain about not being able to use dynamic plugins if we are using a static build
6165 if [ "$CFG_SHARED" = "no" ]; then
6166     echo
6167     echo "WARNING: Using static linking will disable the use of dynamically"
6168     echo "loaded plugins. Make sure to import all needed static plugins,"
6169     echo "or compile needed modules into the library."
6170     echo
6171 fi
6172 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
6173     echo
6174     echo "NOTE: When linking against OpenSSL, you can override the default"
6175     echo "library names through OPENSSL_LIBS."
6176     echo "For example:"
6177     echo "    OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
6178     echo
6179 fi
6180
6181 exec 1>&3 3>&- # restore stdout
6182 cat $outpath/config.summary # display config feedback to user
6183
6184 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
6185     echo
6186     echo "Error: debug-only framework builds are not supported. Configure with -no-framework"
6187     echo "if you want a pure debug build."
6188     echo
6189     exit 1
6190 fi
6191
6192 sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
6193 PROCS=1
6194 EXEC=""
6195
6196
6197 #-------------------------------------------------------------------------------
6198 # build makefiles based on the configuration
6199 #-------------------------------------------------------------------------------
6200
6201 if [ "$CFG_PROCESS" != "no" ]; then
6202
6203     if [ "$CFG_PROCESS" = "full" ]; then
6204         echo "Creating makefiles. Please wait..."
6205         "$outpath/bin/qmake" -r "$relpath"
6206         echo "Done"
6207     else
6208         "$outpath/bin/qmake" "$relpath"
6209     fi
6210
6211     if [ "$OPT_FAST" = "yes" ]; then
6212         PART_ROOTS=
6213         for part in $CFG_BUILD_PARTS; do
6214             case "$part" in
6215             examples|tests) PART_ROOTS="$PART_ROOTS $part" ;;
6216             esac
6217         done
6218         if [ "x$PART_ROOTS" != "x" ]; then
6219             echo
6220             echo "Creating stub makefiles. Please wait..."
6221             QMAKE="$outpath/bin/qmake"
6222             [ "$CFG_DEBUG_RELEASE" = "no" ] && first_tgt="first_target: first" || first_tgt=
6223             (cd "$relpath" && find $PART_ROOTS -name '*.pro') | grep -v /testdata/ | while read p; do
6224                 d=${p%/*}
6225                 test -f "$outpath/$d/Makefile" && continue
6226                 echo "  for $relpath/$p"
6227
6228                 mkdir -p "$outpath/$d" || exit
6229                 cat > "$outpath/$d/Makefile" <<EOF || exit
6230 # $outpath/$d/Makefile: generated by configure
6231 #
6232 # WARNING: This makefile will be replaced with a real makefile.
6233 # All changes made to this file will be lost.
6234
6235 QMAKE = "$QMAKE"
6236
6237 $first_tgt
6238 all clean install qmake first Makefile: FORCE
6239         \$(QMAKE) $QMAKE_SWITCHES "$relpath/$p"
6240         \$(MAKE) \$@
6241 FORCE:
6242 EOF
6243             done || exit
6244             echo "Done"
6245         fi
6246     fi
6247 fi
6248
6249 #-------------------------------------------------------------------------------
6250 # check for platforms that we don't yet know about
6251 #-------------------------------------------------------------------------------
6252 if [ "$CFG_ARCH" = "unknown" ]; then
6253 cat <<EOF
6254
6255         NOTICE: configure was unable to determine the architecture
6256         for the $XQMAKESPEC target.
6257
6258         Qt will not use a specialized implementation for any atomic
6259         operations. Instead a generic implemention based on either GCC
6260         intrinsics or C++11 std::atomic<T> will be used (when
6261         available). The generic implementations are generally as fast
6262         as and always as safe as a specialized implementation.
6263
6264         If no generic implementation is available, Qt will use a
6265         fallback UNIX implementation which uses a single
6266         pthread_mutex_t to protect all atomic operations. This
6267         implementation is the slow (but safe) fallback implementation
6268         for architectures Qt does not yet support.
6269 EOF
6270 fi
6271
6272 #-------------------------------------------------------------------------------
6273 # check if the user passed the -no-zlib option, which is no longer supported
6274 #-------------------------------------------------------------------------------
6275 if [ -n "$ZLIB_FORCED" ]; then
6276     which_zlib="supplied"
6277     if [ "$CFG_ZLIB" = "system" ]; then
6278         which_zlib="system"
6279     fi
6280
6281 cat <<EOF
6282
6283         NOTICE: The -no-zlib option was supplied but is no longer
6284         supported.
6285
6286         Qt now requires zlib support in all builds, so the -no-zlib
6287         option was ignored. Qt will be built using the $which_zlib
6288         zlib.
6289 EOF
6290 fi
6291
6292 #-------------------------------------------------------------------------------
6293 # check if the user passed the obsoleted -wayland or -no-wayland flag
6294 #-------------------------------------------------------------------------------
6295 if [ "$CFG_OBSOLETE_WAYLAND" = "yes" ]; then
6296 cat <<EOF
6297
6298         NOTICE: The -wayland and -no-wayland flags are now obsolete
6299
6300         All configuring of QtWayland plugin and QtCompositor happens in the module
6301 EOF
6302 fi
6303
6304 #-------------------------------------------------------------------------------
6305 # check if the user passed the obsoleted -arch or -host-arch options
6306 #-------------------------------------------------------------------------------
6307 if [ "$OPT_OBSOLETE_HOST_ARG" = "yes" ]; then
6308 cat <<EOF
6309
6310         NOTICE: The -arch and -host-arch options are obsolete.
6311
6312         Qt now detects the target and host architectures based on compiler
6313         output. Qt will be built using $CFG_ARCH for the target architecture
6314         and $CFG_HOST_ARCH for the host architecture (note that these two
6315         will be the same unless you are cross-compiling).
6316 EOF
6317 fi
6318
6319 #-------------------------------------------------------------------------------
6320 # finally save the executed command to another script
6321 #-------------------------------------------------------------------------------
6322 if [ `basename $0` != "config.status" ]; then
6323     CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
6324
6325     # add the system variables
6326     for varname in $SYSTEM_VARIABLES; do
6327         cmd=`echo \
6328 'if [ -n "\$'${varname}'" ]; then
6329     CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
6330 fi'`
6331         eval "$cmd"
6332     done
6333
6334     echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
6335
6336     [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
6337     echo "#!/bin/sh" > "$outpath/config.status"
6338     [ -n "$PKG_CONFIG_SYSROOT_DIR" ] && \
6339         echo "export PKG_CONFIG_SYSROOT_DIR=$PKG_CONFIG_SYSROOT_DIR" >> "$outpath/config.status"
6340     [ -n "$PKG_CONFIG_LIBDIR" ] && \
6341         echo "export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR" >> "$outpath/config.status"
6342     echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
6343     echo "  $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
6344     echo "else" >> "$outpath/config.status"
6345     echo "  $CONFIG_STATUS" >> "$outpath/config.status"
6346     echo "fi" >> "$outpath/config.status"
6347     chmod +x "$outpath/config.status"
6348 fi
6349
6350 if [ -n "$RPATH_MESSAGE" ]; then
6351     echo
6352     echo "$RPATH_MESSAGE"
6353 fi
6354
6355 MAKE=`basename "$MAKE"`
6356 echo
6357 echo Qt is now configured for building. Just run \'$MAKE\'.
6358 if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
6359     echo Once everything is built, Qt is installed.
6360     echo You should not run \'$MAKE install\'.
6361 else
6362     echo Once everything is built, you must run \'$MAKE install\'.
6363     echo Qt will be installed into $QT_INSTALL_PREFIX
6364 fi
6365 echo
6366 echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.
6367 echo