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