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