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