Fix builds with sysroot: a space is necessary before ] in scripts
[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         QMakeVar add DEFINES QT_NO_LIBUDEV
4639     fi
4640 fi
4641
4642 if [ "$CFG_EVDEV" != "no" ]; then
4643     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
4644         CFG_EVDEV=yes
4645         QT_CONFIG="$QT_CONFIG evdev"
4646     elif [ "$CFG_EVDEV" = "yes" ]; then
4647         echo "The evdev functionality test failed!"
4648         exit 1
4649     else
4650         CFG_EVDEV=no
4651         QMakeVar add DEFINES QT_NO_EVDEV
4652     fi
4653 fi
4654
4655 # Check we actually have X11 :-)
4656 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
4657     QT_CONFIG="$QT_CONFIG xlib"
4658 fi
4659
4660 # auto-detect Xrender support
4661 if [ "$CFG_XRENDER" != "no" ]; then
4662     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
4663         CFG_XRENDER=yes
4664         QT_CONFIG="$QT_CONFIG xrender"
4665     else
4666         if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4667             echo "Xrender support cannot be enabled due to functionality tests!"
4668             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4669             echo " If you believe this message is in error you may use the continue"
4670             echo " switch (-continue) to $0 to continue."
4671             exit 101
4672         else
4673             CFG_XRENDER=no
4674         fi
4675     fi
4676 fi
4677
4678 if [ "$CFG_XCB" != "no" ]; then
4679     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4680         QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb 2>/dev/null`"
4681         QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb 2>/dev/null`"
4682     fi
4683     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
4684         CFG_XCB=yes
4685         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
4686             QT_CONFIG="$QT_CONFIG xcb-render"
4687         fi
4688
4689         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
4690             CFG_XCB_LIMITED=no
4691             QT_CONFIG="$QT_CONFIG xcb-poll-for-queued-event"
4692         fi
4693
4694         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
4695             QT_CONFIG="$QT_CONFIG xcb-xlib"
4696         fi
4697
4698         # auto-detect XInput2 support. Needed by xcb too.
4699         if [ "$CFG_XINPUT2" != "no" ]; then
4700             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
4701                 CFG_XINPUT2=yes
4702                 CFG_XINPUT=no
4703             else
4704                 if [ "$CFG_XINPUT2" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4705                     echo "XInput2 support cannot be enabled due to functionality tests!"
4706                     echo " Turn on verbose messaging (-v) to $0 to see the final report."
4707                     echo " If you believe this message is in error you may use the continue"
4708                     echo " switch (-continue) to $0 to continue."
4709                     exit 101
4710                 else
4711                     CFG_XINPUT2=no
4712                 fi
4713             fi
4714         fi
4715     else
4716         if [ "$CFG_XCB" = "yes" ]; then
4717             echo "The XCB test failed!"
4718             echo " You might need to install dependency packages."
4719             echo " See src/plugins/platforms/xcb/README."
4720             exit 1
4721         fi
4722         CFG_XCB=no
4723         QMakeVar add DEFINES QT_NO_XCB
4724     fi
4725 fi
4726
4727 if [ "$CFG_DIRECTFB" != "no" ]; then
4728     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists directfb 2>/dev/null; then
4729         QMAKE_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
4730         QMAKE_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
4731         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
4732             CFG_DIRECTFB=yes
4733         elif [ "$CFG_DIRECTFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4734             echo " DirectFB support cannot be enabled due to functionality tests!"
4735             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4736             echo " If you believe this message is in error you may use the continue"
4737             echo " switch (-continue) to $0 to continue."
4738             exit 101
4739         else
4740             CFG_DIRECTFB=no
4741         fi
4742     else
4743         CFG_DIRECTFB=no
4744     fi
4745 fi
4746
4747 if [ "$CFG_LINUXFB" != "no" ]; then
4748     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
4749         CFG_LINUXFB=yes
4750     elif [ "$CFG_LINUXFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4751         echo " Linux Framebuffer support cannot be enabled due to functionality tests!"
4752         echo " Turn on verbose messaging (-v) to $0 to see the final report."
4753         echo " If you believe this message is in error you may use the continue"
4754         echo " switch (-continue) to $0 to continue."
4755         exit 101
4756     else
4757         CFG_LINUXFB=no
4758     fi
4759 fi
4760
4761 if [ "$CFG_KMS" != "no" ]; then
4762     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
4763         CFG_KMS=yes
4764     elif [ "$CFG_KMS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4765         echo " KMS support cannot be enabled due to functionality tests!"
4766         echo " Turn on verbose messaging (-v) to $0 to see the final report."
4767         echo " If you believe this message is in error you may use the continue"
4768         echo " switch (-continue) to $0 to continue."
4769         exit 101
4770     else
4771         CFG_KMS=no
4772     fi
4773 fi
4774
4775 # Detect libxkbcommon
4776 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
4777     QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
4778     QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon 2>/dev/null`"
4779     QMAKE_CFLAGS_XCB="$QMAKE_CFLAGS_XCB $QMAKE_CFLAGS_XKBCOMMON"
4780     QMAKE_LIBS_XCB="$QMAKE_LIBS_XCB $QMAKE_LIBS_XKBCOMMON"
4781 else
4782     QMAKE_DEFINES_XCB=QT_NO_XCB_XKB
4783 fi
4784
4785 # EGL Support
4786 if [ "$CFG_EGL" != "no" ] && [ "$CFG_OPENGL" != "desktop" ]; then
4787     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then
4788         QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4789         QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null`
4790         QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null`
4791         QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL"
4792         QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL"
4793     fi       # detect EGL support
4794     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
4795         CFG_EGL=yes
4796     elif [ "$CFG_EGL" = "yes" ]; then
4797         echo " The EGL functionality test failed; EGL is required by some QPA plugins to manage contexts & surfaces."
4798         echo " You might need to modify the include and library search paths by editing"
4799         echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in ${XQMAKESPEC}."
4800         exit 1
4801     else
4802         CFG_EGL=no
4803     fi
4804 elif [ "$CFG_OPENGL" = "desktop" ]; then
4805     if [ "$CFG_EGL" = "yes" ]; then
4806         echo "EGL support was requested but Qt is being configured for desktop OpenGL."
4807         echo "Either disable EGL support or enable OpenGL ES support."
4808         exit 101
4809     fi
4810     CFG_EGL=no
4811 fi
4812
4813 if [ "$CFG_EGLFS" != "no" ]; then
4814     if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EVDEV" = "yes" ]; then
4815         CFG_EGLFS="$CFG_EGL"
4816     else
4817         CFG_EGLFS="no"
4818     fi
4819 fi
4820
4821 if [ "$CFG_KMS" = "yes" ]; then
4822     if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EGL" = "yes" ]; then
4823         CFG_KMS="yes"
4824     else
4825         CFG_KMS="no"
4826     fi
4827 fi
4828
4829 # Determine the default QPA platform
4830 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4831     # check the mkspec
4832     QT_QPA_DEFAULT_PLATFORM=`getXQMakeConf QT_QPA_DEFAULT_PLATFORM`
4833     if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4834         if [ "$XPLATFORM_MINGW" = "yes" ]; then
4835             QT_QPA_DEFAULT_PLATFORM="windows"
4836         elif [ "$BUILD_ON_MAC" = "yes" ]; then
4837             QT_QPA_DEFAULT_PLATFORM="cocoa"
4838         elif [ "$UNAME_SYSTEM" = "QNX" ]; then
4839             QT_QPA_DEFAULT_PLATFORM="qnx"
4840         else
4841             QT_QPA_DEFAULT_PLATFORM="xcb"
4842         fi
4843     fi
4844 fi
4845
4846 if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then
4847     QMakeVar set QMAKE_CFLAGS_XCB "$QMAKE_CFLAGS_XCB"
4848     QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB"
4849     QMakeVar set QMAKE_DEFINES_XCB "$QMAKE_DEFINES_XCB"
4850 fi
4851 if [ "$CFG_DIRECTFB" = "yes" ]; then
4852     QT_CONFIG="$QT_CONFIG directfb"
4853     QMakeVar set QMAKE_CFLAGS_DIRECTFB "$QMAKE_CFLAGS_DIRECTFB"
4854     QMakeVar set QMAKE_LIBS_DIRECTFB "$QMAKE_LIBS_DIRECTFB"
4855 fi
4856 if [ "$CFG_LINUXFB" = "yes" ]; then
4857     QT_CONFIG="$QT_CONFIG linuxfb"
4858 fi
4859 if [ "$CFG_KMS" = "yes" ]; then
4860     QT_CONFIG="$QT_CONFIG kms"
4861 fi
4862
4863 if [ "$BUILD_ON_MAC" = "yes" ]; then
4864     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
4865         QT_CONFIG="$QT_CONFIG coreservices"
4866     else
4867         QMakeVar add DEFINES QT_NO_CORESERVICES
4868     fi
4869 fi
4870
4871 if [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ] && [ "$XPLATFORM_QNX" = "no" ]; then
4872     if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ] && [ "$CFG_DIRECTFB" = "no" ] && [ "$CFG_LINUXFB" = "no" ] && [ "$CFG_KMS" = "no" ]; then
4873         if [ "$QPA_PLATFORM_GUARD" = "yes" ] &&
4874             ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] || [ "$ORIG_CFG_DIRECTFB" = "auto" ] || [ "$ORIG_CFG_LINUXFB" = "auto" ] || [ "$ORIG_CFG_KMS" = "auto" ] ); then
4875         echo "No QPA platform plugin enabled!"
4876         echo " If you really want to build without a QPA platform plugin you must pass"
4877         echo " -no-qpa-platform-guard to configure. Doing this will"
4878         echo " produce a Qt that can not run GUI applications."
4879         echo " The dependencies needed for xcb to build are listed in"
4880         echo " src/plugins/platforms/xcb/README"
4881         exit 1
4882     fi
4883 fi
4884     fi
4885
4886 # freetype support
4887 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_LIBFREETYPE" = "auto" ] && CFG_LIBFREETYPE=no
4888 if [ "$CFG_LIBFREETYPE" = "auto" ]; then
4889     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
4890         CFG_LIBFREETYPE=system
4891     else
4892         CFG_LIBFREETYPE=yes
4893     fi
4894 fi
4895
4896 if ! "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/stl "STL" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS &&
4897     [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4898     echo "STL functionality check failed! Cannot build Qt with this STL library."
4899     echo " Turn on verbose messaging (-v) to $0 to see the final report."
4900     exit 101
4901 fi
4902
4903
4904 # detect POSIX clock_gettime()
4905 if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
4906     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
4907         CFG_CLOCK_GETTIME=yes
4908     else
4909         CFG_CLOCK_GETTIME=no
4910     fi
4911 fi
4912
4913 # detect POSIX monotonic clocks
4914 if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
4915     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
4916         CFG_CLOCK_MONOTONIC=yes
4917     else
4918         CFG_CLOCK_MONOTONIC=no
4919     fi
4920 elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
4921     CFG_CLOCK_MONOTONIC=no
4922 fi
4923
4924 # detect mremap
4925 if [ "$CFG_MREMAP" = "auto" ]; then
4926     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
4927         CFG_MREMAP=yes
4928     else
4929         CFG_MREMAP=no
4930     fi
4931 fi
4932
4933 # find if the platform provides getaddrinfo (ipv6 dns lookups)
4934 if [ "$CFG_GETADDRINFO" != "no" ]; then
4935     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
4936         CFG_GETADDRINFO=yes
4937     else
4938         if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4939             echo "getaddrinfo support cannot be enabled due to functionality tests!"
4940             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4941             echo " If you believe this message is in error you may use the continue"
4942             echo " switch (-continue) to $0 to continue."
4943             exit 101
4944         else
4945             CFG_GETADDRINFO=no
4946         fi
4947     fi
4948 fi
4949
4950 # find if the platform provides inotify
4951 if [ "$CFG_INOTIFY" != "no" ]; then
4952     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
4953         CFG_INOTIFY=yes
4954     else
4955         if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4956             echo "inotify support cannot be enabled due to functionality tests!"
4957             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4958             echo " If you believe this message is in error you may use the continue"
4959             echo " switch (-continue) to $0 to continue."
4960             exit 101
4961         else
4962             CFG_INOTIFY=no
4963         fi
4964     fi
4965 fi
4966
4967 # find if the platform provides if_nametoindex (ipv6 interface name support)
4968 if [ "$CFG_IPV6IFNAME" != "no" ]; then
4969     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
4970         CFG_IPV6IFNAME=yes
4971     else
4972         if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4973             echo "IPv6 interface name support cannot be enabled due to functionality tests!"
4974             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4975             echo " If you believe this message is in error you may use the continue"
4976             echo " switch (-continue) to $0 to continue."
4977             exit 101
4978         else
4979             CFG_IPV6IFNAME=no
4980         fi
4981     fi
4982 fi
4983
4984 # find if the platform provides getifaddrs (network interface enumeration)
4985 if [ "$CFG_GETIFADDRS" != "no" ]; then
4986     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
4987         CFG_GETIFADDRS=yes
4988     else
4989         if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4990             echo "getifaddrs support cannot be enabled due to functionality tests!"
4991             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4992             echo " If you believe this message is in error you may use the continue"
4993             echo " switch (-continue) to $0 to continue."
4994             exit 101
4995         else
4996             CFG_GETIFADDRS=no
4997         fi
4998     fi
4999 fi
5000
5001 # detect OpenSSL
5002 if [ "$CFG_OPENSSL" != "no" ]; then
5003     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
5004         if [ "$CFG_OPENSSL" = "auto" ]; then
5005             CFG_OPENSSL=yes
5006         fi
5007     else
5008         if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5009             echo "OpenSSL support cannot be enabled due to functionality tests!"
5010             echo " Turn on verbose messaging (-v) to $0 to see the final report."
5011             echo " If you believe this message is in error you may use the continue"
5012             echo " switch (-continue) to $0 to continue."
5013             exit 101
5014         else
5015             CFG_OPENSSL=no
5016         fi
5017     fi
5018 fi
5019
5020 # detect PCRE
5021 if [ "$CFG_PCRE" != "qt" ]; then
5022     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
5023         CFG_PCRE=system
5024     else
5025         if [ "$CFG_PCRE" = "system" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5026             echo "PCRE support cannot be enabled due to functionality tests!"
5027             echo " Turn on verbose messaging (-v) to $0 to see the final report."
5028             echo " If you believe this message is in error you may use the continue"
5029             echo " switch (-continue) to $0 to continue."
5030             exit 101
5031         else
5032             CFG_PCRE=qt
5033         fi
5034     fi
5035 fi
5036
5037 # detect OpenVG support
5038 if [ "$CFG_OPENVG" != "no" ]; then
5039     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
5040         if [ "$CFG_OPENVG" = "auto" ]; then
5041             CFG_OPENVG=yes
5042         fi
5043     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
5044         if [ "$CFG_OPENVG" = "auto" ]; then
5045             CFG_OPENVG=yes
5046         fi
5047         CFG_OPENVG_ON_OPENGL=yes
5048     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
5049         if [ "$CFG_OPENVG" = "auto" ]; then
5050             CFG_OPENVG=yes
5051         fi
5052         CFG_OPENVG_LC_INCLUDES=yes
5053     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
5054         if [ "$CFG_OPENVG" = "auto" ]; then
5055             CFG_OPENVG=yes
5056         fi
5057         CFG_OPENVG_LC_INCLUDES=yes
5058         CFG_OPENVG_ON_OPENGL=yes
5059     else
5060         if [ "$CFG_OPENVG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5061             echo "$CFG_OPENVG was specified for OpenVG but cannot be enabled due to functionality tests!"
5062             echo " Turn on verbose messaging (-v) to $0 to see the final report."
5063             echo " If you believe this message is in error you may use the continue"
5064             echo " switch (-continue) to $0 to continue."
5065             exit 101
5066         else
5067             CFG_OPENVG=no
5068         fi
5069     fi
5070     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
5071         CFG_OPENVG_SHIVA=yes
5072     fi
5073 fi
5074
5075 if [ "$CFG_ALSA" = "auto" ]; then
5076     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
5077         CFG_ALSA=yes
5078     else
5079         CFG_ALSA=no
5080     fi
5081 fi
5082
5083 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ] || [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then 
5084     if [ "$CFG_ARCH" = "arm" ]; then
5085        "$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
5086         if [ $? != "0" ]; then
5087            CFG_JAVASCRIPTCORE_JIT=no
5088         fi
5089     else
5090         case "$XPLATFORM" in
5091             linux-icc*)
5092                 CFG_JAVASCRIPTCORE_JIT=no
5093                 ;;
5094         esac
5095     fi
5096 fi
5097
5098 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ]; then
5099     QMakeVar set JAVASCRIPTCORE_JIT yes
5100 elif [ "$CFG_JAVASCRIPTCORE_JIT" = "no" ]; then
5101     QMakeVar set JAVASCRIPTCORE_JIT no
5102 fi
5103
5104 if [ "$CFG_AUDIO_BACKEND" = "auto" ]; then
5105     CFG_AUDIO_BACKEND=yes
5106 fi
5107
5108 if [ "$CFG_LARGEFILE" != "yes" ] && [ "$XPLATFORM_MINGW" = "yes" ]; then
5109     echo "Warning: largefile support cannot be disabled for win32."
5110     CFG_LARGEFILE="yes"
5111 fi
5112
5113 #-------------------------------------------------------------------------------
5114 # ask for all that hasn't been auto-detected or specified in the arguments
5115 #-------------------------------------------------------------------------------
5116
5117 [ "$CFG_CXX11" = "yes" ] && QT_CONFIG="$QT_CONFIG c++11"
5118
5119 # disable accessibility
5120 if [ "$CFG_ACCESSIBILITY" = "no" ]; then
5121     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
5122 else
5123     QT_CONFIG="$QT_CONFIG accessibility"
5124 fi
5125
5126 # enable egl
5127 if [ "$CFG_EGL" = "yes" ]; then
5128     QT_CONFIG="$QT_CONFIG egl"
5129 else
5130     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL"
5131 fi
5132
5133 # enable eglfs
5134 if [ "$CFG_EGLFS" = "yes" ]; then
5135     QT_CONFIG="$QT_CONFIG eglfs"
5136 else
5137     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGLFS"
5138 fi
5139
5140 # enable openvg
5141 if [ "$CFG_OPENVG" = "no" ]; then
5142     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENVG"
5143 else
5144     QT_CONFIG="$QT_CONFIG openvg"
5145     if [ "$CFG_OPENVG_LC_INCLUDES" = "yes" ]; then
5146         QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LOWER_CASE_VG_INCLUDES"
5147     fi
5148     if [ "$CFG_OPENVG_ON_OPENGL" = "yes" ]; then
5149         QT_CONFIG="$QT_CONFIG openvg_on_opengl"
5150     fi
5151     if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
5152         QT_CONFIG="$QT_CONFIG shivavg"
5153         QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SHIVAVG"
5154     fi
5155 fi
5156
5157 # enable opengl
5158 if [ "$CFG_OPENGL" = "no" ]; then
5159     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
5160 else
5161     QT_CONFIG="$QT_CONFIG opengl"
5162 fi
5163
5164 if [ "$CFG_OPENGL" = "es2" ]; then
5165     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
5166 fi
5167
5168 if [ "$CFG_OPENGL" = "es2" ]; then
5169     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
5170     QT_CONFIG="$QT_CONFIG opengles2"
5171 fi
5172
5173 # build up the variables for output
5174 if [ "$CFG_DEBUG" = "yes" ]; then
5175     QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
5176 elif [ "$CFG_DEBUG" = "no" ]; then
5177     QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
5178 fi
5179 if [ "$CFG_SHARED" = "yes" ]; then
5180     QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
5181     QT_CONFIG="$QT_CONFIG shared"
5182 elif [ "$CFG_SHARED" = "no" ]; then
5183     QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
5184     QT_CONFIG="$QT_CONFIG static"
5185 fi
5186
5187 #FIXME: qpa is implicit this should all be removed
5188 QMAKE_CONFIG="$QMAKE_CONFIG qpa"
5189 QT_CONFIG="$QT_CONFIG qpa"
5190 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qpa"
5191 rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
5192
5193 if [ "$XPLATFORM_MINGW" != "yes" ]; then
5194     # Do not set this here for Windows. Let qmake do it so
5195     # debug and release precompiled headers are kept separate.
5196     QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
5197 fi
5198 QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
5199 QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
5200 QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
5201 QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
5202 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5203     QMAKE_CONFIG="$QMAKE_CONFIG largefile"
5204 fi
5205 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
5206     QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
5207 fi
5208 [ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
5209 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
5210 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
5211 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
5212     QMakeVar add QMAKE_CFLAGS -g
5213     QMakeVar add QMAKE_CXXFLAGS -g
5214     QT_CONFIG="$QT_CONFIG separate_debug_info"
5215 fi
5216 if [ "$CFG_SEPARATE_DEBUG_INFO_NOCOPY" = "yes" ] ; then
5217     QT_CONFIG="$QT_CONFIG separate_debug_info_nocopy"
5218 fi
5219 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
5220 [ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3"
5221 [ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3"
5222 [ "$CFG_SSE4_1" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_1"
5223 [ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2"
5224 [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx"
5225 [ "$CFG_AVX2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx2"
5226 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
5227 [ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
5228 if [ "$CFG_ARCH" = "mips" ]; then
5229     [ "$CFG_MIPS_DSP" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dsp"
5230     [ "$CFG_MIPS_DSPR2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dspr2"
5231 fi
5232 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
5233     QT_CONFIG="$QT_CONFIG clock-gettime"
5234 fi
5235 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
5236     QT_CONFIG="$QT_CONFIG clock-monotonic"
5237 fi
5238 if [ "$CFG_MREMAP" = "yes" ]; then
5239     QT_CONFIG="$QT_CONFIG mremap"
5240 fi
5241 if [ "$CFG_GETADDRINFO" = "yes" ]; then
5242     QT_CONFIG="$QT_CONFIG getaddrinfo"
5243 fi
5244 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
5245     QT_CONFIG="$QT_CONFIG ipv6ifname"
5246 fi
5247 if [ "$CFG_GETIFADDRS" = "yes" ]; then
5248     QT_CONFIG="$QT_CONFIG getifaddrs"
5249 fi
5250 if [ "$CFG_INOTIFY" = "yes" ]; then
5251     QT_CONFIG="$QT_CONFIG inotify"
5252 fi
5253 if [ "$CFG_LIBJPEG" = "no" ]; then
5254     CFG_JPEG="no"
5255 elif [ "$CFG_LIBJPEG" = "system" ]; then
5256     QT_CONFIG="$QT_CONFIG system-jpeg"
5257 fi
5258 if [ "$CFG_JPEG" = "no" ]; then
5259     QT_CONFIG="$QT_CONFIG no-jpeg"
5260 elif [ "$CFG_JPEG" = "yes" ]; then
5261     QT_CONFIG="$QT_CONFIG jpeg"
5262 fi
5263 if [ "$CFG_LIBPNG" = "no" ]; then
5264     CFG_PNG="no"
5265 fi
5266 if [ "$CFG_LIBPNG" = "system" ]; then
5267     QT_CONFIG="$QT_CONFIG system-png"
5268 fi
5269 if [ "$CFG_PNG" = "no" ]; then
5270     QT_CONFIG="$QT_CONFIG no-png"
5271 elif [ "$CFG_PNG" = "yes" ]; then
5272     QT_CONFIG="$QT_CONFIG png"
5273 fi
5274 if [ "$CFG_GIF" = "no" ]; then
5275     QT_CONFIG="$QT_CONFIG no-gif"
5276 elif [ "$CFG_GIF" = "yes" ]; then
5277     QT_CONFIG="$QT_CONFIG gif"
5278 fi
5279 if [ "$CFG_LIBFREETYPE" = "no" ]; then
5280     QT_CONFIG="$QT_CONFIG no-freetype"
5281     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FREETYPE"
5282 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
5283     QT_CONFIG="$QT_CONFIG system-freetype"
5284 else
5285     QT_CONFIG="$QT_CONFIG freetype"
5286 fi
5287 if [ "$CFG_GUI" = "auto" ]; then
5288     CFG_GUI="yes"
5289 fi
5290 if [ "$CFG_GUI" = "no" ]; then
5291     QT_CONFIG="$QT_CONFIG no-gui"
5292     CFG_WIDGETS="no"
5293 fi
5294 if [ "$CFG_WIDGETS" = "no" ]; then
5295     QT_CONFIG="$QT_CONFIG no-widgets"
5296     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WIDGETS"
5297 fi
5298
5299 if [ "x$BUILD_ON_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5300     #On Mac we implicitly link against libz, so we
5301     #never use the 3rdparty stuff.
5302     [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
5303 fi
5304 if [ "$CFG_ZLIB" = "yes" ]; then
5305     QT_CONFIG="$QT_CONFIG zlib"
5306 elif [ "$CFG_ZLIB" = "system" ]; then
5307     QT_CONFIG="$QT_CONFIG system-zlib"
5308 fi
5309
5310 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
5311 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
5312 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
5313 [ "$CFG_ICONV" = "sun" ] && QT_CONFIG="$QT_CONFIG sun-libiconv"
5314 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
5315 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
5316 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
5317 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
5318 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
5319 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
5320 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
5321 [ "$CFG_MAC_HARFBUZZ" = "yes" ] && QT_CONFIG="$QT_CONFIG harfbuzz"
5322 [ "$CFG_XCB" = "yes" ] && QT_CONFIG="$QT_CONFIG xcb"
5323 [ "$CFG_XINPUT2" = "yes" ] && QT_CONFIG="$QT_CONFIG xinput2"
5324
5325 [ '!' -z "$DEFINES" ] && QMakeVar add DEFINES "$DEFINES"
5326 [ '!' -z "$L_FLAGS" ] && QMakeVar add QMAKE_LIBDIR_FLAGS "$L_FLAGS"
5327 [ '!' -z "$l_FLAGS" ] && QMakeVar add LIBS "$l_FLAGS"
5328
5329 if [ "$PLATFORM_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
5330     if [ "$CFG_RPATH" = "yes" ]; then
5331        QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
5332        # set the default rpath to the library installation directory
5333        RPATH_FLAGS="\"$QT_INSTALL_LIBS\" $RPATH_FLAGS"
5334     fi
5335 elif [ -z "`getXQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
5336     if [ -n "$RPATH_FLAGS" ]; then
5337         echo
5338         echo "ERROR: -R cannot be used on this platform as \$QMAKE_LFLAGS_RPATH is"
5339         echo "       undefined."
5340         echo
5341         exit 1
5342     elif [ "$CFG_RPATH" = "yes" ]; then
5343         RPATH_MESSAGE="        NOTE: This platform does not support runtime library paths, using -no-rpath."
5344         CFG_RPATH=no
5345     fi
5346 else
5347     if [ "$CFG_RPATH" = "yes" ]; then
5348         # set the default rpath to the library installation directory
5349         RPATH_FLAGS="\"$QT_INSTALL_LIBS\" $RPATH_FLAGS"
5350     fi
5351     if [ -n "$RPATH_FLAGS" ]; then
5352         # add the user defined rpaths
5353         QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
5354     fi
5355 fi
5356
5357 if [ '!' -z "$I_FLAGS" ]; then
5358     # add the user define include paths
5359     QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
5360     QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
5361 fi
5362
5363 if [ '!' -z "$W_FLAGS" ]; then
5364     # add the user defined warning flags
5365     QMakeVar add QMAKE_CFLAGS_WARN_ON "$W_FLAGS"
5366     QMakeVar add QMAKE_CXXFLAGS_WARN_ON "$W_FLAGS"
5367     QMakeVar add QMAKE_OBJECTIVE_CFLAGS_WARN_ON "$W_FLAGS"
5368 fi
5369
5370 if [ "$XPLATFORM_MINGW" = "yes" ]; then
5371     # mkspecs/features/win32/default_pre.prf sets "no-rtti".
5372     # Follow default behavior of configure.exe by overriding with "rtti".
5373     QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti"
5374 fi
5375
5376 if [ "$CFG_ALSA" = "yes" ]; then
5377     QT_CONFIG="$QT_CONFIG alsa"
5378 fi
5379
5380 if [ "$CFG_PULSEAUDIO" = "yes" ]; then
5381     QT_CONFIG="$QT_CONFIG pulseaudio"
5382 fi
5383
5384 if [ "$CFG_COREWLAN" = "yes" ]; then
5385     QT_CONFIG="$QT_CONFIG corewlan"
5386 fi
5387
5388 if [ "$CFG_ICU" = "yes" ]; then
5389     QT_CONFIG="$QT_CONFIG icu"
5390 fi
5391
5392 if [ "$CFG_FORCE_ASSERTS" = "yes" ]; then
5393     QT_CONFIG="$QT_CONFIG force_asserts"
5394 fi
5395
5396 if [ "$CFG_PCRE" = "qt" ]; then
5397     QMAKE_CONFIG="$QMAKE_CONFIG pcre"
5398 fi
5399
5400 #
5401 # Some Qt modules are too advanced in C++ for some old compilers
5402 # Detect here the platforms where they are known to work.
5403 #
5404 # See Qt documentation for more information on which features are
5405 # supported and on which compilers.
5406 #
5407 canBuildQtConcurrent="yes"
5408 canUseV8Snapshot="yes"
5409
5410 case "$XPLATFORM" in
5411     hpux-g++*)
5412         # PA-RISC's assembly is too limited
5413         # gcc 3.4 on that platform can't build QtXmlPatterns
5414         # the assembly it generates cannot be compiled
5415
5416         # Check gcc's version
5417         case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5418             4*)
5419                 ;;
5420             3.4*)
5421                 canBuildQtXmlPatterns="no"
5422                 ;;
5423             *)
5424                 canBuildWebKit="no"
5425                 canBuildQtXmlPatterns="no"
5426                 ;;
5427         esac
5428         ;;
5429     unsupported/vxworks-*-g++*)
5430         canBuildWebKit="no"
5431         ;;
5432     unsupported/vxworks-*-dcc*)
5433         canBuildWebKit="no"
5434         canBuildQtXmlPatterns="no"
5435         ;;
5436     *-g++*)
5437         # Check gcc's version
5438         case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5439             4*|3.4*)
5440                 ;;
5441             3.3*)
5442                 canBuildWebKit="no"
5443                 ;;
5444             *)
5445                 canBuildWebKit="no"
5446                 canBuildQtXmlPatterns="no"
5447                 ;;
5448         esac
5449         ;;
5450     solaris-cc*)
5451         # Check the compiler version
5452         case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
5453             5.[012345678])
5454                 canBuildWebKit="no"
5455                 canBuildQtXmlPatterns="no"
5456                 canBuildQtConcurrent="no"
5457                 ;;
5458             5.*)
5459                 canBuildWebKit="no"
5460                 canBuildQtConcurrent="no"
5461                 ;;
5462         esac
5463         ;;
5464     hpux-acc*)
5465         canBuildWebKit="no"
5466         canBuildQtXmlPatterns="no"
5467         canBuildQtConcurrent="no"
5468         ;;
5469     hpuxi-acc*)
5470         canBuildWebKit="no"
5471         ;;
5472     aix-xlc*)
5473         # Get the xlC version
5474         cat > xlcver.c <<EOF
5475 #include <stdio.h>
5476 int main()
5477 {
5478     printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
5479     return 0;
5480 }
5481 EOF
5482         xlcver=
5483         if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
5484             xlcver=`./xlcver 2>/dev/null`
5485             rm -f ./xlcver
5486         fi
5487         if [ "$OPT_VERBOSE" = "yes" ]; then
5488             if [ -n "$xlcver" ]; then
5489                 echo Found IBM xlC version: $xlcver.
5490             else
5491                 echo Could not determine IBM xlC version, assuming oldest supported.
5492             fi
5493         fi
5494
5495         case "$xlcver" in
5496             [123456].*)
5497                 canBuildWebKit="no"
5498                 canBuildQtXmlPatterns="no"
5499                 canBuildQtConcurrent="no"
5500                 ;;
5501             *)
5502                 canBuildWebKit="no"
5503                 canBuildQtConcurrent="no"
5504                 ;;
5505         esac
5506         ;;
5507     irix-cc*)
5508         canBuildWebKit="no"
5509         canBuildQtConcurrent="no"
5510         ;;
5511 esac
5512
5513 if [ "$CFG_GUI" = "no" ]; then
5514     # WebKit requires QtGui
5515     canBuildWebKit="no"
5516 fi
5517
5518 if [ "$CFG_SHARED" = "no" ]; then
5519     echo
5520     echo "WARNING: Using static linking will disable the WebKit module."
5521     echo
5522     canBuildWebKit="no"
5523 fi
5524
5525 CFG_CONCURRENT="yes"
5526 if [ "$canBuildQtConcurrent" = "no" ]; then
5527     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
5528     CFG_CONCURRENT="no"
5529 else
5530     QT_CONFIG="$QT_CONFIG concurrent"
5531 fi
5532
5533 # ### Vestige
5534 if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
5535     QT_CONFIG="$QT_CONFIG audio-backend"
5536 fi
5537
5538 # ### Vestige
5539 if [ "$CFG_WEBKIT" = "debug" ]; then
5540     QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug"
5541 fi
5542
5543 # ### Vestige
5544 QT_CONFIG="$QT_CONFIG v8"
5545 # Detect snapshot support
5546 if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
5547     case "$CFG_HOST_ARCH,$CFG_ARCH" in
5548         i386,arm)
5549         ;;
5550     *) canUseV8Snapshot="no"
5551         ;;
5552     esac
5553 else
5554     if [ -n "$_SBOX_DIR" -a "$CFG_ARCH" = "arm" ]; then
5555         # QEMU crashes when building inside Scratchbox with an ARM target
5556         canUseV8Snapshot="no"
5557     fi
5558 fi
5559 if [ "$CFG_V8SNAPSHOT" = "auto" ]; then
5560     CFG_V8SNAPSHOT="$canUseV8Snapshot"
5561 fi
5562 if [ "$CFG_V8SNAPSHOT" = "yes" -a "$canUseV8Snapshot" = "no" ]; then
5563     echo "Error: V8 snapshot was requested, but is not supported on this platform."
5564     exit 1
5565 fi
5566 if [ "$CFG_V8SNAPSHOT" = "yes" ]; then
5567     QT_CONFIG="$QT_CONFIG v8snapshot"
5568 fi
5569
5570 # ### Vestige
5571 if [ "$CFG_QML_DEBUG" = "no" ]; then
5572     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QML_NO_DEBUGGER"
5573 fi
5574
5575 case "$QMAKE_CONF_COMPILER" in
5576 *g++*)
5577     # GNU C++
5578     COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
5579
5580     case "$COMPILER_VERSION" in
5581     *.*.*)
5582         QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
5583         QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
5584         QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
5585         ;;
5586     *.*)
5587         QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
5588         QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
5589         QT_GCC_PATCH_VERSION=0
5590         ;;
5591     esac
5592
5593     ;;
5594 *)
5595     #
5596     ;;
5597 esac
5598
5599 #-------------------------------------------------------------------------------
5600 # part of configuration information goes into qconfig.h
5601 #-------------------------------------------------------------------------------
5602
5603 case "$CFG_QCONFIG" in
5604 full)
5605     echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
5606     ;;
5607 *)
5608     tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
5609     echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
5610     if [ -f "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" ]; then
5611         cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
5612     elif [ -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
5613         cat `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` >>"$tmpconfig"
5614     fi
5615     echo "#endif" >>"$tmpconfig"
5616     ;;
5617 esac
5618
5619 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5620
5621 /* Qt Edition */
5622 #ifndef QT_EDITION
5623 #  define QT_EDITION $QT_EDITION
5624 #endif
5625 EOF
5626
5627 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
5628 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5629
5630 if [ "$CFG_SHARED" = "no" ]; then
5631     cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5632 /* Qt was configured for a static build */
5633 #if !defined(QT_SHARED) && !defined(QT_STATIC)
5634 # define QT_STATIC
5635 #endif
5636
5637 EOF
5638 fi
5639
5640 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5641     echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
5642 fi
5643
5644 if [ "$CFG_FRAMEWORK" = "yes" ]; then
5645     echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
5646 fi
5647
5648 if [ "$BUILD_ON_MAC" = "yes" ]; then
5649     cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5650 #if defined(__LP64__)
5651 # define QT_POINTER_SIZE 8
5652 #else
5653 # define QT_POINTER_SIZE 4
5654 #endif
5655 EOF
5656 else
5657     "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5658     echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
5659 fi
5660
5661 #REDUCE_RELOCATIONS is a elf/unix only thing, so not in windows configure.exe
5662 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
5663     echo "#define QT_REDUCE_RELOCATIONS" >>"$outpath/src/corelib/global/qconfig.h.new"
5664 fi
5665
5666
5667 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5668
5669 if [ "$CFG_DEV" = "yes" ]; then
5670     echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
5671 fi
5672
5673 # Add QPA to config.h
5674 QCONFIG_FLAGS="$QCONFIG_FLAGS"
5675
5676 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
5677     QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
5678 fi
5679
5680 # Add turned on SQL drivers
5681 for DRIVER in $CFG_SQL_AVAILABLE; do
5682     eval "VAL=\$CFG_SQL_$DRIVER"
5683     case "$VAL" in
5684     qt)
5685         ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
5686         QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
5687         SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
5688     ;;
5689     plugin)
5690         SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
5691     ;;
5692     esac
5693 done
5694
5695
5696 QMakeVar set sql-drivers "$SQL_DRIVERS"
5697 QMakeVar set sql-plugins "$SQL_PLUGINS"
5698
5699 # Add other configuration options to the qconfig.h file
5700 [ "$CFG_GIF" = "yes" ]       && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
5701 [ "$CFG_PNG" != "yes" ]      && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
5702 [ "$CFG_JPEG" != "yes" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
5703 [ "$CFG_ZLIB" != "yes" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
5704 [ "$CFG_DBUS" = "no" ]      && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
5705
5706 # X11/Unix/Mac only configs
5707 [ "$CFG_CUPS" = "no" ]       && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
5708 [ "$CFG_ICONV" = "no" ]      && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
5709 [ "$CFG_GLIB" != "yes" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
5710 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
5711 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
5712 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
5713 [ "$CFG_MREMAP" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
5714 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
5715 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
5716 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
5717 [ "$CFG_INOTIFY" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
5718 [ "$CFG_NIS" = "no" ]        && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
5719 [ "$CFG_OPENSSL" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL QT_NO_SSL"
5720 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
5721
5722 [ "$CFG_SM" = "no" ]         && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
5723 [ "$CFG_XCURSOR" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
5724 [ "$CFG_XFIXES" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
5725 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
5726 [ "$CFG_XINERAMA" = "no" ]   && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
5727 [ "$CFG_XKB" = "no" ]        && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
5728 [ "$CFG_XRANDR" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
5729 [ "$CFG_XRENDER" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
5730 [ "$CFG_MITSHM" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
5731 [ "$CFG_XSHAPE" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
5732 [ "$CFG_XVIDEO" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XVIDEO"
5733 [ "$CFG_XSYNC" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
5734 [ "$CFG_XINPUT" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
5735
5736 [ "$CFG_XCURSOR" = "runtime" ]   && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
5737 [ "$CFG_XINERAMA" = "runtime" ]  && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
5738 [ "$CFG_XFIXES" = "runtime" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
5739 [ "$CFG_XRANDR" = "runtime" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
5740 [ "$CFG_XINPUT" = "runtime" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
5741 [ "$CFG_ALSA" = "no" ]           && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
5742 [ "$CFG_PULSEAUDIO" = "no" ]          && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PULSEAUDIO"
5743 [ "$CFG_COREWLAN" = "no" ]       && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_COREWLAN"
5744
5745 # sort QCONFIG_FLAGS for neatness if we can
5746 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
5747 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
5748
5749 if [ -n "$QCONFIG_FLAGS" ]; then
5750 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5751 #ifndef QT_BOOTSTRAPPED
5752
5753 EOF
5754     for cfg in $QCONFIG_FLAGS; do
5755         cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
5756         cfg=`echo $cfg | sed 's/=/ /'`    # turn first '=' into a space
5757         # figure out define logic, so we can output the correct
5758         # ifdefs to override the global defines in a project
5759         cfgdNeg=
5760         if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
5761             # QT_NO_option can be forcefully turned on by QT_option
5762             cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
5763         elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
5764             # QT_option can be forcefully turned off by QT_NO_option
5765             cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
5766         fi
5767
5768         if [ -z $cfgdNeg ]; then
5769 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5770 #ifndef $cfgd
5771 # define $cfg
5772 #endif
5773
5774 EOF
5775         else
5776 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5777 #if defined($cfgd) && defined($cfgdNeg)
5778 # undef $cfgd
5779 #elif !defined($cfgd) && !defined($cfgdNeg)
5780 # define $cfg
5781 #endif
5782
5783 EOF
5784         fi
5785     done
5786 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5787 #endif // QT_BOOTSTRAPPED
5788
5789 EOF
5790 fi
5791
5792 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
5793 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5794 #define QT_VISIBILITY_AVAILABLE
5795
5796 EOF
5797 fi
5798
5799 if [ -n "$QT_LIBINFIX" ]; then
5800 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5801 #define QT_LIBINFIX "$QT_LIBINFIX"
5802
5803 EOF
5804 fi
5805
5806 echo "#define QT_QPA_DEFAULT_PLATFORM_NAME \"$QT_QPA_DEFAULT_PLATFORM\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5807
5808 # avoid unecessary rebuilds by copying only if qconfig.h has changed
5809 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
5810     rm -f "$outpath/src/corelib/global/qconfig.h.new"
5811 else
5812     [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
5813     mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
5814     chmod -w "$outpath/src/corelib/global/qconfig.h"
5815     if [ ! -f "$outpath/include/QtCore/qconfig.h" ]; then
5816         ln -s "$outpath/src/corelib/global/qconfig.h" "$outpath/include/QtCore/qconfig.h"
5817     fi
5818 fi
5819
5820 #-------------------------------------------------------------------------------
5821 # save configuration into qconfig.pri
5822 #-------------------------------------------------------------------------------
5823 QTCONFIG="$outpath/mkspecs/qconfig.pri"
5824 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
5825 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
5826 if [ "$CFG_DEBUG" = "yes" ]; then
5827     QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
5828     if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5829         QT_CONFIG="$QT_CONFIG release"
5830     fi
5831     QT_CONFIG="$QT_CONFIG debug"
5832 elif [ "$CFG_DEBUG" = "no" ]; then
5833     QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
5834     if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5835         QT_CONFIG="$QT_CONFIG debug"
5836     fi
5837     QT_CONFIG="$QT_CONFIG release"
5838 fi
5839 if [ "$CFG_FRAMEWORK" = "no" ]; then
5840     QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
5841 else
5842     QT_CONFIG="$QT_CONFIG qt_framework"
5843     QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
5844 fi
5845 if [ "$CFG_DEV" = "yes" ]; then
5846     QT_CONFIG="$QT_CONFIG private_tests"
5847 fi
5848
5849 cat >>"$QTCONFIG.tmp" <<EOF
5850 #configuration
5851 CONFIG += $QTCONFIG_CONFIG
5852 QT_ARCH = $CFG_ARCH
5853 QT_HOST_ARCH = $CFG_HOST_ARCH
5854 QT_CPU_FEATURES = $CFG_CPUFEATURES
5855 QT_HOST_CPU_FEATURES = $CFG_HOST_CPUFEATURES
5856 QT_EDITION = $Edition
5857 QT_CONFIG += $QT_CONFIG
5858
5859 #versioning
5860 QT_VERSION = $QT_VERSION
5861 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
5862 QT_MINOR_VERSION = $QT_MINOR_VERSION
5863 QT_PATCH_VERSION = $QT_PATCH_VERSION
5864
5865 #namespaces
5866 QT_LIBINFIX = $QT_LIBINFIX
5867 QT_NAMESPACE = $QT_NAMESPACE
5868
5869 EOF
5870
5871 if [ -n "$PKG_CONFIG_SYSROOT_DIR" ] || [ -n "$PKG_CONFIG_LIBDIR" ]; then
5872     echo "# pkgconfig" >> "$QTCONFIG.tmp"
5873     echo "PKG_CONFIG_SYSROOT_DIR = $PKG_CONFIG_SYSROOT_DIR" >> "$QTCONFIG.tmp"
5874     echo "PKG_CONFIG_LIBDIR = $PKG_CONFIG_LIBDIR" >> "$QTCONFIG.tmp"
5875     echo >> "$QTCONFIG.tmp"
5876 fi
5877
5878 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
5879     echo "# sysroot" >>"$QTCONFIG.tmp"
5880     echo "!host_build {" >>"$QTCONFIG.tmp"
5881     echo "    QMAKE_CFLAGS    += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5882     echo "    QMAKE_CXXFLAGS  += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5883     echo "    QMAKE_LFLAGS    += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5884     echo "}" >> "$QTCONFIG.tmp"
5885     echo >> "$QTCONFIG.tmp"
5886 fi
5887 if [ -n "$RPATH_FLAGS" ]; then
5888     echo "QMAKE_RPATHDIR += $RPATH_FLAGS" >> "$QTCONFIG.tmp"
5889 fi
5890 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
5891     echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
5892     echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
5893     echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
5894 fi
5895
5896 if [ -n "$QMAKE_INCDIR_OPENGL_ES2" ]; then
5897     echo "#Qt opengl include path" >> "$QTCONFIG.tmp"
5898     echo "QMAKE_INCDIR_OPENGL_ES2 = `shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`" >> "$QTCONFIG.tmp"
5899 fi
5900
5901 # replace qconfig.pri if it differs from the newly created temp file
5902 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
5903     rm -f "$QTCONFIG.tmp"
5904 else
5905     mv -f "$QTCONFIG.tmp" "$QTCONFIG"
5906 fi
5907
5908 #-------------------------------------------------------------------------------
5909 # save configuration into qmodule.pri
5910 #-------------------------------------------------------------------------------
5911 QTMODULE="$outpath/mkspecs/qmodule.pri"
5912
5913 echo "CONFIG += $QMAKE_CONFIG create_prl link_prl" >> "$QTMODULE.tmp"
5914 echo "QT_BUILD_PARTS += $CFG_BUILD_PARTS" >> "$QTMODULE.tmp"
5915
5916 if [ -n "$QT_CFLAGS_PSQL" ]; then
5917     echo "QT_CFLAGS_PSQL   = $QT_CFLAGS_PSQL" >> "$QTMODULE.tmp"
5918 fi
5919 if [ -n "$QT_LFLAGS_PSQL" ]; then
5920     echo "QT_LFLAGS_PSQL   = $QT_LFLAGS_PSQL" >> "$QTMODULE.tmp"
5921 fi
5922 if [ -n "$QT_CFLAGS_MYSQL" ]; then
5923     echo "QT_CFLAGS_MYSQL   = $QT_CFLAGS_MYSQL" >> "$QTMODULE.tmp"
5924 fi
5925 if [ -n "$QT_LFLAGS_MYSQL" ]; then
5926     echo "QT_LFLAGS_MYSQL   = $QT_LFLAGS_MYSQL" >> "$QTMODULE.tmp"
5927 fi
5928 if [ -n "$QT_CFLAGS_SQLITE" ]; then
5929     echo "QT_CFLAGS_SQLITE   = $QT_CFLAGS_SQLITE" >> "$QTMODULE.tmp"
5930 fi
5931 if [ -n "$QT_LFLAGS_SQLITE" ]; then
5932     echo "QT_LFLAGS_SQLITE   = $QT_LFLAGS_SQLITE" >> "$QTMODULE.tmp"
5933 fi
5934 if [ -n "$QT_LFLAGS_ODBC" ]; then
5935     echo "QT_LFLAGS_ODBC   = $QT_LFLAGS_ODBC" >> "$QTMODULE.tmp"
5936 fi
5937 if [ -n "$QT_LFLAGS_TDS" ]; then
5938     echo "QT_LFLAGS_TDS   = $QT_LFLAGS_TDS" >> "$QTMODULE.tmp"
5939 fi
5940
5941 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
5942     echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$QTMODULE.tmp"
5943 fi
5944
5945 #dump in the OPENSSL_LIBS info
5946 if [ '!' -z "$OPENSSL_LIBS" ]; then
5947     echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$QTMODULE.tmp"
5948 elif [ "$CFG_OPENSSL" = "linked" ]; then
5949     echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$QTMODULE.tmp"
5950 fi
5951
5952 #dump in the SDK info
5953 if [ '!' -z "$CFG_SDK" ]; then
5954    echo "QMAKE_MAC_SDK = $CFG_SDK" >> "$QTMODULE.tmp"
5955 fi
5956
5957 # cmdline args
5958 cat "$QMAKE_VARS_FILE" >> "$QTMODULE.tmp"
5959 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
5960
5961 # replace qmodule.pri if it differs from the newly created temp file
5962 if cmp -s "$QTMODULE.tmp" "$QTMODULE"; then
5963     rm -f "$QTMODULE.tmp"
5964 else
5965     mv -f "$QTMODULE.tmp" "$QTMODULE"
5966 fi
5967
5968 #-------------------------------------------------------------------------------
5969 # save configuration into .qmake.cache
5970 #-------------------------------------------------------------------------------
5971
5972 CACHEFILE="$outpath/.qmake.cache"
5973 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
5974 cat >>"$CACHEFILE.tmp" <<EOF
5975 #paths
5976 QT_SOURCE_TREE = \$\$quote($relpath)
5977 QT_BUILD_TREE = \$\$quote($outpath)
5978
5979 include(\$\$PWD/mkspecs/qmodule.pri)
5980 CONFIG += dylib depend_includepath fix_output_dirs no_private_qt_headers_warning QTDIR_build
5981
5982 EOF
5983
5984 # replace .qmake.cache if it differs from the newly created temp file
5985 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
5986     rm -f "$CACHEFILE.tmp"
5987 else
5988     mv -f "$CACHEFILE.tmp" "$CACHEFILE"
5989 fi
5990
5991 #-------------------------------------------------------------------------------
5992 # give feedback on configuration
5993 #-------------------------------------------------------------------------------
5994 exec 3>&1 1>$outpath/config.summary # redirect output temporarily to config.summary
5995
5996 echo
5997 if [ "$XPLATFORM" = "$PLATFORM" ]; then
5998     echo "Build type:    $PLATFORM"
5999 else
6000     echo "Building on:   $PLATFORM"
6001     echo "Building for:  $XPLATFORM"
6002 fi
6003
6004 # the missing space before $CFG_FEATURES is intentional
6005 echo "Architecture:  $CFG_ARCH, features:$CFG_CPUFEATURES"
6006 echo "Host architecture: $CFG_HOST_ARCH, features:$CFG_HOST_CPUFEATURES"
6007
6008 if [ -n "$PLATFORM_NOTES" ]; then
6009     echo "Platform notes:"
6010     echo "$PLATFORM_NOTES"
6011 else
6012     echo
6013 fi
6014
6015 if [ "$OPT_VERBOSE" = "yes" ]; then
6016     echo $ECHO_N "qmake vars .......... $ECHO_C"
6017     cat "$QMAKE_VARS_FILE" | tr '\n' ' '
6018     echo "qmake switches ......... $QMAKE_SWITCHES"
6019 fi
6020
6021 echo "Build .................. $CFG_BUILD_PARTS"
6022 echo "Configuration .......... $QMAKE_CONFIG $QT_CONFIG"
6023 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6024    echo "Debug .................. yes (combined)"
6025    if [ "$CFG_DEBUG" = "yes" ]; then
6026        echo "Default Link ........... debug"
6027    else
6028        echo "Default Link ........... release"
6029    fi
6030 else
6031    echo "Debug .................. $CFG_DEBUG"
6032 fi
6033 echo "C++11 support .......... $CFG_CXX11"
6034 if [ -n "$PKG_CONFIG" ]; then
6035     echo "pkg-config ............. yes"
6036 else
6037     echo "pkg-config ............. no"
6038 fi
6039 [ "$CFG_DBUS" = "no" ]     && echo "QtDBus module .......... no"
6040 [ "$CFG_DBUS" = "yes" ]    && echo "QtDBus module .......... yes (run-time)"
6041 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)"
6042 echo "QtConcurrent code ...... $CFG_CONCURRENT"
6043 echo "QtGui module ........... $CFG_GUI"
6044 echo "QtWidgets module ....... $CFG_WIDGETS"
6045 if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
6046     echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore"
6047 else
6048     echo "JavaScriptCore JIT ..... $CFG_JAVASCRIPTCORE_JIT"
6049 fi
6050 echo "QML debugging .......... $CFG_QML_DEBUG"
6051 echo "PCH support ............ $CFG_PRECOMPILE"
6052 if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
6053     echo "SSE2/SSE3/SSSE3......... ${CFG_SSE2}/${CFG_SSE3}/${CFG_SSSE3}"
6054     echo "SSE4.1/SSE4.2........... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
6055     echo "AVX/AVX2................ ${CFG_AVX}/${CFG_AVX2}"
6056 elif [ "$CFG_ARCH" = "arm" ]; then
6057     echo "iWMMXt support ......... ${CFG_IWMMXT}"
6058     echo "NEON support ........... ${CFG_NEON}"
6059 fi
6060 if [ "$CFG_ARCH" = "mips" ]; then
6061     echo "MIPS_DSP/MIPS_DSPR2..... ${CFG_MIPS_DSP}/${CFG_MIPS_DSPR2}"
6062 fi
6063 echo "IPv6 ifname support .... $CFG_IPV6IFNAME"
6064 echo "getaddrinfo support .... $CFG_GETADDRINFO"
6065 echo "getifaddrs support ..... $CFG_GETIFADDRS"
6066 echo "Accessibility .......... $CFG_ACCESSIBILITY"
6067 echo "NIS support ............ $CFG_NIS"
6068 echo "CUPS support ........... $CFG_CUPS"
6069 echo "Iconv support .......... $CFG_ICONV"
6070 echo "Glib support ........... $CFG_GLIB"
6071 echo "GStreamer support ...... $CFG_GSTREAMER"
6072 echo "PulseAudio support ..... $CFG_PULSEAUDIO"
6073 echo "Large File support ..... $CFG_LARGEFILE"
6074 echo "GIF support ............ $CFG_GIF"
6075 if [ "$CFG_JPEG" = "no" ]; then
6076     echo "JPEG support ........... $CFG_JPEG"
6077 else
6078     echo "JPEG support ........... $CFG_JPEG ($CFG_LIBJPEG)"
6079 fi
6080 if [ "$CFG_PNG" = "no" ]; then
6081     echo "PNG support ............ $CFG_PNG"
6082 else
6083     echo "PNG support ............ $CFG_PNG ($CFG_LIBPNG)"
6084 fi
6085 echo "zlib support ........... $CFG_ZLIB"
6086 echo "Session management ..... $CFG_SM"
6087 echo "libudev support ........ $CFG_LIBUDEV"
6088
6089 if [ "$CFG_OPENGL" = "desktop" ]; then
6090     echo "OpenGL support ......... yes (Desktop OpenGL)"
6091 elif [ "$CFG_OPENGL" = "es2" ]; then
6092     echo "OpenGL support ......... yes (OpenGL ES 2.x)"
6093 else
6094     echo "OpenGL support ......... no"
6095 fi
6096
6097 if [ "$CFG_OPENVG" ]; then
6098     if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
6099         echo "OpenVG support ......... ShivaVG"
6100     else
6101         echo "OpenVG support ......... $CFG_OPENVG"
6102     fi
6103 fi
6104
6105 echo "XShape support ......... $CFG_XSHAPE"
6106 echo "XVideo support ......... $CFG_XVIDEO"
6107 echo "XSync support .......... $CFG_XSYNC"
6108 echo "Xinerama support ....... $CFG_XINERAMA"
6109 echo "Xcursor support ........ $CFG_XCURSOR"
6110 echo "Xfixes support ......... $CFG_XFIXES"
6111 echo "Xrandr support ......... $CFG_XRANDR"
6112 echo "Xi support ............. $CFG_XINPUT"
6113 echo "Xi2 support ............ $CFG_XINPUT2"
6114 echo "MIT-SHM support ........ $CFG_MITSHM"
6115 echo "FontConfig support ..... $CFG_FONTCONFIG"
6116 echo "XKB Support ............ $CFG_XKB"
6117 echo "immodule support ....... $CFG_IM"
6118 echo "GTK theme support ...... $CFG_QGTKSTYLE"
6119
6120 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support .......... $CFG_SQL_mysql"
6121 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support ..... $CFG_SQL_psql"
6122 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........... $CFG_SQL_odbc"
6123 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ............ $CFG_SQL_oci"
6124 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ............ $CFG_SQL_tds"
6125 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ............ $CFG_SQL_db2"
6126 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ...... $CFG_SQL_ibase"
6127 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support ....... $CFG_SQL_sqlite2"
6128 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ......... $CFG_SQL_sqlite ($CFG_SQLITE)"
6129
6130 OPENSSL_LINKAGE=""
6131 if [ "$CFG_OPENSSL" = "yes" ]; then
6132     OPENSSL_LINKAGE="(run-time)"
6133 elif [ "$CFG_OPENSSL" = "linked" ]; then
6134     OPENSSL_LINKAGE="(linked)"
6135 fi
6136 echo "OpenSSL support ........ $CFG_OPENSSL $OPENSSL_LINKAGE"
6137 echo "Alsa support ........... $CFG_ALSA"
6138 if [ "$BUILD_ON_MAC" = "yes" ]; then
6139     echo "CoreWlan support ....... $CFG_COREWLAN"
6140 fi
6141 echo "libICU support ......... $CFG_ICU"
6142 echo "PCRE support ........... $CFG_PCRE"
6143 if [ "$CFG_XCB_LIMITED" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6144     echo "Xcb support ............ limited (old version)"
6145 else
6146     echo "Xcb support ............ $CFG_XCB"
6147 fi
6148 echo "Xrender support ........ $CFG_XRENDER"
6149 if [ "$XPLATFORM_MAEMO" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6150     echo "XInput2 support ........ $CFG_XINPUT2"
6151 fi
6152 echo "EGLFS support .......... $CFG_EGLFS"
6153 echo "DirectFB support ....... $CFG_DIRECTFB"
6154 echo "LinuxFB support ........ $CFG_LINUXFB"
6155 echo "KMS support ............ $CFG_KMS"
6156 echo
6157
6158 # complain about not being able to use dynamic plugins if we are using a static build
6159 if [ "$CFG_SHARED" = "no" ]; then
6160     echo
6161     echo "WARNING: Using static linking will disable the use of dynamically"
6162     echo "loaded plugins. Make sure to import all needed static plugins,"
6163     echo "or compile needed modules into the library."
6164     echo
6165 fi
6166 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
6167     echo
6168     echo "NOTE: When linking against OpenSSL, you can override the default"
6169     echo "library names through OPENSSL_LIBS."
6170     echo "For example:"
6171     echo "    OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
6172     echo
6173 fi
6174
6175 exec 1>&3 3>&- # restore stdout
6176 cat $outpath/config.summary # display config feedback to user
6177
6178 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
6179     echo
6180     echo "Error: debug-only framework builds are not supported. Configure with -no-framework"
6181     echo "if you want a pure debug build."
6182     echo
6183     exit 1
6184 fi
6185
6186 sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
6187 PROCS=1
6188 EXEC=""
6189
6190
6191 #-------------------------------------------------------------------------------
6192 # build makefiles based on the configuration
6193 #-------------------------------------------------------------------------------
6194
6195 if [ "$CFG_PROCESS" != "no" ]; then
6196
6197     if [ "$CFG_PROCESS" = "full" ]; then
6198         echo "Creating makefiles. Please wait..."
6199         "$outpath/bin/qmake" -r "$relpath"
6200         echo "Done"
6201     else
6202         "$outpath/bin/qmake" "$relpath"
6203     fi
6204
6205     if [ "$OPT_FAST" = "yes" ]; then
6206         PART_ROOTS=
6207         for part in $CFG_BUILD_PARTS; do
6208             case "$part" in
6209             examples|tests) PART_ROOTS="$PART_ROOTS $part" ;;
6210             esac
6211         done
6212         if [ "x$PART_ROOTS" != "x" ]; then
6213             echo
6214             echo "Creating stub makefiles. Please wait..."
6215             QMAKE="$outpath/bin/qmake"
6216             [ "$CFG_DEBUG_RELEASE" = "no" ] && first_tgt="first_target: first" || first_tgt=
6217             (cd "$relpath" && find $PART_ROOTS -name '*.pro') | grep -v /testdata/ | while read p; do
6218                 d=${p%/*}
6219                 test -f "$outpath/$d/Makefile" && continue
6220                 echo "  for $relpath/$p"
6221
6222                 mkdir -p "$outpath/$d" || exit
6223                 cat > "$outpath/$d/Makefile" <<EOF || exit
6224 # $outpath/$d/Makefile: generated by configure
6225 #
6226 # WARNING: This makefile will be replaced with a real makefile.
6227 # All changes made to this file will be lost.
6228
6229 QMAKE = "$QMAKE"
6230
6231 $first_tgt
6232 all clean install qmake first Makefile: FORCE
6233         \$(QMAKE) $QMAKE_SWITCHES "$relpath/$p"
6234         \$(MAKE) \$@
6235 FORCE:
6236 EOF
6237             done || exit
6238             echo "Done"
6239         fi
6240     fi
6241 fi
6242
6243 #-------------------------------------------------------------------------------
6244 # check for platforms that we don't yet know about
6245 #-------------------------------------------------------------------------------
6246 if [ "$CFG_ARCH" = "unknown" ]; then
6247 cat <<EOF
6248
6249         NOTICE: configure was unable to determine the architecture
6250         for the $XQMAKESPEC target.
6251
6252         Qt will not use a specialized implementation for any atomic
6253         operations. Instead a generic implemention based on either GCC
6254         intrinsics or C++11 std::atomic<T> will be used (when
6255         available). The generic implementations are generally as fast
6256         as and always as safe as a specialized implementation.
6257
6258         If no generic implementation is available, Qt will use a
6259         fallback UNIX implementation which uses a single
6260         pthread_mutex_t to protect all atomic operations. This
6261         implementation is the slow (but safe) fallback implementation
6262         for architectures Qt does not yet support.
6263 EOF
6264 fi
6265
6266 #-------------------------------------------------------------------------------
6267 # check if the user passed the -no-zlib option, which is no longer supported
6268 #-------------------------------------------------------------------------------
6269 if [ -n "$ZLIB_FORCED" ]; then
6270     which_zlib="supplied"
6271     if [ "$CFG_ZLIB" = "system" ]; then
6272         which_zlib="system"
6273     fi
6274
6275 cat <<EOF
6276
6277         NOTICE: The -no-zlib option was supplied but is no longer
6278         supported.
6279
6280         Qt now requires zlib support in all builds, so the -no-zlib
6281         option was ignored. Qt will be built using the $which_zlib
6282         zlib.
6283 EOF
6284 fi
6285
6286 #-------------------------------------------------------------------------------
6287 # check if the user passed the obsoleted -wayland or -no-wayland flag
6288 #-------------------------------------------------------------------------------
6289 if [ "$CFG_OBSOLETE_WAYLAND" = "yes" ]; then
6290 cat <<EOF
6291
6292         NOTICE: The -wayland and -no-wayland flags are now obsolete
6293
6294         All configuring of QtWayland plugin and QtCompositor happens in the module
6295 EOF
6296 fi
6297
6298 #-------------------------------------------------------------------------------
6299 # check if the user passed the obsoleted -arch or -host-arch options
6300 #-------------------------------------------------------------------------------
6301 if [ "$OPT_OBSOLETE_HOST_ARG" = "yes" ]; then
6302 cat <<EOF
6303
6304         NOTICE: The -arch and -host-arch options are obsolete.
6305
6306         Qt now detects the target and host architectures based on compiler
6307         output. Qt will be built using $CFG_ARCH for the target architecture
6308         and $CFG_HOST_ARCH for the host architecture (note that these two
6309         will be the same unless you are cross-compiling).
6310 EOF
6311 fi
6312
6313 #-------------------------------------------------------------------------------
6314 # finally save the executed command to another script
6315 #-------------------------------------------------------------------------------
6316 if [ `basename $0` != "config.status" ]; then
6317     CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
6318
6319     # add the system variables
6320     for varname in $SYSTEM_VARIABLES; do
6321         cmd=`echo \
6322 'if [ -n "\$'${varname}'" ]; then
6323     CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
6324 fi'`
6325         eval "$cmd"
6326     done
6327
6328     echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
6329
6330     [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
6331     echo "#!/bin/sh" > "$outpath/config.status"
6332     [ -n "$PKG_CONFIG_SYSROOT_DIR" ] && \
6333         echo "export PKG_CONFIG_SYSROOT_DIR=$PKG_CONFIG_SYSROOT_DIR" >> "$outpath/config.status"
6334     [ -n "$PKG_CONFIG_LIBDIR" ] && \
6335         echo "export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR" >> "$outpath/config.status"
6336     echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
6337     echo "  $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
6338     echo "else" >> "$outpath/config.status"
6339     echo "  $CONFIG_STATUS" >> "$outpath/config.status"
6340     echo "fi" >> "$outpath/config.status"
6341     chmod +x "$outpath/config.status"
6342 fi
6343
6344 if [ -n "$RPATH_MESSAGE" ]; then
6345     echo
6346     echo "$RPATH_MESSAGE"
6347 fi
6348
6349 MAKE=`basename "$MAKE"`
6350 echo
6351 echo Qt is now configured for building. Just run \'$MAKE\'.
6352 if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
6353     echo Once everything is built, Qt is installed.
6354     echo You should not run \'$MAKE install\'.
6355 else
6356     echo Once everything is built, you must run \'$MAKE install\'.
6357     echo Qt will be installed into $QT_INSTALL_PREFIX
6358 fi
6359 echo
6360 echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.
6361 echo