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