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