Fix focus handling when the application has QAxWidgets.
[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
2129     # symlink the mkspecs directory
2130     mkdir -p "$outpath/mkspecs"
2131     rm -rf "$outpath"/mkspecs/*
2132     ln -s "$relpath"/mkspecs/* "$outpath/mkspecs"
2133     rm -f "$outpath/mkspecs/default"
2134
2135     ShadowMkspecs()
2136     {
2137         rm -rf "$outpath/mkspecs/$1"
2138         find "$relpath/mkspecs/$1" -type d | sed "s,^$relpath,$outpath," | xargs mkdir -p
2139         find "$relpath/mkspecs/$1" -type f | sed "s,^$relpath/,," | while read f; do ln -s "$relpath/$f" "$outpath/$f"; done
2140     }
2141
2142     # Special case for mkspecs/features directory.
2143     # To be able to place .prf files into a shadow build directory,
2144     # we're creating links for files only. The directory structure is reproduced.
2145     ShadowMkspecs features
2146
2147     # The modules dir is special, too.
2148     if test -d "$outpath/mkspecs-modules"; then
2149         rm -rf "$outpath/mkspecs/modules"
2150         mv "$outpath/mkspecs-modules" "$outpath/mkspecs/modules"
2151     else
2152         ShadowMkspecs modules
2153     fi
2154
2155     # symlink the doc directory
2156     rm -rf "$outpath/doc"
2157     ln -s "$relpath/doc" "$outpath/doc"
2158 fi
2159
2160 # symlink fonts to be able to run application from build directory
2161 if [ ! -d "${outpath}/lib/fonts" ]; then
2162     if [ "$PLATFORM" = "$XPLATFORM" ]; then
2163         mkdir -p "${outpath}/lib"
2164         ln -s "${relpath}/lib/fonts" "${outpath}/lib/fonts"
2165     fi
2166 fi
2167
2168 if [ "$OPT_FAST" = "auto" ]; then
2169    if [ '!' -z "$AWK" ] && [ "$CFG_DEV" = "yes" ]; then
2170        OPT_FAST=yes
2171    else
2172        OPT_FAST=no
2173    fi
2174 fi
2175
2176 # find a make command
2177 if [ -z "$MAKE" ]; then
2178     MAKE=
2179     for mk in gmake make; do
2180         if "$WHICH" $mk >/dev/null 2>&1; then
2181             MAKE=`"$WHICH" $mk`
2182             break
2183         fi
2184     done
2185     if [ -z "$MAKE" ]; then
2186         echo >&2 "You don't seem to have 'make' or 'gmake' in your PATH."
2187         echo >&2 "Cannot proceed."
2188         exit 1
2189     fi
2190     # export MAKE, we need it later in the config.tests
2191     export MAKE
2192 fi
2193
2194 fi ### help
2195
2196 #-------------------------------------------------------------------------------
2197 # auto-detect all that hasn't been specified in the arguments
2198 #-------------------------------------------------------------------------------
2199
2200 if [ -z "$PLATFORM" ]; then
2201     PLATFORM_NOTES=
2202     case "$UNAME_SYSTEM:$UNAME_RELEASE" in
2203      Darwin:*)
2204          OSX_VERSION=`uname -r | cut -d. -f1`
2205          # Select compiler. Use g++ unless we find a usable Clang version
2206          PLATFORM=macx-g++
2207          if [ "$OSX_VERSION" -ge 12 ]; then
2208             # We're on Mountain Lion or above. Use Clang. Don't advertise gcc.
2209             PLATFORM=macx-clang
2210          elif [ "$OSX_VERSION" -eq 11 ]; then
2211              # We're on Lion. Check if we have a supported Clang version
2212              case "$(clang -v 2>&1 | grep -Po '(?<=version )\d[\d.]+')" in
2213                  3.*)
2214                      PLATFORM=macx-clang
2215                      PLATFORM_NOTES="\n    - Also available for Mac OS X: macx-g++\n"
2216                      ;;
2217              esac
2218          fi
2219          ;;
2220      AIX:*)
2221         #PLATFORM=aix-g++
2222         #PLATFORM=aix-g++-64
2223         PLATFORM=aix-xlc
2224         #PLATFORM=aix-xlc-64
2225         PLATFORM_NOTES="
2226             - Also available for AIX: aix-g++ aix-g++-64 aix-xlc-64
2227         "
2228         ;;
2229      GNU:*)
2230         PLATFORM=hurd-g++
2231         ;;
2232      dgux:*)
2233         PLATFORM=dgux-g++
2234         ;;
2235 #     DYNIX/ptx:4*)
2236 #       PLATFORM=dynix-g++
2237 #       ;;
2238      ULTRIX:*)
2239         PLATFORM=ultrix-g++
2240         ;;
2241      FreeBSD:*)
2242         PLATFORM=freebsd-g++
2243         PLATFORM_NOTES="
2244             - Also available for FreeBSD: freebsd-icc
2245         "
2246         ;;
2247      OpenBSD:*)
2248         PLATFORM=openbsd-g++
2249         ;;
2250      NetBSD:*)
2251         PLATFORM=netbsd-g++
2252         ;;
2253      BSD/OS:*|BSD/386:*)
2254         PLATFORM=bsdi-g++
2255         ;;
2256      IRIX*:*)
2257         #PLATFORM=irix-g++
2258         PLATFORM=irix-cc
2259         #PLATFORM=irix-cc-64
2260         PLATFORM_NOTES="
2261             - Also available for IRIX: irix-g++ irix-cc-64
2262         "
2263         ;;
2264      HP-UX:*)
2265         case "$UNAME_MACHINE" in
2266             ia64)
2267                 #PLATFORM=hpuxi-acc-32
2268                 PLATFORM=hpuxi-acc-64
2269                 PLATFORM_NOTES="
2270                     - Also available for HP-UXi: hpuxi-acc-32
2271                 "
2272             ;;
2273             *)
2274                 #PLATFORM=hpux-g++
2275                 PLATFORM=hpux-acc
2276                 #PLATFORM=hpux-acc-64
2277                 #PLATFORM=hpux-cc
2278                 #PLATFORM=hpux-acc-o64
2279                 PLATFORM_NOTES="
2280                     - Also available for HP-UX: hpux-g++ hpux-acc-64 hpux-acc-o64
2281                 "
2282             ;;
2283         esac
2284         ;;
2285      OSF1:*)
2286         #PLATFORM=tru64-g++
2287         PLATFORM=tru64-cxx
2288         PLATFORM_NOTES="
2289             - Also available for Tru64: tru64-g++
2290         "
2291         ;;
2292      Linux:*)
2293         case "$UNAME_MACHINE" in
2294             x86_64|s390x|ppc64)
2295                 PLATFORM=linux-g++-64
2296                 ;;
2297             *)
2298                 PLATFORM=linux-g++
2299                 ;;
2300         esac
2301         PLATFORM_NOTES="
2302             - Also available for Linux: linux-kcc linux-icc linux-cxx
2303         "
2304         ;;
2305      SunOS:5*)
2306         if [ "$XPLATFORM_MINGW" = "yes" ]; then
2307             PLATFORM="solaris-g++"
2308         else
2309             #PLATFORM=solaris-g++
2310             PLATFORM=solaris-cc
2311             #PLATFORM=solaris-cc64
2312         fi
2313         PLATFORM_NOTES="
2314             - Also available for Solaris: solaris-g++ solaris-cc-64
2315         "
2316         ;;
2317      ReliantUNIX-*:*|SINIX-*:*)
2318         PLATFORM=reliant-cds
2319         #PLATFORM=reliant-cds-64
2320         PLATFORM_NOTES="
2321             - Also available for Reliant UNIX: reliant-cds-64
2322         "
2323         ;;
2324      CYGWIN*:*)
2325         PLATFORM=cygwin-g++
2326         ;;
2327      LynxOS*:*)
2328         PLATFORM=lynxos-g++
2329         ;;
2330      OpenUNIX:*)
2331         #PLATFORM=unixware-g++
2332         PLATFORM=unixware-cc
2333         PLATFORM_NOTES="
2334             - Also available for OpenUNIX: unixware-g++
2335         "
2336         ;;
2337      UnixWare:*)
2338         #PLATFORM=unixware-g++
2339         PLATFORM=unixware-cc
2340         PLATFORM_NOTES="
2341             - Also available for UnixWare: unixware-g++
2342         "
2343         ;;
2344      SCO_SV:*)
2345         #PLATFORM=sco-g++
2346         PLATFORM=sco-cc
2347         PLATFORM_NOTES="
2348             - Also available for SCO OpenServer: sco-g++
2349         "
2350         ;;
2351      UNIX_SV:*)
2352         PLATFORM=unixware-g++
2353         ;;
2354      QNX:*)
2355         PLATFORM=unsupported/qnx-g++
2356         ;;
2357      *)
2358         if [ "$OPT_HELP" != "yes" ]; then
2359             echo >&2
2360             echo "   The build script does not currently recognize all" >&2
2361             echo "   platforms supported by Qt." >&2
2362             echo "   Rerun this script with a -platform option listed to" >&2
2363             echo "   set the system/compiler combination you use." >&2
2364             echo >&2
2365             exit 2
2366         fi
2367     esac
2368 fi
2369
2370 [ -z "$XPLATFORM" ] && XPLATFORM="$PLATFORM"
2371
2372 case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
2373 case "$XPLATFORM" in linux-g++-maemo) XPLATFORM_MAEMO=yes;; esac
2374 case "$XPLATFORM" in *qnx-*|*blackberry-*) XPLATFORM_QNX=yes;; esac
2375
2376 if [ -d "$PLATFORM" ]; then
2377   QMAKESPEC="$PLATFORM"
2378 else
2379   QMAKESPEC="$relpath/mkspecs/${PLATFORM}"
2380 fi
2381 if [ -d "$XPLATFORM" ]; then
2382   XQMAKESPEC="$XPLATFORM"
2383 else
2384   XQMAKESPEC="$relpath/mkspecs/${XPLATFORM}"
2385 fi
2386 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2387     QT_CROSS_COMPILE=yes
2388     QMAKE_CONFIG="$QMAKE_CONFIG cross_compile"
2389     QTCONFIG_CONFIG="$QTCONFIG_CONFIG cross_compile"
2390 fi
2391
2392 if [ "$BUILD_ON_MAC" = "yes" ]; then
2393    if [ `basename $QMAKESPEC` = "macx-xcode" ] || [ `basename $XQMAKESPEC` = "macx-xcode" ]; then
2394       echo >&2
2395       echo "   Platform 'macx-xcode' should not be used when building Qt/Mac." >&2
2396       echo "   Please build Qt/Mac with 'macx-g++', then if you would like to" >&2
2397       echo "   use mac-xcode on your application code it can link to a Qt/Mac" >&2
2398       echo "   built with 'macx-g++'" >&2
2399       echo >&2
2400       exit 2
2401     fi
2402 fi
2403
2404 # check specified platforms are supported
2405 if [ '!' -d "$QMAKESPEC" ]; then
2406     echo
2407     echo "   The specified system/compiler is not supported:"
2408     echo
2409     echo "      $QMAKESPEC"
2410     echo
2411     echo "   Please see the README file for a complete list."
2412     echo
2413     exit 2
2414 fi
2415 if [ '!' -d "$XQMAKESPEC" ]; then
2416     echo
2417     echo "   The specified system/compiler is not supported:"
2418     echo
2419     echo "      $XQMAKESPEC"
2420     echo
2421     echo "   Please see the README file for a complete list."
2422     echo
2423     exit 2
2424 fi
2425 if [ '!' -f "${XQMAKESPEC}/qplatformdefs.h" ]; then
2426     echo
2427     echo "   The specified system/compiler port is not complete:"
2428     echo
2429     echo "      $XQMAKESPEC/qplatformdefs.h"
2430     echo
2431     echo "   Please contact qt-info@nokia.com."
2432     echo
2433     exit 2
2434 fi
2435
2436 if [ "$UNAME_SYSTEM" = "SunOS" ]; then
2437     # Solaris 2.5 and 2.6 have libposix4, which was renamed to librt for Solaris 7 and up
2438     if echo $UNAME_RELEASE | grep "^5\.[5|6]" >/dev/null 2>&1; then
2439         sed -e "s,-lrt,-lposix4," "$XQMAKESPEC/qmake.conf" > "$XQMAKESPEC/qmake.conf.new"
2440         mv "$XQMAKESPEC/qmake.conf.new" "$XQMAKESPEC/qmake.conf"
2441     fi
2442 fi
2443
2444 if [ "$CFG_RTOS_ENABLED" = "no" ]; then
2445     case `basename "$XPLATFORM"` in
2446         qnx-* | vxworks-*)
2447             echo ""
2448             echo "You are not licensed for Qt for `basename $XPLATFORM`."
2449             echo ""
2450             echo "Please contact qt-info@nokia.com to upgrade your license to"
2451             echo "include this platform, or install the Qt Open Source Edition"
2452             echo "if you intend to develop free software."
2453             exit 1
2454             ;;
2455     esac
2456 fi
2457
2458 #-------------------------------------------------------------------------------
2459 # tests that don't need qmake (must be run before displaying help)
2460 #-------------------------------------------------------------------------------
2461
2462 # detect build style
2463 if [ "$CFG_DEBUG" = "auto" ]; then
2464     if [ "$PLATFORM_MAC" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
2465         CFG_DEBUG_RELEASE=yes
2466         CFG_DEBUG=yes
2467     elif [ "$CFG_DEV" = "yes" ]; then
2468         CFG_DEBUG_RELEASE=no
2469         CFG_DEBUG=yes
2470     else
2471         CFG_DEBUG_RELEASE=no
2472         CFG_DEBUG=no
2473     fi
2474 fi
2475 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2476     QT_CONFIG="$QT_CONFIG build_all debug_and_release"
2477 fi
2478
2479 # pass on $CFG_SDK to the configure tests.
2480 if [ '!' -z "$CFG_SDK" ]; then
2481     MAC_CONFIG_TEST_COMMANDLINE="$MAC_CONFIG_TEST_COMMANDLINE -sdk $CFG_SDK"
2482 fi
2483
2484 # find the default framework value
2485 if [ "$BUILD_ON_MAC" = "yes" ]; then
2486     if [ "$CFG_FRAMEWORK" = "auto" ]; then
2487         CFG_FRAMEWORK="$CFG_SHARED"
2488     elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2489         echo
2490         echo "WARNING: Using static linking will disable the use of Mac frameworks."
2491         echo
2492         CFG_FRAMEWORK="no"
2493     fi
2494 else
2495     CFG_FRAMEWORK=no
2496 fi
2497
2498 QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX`
2499
2500 TEST_COMPILER=$QMAKE_CONF_COMPILER
2501 if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
2502     if [ -z "$TEST_COMPILER" ]; then
2503         echo "ERROR: Cannot set the compiler for the configuration tests"
2504         exit 1
2505     fi
2506 fi
2507
2508 GCC_MACHINE_DUMP=
2509 case "$TEST_COMPILER" in *g++) GCC_MACHINE_DUMP=$($TEST_COMPILER -dumpmachine);; esac
2510 if [ -n "$GCC_MACHINE_DUMP" ]; then
2511     DeviceVar set GCC_MACHINE_DUMP $($TEST_COMPILER -dumpmachine)
2512 fi
2513
2514 if [ -n "$CFG_SYSROOT" ]; then
2515     SYSROOT_FLAG="--sysroot=$CFG_SYSROOT"
2516 else
2517     SYSROOT_FLAG=
2518 fi
2519 export SYSROOT_FLAG    # used by config.tests/unix/compile.test
2520
2521 # auto-detect precompiled header support
2522 if [ "$CFG_PRECOMPILE" = "auto" ]; then
2523     if "$unixtests/precomp.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2524        CFG_PRECOMPILE=no
2525     else
2526        CFG_PRECOMPILE=yes
2527     fi
2528 fi
2529
2530 # auto-detect support for separate debug info in objcopy
2531 if [ "$CFG_SEPARATE_DEBUG_INFO" != "no" ] && [ "$CFG_SHARED" = "yes" ]; then
2532     TEST_COMPILER_CFLAGS=`getXQMakeConf QMAKE_CFLAGS`
2533     TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS`
2534     TEST_OBJCOPY=`getXQMakeConf QMAKE_OBJCOPY`
2535     COMPILER_WITH_FLAGS="$TEST_COMPILER $TEST_COMPILER_CXXFLAGS"
2536     COMPILER_WITH_FLAGS=`echo "$COMPILER_WITH_FLAGS" | sed -e "s%\\$\\$QMAKE_CFLAGS%$TEST_COMPILER_CFLAGS%g"`
2537     if "$unixtests/objcopy.test" "$COMPILER_WITH_FLAGS" "$TEST_OBJCOPY" "$OPT_VERBOSE"; then
2538        CFG_SEPARATE_DEBUG_INFO=no
2539     else
2540        case "$PLATFORM" in
2541        hpux-*)
2542            # binutils on HP-UX is buggy; default to no.
2543            CFG_SEPARATE_DEBUG_INFO=no
2544            ;;
2545        *)
2546            CFG_SEPARATE_DEBUG_INFO=yes
2547            ;;
2548        esac
2549     fi
2550 fi
2551
2552 # auto-detect -fvisibility support
2553 if [ "$CFG_REDUCE_EXPORTS" != "no" ]; then
2554     if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2555        if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
2556            echo "-reduce-exports was requested but this compiler does not support it"
2557            echo "Re-run configure with -v for more information"
2558            exit 1
2559        fi
2560        CFG_REDUCE_EXPORTS=no
2561     else
2562        CFG_REDUCE_EXPORTS=yes
2563     fi
2564 fi
2565
2566 # detect the availability of the -Bsymbolic-functions linker optimization
2567 if [ "$CFG_REDUCE_RELOCATIONS" != "no" ]; then
2568     if "$unixtests/bsymbolic_functions.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2569        if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
2570            echo "-reduce-relocations was requested but this compiler does not support it"
2571            echo "Re-run configure with -v for more information"
2572            exit 1
2573        fi
2574         CFG_REDUCE_RELOCATIONS=no
2575     else
2576         CFG_REDUCE_RELOCATIONS=yes
2577     fi
2578 fi
2579
2580 # auto-detect GNU make support
2581 if [ "$CFG_USE_GNUMAKE" = "auto" ] && "$MAKE" -v | grep "GNU Make" >/dev/null 2>&1; then
2582    CFG_USE_GNUMAKE=yes
2583 fi
2584
2585 # find the default framework value
2586 if [ "$BUILD_ON_MAC" = "yes" ]; then
2587     if [ "$CFG_FRAMEWORK" = "auto" ]; then
2588         CFG_FRAMEWORK="$CFG_SHARED"
2589     elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2590         echo
2591         echo "WARNING: Using static linking will disable the use of Mac frameworks."
2592         echo
2593         CFG_FRAMEWORK="no"
2594     fi
2595 else
2596     CFG_FRAMEWORK=no
2597 fi
2598
2599 #setup the build parts
2600 if [ -z "$CFG_BUILD_PARTS" ]; then
2601     CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS"
2602
2603     # build tests by default, if a developer build
2604     if [ "$CFG_DEV" = "yes" ]; then
2605         CFG_BUILD_PARTS="$CFG_BUILD_PARTS tests"
2606     fi
2607
2608     # don't build tools by default when cross-compiling
2609     if [ "$PLATFORM" != "$XPLATFORM" ]; then
2610         CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
2611     fi
2612 fi
2613 for nobuild in $CFG_NOBUILD_PARTS; do
2614     CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
2615 done
2616 if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then
2617 #    echo
2618 #    echo "WARNING: libs is a required part of the build."
2619 #    echo
2620     CFG_BUILD_PARTS="$CFG_BUILD_PARTS libs"
2621 fi
2622
2623 #-------------------------------------------------------------------------------
2624 # post process QT_INSTALL_* variables
2625 #-------------------------------------------------------------------------------
2626
2627 if [ -z "$QT_INSTALL_PREFIX" ]; then
2628     if [ "$CFG_DEV" = "yes" ]; then
2629         QT_INSTALL_PREFIX="$outpath" # In Development, we use sandboxed builds by default
2630     else
2631         QT_INSTALL_PREFIX="/usr/local/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Qt-$QT_VERSION
2632     fi
2633 fi
2634 QT_INSTALL_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PREFIX"`
2635
2636 if [ -z "$QT_INSTALL_DOCS" ]; then #default
2637     if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2638         if [ "$BUILD_ON_MAC" = "yes" ]; then
2639             QT_INSTALL_DOCS="/Developer/Documentation/Qt"
2640         fi
2641     fi
2642     [ -z "$QT_INSTALL_DOCS" ] && QT_INSTALL_DOCS="$QT_INSTALL_PREFIX/doc" #fallback
2643
2644 fi
2645 QT_INSTALL_DOCS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DOCS"`
2646
2647 if [ -z "$QT_INSTALL_HEADERS" ]; then #default
2648     if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2649         if [ "$BUILD_ON_MAC" = "yes" ]; then
2650             if [ "$CFG_FRAMEWORK" = "yes" ]; then
2651                 QT_INSTALL_HEADERS=
2652             fi
2653         fi
2654     fi
2655     [ -z "$QT_INSTALL_HEADERS" ] && QT_INSTALL_HEADERS="$QT_INSTALL_PREFIX/include"
2656
2657 fi
2658 QT_INSTALL_HEADERS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_HEADERS"`
2659
2660 if [ -z "$QT_INSTALL_LIBS" ]; then #default
2661     if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2662         if [ "$BUILD_ON_MAC" = "yes" ]; then
2663             if [ "$CFG_FRAMEWORK" = "yes" ]; then
2664                 QT_INSTALL_LIBS="/Libraries/Frameworks"
2665             fi
2666         fi
2667     fi
2668     [ -z "$QT_INSTALL_LIBS" ] && QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib" #fallback
2669 fi
2670 QT_INSTALL_LIBS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBS"`
2671
2672 if [ -z "$QT_INSTALL_BINS" ]; then #default
2673     if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2674         if [ "$BUILD_ON_MAC" = "yes" ]; then
2675             QT_INSTALL_BINS="/Developer/Applications/Qt"
2676         fi
2677     fi
2678     [ -z "$QT_INSTALL_BINS" ] && QT_INSTALL_BINS="$QT_INSTALL_PREFIX/bin" #fallback
2679 fi
2680 QT_INSTALL_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_BINS"`
2681
2682 if [ -z "$QT_INSTALL_PLUGINS" ]; then #default
2683     if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2684         if [ "$BUILD_ON_MAC" = "yes" ]; then
2685             QT_INSTALL_PLUGINS="/Developer/Applications/Qt/plugins"
2686         fi
2687     fi
2688     [ -z "$QT_INSTALL_PLUGINS" ] && QT_INSTALL_PLUGINS="$QT_INSTALL_PREFIX/plugins" #fallback
2689 fi
2690 QT_INSTALL_PLUGINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PLUGINS"`
2691
2692 if [ -z "$QT_INSTALL_IMPORTS" ]; then #default
2693     if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2694         if [ "$BUILD_ON_MAC" = "yes" ]; then
2695             QT_INSTALL_IMPORTS="/Developer/Applications/Qt/imports"
2696         fi
2697     fi
2698     [ -z "$QT_INSTALL_IMPORTS" ] && QT_INSTALL_IMPORTS="$QT_INSTALL_PREFIX/imports" #fallback
2699 fi
2700 QT_INSTALL_IMPORTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_IMPORTS"`
2701
2702 if [ -z "$QT_INSTALL_DATA" ]; then #default
2703     QT_INSTALL_DATA="$QT_INSTALL_PREFIX"
2704 fi
2705 QT_INSTALL_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DATA"`
2706
2707 if [ -z "$QT_INSTALL_TRANSLATIONS" ]; then #default
2708     QT_INSTALL_TRANSLATIONS="$QT_INSTALL_PREFIX/translations"
2709 fi
2710 QT_INSTALL_TRANSLATIONS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TRANSLATIONS"`
2711
2712 if [ -z "$QT_INSTALL_SETTINGS" ]; then #default
2713     if [ "$BUILD_ON_MAC" = "yes" ]; then
2714         QT_INSTALL_SETTINGS=/Library/Preferences/Qt
2715     else
2716         QT_INSTALL_SETTINGS=/etc/xdg
2717     fi
2718 fi
2719 QT_INSTALL_SETTINGS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_SETTINGS"`
2720
2721 if [ -z "$QT_INSTALL_EXAMPLES" ]; then #default
2722     if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2723         if [ "$BUILD_ON_MAC" = "yes" ]; then
2724             QT_INSTALL_EXAMPLES="/Developer/Examples/Qt"
2725         fi
2726     fi
2727     [ -z "$QT_INSTALL_EXAMPLES" ] && QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples" #fallback
2728 fi
2729 QT_INSTALL_EXAMPLES=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_EXAMPLES"`
2730
2731 #tests
2732 if [ -z "$QT_INSTALL_TESTS" ]; then #default
2733     if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2734         if [ "$BUILD_ON_MAC" = "yes" ]; then
2735             QT_INSTALL_TESTS="/Developer/Tests/Qt"
2736         fi
2737     fi
2738     [ -z "$QT_INSTALL_TESTS" ] && QT_INSTALL_TESTS="$QT_INSTALL_PREFIX/tests" #fallback
2739 fi
2740 QT_INSTALL_TESTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TESTS"`
2741
2742 #------- host paths --------
2743
2744 if [ -z "$QT_HOST_PREFIX" ]; then
2745     QT_HOST_PREFIX=$QT_INSTALL_PREFIX
2746     haveHpx=false
2747 else
2748     QT_HOST_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_PREFIX"`
2749     haveHpx=true
2750 fi
2751
2752 if [ -z "$QT_HOST_BINS" ]; then #default
2753     if $haveHpx; then
2754         if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2755             if [ "$BUILD_ON_MAC" = "yes" ]; then
2756                 QT_HOST_BINS="/Developer/Applications/Qt"
2757             fi
2758         fi
2759         [ -z "$QT_HOST_BINS" ] && QT_HOST_BINS="$QT_HOST_PREFIX/bin" #fallback
2760     else
2761         QT_HOST_BINS="$QT_INSTALL_BINS"
2762     fi
2763 fi
2764 QT_HOST_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_BINS"`
2765
2766 if [ -z "$QT_HOST_DATA" ]; then #default
2767     if $haveHpx; then
2768         QT_HOST_DATA="$QT_HOST_PREFIX"
2769     else
2770         QT_HOST_DATA="$QT_INSTALL_DATA"
2771     fi
2772 else
2773     QT_HOST_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_HOST_DATA"`
2774 fi
2775
2776 #-------------------------------------------------------------------------------
2777 # help - interactive parts of the script _after_ this section please
2778 #-------------------------------------------------------------------------------
2779
2780 # next, emit a usage message if something failed.
2781 if [ "$OPT_HELP" = "yes" ]; then
2782     [ "x$ERROR" = "xyes" ] && echo
2783     if [ "$CFG_NIS" = "no" ]; then
2784         NSY=" "
2785         NSN="*"
2786     else
2787         NSY="*"
2788         NSN=" "
2789     fi
2790     if [ "$CFG_CUPS" = "no" ]; then
2791         CUY=" "
2792         CUN="*"
2793     else
2794         CUY="*"
2795         CUN=" "
2796     fi
2797     if [ "$CFG_ICONV" = "no" ]; then
2798         CIY=" "
2799         CIN="*"
2800     else
2801         CIY="*"
2802         CIN=" "
2803     fi
2804     if [ "$CFG_LARGEFILE" = "no" ]; then
2805         LFSY=" "
2806         LFSN="*"
2807     else
2808         LFSY="*"
2809         LFSN=" "
2810     fi
2811     if [ "$CFG_PRECOMPILE" = "auto" ] || [ "$CFG_PRECOMPILE" = "no" ]; then
2812         PHY=" "
2813         PHN="*"
2814     else
2815         PHY="*"
2816         PHN=" "
2817     fi
2818
2819     if [ "$CFG_XCB" = "no" ]; then
2820         XCBY=" "
2821         XCBN="*"
2822     else
2823         XCBY="*"
2824         XCBN=" "
2825     fi
2826
2827     if [ "$CFG_EGLFS" = "no" ]; then
2828         EGLFSY=" "
2829         EGLFSN="*"
2830     else
2831         EGLFSY="*"
2832         EGLFSN=" "
2833     fi
2834
2835     if [ "$CFG_DIRECTFB" = "no" ]; then
2836         DFBY=" "
2837         DFBN="*"
2838     else
2839         DFBY="*"
2840         DFBN=" "
2841     fi
2842     if [ "$CFG_XINPUT2" = "no" ]; then
2843         X2Y=" "
2844         X2N="*"
2845     else
2846         X2Y="*"
2847         X2N=" "
2848     fi
2849
2850     if [ "$CFG_DBUS" = "no" ]; then
2851         DBY=" "
2852         DBN="+"
2853     else
2854         DBY="+"
2855         DBN=" "
2856     fi
2857
2858     if [ "$CFG_SEPARATE_DEBUG_INFO" = "no" ]; then
2859         SBY=" "
2860         SBN="*"
2861     else
2862         SBY="*"
2863         SBN=" "
2864     fi
2865
2866     if [ "$CFG_GLIB" = "no" ]; then
2867         GBY=" "
2868         GBN="+"
2869     else
2870         GBY="+"
2871         GBN=" "
2872     fi
2873
2874     cat <<EOF
2875 Usage:  $relconf [-h] [-prefix <dir>] [-prefix-install] [-bindir <dir>] [-libdir <dir>]
2876         [-docdir <dir>] [-headerdir <dir>] [-plugindir <dir> ] [-importdir <dir>] [-datadir <dir>]
2877         [-translationdir <dir>] [-sysconfdir <dir>] [-examplesdir <dir>] [-testsdir <dir>]
2878         [-release] [-debug] [-debug-and-release] [-c++11] [-no-c++11]
2879         [-developer-build] [-shared] [-static] [-no-fast] [-fast] [-no-largefile]
2880         [-largefile] [-no-accessibility] [-accessibility] [-no-sql-<driver>] [-sql-<driver>]
2881         [-plugin-sql-<driver>] [-system-sqlite]
2882         [-platform] [-D <string>] [-I <string>] [-L <string>] [-help]
2883         [-qt-zlib] [-system-zlib] [-no-gif] [-no-libpng] [-qt-libpng] [-system-libpng]
2884         [-no-libjpeg] [-qt-libjpeg] [-system-libjpeg] [-make <part>]
2885         [-nomake <part>] [-R <string>]  [-l <string>] [-no-rpath]  [-rpath] [-continue]
2886         [-verbose] [-v] [-silent] [-no-nis] [-nis] [-no-cups] [-cups] [-no-iconv]
2887         [-iconv] [-no-pch] [-pch] [-no-dbus] [-dbus] [-dbus-linked] [-no-gui]
2888         [-no-separate-debug-info] [-no-sse2]
2889         [-no-sse3] [-no-ssse3] [-no-sse4.1] [-no-sse4.2] [-no-avx] [-no-neon]
2890         [-qtnamespace <namespace>] [-qtlibinfix <infix>] [-separate-debug-info]
2891         [-no-phonon-backend] [-phonon-backend] [-no-media-backend] [-media-backend]
2892         [-no-audio-backend] [-audio-backend]
2893         [-no-javascript-jit] [-javascript-jit] [-no-qml-debug] [-qml-debug]
2894         [-no-optimized-qmake] [-optimized-qmake]
2895         [-no-openssl] [-openssl] [-openssl-linked]
2896         [-no-gtkstyle] [-gtkstyle]
2897         [-qt-pcre] [-system-pcre]
2898         [-device <name>] [-device-option <key=value>]
2899         [additional platform specific options (see below)]
2900
2901
2902 Installation options:
2903
2904  These are optional, but you may specify install directories.
2905
2906     -prefix <dir> ...... This will install everything relative to <dir>
2907                          (default $QT_INSTALL_PREFIX)
2908
2909     -hostprefix [dir] .. Tools and libraries needed when developing
2910                          applications are installed in [dir]. If [dir] is
2911                          not given, the current build directory will be used.
2912                          (default PREFIX)
2913
2914   * -prefix-install .... Force a sandboxed "local" installation of
2915                          Qt. This will install into
2916                          $QT_INSTALL_PREFIX, if this option is
2917                          disabled then some platforms will attempt a
2918                          "system" install by placing default values to
2919                          be placed in a system location other than
2920                          PREFIX.
2921
2922  You may use these to separate different parts of the install:
2923
2924     -bindir <dir> ......... Executables will be installed to <dir>
2925                             (default PREFIX/bin)
2926     -libdir <dir> ......... Libraries will be installed to <dir>
2927                             (default PREFIX/lib)
2928     -docdir <dir> ......... Documentation will be installed to <dir>
2929                             (default PREFIX/doc)
2930     -headerdir <dir> ...... Headers will be installed to <dir>
2931                             (default PREFIX/include)
2932     -plugindir <dir> ...... Plugins will be installed to <dir>
2933                             (default PREFIX/plugins)
2934     -importdir <dir> ...... Imports for QML will be installed to <dir>
2935                             (default PREFIX/imports)
2936     -datadir <dir> ........ Data used by Qt programs will be installed to <dir>
2937                             (default PREFIX)
2938     -translationdir <dir> . Translations of Qt programs will be installed to <dir>
2939                             (default PREFIX/translations)
2940     -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
2941                             (default PREFIX/etc/settings)
2942     -examplesdir <dir> .... Examples will be installed to <dir>
2943                             (default PREFIX/examples)
2944     -testsdir <dir> ....... Tests will be installed to <dir>
2945                             (default PREFIX/tests)
2946
2947     -hostbindir <dir> .. Host executables will be installed to <dir>
2948                          (default HOSTPREFIX/bin)
2949     -hostdatadir <dir> . Data used by qmake will be installed to <dir>
2950                          (default HOSTPREFIX)
2951
2952 Configure options:
2953
2954  The defaults (*) are usually acceptable. A plus (+) denotes a default value
2955  that needs to be evaluated. If the evaluation succeeds, the feature is
2956  included. Here is a short explanation of each option:
2957
2958  *  -release ........... Compile and link Qt with debugging turned off.
2959     -debug ............. Compile and link Qt with debugging turned on.
2960     -debug-and-release . Compile and link two versions of Qt, with and without
2961                          debugging turned on (Mac only).
2962
2963     -developer-build ... Compile and link Qt with Qt developer options (including auto-tests exporting)
2964
2965     -opensource ........ Compile and link the Open-Source Edition of Qt.
2966     -commercial ........ Compile and link the Commercial Edition of Qt.
2967
2968     -no-c++11 .......... Do not compile Qt with C++11 support enabled.
2969  +  -c++11 ............. Compile Qt with C++11 support enabled.
2970
2971  *  -shared ............ Create and use shared Qt libraries.
2972     -static ............ Create and use static Qt libraries.
2973
2974  *  -no-fast ........... Configure Qt normally by generating Makefiles for all
2975                          project files.
2976     -fast .............. Configure Qt quickly by generating Makefiles only for
2977                          library and subdirectory targets.  All other Makefiles
2978                          are created as wrappers, which will in turn run qmake.
2979
2980     -no-largefile ...... Disables large file support.
2981  +  -largefile ......... Enables Qt to access files larger than 4 GB.
2982
2983     -no-accessibility .. Do not compile Accessibility support.
2984  *  -accessibility ..... Compile Accessibility support.
2985
2986     -no-sql-<driver> ... Disable SQL <driver> entirely.
2987     -qt-sql-<driver> ... Enable a SQL <driver> in the QtSql library, by default
2988                          none are turned on.
2989     -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
2990                          at run time.
2991
2992                          Possible values for <driver>:
2993                          [ $CFG_SQL_AVAILABLE ]
2994
2995     -system-sqlite ..... Use sqlite from the operating system.
2996
2997     -no-phonon-backend.. Do not build the platform phonon plugin.
2998  +  -phonon-backend..... Build the platform phonon plugin.
2999
3000     -no-javascript-jit . Do not build the JavaScriptCore JIT compiler.
3001  +  -javascript-jit .... Build the JavaScriptCore JIT compiler.
3002
3003     -no-qml-debug ...... Do not build the in-process QML debugging support.
3004  +  -qml-debug ......... Build the QML debugging support.
3005
3006     -platform target ... The operating system and compiler you are building
3007                          on ($PLATFORM).
3008
3009                          See the README file for a list of supported
3010                          operating systems and compilers.
3011
3012     -no-sse2 ........... Do not compile with use of SSE2 instructions.
3013     -no-sse3 ........... Do not compile with use of SSE3 instructions.
3014     -no-ssse3 .......... Do not compile with use of SSSE3 instructions.
3015     -no-sse4.1.......... Do not compile with use of SSE4.1 instructions.
3016     -no-sse4.2.......... Do not compile with use of SSE4.2 instructions.
3017     -no-avx ............ Do not compile with use of AVX instructions.
3018     -no-avx2 ........... Do not compile with use of AVX2 instructions.
3019     -no-neon ........... Do not compile with use of NEON instructions.
3020     -no-mips_dsp ....... Do not compile with use of MIPS DSP instructions.
3021     -no-mips_dspr2 ..... Do not compile with use of MIPS DSP rev2 instructions.
3022
3023     -qtnamespace <name>  Wraps all Qt library code in 'namespace <name> {...}'.
3024     -qtlibinfix <infix>  Renames all libQt*.so to libQt*<infix>.so.
3025
3026     -testcocoon          Instrument Qt with the TestCocoon code coverage tool.
3027
3028     -D <string> ........ Add an explicit define to the preprocessor.
3029     -I <string> ........ Add an explicit include path.
3030     -L <string> ........ Add an explicit library path.
3031
3032  +  -pkg-config ........ Use pkg-config to detect include and library paths. By default,
3033                          configure determines whether to use pkg-config or not with
3034                          some heuristics such as checking the environment variables.
3035     -no-pkg-config ..... Disable use of pkg-config.
3036     -force-pkg-config .. Force usage of pkg-config (skips pkg-config usability
3037                          detection heuristic).
3038
3039     -help, -h .......... Display this information.
3040
3041 Third Party Libraries:
3042
3043     -qt-zlib ........... Use the zlib bundled with Qt.
3044  +  -system-zlib ....... Use zlib from the operating system.
3045                          See http://www.gzip.org/zlib
3046
3047     -no-gif ............ Do not compile GIF reading support.
3048
3049     -no-libpng ......... Do not compile PNG support.
3050     -qt-libpng ......... Use the libpng bundled with Qt.
3051  +  -system-libpng ..... Use libpng from the operating system.
3052                          See http://www.libpng.org/pub/png
3053
3054     -no-libjpeg ........ Do not compile JPEG support.
3055     -qt-libjpeg ........ Use the libjpeg bundled with Qt.
3056  +  -system-libjpeg .... Use libjpeg from the operating system.
3057                          See http://www.ijg.org
3058
3059     -no-openssl ........ Do not compile support for OpenSSL.
3060  +  -openssl ........... Enable run-time OpenSSL support.
3061     -openssl-linked .... Enabled linked OpenSSL support.
3062
3063     -qt-pcre ........... Use the PCRE library bundled with Qt.
3064  +  -system-pcre ....... Use the PCRE library from the operating system.
3065
3066 Additional options:
3067
3068     -make <part> ....... Add part to the list of parts to be built at make time.
3069                          ($QT_DEFAULT_BUILD_PARTS)
3070     -nomake <part> ..... Exclude part from the list of parts to be built.
3071
3072     -R <string> ........ Add an explicit runtime library path to the Qt
3073                          libraries.
3074     -l <string> ........ Add an explicit library.
3075
3076     -no-rpath .......... Do not use the library install path as a runtime
3077                          library path.
3078  +  -rpath ............. Link Qt libraries and executables using the library
3079                          install path as a runtime library path. Equivalent
3080                          to -R install_libpath
3081
3082     -continue .......... Continue as far as possible if an error occurs.
3083
3084     -verbose, -v ....... Print verbose information about each step of the
3085                          configure process.
3086
3087     -silent ............ Reduce the build output so that warnings and errors
3088                          can be seen more easily.
3089
3090  *  -no-optimized-qmake ... Do not build qmake optimized.
3091     -optimized-qmake ...... Build qmake optimized.
3092
3093     -no-gui ............ Don't build the Qt GUI library
3094
3095  $NSN  -no-nis ............ Do not compile NIS support.
3096  $NSY  -nis ............... Compile NIS support.
3097
3098  $CUN  -no-cups ........... Do not compile CUPS support.
3099  $CUY  -cups .............. Compile CUPS support.
3100                          Requires cups/cups.h and libcups.so.2.
3101
3102  $CIN  -no-iconv .......... Do not compile support for iconv(3).
3103  $CIY  -iconv ............. Compile support for iconv(3).
3104
3105  $PHN  -no-pch ............ Do not use precompiled header support.
3106  $PHY  -pch ............... Use precompiled header support.
3107
3108  $DBN  -no-dbus ........... Do not compile the QtDBus module.
3109  $DBY  -dbus .............. Compile the QtDBus module and dynamically load libdbus-1.
3110     -dbus-linked ....... Compile the QtDBus module and link to libdbus-1.
3111
3112     -reduce-relocations ..... Reduce relocations in the libraries through extra
3113                               linker optimizations (Qt/X11 and Qt for Embedded Linux only;
3114                               experimental; needs GNU ld >= 2.18).
3115
3116     -force-asserts ........ Force Q_ASSERT to be enabled even in release builds.
3117
3118     -device <name> ............... Cross-compile for device <name> (experimental)
3119     -device-option <key=value> ... Add device specific options for the device mkspec
3120                                    (experimental)
3121
3122  $SBN  -no-separate-debug-info . Do not store debug information in a separate file.
3123  $SBY  -separate-debug-info .... Strip debug information into a separate .debug file.
3124
3125  $XCBN  -no-xcb ............ Do not compile Xcb (X protocol C-language Binding) support.
3126  $XCBY  -xcb ............... Compile Xcb support.
3127
3128  $EGLFSN  -no-eglfs .......... Do not compile EGLFS (EGL Full Screen/Single Surface) support.
3129  $EGLFSY  -eglfs ............. Compile EGLFS support (Requires OpenGL ES 2 support).
3130
3131  $DFBN  -no-directfb ....... Do not compile DirectFB support.
3132  $DFBY  -directfb .......... Compile DirectFB support.
3133
3134     -qpa <name> ......... Sets the default QPA platform (e.g xcb, cocoa, windows).
3135
3136     -xplatform target ... The target platform when cross-compiling.
3137
3138     -sysroot <dir> ...... Sets <dir> as the target compiler's and qmake's sysroot.
3139
3140     -no-feature-<feature> Do not compile in <feature>.
3141     -feature-<feature> .. Compile in <feature>. The available features
3142                           are described in src/corelib/global/qfeatures.txt
3143
3144     -no-freetype ........ Do not compile in Freetype2 support.
3145     -qt-freetype ........ Use the libfreetype bundled with Qt.
3146  *  -system-freetype .... Use libfreetype from the operating system.
3147                           See http://www.freetype.org/
3148
3149     -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
3150                           default ($CFG_QCONFIG).
3151
3152     -no-opengl .......... Do not support OpenGL.
3153     -opengl <api> ....... Enable OpenGL support
3154                           With no parameter, this will attempt to auto-detect
3155                           OpenGL ES 2, or regular desktop OpenGL.
3156                           Use es2 for <api> to override auto-detection.
3157
3158  $GBN  -no-glib ........... Do not compile Glib support.
3159  $GBY  -glib .............. Compile Glib support.
3160 EOF
3161
3162 if [ "$XPLATFORM_MAEMO" = "yes" ]; then
3163     cat << EOF
3164
3165  $X2N  -no-xinput2......... Do not compile XInput2 support.
3166  $X2Y  -xinput2............ Compile XInput2 support.
3167
3168 EOF
3169
3170 fi
3171
3172 if [ "$BUILD_ON_MAC" = "yes" ]; then
3173     cat << EOF
3174
3175 Qt/Mac only:
3176
3177     -Fstring ........... Add an explicit framework path.
3178     -fw string ......... Add an explicit framework.
3179
3180  *  -framework ......... Build Qt as a series of frameworks and
3181                          link tools against those frameworks.
3182     -no-framework ...... Do not build Qt as a series of frameworks.
3183
3184     -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
3185                          To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
3186
3187     -harfbuzz .......... Use HarfBuzz to do text layout instead of Core Text when possible.
3188  *  -no-harfbuzz ....... Disable HarfBuzz on Mac. It can still be enabled by setting
3189                          QT_ENABLE_HARFBUZZ environment variable.
3190
3191 EOF
3192 fi
3193
3194    [ "x$ERROR" = "xyes" ] && exit 1
3195    exit 0
3196 fi # Help
3197
3198
3199 # -----------------------------------------------------------------------------
3200 # LICENSING, INTERACTIVE PART
3201 # -----------------------------------------------------------------------------
3202
3203 echo
3204 echo "This is the Qt ${EditionString} Edition."
3205 echo
3206
3207 if [ "$Edition" = "OpenSource" ]; then
3208     while true; do
3209         echo "You are licensed to use this software under the terms of"
3210         echo "the Lesser GNU General Public License (LGPL) versions 2.1."
3211         if [ -f "$relpath/LICENSE.GPL3" ]; then
3212             echo "You are also licensed to use this software under the terms of"
3213             echo "the GNU General Public License (GPL) versions 3."
3214             affix="either"
3215         else
3216             affix="the"
3217         fi
3218         echo
3219         if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3220             echo "You have already accepted the terms of the $LicenseType license."
3221             acceptance=yes
3222         else
3223             if [ -f "$relpath/LICENSE.GPL3" ]; then
3224                 echo "Type '3' to view the GNU General Public License version 3."
3225             fi
3226             echo "Type 'L' to view the Lesser GNU General Public License version 2.1."
3227             echo "Type 'yes' to accept this license offer."
3228             echo "Type 'no' to decline this license offer."
3229             echo
3230             echo $ECHO_N "Do you accept the terms of $affix license? $ECHO_C"
3231             read acceptance
3232         fi
3233         echo
3234         if [ "$acceptance" = "yes" ] || [ "$acceptance" = "y" ]; then
3235             break
3236         elif [ "$acceptance" = "no" ]; then
3237             echo "You are not licensed to use this software."
3238             echo
3239             exit 1
3240         elif [ "$acceptance" = "3" ]; then
3241             more "$relpath/LICENSE.GPL3"
3242         elif [ "$acceptance" = "L" ]; then
3243             more "$relpath/LICENSE.LGPL"
3244         fi
3245     done
3246 elif [ "$Edition" = "Preview" ]; then
3247     TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
3248     while true; do
3249
3250         if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3251             echo "You have already accepted the terms of the $LicenseType license."
3252             acceptance=yes
3253         else
3254             echo "You are licensed to use this software under the terms of"
3255             echo "the $TheLicense"
3256             echo
3257             echo "Type '?' to read the Preview License."
3258             echo "Type 'yes' to accept this license offer."
3259             echo "Type 'no' to decline this license offer."
3260             echo
3261             echo $ECHO_N "Do you accept the terms of the license? $ECHO_C"
3262             read acceptance
3263         fi
3264         echo
3265         if [ "$acceptance" = "yes" ]; then
3266             break
3267         elif [ "$acceptance" = "no" ] ;then
3268             echo "You are not licensed to use this software."
3269             echo
3270             exit 0
3271         elif [ "$acceptance" = "?" ]; then
3272             more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
3273         fi
3274     done
3275 elif [ "$Edition" != "OpenSource" ]; then
3276     if [ -n "$ExpiryDate" ]; then
3277         ExpiryDate=`echo $ExpiryDate | sed -e "s,-,,g" | tr -d "\n\r"`
3278         [ -z "$ExpiryDate" ] && ExpiryDate="0"
3279         Today=`date +%Y%m%d`
3280         if [ "$Today" -gt "$ExpiryDate" ]; then
3281             case "$LicenseType" in
3282             Commercial|Academic|Educational)
3283                 if [ "$QT_PACKAGEDATE" -gt "$ExpiryDate" ]; then
3284                     echo
3285                     echo "NOTICE  NOTICE  NOTICE  NOTICE"
3286                     echo
3287                     echo "  Your support and upgrade period has expired."
3288                     echo
3289                     echo "  You are no longer licensed to use this version of Qt."
3290                     echo "  Please contact qt-info@nokia.com to renew your support"
3291                     echo "  and upgrades for this license."
3292                     echo
3293                     echo "NOTICE  NOTICE  NOTICE  NOTICE"
3294                     echo
3295                     exit 1
3296                 else
3297                     echo
3298                     echo "WARNING  WARNING  WARNING  WARNING"
3299                     echo
3300                     echo "  Your support and upgrade period has expired."
3301                     echo
3302                     echo "  You may continue to use your last licensed release"
3303                     echo "  of Qt under the terms of your existing license"
3304                     echo "  agreement. But you are not entitled to technical"
3305                     echo "  support, nor are you entitled to use any more recent"
3306                     echo "  Qt releases."
3307                     echo
3308                     echo "  Please contact qt-info@nokia.com to renew your"
3309                     echo "  support and upgrades for this license."
3310                     echo
3311                     echo "WARNING  WARNING  WARNING  WARNING"
3312                     echo
3313                     sleep 3
3314                 fi
3315                 ;;
3316             Evaluation|*)
3317                 echo
3318                 echo "NOTICE  NOTICE  NOTICE  NOTICE"
3319                 echo
3320                 echo "  Your Evaluation license has expired."
3321                 echo
3322                 echo "  You are no longer licensed to use this software. Please"
3323                 echo "  contact qt-info@nokia.com to purchase license, or install"
3324                 echo "  the Qt Open Source Edition if you intend to develop free"
3325                 echo "  software."
3326                 echo
3327                 echo "NOTICE  NOTICE  NOTICE  NOTICE"
3328                 echo
3329                 exit 1
3330                 ;;
3331             esac
3332         fi
3333     fi
3334     TheLicense=`head -n 1 "$outpath/LICENSE"`
3335     while true; do
3336         if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3337             echo "You have already accepted the terms of the $TheLicense."
3338             acceptance=yes
3339         else
3340             echo "You are licensed to use this software under the terms of"
3341             echo "the $TheLicense."
3342             echo
3343             echo "Type '?' to view the $TheLicense."
3344             echo "Type 'yes' to accept this license offer."
3345             echo "Type 'no' to decline this license offer."
3346             echo
3347             echo $ECHO_N "Do you accept the terms of the $TheLicense? $ECHO_C"
3348             read acceptance
3349         fi
3350         echo
3351         if [ "$acceptance" = "yes" ]; then
3352             break
3353         elif [ "$acceptance" = "no" ]; then
3354             echo "You are not licensed to use this software."
3355             echo
3356             exit 1
3357         else [ "$acceptance" = "?" ]
3358             more "$outpath/LICENSE"
3359         fi
3360     done
3361 fi
3362
3363 # this should be moved somewhere else
3364 case "$PLATFORM" in
3365 aix-*)
3366     AIX_VERSION=`uname -v`
3367     if [ "$AIX_VERSION" -lt "5" ]; then
3368         QMakeVar add QMAKE_LIBS_X11 -lbind
3369     fi
3370     ;;
3371 *)
3372     ;;
3373 esac
3374
3375 #-------------------------------------------------------------------------------
3376 # generate qconfig.cpp
3377 #-------------------------------------------------------------------------------
3378 [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
3379
3380 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3381 /* License Info */
3382 static const char qt_configure_licensee_str          [256 + 12] = "qt_lcnsuser=$Licensee";
3383 static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$Edition";
3384
3385 /* Installation date */
3386 static const char qt_configure_installation          [12+11]    = "qt_instdate=`date +%Y-%m-%d`";
3387
3388 /* Installation Info */
3389 static const char qt_configure_prefix_path_strs[][256 + 12] = {
3390     "qt_prfxpath=$QT_INSTALL_PREFIX",
3391     "qt_docspath=$QT_INSTALL_DOCS",
3392     "qt_hdrspath=$QT_INSTALL_HEADERS",
3393     "qt_libspath=$QT_INSTALL_LIBS",
3394     "qt_binspath=$QT_INSTALL_BINS",
3395     "qt_plugpath=$QT_INSTALL_PLUGINS",
3396     "qt_impspath=$QT_INSTALL_IMPORTS",
3397     "qt_datapath=$QT_INSTALL_DATA",
3398     "qt_trnspath=$QT_INSTALL_TRANSLATIONS",
3399     "qt_xmplpath=$QT_INSTALL_EXAMPLES",
3400     "qt_tstspath=$QT_INSTALL_TESTS",
3401 #ifdef QT_BUILD_QMAKE
3402     "qt_ssrtpath=$CFG_SYSROOT",
3403     "qt_hpfxpath=$QT_HOST_PREFIX",
3404     "qt_hbinpath=$QT_HOST_BINS",
3405     "qt_hdatpath=$QT_HOST_DATA",
3406 #endif
3407 };
3408 static const char qt_configure_settings_path_str[256 + 12] = "qt_stngpath=$QT_INSTALL_SETTINGS";
3409 EOF
3410
3411 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3412
3413 /* strlen( "qt_lcnsxxxx" ) == 12 */
3414 #define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;
3415 #define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;
3416
3417 #define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12;
3418 EOF
3419
3420 # avoid unecessary rebuilds by copying only if qconfig.cpp has changed
3421 if cmp -s "$outpath/src/corelib/global/qconfig.cpp" "$outpath/src/corelib/global/qconfig.cpp.new"; then
3422     rm -f "$outpath/src/corelib/global/qconfig.cpp.new"
3423 else
3424     [ -f "$outpath/src/corelib/global/qconfig.cpp" ] && chmod +w "$outpath/src/corelib/global/qconfig.cpp"
3425     mv "$outpath/src/corelib/global/qconfig.cpp.new" "$outpath/src/corelib/global/qconfig.cpp"
3426     chmod -w "$outpath/src/corelib/global/qconfig.cpp"
3427 fi
3428
3429 # -----------------------------------------------------------------------------
3430 if [ "$LicenseType" = "Evaluation" ]; then
3431     EVALKEY=qt_qevalkey=$LicenseKeyExt
3432 elif echo "$DEFINES" | grep QT_EVAL >/dev/null 2>&1; then
3433     EVALKEY=qt_qevalkey=
3434 fi
3435
3436 if [ -n "$EVALKEY" ]; then
3437     rm -f "$outpath/src/corelib/global/qconfig_eval.cpp"
3438     cat > "$outpath/src/corelib/global/qconfig_eval.cpp" <<EOF
3439 /* Evaluation license key */
3440 static const volatile char qt_eval_key_data                   [512 + 12] = "$EVALKEY";
3441 EOF
3442     chmod -w "$outpath/src/corelib/global/qconfig_eval.cpp"
3443 fi
3444
3445
3446 # -----------------------------------------------------------------------------
3447 # build qmake
3448 # -----------------------------------------------------------------------------
3449
3450 # symlink includes
3451 if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
3452     SYNCQT_OPTS=
3453     [ "$CFG_DEV" = "yes" ] && SYNCQT_OPTS="$SYNCQT_OPTS -check-includes"
3454     if [ "$OPT_SHADOW" = "yes" ]; then
3455         "$outpath/bin/syncqt" $SYNCQT_OPTS "$relpath" || exit 1
3456     elif [ "$CFG_DEV" = "yes" ] || [ ! -d $relpath/include ] || [ -d $relpath/.git ]; then
3457         QTDIR="$relpath" perl "$outpath/bin/syncqt" $SYNCQT_OPTS || exit 1
3458     fi
3459 fi
3460
3461 # $1: input variable name (awk regexp)
3462 # $2: optional output variable name
3463 # $3: optional value transformation (sed command)
3464 # relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
3465 # is where the resulting variable is written to
3466 setBootstrapVariable()
3467 {
3468     getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
3469 }
3470
3471 # build qmake
3472 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
3473     echo "Creating qmake. Please wait..."
3474
3475     OLD_QCONFIG_H=
3476     QCONFIG_H="$outpath/src/corelib/global/qconfig.h"
3477     QMAKE_QCONFIG_H="${QCONFIG_H}.qmake"
3478     if [ -f "$QCONFIG_H" ]; then
3479          OLD_QCONFIG_H=$QCONFIG_H
3480          mv -f "$OLD_QCONFIG_H" "${OLD_QCONFIG_H}.old"
3481     fi
3482
3483     # create temporary qconfig.h for compiling qmake, if it doesn't exist
3484     # when building qmake, we use #defines for the install paths,
3485     # however they are real functions in the library
3486     if [ '!' -f "$QMAKE_QCONFIG_H" ]; then
3487         mkdir -p "$outpath/src/corelib/global"
3488         [ -f "$QCONFIG_H" ] && chmod +w "$QCONFIG_H"
3489         echo "/* All features enabled while building qmake */" >"$QMAKE_QCONFIG_H"
3490     fi
3491
3492     mv -f "$QMAKE_QCONFIG_H" "$QCONFIG_H"
3493
3494     #mkspecs/default is used as a (gasp!) default mkspec so QMAKESPEC needn't be set once configured
3495     rm -rf mkspecs/default mkspecs/default-host
3496     ln -s `echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default
3497     ln -s `echo $QMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default-host
3498     mkdir -p "$outpath/qmake" || exit
3499     # fix makefiles
3500     for mkfile in GNUmakefile Makefile; do
3501         EXTRA_LFLAGS=
3502         EXTRA_CFLAGS=
3503         in_mkfile="${mkfile}.in"
3504         if [ "$mkfile" = "Makefile" ]; then
3505 #           if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
3506 #               (cd qmake && qmake) >/dev/null 2>&1 && continue
3507 #           fi
3508             in_mkfile="${mkfile}.unix"
3509         fi
3510         in_mkfile="$relpath/qmake/$in_mkfile"
3511         mkfile="$outpath/qmake/$mkfile"
3512         if [ -f "$mkfile" ]; then
3513             [ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
3514             rm -f "$mkfile"
3515         fi
3516         [ -f "$in_mkfile" ] || continue
3517
3518         echo "########################################################################" > "$mkfile"
3519         echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
3520         echo "########################################################################" >> "$mkfile"
3521         EXTRA_OBJS=
3522         EXTRA_SRCS=
3523         EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
3524         EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
3525         EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
3526
3527         if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then
3528             EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
3529         fi
3530
3531         [ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM=
3532         setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM"
3533         setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM"
3534         setBootstrapVariable QMAKE_CFLAGS
3535         setBootstrapVariable QMAKE_CXXFLAGS
3536         setBootstrapVariable QMAKE_LFLAGS
3537
3538         if [ $QT_EDITION = "QT_EDITION_OPENSOURCE" ]; then
3539             EXTRA_CFLAGS="$EXTRA_CFLAGS -DQMAKE_OPENSOURCE_EDITION"
3540             EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DQMAKE_OPENSOURCE_EDITION"
3541         fi
3542         if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
3543             setBootstrapVariable QMAKE_CFLAGS_RELEASE
3544             setBootstrapVariable QMAKE_CXXFLAGS_RELEASE
3545             EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
3546             EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
3547         elif [ "$CFG_DEBUG" = "yes" ]; then
3548             setBootstrapVariable QMAKE_CFLAGS_DEBUG
3549             setBootstrapVariable QMAKE_CXXFLAGS_DEBUG
3550             EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
3551             EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
3552         fi
3553
3554         if [ -n "$RPATH_FLAGS" ] && [ -n "`getQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
3555             setBootstrapVariable "QMAKE_(LFLAGS_)?RPATH" QMAKE_LFLAGS_RPATH
3556             for rpath in $RPATH_FLAGS; do
3557                 EXTRA_LFLAGS="\$(QMAKE_LFLAGS_RPATH)\"$rpath\" $EXTRA_LFLAGS"
3558             done
3559         fi
3560         if [ "$BUILD_ON_MAC" = "yes" ]; then
3561             echo "export MACOSX_DEPLOYMENT_TARGET = 10.6" >> "$mkfile"
3562             echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
3563             echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
3564             EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
3565             EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
3566             EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
3567             EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
3568             EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
3569             if [ '!' -z "$CFG_SDK" ]; then
3570                 echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
3571                 echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
3572                 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(SDK_CFLAGS)"
3573                 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(SDK_CFLAGS)"
3574                 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(SDK_LFLAGS)"
3575             fi
3576         fi
3577         if [ '!' -z "$D_FLAGS" ]; then
3578             EXTRA_CFLAGS="$EXTRA_CFLAGS $D_FLAGS"
3579         fi
3580         QMAKE_BIN_DIR="$QT_INSTALL_BINS"
3581         [ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
3582         QMAKE_DATA_DIR="$QT_INSTALL_DATA"
3583         [ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
3584         echo >>"$mkfile"
3585         adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
3586         adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
3587         adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
3588         sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
3589             -e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
3590             -e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
3591             -e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
3592             -e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
3593             -e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
3594             -e "s,@QMAKESPEC@,$adjqmakespec,g" -e "s,@QT_VERSION@,$QT_VERSION,g" "$in_mkfile" >>"$mkfile"
3595
3596         if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
3597             (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
3598             sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
3599             sed "s,$outpath,$adjoutpath,g" "$mkfile.tmp" >"$mkfile"
3600             rm "$mkfile.tmp"
3601         fi
3602     done
3603
3604     QMAKE_BUILD_ERROR=no
3605     (cd "$outpath/qmake"; "$MAKE") || QMAKE_BUILD_ERROR=yes
3606     [ '!' -z "$QCONFIG_H" ] && mv -f "$QCONFIG_H" "$QMAKE_QCONFIG_H" #move qmake's qconfig.h to qconfig.h.qmake
3607     [ '!' -z "$OLD_QCONFIG_H" ] && mv -f "${OLD_QCONFIG_H}.old" "$OLD_QCONFIG_H" #put back qconfig.h
3608     [ "$QMAKE_BUILD_ERROR" = "yes" ] && exit 2
3609 fi # Build qmake
3610
3611 #-------------------------------------------------------------------------------
3612 # create a qt.conf for the Qt build tree itself
3613 #-------------------------------------------------------------------------------
3614
3615 QTCONFFILE="$outpath/bin/qt.conf"
3616 cat > "$QTCONFFILE" <<EOF
3617 [EffectivePaths]
3618 Prefix=..
3619 EOF
3620
3621 #-------------------------------------------------------------------------------
3622 # Detect pkg-config
3623 #-------------------------------------------------------------------------------
3624 if [ -z "$PKG_CONFIG" ]; then
3625     # See if PKG_CONFIG is set in the mkspec:
3626     PKG_CONFIG=`getXQMakeConf PKG_CONFIG`
3627 fi
3628 if [ -z "$PKG_CONFIG" ]; then
3629     PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
3630 fi
3631
3632 if [ "$CFG_PKGCONFIG" = "no" ]; then
3633     PKG_CONFIG=
3634 elif [ "$CFG_PKGCONFIG" = "force" ]; then
3635     echo >&2 ""
3636     echo >&2 "You have asked to use pkg-config. Please make sure you have"
3637     echo >&2 "a correctly setup pkg-config environment!"
3638     echo >&2 ""
3639 elif [ -n "$PKG_CONFIG" ]; then
3640     # found a pkg-config
3641     if [ "$QT_CROSS_COMPILE" = "yes" ]; then
3642         # when xcompiling, check environment to see if it's actually usable
3643         if [ -z "$PKG_CONFIG_LIBDIR" ]; then
3644             if [ -n "$CFG_SYSROOT" ] && [ -d "$CFG_SYSROOT/usr/lib/pkgconfig" ]; then
3645                 PKG_CONFIG_LIBDIR=$CFG_SYSROOT/usr/lib/pkgconfig:$CFG_SYSROOT/usr/share/pkgconfig
3646                 if [ -n "$GCC_MACHINE_DUMP" ]; then
3647                     PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:$CFG_SYSROOT/usr/lib/$GCC_MACHINE_DUMP/pkgconfig
3648                 fi
3649                 export PKG_CONFIG_LIBDIR
3650                 echo >&2 "Note: PKG_CONFIG_LIBDIR automatically set to $PKG_CONFIG_LIBDIR"
3651             elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3652                 echo >&2 "Error: PKG_CONFIG_LIBDIR has not been set. This could mean"
3653                 echo >&2 "the host's .pc files will be used (even if you set PKG_CONFIG_PATH)."
3654                 echo >&2 "Set this variable to the directory that contains target .pc files"
3655                 echo >&2 "for pkg-config to function correctly when cross-compiling or"
3656                 echo >&2 "use -force-pkg-config to override this test."
3657                 exit 101
3658             else
3659                 PKG_CONFIG=
3660                 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_LIBDIR is not set."
3661             fi
3662         fi
3663         if [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
3664             if [ -n "$CFG_SYSROOT" ]; then
3665                 PKG_CONFIG_SYSROOT_DIR=$CFG_SYSROOT
3666                 export PKG_CONFIG_SYSROOT_DIR
3667                 echo >&2 "Note: PKG_CONFIG_SYSROOT_DIR automatically set to $PKG_CONFIG_SYSROOT_DIR"
3668             elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3669                 echo >&2 "Error: PKG_CONFIG_SYSROOT_DIR has not been set. Set this variable"
3670                 echo >&2 "to your sysroot for pkg-config to function correctly when cross-compiling"
3671                 echo >&2 "or use -force-pkg-config to override this test."
3672                 exit 101
3673             else
3674                 PKG_CONFIG=
3675                 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_SYSROOT_DIR is not set."
3676             fi
3677         fi
3678     fi
3679 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3680     echo >&2 "Could not detect pkg-config from mkspec or PATH."
3681     exit 101
3682 fi
3683
3684 if [ -z "$PKG_CONFIG" ]; then
3685     QT_CONFIG="$QT_CONFIG no-pkg-config"
3686 fi
3687
3688 #-------------------------------------------------------------------------------
3689 # write out device config before we run the test.
3690 #-------------------------------------------------------------------------------
3691 DEVICE_VARS_OUTFILE="$outpath/mkspecs/qdevice.pri"
3692 if cmp -s "$DEVICE_VARS_FILE" "$DEVICE_VARS_OUTFILE"; then
3693     rm -f "$DEVICE_VARS_FILE"
3694 else
3695     mv -f $DEVICE_VARS_FILE "$DEVICE_VARS_OUTFILE"
3696     DEVICE_VARS_FILE="$DEVICE_VARS_OUTFILE"
3697 fi
3698
3699 #-------------------------------------------------------------------------------
3700 # tests that need qmake
3701 #-------------------------------------------------------------------------------
3702
3703 #-------------------------------------------------------------------------------
3704 # determine the target and host architectures
3705 #-------------------------------------------------------------------------------
3706
3707 # Use config.tests/arch/arch.pro to has the compiler tell us what the target architecture is
3708 OUTFILE=$outpath/arch.result
3709 "$unixtests/arch.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG"
3710 if [ $? -eq 0 ]; then
3711     eval `cat "$OUTFILE"`
3712 else
3713     echo
3714     echo "Could not determine the target architecture!"
3715     echo "Turn on verbose messaging (-v) to see the final report."
3716 fi
3717 rm -f "$OUTFILE" 2>/dev/null
3718 [ -z "$CFG_ARCH" ] && CFG_ARCH="unknown"
3719
3720 if [ "$QMAKESPEC" != "$XQMAKESPEC" ]; then
3721     # Do the same test again, using the host compiler
3722     SYSROOT_FLAG= "$unixtests/arch.test" "$QMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG_HOST"
3723     if [ $? -eq 0 ]; then
3724         eval `cat "$OUTFILE"`
3725     else
3726         echo
3727         echo "Could not determine the host architecture!"
3728         echo "Turn on verbose messaging (-v) to see the final report."
3729     fi
3730     rm -f "$OUTFILE" 2>/dev/null
3731     [ -z "$CFG_HOST_ARCH" ] && CFG_HOST_ARCH="unknown"
3732 else
3733     # not cross compiling, host == target
3734     CFG_HOST_ARCH="$CFG_ARCH"
3735     CFG_HOST_CPUFEATURES="$CFG_CPUFEATURES"
3736 fi
3737 unset OUTFILE
3738
3739 if [ "$OPT_VERBOSE" = "yes" ]; then
3740     echo "System architecture: '$CFG_ARCH'"
3741     echo "Host architecture: '$CFG_HOST_ARCH'"
3742 fi
3743
3744 #-------------------------------------------------------------------------------
3745 # functionality tests
3746 #-------------------------------------------------------------------------------
3747
3748 # Detect C++11 support
3749 if [ "$CFG_CXX11" != "no" ]; then
3750     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
3751         CFG_CXX11="yes"
3752     elif [ "$CFG_CXX11" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3753         echo "C++11 support cannot be enabled due to functionality tests!"
3754         echo " Turn on verbose messaging (-v) to $0 to see the final report."
3755         echo " If you believe this message is in error you may use the continue"
3756         echo " switch (-continue) to $0 to continue."
3757         exit 101
3758     else
3759         CFG_CXX11="no"
3760     fi
3761 fi
3762
3763 # detect availability of float math.h functions
3764 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
3765     CFG_USE_FLOATMATH=yes
3766 else
3767     CFG_USE_FLOATMATH=no
3768 fi
3769
3770 # detect sse2 support
3771 if [ "${CFG_SSE2}" = "auto" ]; then
3772     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
3773        CFG_SSE2=yes
3774     else
3775        CFG_SSE2=no
3776     fi
3777 fi
3778
3779 # detect sse3 support
3780 if [ "${CFG_SSE3}" = "auto" ]; then
3781     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
3782        CFG_SSE3=yes
3783     else
3784        CFG_SSE3=no
3785     fi
3786 fi
3787
3788 # detect ssse3 support
3789 if [ "${CFG_SSSE3}" = "auto" ]; then
3790     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
3791        CFG_SSSE3=yes
3792     else
3793        CFG_SSSE3=no
3794     fi
3795 fi
3796
3797 # detect sse4.1 support
3798 if [ "${CFG_SSE4_1}" = "auto" ]; then
3799     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
3800        CFG_SSE4_1=yes
3801     else
3802        CFG_SSE4_1=no
3803     fi
3804 fi
3805
3806 # detect sse4.2 support
3807 if [ "${CFG_SSE4_2}" = "auto" ]; then
3808     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
3809        CFG_SSE4_2=yes
3810     else
3811        CFG_SSE4_2=no
3812     fi
3813 fi
3814
3815 # detect avx support
3816 if [ "${CFG_AVX}" = "auto" ]; then
3817     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
3818        case "$XQMAKESPEC" in
3819            *g++*|*-clang*)
3820                # Some clang versions produce internal compiler errors compiling Qt AVX code
3821                case `$TEST_COMPILER --version` in
3822                    Apple\ clang\ version\ 2*|Apple\ clang\ version\ 3.0*)
3823                        CFG_AVX=no
3824                        if [ "$OPT_VERBOSE" = "yes" ]; then
3825                            echo 'AVX support disabled for blacklisted clang compiler'
3826                        fi
3827                        ;;
3828                    *)
3829                        CFG_AVX=yes
3830                        ;;
3831                esac
3832                ;;
3833            *)
3834                CFG_AVX=yes
3835                ;;
3836        esac
3837     else
3838        CFG_AVX=no
3839     fi
3840 fi
3841
3842 # detect avx2 support
3843 if [ "${CFG_AVX}" = "no" ]; then
3844     CFG_AVX2=no
3845 fi
3846 if [ "${CFG_AVX2}" = "auto" ]; then
3847     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
3848        CFG_AVX2=yes
3849     else
3850        CFG_AVX2=no
3851     fi
3852 fi
3853
3854 # check iWMMXt support
3855 if [ "$CFG_IWMMXT" = "yes" ]; then
3856     "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/iwmmxt "iwmmxt" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS
3857     if [ $? != "0" ]; then
3858         echo "The iWMMXt functionality test failed!"
3859         echo " Please make sure your compiler supports iWMMXt intrinsics!"
3860         exit 1
3861     fi
3862 fi
3863
3864 # detect neon support
3865 if [ "$CFG_ARCH" = "arm" ] && [ "${CFG_NEON}" = "auto" ]; then
3866     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
3867         CFG_NEON=yes
3868     else
3869         CFG_NEON=no
3870     fi
3871 elif [ "$CFG_ARCH" != "arm" ]; then
3872     CFG_NEON=no
3873 fi
3874
3875 # detect mips_dsp support
3876 if [ "${CFG_ARCH}" = "mips" ] && [ "${CFG_MIPS_DSP}" = "yes" ]; then
3877   CFG_MIPS_DSP=yes
3878     else
3879   CFG_MIPS_DSP=no
3880 fi
3881
3882 # detect mips_dspr2 support
3883 if [ "${CFG_ARCH}" = "mips" ] && [ "${CFG_MIPS_DSPR2}" = "yes" ]; then
3884   CFG_MIPS_DSPR2=yes
3885     else
3886   CFG_MIPS_DSPR2=no
3887 fi
3888
3889 [ "$XPLATFORM_MINGW" = "yes" ] && QMakeVar add styles "windowsxp windowsvista"
3890
3891 # detect zlib
3892 if [ "$CFG_ZLIB" = "no" ]; then
3893     # Note: Qt no longer support builds without zlib
3894     # So we force a "no" to be "auto" here.
3895     # If you REALLY really need no zlib support, you can still disable
3896     # it by doing the following:
3897     #   add "no-zlib" to mkspecs/qconfig.pri
3898     #   #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
3899     #
3900     # There's no guarantee that Qt will build under those conditions
3901
3902     CFG_ZLIB=auto
3903     ZLIB_FORCED=yes
3904 fi
3905 if [ "$CFG_ZLIB" = "auto" ]; then
3906     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
3907        CFG_ZLIB=system
3908     else
3909        CFG_ZLIB=yes
3910     fi
3911 fi
3912
3913 if [ "$CFG_LARGEFILE" = "auto" ]; then
3914     #Large files should be enabled for all Linux systems
3915     CFG_LARGEFILE=yes
3916 fi
3917
3918 if [ "$CFG_GUI" = "no" ]; then
3919     QPA_PLATFORM_GUARD=no
3920 fi
3921
3922 # detect how jpeg should be built
3923 if [ "$CFG_JPEG" = "auto" ]; then
3924     if [ "$CFG_SHARED" = "yes" ]; then
3925         CFG_JPEG=plugin
3926     else
3927         CFG_JPEG=yes
3928     fi
3929 fi
3930 # detect jpeg
3931 if [ "$CFG_LIBJPEG" = "auto" ]; then
3932     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
3933        CFG_LIBJPEG=system
3934     else
3935        CFG_LIBJPEG=qt
3936     fi
3937 fi
3938
3939 # detect how gif should be built
3940 if [ "$CFG_GIF" = "auto" ]; then
3941     if [ "$CFG_SHARED" = "yes" ]; then
3942         CFG_GIF=plugin
3943     else
3944         CFG_GIF=yes
3945     fi
3946 fi
3947
3948 # detect png
3949 if [ "$CFG_LIBPNG" = "auto" ]; then
3950     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
3951        CFG_LIBPNG=system
3952     else
3953        CFG_LIBPNG=qt
3954     fi
3955 fi
3956
3957 # detect accessibility
3958 if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
3959     CFG_ACCESSIBILITY=yes
3960 fi
3961
3962 if [ "$CFG_EGLFS" = "yes" ]; then
3963     if [ "$CFG_EGL" = "no" ]; then
3964         echo "The EGLFS plugin requires EGL support and cannot be built"
3965         exit 101
3966     fi
3967     if [ "$CFG_OPENGL" != "es2" ]; then
3968         echo "The EGLFS plugin requires OpenGL ES 2 support and cannot be built"
3969         exit 101
3970     fi
3971     CFG_OPENGL="es2"
3972     CFG_EGL=yes
3973 fi
3974
3975 # auto-detect SQL-modules support
3976 for _SQLDR in $CFG_SQL_AVAILABLE; do
3977         case $_SQLDR in
3978         mysql)
3979             if [ "$CFG_SQL_mysql" != "no" ]; then
3980                 [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
3981                 if [ -x "$CFG_MYSQL_CONFIG" ]; then
3982                     QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null`
3983                     QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null`
3984                     QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null`
3985                     QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
3986                     QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
3987                 fi
3988                 if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
3989                     if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3990                         echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
3991                         echo " You need MySql 4 or higher."
3992                         echo " If you believe this message is in error you may use the continue"
3993                         echo " switch (-continue) to $0 to continue."
3994                         exit 101
3995                     else
3996                         CFG_SQL_mysql="no"
3997                         QT_LFLAGS_MYSQL=""
3998                         QT_LFLAGS_MYSQL_R=""
3999                         QT_CFLAGS_MYSQL=""
4000                     fi
4001                 else
4002                     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
4003                         QMakeVar add CONFIG use_libmysqlclient_r
4004                         if [ "$CFG_SQL_mysql" = "auto" ]; then
4005                             CFG_SQL_mysql=plugin
4006                         fi
4007                         QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
4008                     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
4009                         if [ "$CFG_SQL_mysql" = "auto" ]; then
4010                             CFG_SQL_mysql=plugin
4011                         fi
4012                     else
4013                         if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4014                             echo "MySQL support cannot be enabled due to functionality tests!"
4015                             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4016                             echo " If you believe this message is in error you may use the continue"
4017                             echo " switch (-continue) to $0 to continue."
4018                             exit 101
4019                         else
4020                             CFG_SQL_mysql=no
4021                             QT_LFLAGS_MYSQL=""
4022                             QT_LFLAGS_MYSQL_R=""
4023                             QT_CFLAGS_MYSQL=""
4024                         fi
4025                     fi
4026                 fi
4027             fi
4028             ;;
4029         psql)
4030             if [ "$CFG_SQL_psql" != "no" ]; then
4031                 # Be careful not to use native pg_config when cross building.
4032                 if [ "$XPLATFORM_MINGW" != "yes" ] && "$WHICH" pg_config >/dev/null 2>&1; then
4033                     QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null`
4034                     QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null`
4035                 fi
4036                 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
4037                 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
4038                 # But, respect PSQL_LIBS if set
4039                 [ -z "$PSQL_LIBS" ] || QT_LFLAGS_PSQL="$PSQL_LIBS"
4040                 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
4041                     if [ "$CFG_SQL_psql" = "auto" ]; then
4042                         CFG_SQL_psql=plugin
4043                     fi
4044                 else
4045                     if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4046                         echo "PostgreSQL support cannot be enabled due to functionality tests!"
4047                         echo " Turn on verbose messaging (-v) to $0 to see the final report."
4048                         echo " If you believe this message is in error you may use the continue"
4049                         echo " switch (-continue) to $0 to continue."
4050                         exit 101
4051                     else
4052                         CFG_SQL_psql=no
4053                         QT_CFLAGS_PSQL=""
4054                         QT_LFLAGS_PSQL=""
4055                     fi
4056                 fi
4057             fi
4058         ;;
4059         odbc)
4060             if [ "$CFG_SQL_odbc" != "no" ]; then
4061                 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
4062                     if [ "$CFG_SQL_odbc" = "auto" ]; then
4063                         CFG_SQL_odbc=plugin
4064                     fi
4065                 else
4066                     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
4067                         QT_LFLAGS_ODBC="-liodbc"
4068                         if [ "$CFG_SQL_odbc" = "auto" ]; then
4069                             CFG_SQL_odbc=plugin
4070                         fi
4071                     else
4072                         if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4073                             echo "ODBC support cannot be enabled due to functionality tests!"
4074                             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4075                             echo " If you believe this message is in error you may use the continue"
4076                             echo " switch (-continue) to $0 to continue."
4077                             exit 101
4078                         else
4079                             CFG_SQL_odbc=no
4080                         fi
4081                     fi
4082                 fi
4083             fi
4084             ;;
4085         oci)
4086             if [ "$CFG_SQL_oci" != "no" ]; then
4087                 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
4088                     if [ "$CFG_SQL_oci" = "auto" ]; then
4089                         CFG_SQL_oci=plugin
4090                     fi
4091                 else
4092                     if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4093                         echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
4094                         echo " Turn on verbose messaging (-v) to $0 to see the final report."
4095                         echo " If you believe this message is in error you may use the continue"
4096                         echo " switch (-continue) to $0 to continue."
4097                         exit 101
4098                     else
4099                         CFG_SQL_oci=no
4100                     fi
4101                 fi
4102             fi
4103             ;;
4104         tds)
4105             if [ "$CFG_SQL_tds" != "no" ]; then
4106                 [ -z "$SYBASE" ] || QT_LFLAGS_TDS="-L$SYBASE/lib"
4107                 [ -z "$SYBASE_LIBS" ] || QT_LFLAGS_TDS="$QT_LFLAGS_TDS $SYBASE_LIBS"
4108                 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
4109                     if [ "$CFG_SQL_tds" = "auto" ]; then
4110                         CFG_SQL_tds=plugin
4111                     fi
4112                 else
4113                     if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4114                         echo "TDS support cannot be enabled due to functionality tests!"
4115                         echo " Turn on verbose messaging (-v) to $0 to see the final report."
4116                         echo " If you believe this message is in error you may use the continue"
4117                         echo " switch (-continue) to $0 to continue."
4118                         exit 101
4119                     else
4120                         CFG_SQL_tds=no
4121                     fi
4122                 fi
4123             fi
4124             ;;
4125         db2)
4126             if [ "$CFG_SQL_db2" != "no" ]; then
4127                 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
4128                     if [ "$CFG_SQL_db2" = "auto" ]; then
4129                         CFG_SQL_db2=plugin
4130                     fi
4131                 else
4132                     if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4133                         echo "ODBC support cannot be enabled due to functionality tests!"
4134                         echo " Turn on verbose messaging (-v) to $0 to see the final report."
4135                         echo " If you believe this message is in error you may use the continue"
4136                         echo " switch (-continue) to $0 to continue."
4137                         exit 101
4138                     else
4139                         CFG_SQL_db2=no
4140                     fi
4141                 fi
4142             fi
4143             ;;
4144         ibase)
4145             if [ "$CFG_SQL_ibase" != "no" ]; then
4146                 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
4147                     if [ "$CFG_SQL_ibase" = "auto" ]; then
4148                         CFG_SQL_ibase=plugin
4149                     fi
4150                 else
4151                     if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4152                         echo "InterBase support cannot be enabled due to functionality tests!"
4153                         echo " Turn on verbose messaging (-v) to $0 to see the final report."
4154                         echo " If you believe this message is in error you may use the continue"
4155                         echo " switch (-continue) to $0 to continue."
4156                         exit 101
4157                     else
4158                         CFG_SQL_ibase=no
4159                     fi
4160                 fi
4161             fi
4162             ;;
4163         sqlite2)
4164             if [ "$CFG_SQL_sqlite2" != "no" ]; then
4165                 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
4166                     if [ "$CFG_SQL_sqlite2" = "auto" ]; then
4167                         CFG_SQL_sqlite2=plugin
4168                     fi
4169                 else
4170                     if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4171                         echo "SQLite2 support cannot be enabled due to functionality tests!"
4172                         echo " Turn on verbose messaging (-v) to $0 to see the final report."
4173                         echo " If you believe this message is in error you may use the continue"
4174                         echo " switch (-continue) to $0 to continue."
4175                         exit 101
4176                     else
4177                         CFG_SQL_sqlite2=no
4178                     fi
4179                 fi
4180             fi
4181             ;;
4182         sqlite)
4183             if [ "$CFG_SQL_sqlite" != "no" ]; then
4184                 SQLITE_AUTODETECT_FAILED="no"
4185                 if [ "$CFG_SQLITE" = "system" ]; then
4186                     if [ -n "$PKG_CONFIG" ]; then
4187                         QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
4188                         QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
4189                     fi
4190                     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
4191                         if [ "$CFG_SQL_sqlite" = "auto" ]; then
4192                             CFG_SQL_sqlite=plugin
4193                         fi
4194                         QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
4195                     else
4196                         SQLITE_AUTODETECT_FAILED="yes"
4197                         CFG_SQL_sqlite=no
4198                     fi
4199                 elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
4200                     if [ "$CFG_SQL_sqlite" = "auto" ]; then
4201                             CFG_SQL_sqlite=plugin
4202                     fi
4203                 else
4204                     SQLITE_AUTODETECT_FAILED="yes"
4205                     CFG_SQL_sqlite=no
4206                 fi
4207
4208                 if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4209                     echo "SQLite support cannot be enabled due to functionality tests!"
4210                     echo " Turn on verbose messaging (-v) to $0 to see the final report."
4211                     echo " If you believe this message is in error you may use the continue"
4212                     echo " switch (-continue) to $0 to continue."
4213                     exit 101
4214                 fi
4215             fi
4216             ;;
4217         *)
4218             if [ "$OPT_VERBOSE" = "yes" ]; then
4219                 echo "unknown SQL driver: $_SQLDR"
4220             fi
4221             ;;
4222         esac
4223 done
4224
4225 # auto-detect NIS support
4226 if [ "$CFG_NIS" != "no" ]; then
4227     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
4228         CFG_NIS=yes
4229     else
4230         if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4231             echo "NIS support cannot be enabled due to functionality tests!"
4232             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4233             echo " If you believe this message is in error you may use the continue"
4234             echo " switch (-continue) to $0 to continue."
4235             exit 101
4236         else
4237             CFG_NIS=no
4238         fi
4239     fi
4240 fi
4241
4242 # auto-detect CUPS support
4243 if [ "$CFG_CUPS" != "no" ]; then
4244     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
4245         CFG_CUPS=yes
4246     else
4247         if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4248             echo "Cups support cannot be enabled due to functionality tests!"
4249             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4250             echo " If you believe this message is in error you may use the continue"
4251             echo " switch (-continue) to $0 to continue."
4252             exit 101
4253         else
4254             CFG_CUPS=no
4255         fi
4256     fi
4257 fi
4258
4259 # auto-detect iconv(3) support
4260 if [ "$CFG_ICONV" != "no" ]; then
4261     if [ "$XPLATFORM_MINGW" = "yes" ]; then
4262         CFG_ICONV=no
4263     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
4264         CFG_ICONV=yes
4265     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
4266         CFG_ICONV=sun
4267     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
4268         CFG_ICONV=gnu
4269     else
4270         if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4271             echo "Iconv support cannot be enabled due to functionality tests!"
4272             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4273             echo " If you believe this message is in error you may use the continue"
4274             echo " switch (-continue) to $0 to continue."
4275             exit 101
4276         else
4277             CFG_ICONV=no
4278         fi
4279     fi
4280 fi
4281
4282 # auto-detect libdbus-1 support
4283 if [ "$CFG_DBUS" != "no" ]; then
4284     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
4285         QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
4286         QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
4287     fi
4288     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
4289         [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
4290         QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
4291         QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
4292     else
4293         if [ "$CFG_DBUS" = "auto" ]; then
4294             CFG_DBUS=no
4295         elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4296             # CFG_DBUS is "yes" or "linked" here
4297
4298             echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
4299             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4300             echo " If you believe this message is in error you may use the continue"
4301             echo " switch (-continue) to $0 to continue."
4302             exit 101
4303         fi
4304     fi
4305 fi
4306
4307 # auto-detect Glib support
4308 if [ "$CFG_GLIB" != "no" ]; then
4309     if [ -n "$PKG_CONFIG" ]; then
4310         QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
4311         QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
4312     fi
4313     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
4314         CFG_GLIB=yes
4315         QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
4316         QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
4317     else
4318         if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4319             echo "Glib support cannot be enabled due to functionality tests!"
4320             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4321             echo " If you believe this message is in error you may use the continue"
4322             echo " switch (-continue) to $0 to continue."
4323             exit 101
4324         else
4325             CFG_GLIB=no
4326         fi
4327     fi
4328 fi
4329
4330 # auto-detect GTK style support
4331 if [ "$CFG_GLIB" = "yes" -a "$CFG_QGTKSTYLE" != "no" ]; then
4332     if [ -n "$PKG_CONFIG" ]; then
4333         QT_CFLAGS_QGTKSTYLE=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.10 atk 2>/dev/null`
4334         QT_LIBS_QGTKSTYLE=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null`
4335     fi
4336     if [ -n "$QT_CFLAGS_QGTKSTYLE" ] ; then
4337         CFG_QGTKSTYLE=yes
4338         QT_CONFIG="$QT_CONFIG gtkstyle"
4339         QMakeVar set QT_CFLAGS_QGTKSTYLE "$QT_CFLAGS_QGTKSTYLE"
4340         QMakeVar set QT_LIBS_QGTKSTYLE "$QT_LIBS_QGTKSTYLE"
4341     else
4342         if [ "$CFG_QGTKSTYLE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4343             echo "Gtk theme support cannot be enabled due to functionality tests!"
4344             echo " Turn on verbose messaging (-v) to $0 to see the fin  al report."
4345             echo " If you believe this message is in error you may use the continue"
4346             echo " switch (-continue) to $0 to continue."
4347             exit 101
4348         else
4349             CFG_QGTKSTYLE=no
4350         fi
4351     fi
4352 elif [ "$CFG_GLIB" = "no" ]; then
4353     CFG_QGTKSTYLE=no
4354 fi
4355
4356 # ### Vestige
4357 if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
4358     if [ -n "$PKG_CONFIG" ]; then
4359         QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4360         QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4361     fi
4362     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
4363         CFG_GSTREAMER=yes
4364         QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
4365         QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
4366     else
4367         if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4368             echo "Gstreamer support cannot be enabled due to functionality tests!"
4369             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4370             echo " If you believe this message is in error you may use the continue"
4371             echo " switch (-continue) to $0 to continue."
4372             exit 101
4373         else
4374             CFG_GSTREAMER=no
4375         fi
4376     fi
4377 elif [ "$CFG_GLIB" = "no" ]; then
4378     CFG_GSTREAMER=no
4379 fi
4380
4381 # auto-detect libicu support
4382 if [ "$CFG_ICU" != "no" ]; then
4383     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
4384         [ "$CFG_ICU" = "auto" ] && CFG_ICU=yes
4385     else
4386         if [ "$CFG_ICU" = "auto" ]; then
4387             CFG_ICU=no
4388         elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4389             # CFG_ICU is "yes"
4390
4391             echo "The ICU library support cannot be enabled."
4392             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4393             echo " If you believe this message is in error you may use the continue"
4394             echo " switch (-continue) to $0 to continue."
4395             exit 101
4396         fi
4397     fi
4398 fi
4399
4400 # Auto-detect PulseAudio support
4401 if [ "$CFG_PULSEAUDIO" != "no" ]; then
4402     if [ -n "$PKG_CONFIG" ]; then
4403         QT_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4404         QT_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4405     fi
4406     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
4407         CFG_PULSEAUDIO=yes
4408         QMakeVar set QT_CFLAGS_PULSEAUDIO "$QT_CFLAGS_PULSEAUDIO"
4409         QMakeVar set QT_LIBS_PULSEAUDIO "$QT_LIBS_PULSEAUDIO"
4410     else
4411         if [ "$CFG_PULSEAUDIO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4412             echo "PulseAudio support cannot be enabled due to functionality tests!"
4413             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4414             echo " If you believe this message is in error you may use the continue"
4415             echo " switch (-continue) to $0 to continue."
4416             exit 101
4417         else
4418             CFG_PULSEAUDIO=no
4419         fi
4420     fi
4421 fi
4422
4423 # X11/MINGW OpenGL
4424 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4425     # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4426     if [ "$CFG_GUI" = "no" ]; then
4427         if [ "$CFG_OPENGL" = "auto" ]; then
4428             CFG_OPENGL=no
4429         fi
4430         if [ "$CFG_OPENGL" != "no" ]; then
4431             echo "OpenGL enabled, but GUI disabled."
4432             echo " You might need to either enable the GUI or disable OpenGL"
4433             exit 1
4434         fi
4435     fi
4436     if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4437         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
4438             CFG_OPENGL=desktop
4439         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
4440             CFG_OPENGL=es2
4441         else
4442             if [ "$CFG_OPENGL" = "yes" ]; then
4443                 echo "All the OpenGL functionality tests failed!"
4444                 echo " You might need to modify the include and library search paths by editing"
4445                 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4446                 echo " ${XQMAKESPEC}."
4447                 exit 1
4448             fi
4449             CFG_OPENGL=no
4450         fi
4451         case "$PLATFORM" in
4452         hpux*)
4453             # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4454             if [ "$CFG_OPENGL" = "desktop" ]; then
4455                 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/glxfbconfig "OpenGL" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS
4456                 if [ $? != "0" ]; then
4457                     QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4458                 fi
4459             fi
4460             ;;
4461         *)
4462             ;;
4463         esac
4464     elif [ "$CFG_OPENGL" = "es2" ]; then
4465         #OpenGL ES 2.x
4466         "$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
4467         if [ $? != "0" ]; then
4468             echo "The OpenGL ES 2.0 functionality test failed!"
4469             echo " You might need to modify the include and library search paths by editing"
4470             echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4471             echo " ${XQMAKESPEC}."
4472             exit 1
4473         fi
4474     elif [ "$CFG_OPENGL" = "desktop" ]; then
4475         # Desktop OpenGL support
4476         "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/opengl "OpenGL" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS
4477         if [ $? != "0" ]; then
4478             echo "The OpenGL functionality test failed!"
4479             echo " You might need to modify the include and library search paths by editing"
4480             echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4481             echo " ${XQMAKESPEC}."
4482             exit 1
4483         fi
4484         case "$PLATFORM" in
4485         hpux*)
4486             # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4487             "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/glxfbconfig "OpenGL" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS
4488             if [ $? != "0" ]; then
4489                 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4490             fi
4491             ;;
4492         *)
4493             ;;
4494         esac
4495     fi
4496 fi # X11/MINGW OpenGL
4497
4498 if [ "$BUILD_ON_MAC" = "yes" ]; then
4499     if [ "$CFG_PHONON" != "no" ]; then
4500         # Always enable Phonon (unless it was explicitly disabled)
4501         CFG_PHONON=yes
4502     fi
4503
4504     if [ "$CFG_COREWLAN" = "auto" ]; then
4505         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
4506             CFG_COREWLAN=yes
4507         else
4508             CFG_COREWLAN=no
4509         fi
4510     fi
4511 fi
4512
4513 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4514 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4515     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
4516         CFG_OPENGL=desktop
4517     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
4518         CFG_OPENGL=es2
4519     else
4520         if [ "$CFG_OPENGL" = "yes" ]; then
4521             echo "All the OpenGL functionality tests failed!"
4522             echo " You might need to modify the include and library search paths by editing"
4523             echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4524             echo " ${XQMAKESPEC}."
4525             exit 1
4526         fi
4527         CFG_OPENGL=no
4528     fi
4529 elif [ "$CFG_OPENGL" = "es2" ]; then
4530     #OpenGL ES 2.x
4531     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists glesv2 2>/dev/null; then
4532         QMAKE_INCDIR_OPENGL_ES2=`$PKG_CONFIG --cflags-only-I glesv2 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4533         QMAKE_LIBDIR_OPENGL_ES2=`$PKG_CONFIG --libs-only-L glesv2 2>/dev/null | sed -e 's,^-L,,g' -e 's, -L, ,g'`
4534         QMAKE_LIBS_OPENGL_ES2=`$PKG_CONFIG --libs glesv2 2>/dev/null`
4535         QMAKE_CFLAGS_OPENGL_ES2=`$PKG_CONFIG --cflags glesv2 2>/dev/null`
4536         QMakeVar set QMAKE_INCDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`"
4537         QMakeVar set QMAKE_LIBDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBDIR_OPENGL_ES2"`"
4538         QMakeVar set QMAKE_LIBS_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBS_OPENGL_ES2"`"
4539     fi
4540
4541     "$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
4542     if [ $? != "0" ]; then
4543         echo "The OpenGL ES 2.0 functionality test failed!"
4544         echo " You might need to modify the include and library search paths by editing"
4545         echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4546         echo " ${XQMAKESPEC}."
4547         exit 1
4548     fi
4549 elif [ "$CFG_OPENGL" = "desktop" ]; then
4550     # Desktop OpenGL support
4551     "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengldesktop "OpenGL" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS
4552     if [ $? != "0" ]; then
4553         echo "The OpenGL functionality test failed!"
4554         echo " You might need to modify the include and library search paths by editing"
4555         echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4556         echo " ${XQMAKESPEC}."
4557         exit 1
4558     fi
4559 fi
4560
4561 # auto-detect FontConfig support
4562 if [ "$CFG_FONTCONFIG" != "no" ]; then
4563     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
4564         QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
4565         QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
4566     else
4567         QT_CFLAGS_FONTCONFIG=
4568         QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
4569     fi
4570     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
4571         QT_CONFIG="$QT_CONFIG fontconfig"
4572         QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG"
4573         QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG"
4574         CFG_FONTCONFIG=yes
4575         CFG_LIBFREETYPE=system
4576     else
4577         CFG_FONTCONFIG=no
4578     fi
4579
4580 fi
4581
4582 # Save these for a check later
4583 ORIG_CFG_XCB="$CFG_XCB"
4584 ORIG_CFG_EGLFS="$CFG_EGLFS"
4585 ORIG_CFG_DIRECTFB="$CFG_DIRECTFB"
4586
4587 if [ "$CFG_LIBUDEV" != "no" ]; then
4588     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then
4589         QMAKE_INCDIR_LIBUDEV=`$PKG_CONFIG --cflags-only-I libudev 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4590         QMAKE_LIBS_LIBUDEV=`$PKG_CONFIG --libs libudev 2>/dev/null`
4591         QMakeVar set QMAKE_INCDIR_LIBUDEV "$QMAKE_INCDIR_LIBUDEV"
4592         QMakeVar set QMAKE_LIBS_LIBUDEV "$QMAKE_LIBS_LIBUDEV"
4593     fi
4594     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
4595         CFG_LIBUDEV=yes
4596         QT_CONFIG="$QT_CONFIG libudev"
4597     elif [ "$CFG_LIBUDEV" = "yes" ]; then
4598         echo "The libudev functionality test failed!"
4599         exit 1
4600     else
4601         CFG_LIBUDEV=no
4602         QMakeVar add DEFINES QT_NO_LIBUDEV
4603     fi
4604 fi
4605
4606 if [ "$CFG_EVDEV" != "no" ]; then
4607     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
4608         CFG_EVDEV=yes
4609         QT_CONFIG="$QT_CONFIG evdev"
4610     elif [ "$CFG_EVDEV" = "yes" ]; then
4611         echo "The evdev functionality test failed!"
4612         exit 1
4613     else
4614         CFG_EVDEV=no
4615         QMakeVar add DEFINES QT_NO_EVDEV
4616     fi
4617 fi
4618
4619 # Check we actually have X11 :-)
4620 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
4621     QT_CONFIG="$QT_CONFIG xlib"
4622 fi
4623
4624 # auto-detect Xrender support
4625 if [ "$CFG_XRENDER" != "no" ]; then
4626     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
4627         CFG_XRENDER=yes
4628         QT_CONFIG="$QT_CONFIG xrender"
4629     else
4630         if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4631             echo "Xrender support cannot be enabled due to functionality tests!"
4632             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4633             echo " If you believe this message is in error you may use the continue"
4634             echo " switch (-continue) to $0 to continue."
4635             exit 101
4636         else
4637             CFG_XRENDER=no
4638         fi
4639     fi
4640 fi
4641
4642 if [ "$CFG_XCB" != "no" ]; then
4643     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4644         QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb 2>/dev/null`"
4645         QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb 2>/dev/null`"
4646     fi
4647     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
4648         CFG_XCB=yes
4649         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
4650             QT_CONFIG="$QT_CONFIG xcb-render"
4651         fi
4652
4653         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
4654             CFG_XCB_LIMITED=no
4655             QT_CONFIG="$QT_CONFIG xcb-poll-for-queued-event"
4656         fi
4657
4658         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
4659             QT_CONFIG="$QT_CONFIG xcb-xlib"
4660         fi
4661
4662         # auto-detect XInput2 support. Needed by xcb too.
4663         if [ "$CFG_XINPUT2" != "no" ]; then
4664             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
4665                 CFG_XINPUT2=yes
4666                 CFG_XINPUT=no
4667             else
4668                 if [ "$CFG_XINPUT2" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4669                     echo "XInput2 support cannot be enabled due to functionality tests!"
4670                     echo " Turn on verbose messaging (-v) to $0 to see the final report."
4671                     echo " If you believe this message is in error you may use the continue"
4672                     echo " switch (-continue) to $0 to continue."
4673                     exit 101
4674                 else
4675                     CFG_XINPUT2=no
4676                 fi
4677             fi
4678         fi
4679     else
4680         if [ "$CFG_XCB" = "yes" ]; then
4681             echo "The XCB test failed!"
4682             echo " You might need to install dependency packages."
4683             echo " See src/plugins/platforms/xcb/README."
4684             exit 1
4685         fi
4686         CFG_XCB=no
4687         QMakeVar add DEFINES QT_NO_XCB
4688     fi
4689 fi
4690
4691 if [ "$CFG_DIRECTFB" != "no" ]; then
4692     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists directfb 2>/dev/null; then
4693         QMAKE_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
4694         QMAKE_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
4695         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
4696             CFG_DIRECTFB=yes
4697         elif [ "$CFG_DIRECTFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4698             echo " DirectFB support cannot be enabled due to functionality tests!"
4699             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4700             echo " If you believe this message is in error you may use the continue"
4701             echo " switch (-continue) to $0 to continue."
4702             exit 101
4703         else
4704             CFG_DIRECTFB=no
4705         fi
4706     else
4707         CFG_DIRECTFB=no
4708     fi
4709 fi
4710
4711 # Detect libxkbcommon
4712 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
4713     QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
4714     QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon 2>/dev/null`"
4715     QMAKE_CFLAGS_XCB="$QMAKE_CFLAGS_XCB $QMAKE_CFLAGS_XKBCOMMON"
4716     QMAKE_LIBS_XCB="$QMAKE_LIBS_XCB $QMAKE_LIBS_XKBCOMMON"
4717 else
4718     QMAKE_DEFINES_XCB=QT_NO_XCB_XKB
4719 fi
4720
4721 # EGL Support
4722 if [ "$CFG_EGL" != "no" ] && [ "$CFG_OPENGL" != "desktop" ]; then
4723     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then
4724         QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4725         QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null`
4726         QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null`
4727         QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL"
4728         QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL"
4729     fi       # detect EGL support
4730     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
4731         CFG_EGL=yes
4732     elif [ "$CFG_EGL" = "yes" ]; then
4733         echo " The EGL functionality test failed; EGL is required by some QPA plugins to manage contexts & surfaces."
4734         echo " You might need to modify the include and library search paths by editing"
4735         echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in ${XQMAKESPEC}."
4736         exit 1
4737     else
4738         CFG_EGL=no
4739     fi
4740 elif [ "$CFG_OPENGL" = "desktop" ]; then
4741     if [ "$CFG_EGL" = "yes" ]; then
4742         echo "EGL support was requested but Qt is being configured for desktop OpenGL."
4743         echo "Either disable EGL support or enable OpenGL ES support."
4744         exit 101
4745     fi
4746     CFG_EGL=no
4747 fi
4748
4749 if [ "$CFG_EGLFS" != "no" ]; then
4750     if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EVDEV" = "yes" ]; then
4751         CFG_EGLFS="$CFG_EGL"
4752     else
4753         CFG_EGLFS="no"
4754     fi
4755 fi
4756
4757 # Determine the default QPA platform
4758 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4759     # check the mkspec
4760     QT_QPA_DEFAULT_PLATFORM=`getXQMakeConf QT_QPA_DEFAULT_PLATFORM`
4761     if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4762         if [ "$XPLATFORM_MINGW" = "yes" ]; then
4763             QT_QPA_DEFAULT_PLATFORM="windows"
4764         elif [ "$BUILD_ON_MAC" = "yes" ]; then
4765             QT_QPA_DEFAULT_PLATFORM="cocoa"
4766         elif [ "$UNAME_SYSTEM" = "QNX" ]; then
4767             QT_QPA_DEFAULT_PLATFORM="qnx"
4768         else
4769             QT_QPA_DEFAULT_PLATFORM="xcb"
4770         fi
4771     fi
4772 fi
4773
4774 if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then
4775     QMakeVar set QMAKE_CFLAGS_XCB "$QMAKE_CFLAGS_XCB"
4776     QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB"
4777     QMakeVar set QMAKE_DEFINES_XCB "$QMAKE_DEFINES_XCB"
4778 fi
4779 if [ "$CFG_DIRECTFB" = "yes" ]; then
4780     QT_CONFIG="$QT_CONFIG directfb"
4781     QMakeVar set QMAKE_CFLAGS_DIRECTFB "$QMAKE_CFLAGS_DIRECTFB"
4782     QMakeVar set QMAKE_LIBS_DIRECTFB "$QMAKE_LIBS_DIRECTFB"
4783 fi
4784
4785 if [ "$BUILD_ON_MAC" = "yes" ]; then
4786     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
4787         QT_CONFIG="$QT_CONFIG coreservices"
4788     else
4789         QMakeVar add DEFINES QT_NO_CORESERVICES
4790     fi
4791 fi
4792
4793 if [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ] && [ "$XPLATFORM_QNX" = "no" ]; then
4794     if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ] && [ "$CFG_DIRECTFB" = "no" ]; then
4795         if [ "$QPA_PLATFORM_GUARD" = "yes" ] &&
4796             ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] || [ "$ORIG_CFG_DIRECTFB" = "auto" ] ); then
4797         echo "No QPA platform plugin enabled!"
4798         echo " If you really want to build without a QPA platform plugin you must pass"
4799         echo " -no-qpa-platform-guard to configure. Doing this will"
4800         echo " produce a Qt that can not run GUI applications."
4801         echo " The dependencies needed for xcb to build are listed in"
4802         echo " src/plugins/platforms/xcb/README"
4803         exit 1
4804     fi
4805 fi
4806     fi
4807
4808 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_PHONON" != "no" ] && CFG_PHONON="yes"
4809
4810 # freetype support
4811 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_LIBFREETYPE" = "auto" ] && CFG_LIBFREETYPE=no
4812 if [ "$CFG_LIBFREETYPE" = "auto" ]; then
4813     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
4814         CFG_LIBFREETYPE=system
4815     else
4816         CFG_LIBFREETYPE=yes
4817     fi
4818 fi
4819
4820 if ! "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/stl "STL" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS &&
4821     [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4822     echo "STL functionality check failed! Cannot build Qt with this STL library."
4823     echo " Turn on verbose messaging (-v) to $0 to see the final report."
4824     exit 101
4825 fi
4826
4827
4828 # detect POSIX clock_gettime()
4829 if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
4830     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
4831         CFG_CLOCK_GETTIME=yes
4832     else
4833         CFG_CLOCK_GETTIME=no
4834     fi
4835 fi
4836
4837 # detect POSIX monotonic clocks
4838 if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
4839     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
4840         CFG_CLOCK_MONOTONIC=yes
4841     else
4842         CFG_CLOCK_MONOTONIC=no
4843     fi
4844 elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
4845     CFG_CLOCK_MONOTONIC=no
4846 fi
4847
4848 # detect mremap
4849 if [ "$CFG_MREMAP" = "auto" ]; then
4850     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
4851         CFG_MREMAP=yes
4852     else
4853         CFG_MREMAP=no
4854     fi
4855 fi
4856
4857 # find if the platform provides getaddrinfo (ipv6 dns lookups)
4858 if [ "$CFG_GETADDRINFO" != "no" ]; then
4859     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
4860         CFG_GETADDRINFO=yes
4861     else
4862         if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4863             echo "getaddrinfo support cannot be enabled due to functionality tests!"
4864             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4865             echo " If you believe this message is in error you may use the continue"
4866             echo " switch (-continue) to $0 to continue."
4867             exit 101
4868         else
4869             CFG_GETADDRINFO=no
4870         fi
4871     fi
4872 fi
4873
4874 # find if the platform provides inotify
4875 if [ "$CFG_INOTIFY" != "no" ]; then
4876     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
4877         CFG_INOTIFY=yes
4878     else
4879         if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4880             echo "inotify support cannot be enabled due to functionality tests!"
4881             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4882             echo " If you believe this message is in error you may use the continue"
4883             echo " switch (-continue) to $0 to continue."
4884             exit 101
4885         else
4886             CFG_INOTIFY=no
4887         fi
4888     fi
4889 fi
4890
4891 # find if the platform provides if_nametoindex (ipv6 interface name support)
4892 if [ "$CFG_IPV6IFNAME" != "no" ]; then
4893     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
4894         CFG_IPV6IFNAME=yes
4895     else
4896         if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4897             echo "IPv6 interface name support cannot be enabled due to functionality tests!"
4898             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4899             echo " If you believe this message is in error you may use the continue"
4900             echo " switch (-continue) to $0 to continue."
4901             exit 101
4902         else
4903             CFG_IPV6IFNAME=no
4904         fi
4905     fi
4906 fi
4907
4908 # find if the platform provides getifaddrs (network interface enumeration)
4909 if [ "$CFG_GETIFADDRS" != "no" ]; then
4910     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
4911         CFG_GETIFADDRS=yes
4912     else
4913         if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4914             echo "getifaddrs support cannot be enabled due to functionality tests!"
4915             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4916             echo " If you believe this message is in error you may use the continue"
4917             echo " switch (-continue) to $0 to continue."
4918             exit 101
4919         else
4920             CFG_GETIFADDRS=no
4921         fi
4922     fi
4923 fi
4924
4925 # detect OpenSSL
4926 if [ "$CFG_OPENSSL" != "no" ]; then
4927     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
4928         if [ "$CFG_OPENSSL" = "auto" ]; then
4929             CFG_OPENSSL=yes
4930         fi
4931     else
4932         if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4933             echo "OpenSSL support cannot be enabled due to functionality tests!"
4934             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4935             echo " If you believe this message is in error you may use the continue"
4936             echo " switch (-continue) to $0 to continue."
4937             exit 101
4938         else
4939             CFG_OPENSSL=no
4940         fi
4941     fi
4942 fi
4943
4944 # detect PCRE
4945 if [ "$CFG_PCRE" != "qt" ]; then
4946     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
4947         CFG_PCRE=system
4948     else
4949         if [ "$CFG_PCRE" = "system" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4950             echo "PCRE support cannot be enabled due to functionality tests!"
4951             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4952             echo " If you believe this message is in error you may use the continue"
4953             echo " switch (-continue) to $0 to continue."
4954             exit 101
4955         else
4956             CFG_PCRE=qt
4957         fi
4958     fi
4959 fi
4960
4961 # detect OpenVG support
4962 if [ "$CFG_OPENVG" != "no" ]; then
4963     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
4964         if [ "$CFG_OPENVG" = "auto" ]; then
4965             CFG_OPENVG=yes
4966         fi
4967     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
4968         if [ "$CFG_OPENVG" = "auto" ]; then
4969             CFG_OPENVG=yes
4970         fi
4971         CFG_OPENVG_ON_OPENGL=yes
4972     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
4973         if [ "$CFG_OPENVG" = "auto" ]; then
4974             CFG_OPENVG=yes
4975         fi
4976         CFG_OPENVG_LC_INCLUDES=yes
4977     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
4978         if [ "$CFG_OPENVG" = "auto" ]; then
4979             CFG_OPENVG=yes
4980         fi
4981         CFG_OPENVG_LC_INCLUDES=yes
4982         CFG_OPENVG_ON_OPENGL=yes
4983     else
4984         if [ "$CFG_OPENVG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4985             echo "$CFG_OPENVG was specified for OpenVG but cannot be enabled due to functionality tests!"
4986             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4987             echo " If you believe this message is in error you may use the continue"
4988             echo " switch (-continue) to $0 to continue."
4989             exit 101
4990         else
4991             CFG_OPENVG=no
4992         fi
4993     fi
4994     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
4995         CFG_OPENVG_SHIVA=yes
4996     fi
4997 fi
4998
4999 if [ "$CFG_ALSA" = "auto" ]; then
5000     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
5001         CFG_ALSA=yes
5002     else
5003         CFG_ALSA=no
5004     fi
5005 fi
5006
5007 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ] || [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then 
5008     if [ "$CFG_ARCH" = "arm" ]; then
5009        "$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
5010         if [ $? != "0" ]; then
5011            CFG_JAVASCRIPTCORE_JIT=no
5012         fi
5013     else
5014         case "$XPLATFORM" in
5015             linux-icc*)
5016                 CFG_JAVASCRIPTCORE_JIT=no
5017                 ;;
5018         esac
5019     fi
5020 fi
5021
5022 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ]; then
5023     QMakeVar set JAVASCRIPTCORE_JIT yes
5024 elif [ "$CFG_JAVASCRIPTCORE_JIT" = "no" ]; then
5025     QMakeVar set JAVASCRIPTCORE_JIT no
5026 fi
5027
5028 if [ "$CFG_AUDIO_BACKEND" = "auto" ]; then
5029     CFG_AUDIO_BACKEND=yes
5030 fi
5031
5032 if [ "$CFG_LARGEFILE" != "yes" ] && [ "$XPLATFORM_MINGW" = "yes" ]; then
5033     echo "Warning: largefile support cannot be disabled for win32."
5034     CFG_LARGEFILE="yes"
5035 fi
5036
5037 #-------------------------------------------------------------------------------
5038 # ask for all that hasn't been auto-detected or specified in the arguments
5039 #-------------------------------------------------------------------------------
5040
5041 [ "$CFG_CXX11" = "yes" ] && QT_CONFIG="$QT_CONFIG c++11"
5042
5043 # ### Vestige
5044 if [ "$CFG_PHONON_BACKEND" = "yes" ]; then
5045     QT_CONFIG="$QT_CONFIG phonon-backend"
5046 fi
5047
5048 # disable accessibility
5049 if [ "$CFG_ACCESSIBILITY" = "no" ]; then
5050     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
5051 else
5052     QT_CONFIG="$QT_CONFIG accessibility"
5053 fi
5054
5055 # enable egl
5056 if [ "$CFG_EGL" = "yes" ]; then
5057     QT_CONFIG="$QT_CONFIG egl"
5058 else
5059     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL"
5060 fi
5061
5062 # enable eglfs
5063 if [ "$CFG_EGLFS" = "yes" ]; then
5064     QT_CONFIG="$QT_CONFIG eglfs"
5065 else
5066     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGLFS"
5067 fi
5068
5069 # enable openvg
5070 if [ "$CFG_OPENVG" = "no" ]; then
5071     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENVG"
5072 else
5073     QT_CONFIG="$QT_CONFIG openvg"
5074     if [ "$CFG_OPENVG_LC_INCLUDES" = "yes" ]; then
5075         QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LOWER_CASE_VG_INCLUDES"
5076     fi
5077     if [ "$CFG_OPENVG_ON_OPENGL" = "yes" ]; then
5078         QT_CONFIG="$QT_CONFIG openvg_on_opengl"
5079     fi
5080     if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
5081         QT_CONFIG="$QT_CONFIG shivavg"
5082         QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SHIVAVG"
5083     fi
5084 fi
5085
5086 # enable opengl
5087 if [ "$CFG_OPENGL" = "no" ]; then
5088     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
5089 else
5090     QT_CONFIG="$QT_CONFIG opengl"
5091 fi
5092
5093 if [ "$CFG_OPENGL" = "es2" ]; then
5094     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
5095 fi
5096
5097 if [ "$CFG_OPENGL" = "es2" ]; then
5098     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
5099     QT_CONFIG="$QT_CONFIG opengles2"
5100 fi
5101
5102 # build up the variables for output
5103 if [ "$CFG_DEBUG" = "yes" ]; then
5104     QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
5105 elif [ "$CFG_DEBUG" = "no" ]; then
5106     QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
5107 fi
5108 if [ "$CFG_SHARED" = "yes" ]; then
5109     QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
5110     QT_CONFIG="$QT_CONFIG shared"
5111 elif [ "$CFG_SHARED" = "no" ]; then
5112     QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
5113     QT_CONFIG="$QT_CONFIG static"
5114 fi
5115
5116 #FIXME: qpa is implicit this should all be removed
5117 QMAKE_CONFIG="$QMAKE_CONFIG qpa"
5118 QT_CONFIG="$QT_CONFIG qpa"
5119 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qpa"
5120 rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
5121
5122 if [ "$XPLATFORM_MINGW" != "yes" ]; then
5123     # Do not set this here for Windows. Let qmake do it so
5124     # debug and release precompiled headers are kept separate.
5125     QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
5126 fi
5127 QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
5128 QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
5129 QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
5130 QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
5131 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5132     QMAKE_CONFIG="$QMAKE_CONFIG largefile"
5133 fi
5134 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
5135     QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
5136 fi
5137 [ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
5138 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
5139 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
5140 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
5141     QMakeVar add QMAKE_CFLAGS -g
5142     QMakeVar add QMAKE_CXXFLAGS -g
5143     QT_CONFIG="$QT_CONFIG separate_debug_info"
5144 fi
5145 if [ "$CFG_SEPARATE_DEBUG_INFO_NOCOPY" = "yes" ] ; then
5146     QT_CONFIG="$QT_CONFIG separate_debug_info_nocopy"
5147 fi
5148 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
5149 [ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3"
5150 [ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3"
5151 [ "$CFG_SSE4_1" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_1"
5152 [ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2"
5153 [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx"
5154 [ "$CFG_AVX2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx2"
5155 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
5156 [ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
5157 if [ "$CFG_ARCH" = "mips" ]; then
5158     [ "$CFG_MIPS_DSP" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dsp"
5159     [ "$CFG_MIPS_DSPR2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dspr2"
5160 fi
5161 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
5162     QT_CONFIG="$QT_CONFIG clock-gettime"
5163 fi
5164 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
5165     QT_CONFIG="$QT_CONFIG clock-monotonic"
5166 fi
5167 if [ "$CFG_MREMAP" = "yes" ]; then
5168     QT_CONFIG="$QT_CONFIG mremap"
5169 fi
5170 if [ "$CFG_GETADDRINFO" = "yes" ]; then
5171     QT_CONFIG="$QT_CONFIG getaddrinfo"
5172 fi
5173 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
5174     QT_CONFIG="$QT_CONFIG ipv6ifname"
5175 fi
5176 if [ "$CFG_GETIFADDRS" = "yes" ]; then
5177     QT_CONFIG="$QT_CONFIG getifaddrs"
5178 fi
5179 if [ "$CFG_INOTIFY" = "yes" ]; then
5180     QT_CONFIG="$QT_CONFIG inotify"
5181 fi
5182 if [ "$CFG_LIBJPEG" = "no" ]; then
5183     CFG_JPEG="no"
5184 elif [ "$CFG_LIBJPEG" = "system" ]; then
5185     QT_CONFIG="$QT_CONFIG system-jpeg"
5186 fi
5187 if [ "$CFG_JPEG" = "no" ]; then
5188     QT_CONFIG="$QT_CONFIG no-jpeg"
5189 elif [ "$CFG_JPEG" = "yes" ]; then
5190     QT_CONFIG="$QT_CONFIG jpeg"
5191 fi
5192 if [ "$CFG_LIBPNG" = "no" ]; then
5193     CFG_PNG="no"
5194 fi
5195 if [ "$CFG_LIBPNG" = "system" ]; then
5196     QT_CONFIG="$QT_CONFIG system-png"
5197 fi
5198 if [ "$CFG_PNG" = "no" ]; then
5199     QT_CONFIG="$QT_CONFIG no-png"
5200 elif [ "$CFG_PNG" = "yes" ]; then
5201     QT_CONFIG="$QT_CONFIG png"
5202 fi
5203 if [ "$CFG_GIF" = "no" ]; then
5204     QT_CONFIG="$QT_CONFIG no-gif"
5205 elif [ "$CFG_GIF" = "yes" ]; then
5206     QT_CONFIG="$QT_CONFIG gif"
5207 fi
5208 if [ "$CFG_LIBFREETYPE" = "no" ]; then
5209     QT_CONFIG="$QT_CONFIG no-freetype"
5210     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FREETYPE"
5211 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
5212     QT_CONFIG="$QT_CONFIG system-freetype"
5213 else
5214     QT_CONFIG="$QT_CONFIG freetype"
5215 fi
5216 if [ "$CFG_GUI" = "auto" ]; then
5217     CFG_GUI="yes"
5218 fi
5219 if [ "$CFG_GUI" = "no" ]; then
5220     QT_CONFIG="$QT_CONFIG no-gui"
5221     CFG_WIDGETS="no"
5222 fi
5223 if [ "$CFG_WIDGETS" = "no" ]; then
5224     QT_CONFIG="$QT_CONFIG no-widgets"
5225     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WIDGETS"
5226 fi
5227
5228 if [ "x$BUILD_ON_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5229     #On Mac we implicitly link against libz, so we
5230     #never use the 3rdparty stuff.
5231     [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
5232 fi
5233 if [ "$CFG_ZLIB" = "yes" ]; then
5234     QT_CONFIG="$QT_CONFIG zlib"
5235 elif [ "$CFG_ZLIB" = "system" ]; then
5236     QT_CONFIG="$QT_CONFIG system-zlib"
5237 fi
5238
5239 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
5240 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
5241 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
5242 [ "$CFG_ICONV" = "sun" ] && QT_CONFIG="$QT_CONFIG sun-libiconv"
5243 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
5244 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
5245 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
5246 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
5247 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
5248 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
5249 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
5250 [ "$CFG_MAC_HARFBUZZ" = "yes" ] && QT_CONFIG="$QT_CONFIG harfbuzz"
5251 [ "$CFG_XCB" = "yes" ] && QT_CONFIG="$QT_CONFIG xcb"
5252 [ "$CFG_XINPUT2" = "yes" ] && QT_CONFIG="$QT_CONFIG xinput2"
5253
5254 [ '!' -z "$DEFINES" ] && QMakeVar add DEFINES "$DEFINES"
5255 [ '!' -z "$L_FLAGS" ] && QMakeVar add QMAKE_LIBDIR_FLAGS "$L_FLAGS"
5256 [ '!' -z "$l_FLAGS" ] && QMakeVar add LIBS "$l_FLAGS"
5257
5258 if [ "$PLATFORM_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
5259     if [ "$CFG_RPATH" = "yes" ]; then
5260        QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
5261        # set the default rpath to the library installation directory
5262        RPATH_FLAGS="\"$QT_INSTALL_LIBS\" $RPATH_FLAGS"
5263     fi
5264 elif [ -z "`getXQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
5265     if [ -n "$RPATH_FLAGS" ]; then
5266         echo
5267         echo "ERROR: -R cannot be used on this platform as \$QMAKE_LFLAGS_RPATH is"
5268         echo "       undefined."
5269         echo
5270         exit 1
5271     elif [ "$CFG_RPATH" = "yes" ]; then
5272         RPATH_MESSAGE="        NOTE: This platform does not support runtime library paths, using -no-rpath."
5273         CFG_RPATH=no
5274     fi
5275 else
5276     if [ "$CFG_RPATH" = "yes" ]; then
5277         # set the default rpath to the library installation directory
5278         RPATH_FLAGS="\"$QT_INSTALL_LIBS\" $RPATH_FLAGS"
5279     fi
5280     if [ -n "$RPATH_FLAGS" ]; then
5281         # add the user defined rpaths
5282         QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
5283     fi
5284 fi
5285
5286 if [ '!' -z "$I_FLAGS" ]; then
5287     # add the user define include paths
5288     QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
5289     QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
5290 fi
5291
5292 if [ '!' -z "$W_FLAGS" ]; then
5293     # add the user defined warning flags
5294     QMakeVar add QMAKE_CFLAGS_WARN_ON "$W_FLAGS"
5295     QMakeVar add QMAKE_CXXFLAGS_WARN_ON "$W_FLAGS"
5296     QMakeVar add QMAKE_OBJECTIVE_CFLAGS_WARN_ON "$W_FLAGS"
5297 fi
5298
5299 if [ "$XPLATFORM_MINGW" = "yes" ]; then
5300     # mkspecs/features/win32/default_pre.prf sets "no-rtti".
5301     # Follow default behavior of configure.exe by overriding with "rtti".
5302     QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti"
5303 fi
5304
5305 if [ "$CFG_ALSA" = "yes" ]; then
5306     QT_CONFIG="$QT_CONFIG alsa"
5307 fi
5308
5309 if [ "$CFG_PULSEAUDIO" = "yes" ]; then
5310     QT_CONFIG="$QT_CONFIG pulseaudio"
5311 fi
5312
5313 if [ "$CFG_COREWLAN" = "yes" ]; then
5314     QT_CONFIG="$QT_CONFIG corewlan"
5315 fi
5316
5317 if [ "$CFG_ICU" = "yes" ]; then
5318     QT_CONFIG="$QT_CONFIG icu"
5319 fi
5320
5321 if [ "$CFG_FORCE_ASSERTS" = "yes" ]; then
5322     QT_CONFIG="$QT_CONFIG force_asserts"
5323 fi
5324
5325 if [ "$CFG_PCRE" = "qt" ]; then
5326     QMAKE_CONFIG="$QMAKE_CONFIG pcre"
5327 fi
5328
5329 #
5330 # Some Qt modules are too advanced in C++ for some old compilers
5331 # Detect here the platforms where they are known to work.
5332 #
5333 # See Qt documentation for more information on which features are
5334 # supported and on which compilers.
5335 #
5336 canBuildQtConcurrent="yes"
5337 canUseV8Snapshot="yes"
5338
5339 case "$XPLATFORM" in
5340     hpux-g++*)
5341         # PA-RISC's assembly is too limited
5342         # gcc 3.4 on that platform can't build QtXmlPatterns
5343         # the assembly it generates cannot be compiled
5344
5345         # Check gcc's version
5346         case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5347             4*)
5348                 ;;
5349             3.4*)
5350                 canBuildQtXmlPatterns="no"
5351                 ;;
5352             *)
5353                 canBuildWebKit="no"
5354                 canBuildQtXmlPatterns="no"
5355                 ;;
5356         esac
5357         ;;
5358     unsupported/vxworks-*-g++*)
5359         canBuildWebKit="no"
5360         ;;
5361     unsupported/vxworks-*-dcc*)
5362         canBuildWebKit="no"
5363         canBuildQtXmlPatterns="no"
5364         ;;
5365     *-g++*)
5366         # Check gcc's version
5367         case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5368             4*|3.4*)
5369                 ;;
5370             3.3*)
5371                 canBuildWebKit="no"
5372                 ;;
5373             *)
5374                 canBuildWebKit="no"
5375                 canBuildQtXmlPatterns="no"
5376                 ;;
5377         esac
5378         ;;
5379     solaris-cc*)
5380         # Check the compiler version
5381         case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
5382             5.[012345678])
5383                 canBuildWebKit="no"
5384                 canBuildQtXmlPatterns="no"
5385                 canBuildQtConcurrent="no"
5386                 ;;
5387             5.*)
5388                 canBuildWebKit="no"
5389                 canBuildQtConcurrent="no"
5390                 ;;
5391         esac
5392         ;;
5393     hpux-acc*)
5394         canBuildWebKit="no"
5395         canBuildQtXmlPatterns="no"
5396         canBuildQtConcurrent="no"
5397         ;;
5398     hpuxi-acc*)
5399         canBuildWebKit="no"
5400         ;;
5401     aix-xlc*)
5402         # Get the xlC version
5403         cat > xlcver.c <<EOF
5404 #include <stdio.h>
5405 int main()
5406 {
5407     printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
5408     return 0;
5409 }
5410 EOF
5411         xlcver=
5412         if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
5413             xlcver=`./xlcver 2>/dev/null`
5414             rm -f ./xlcver
5415         fi
5416         if [ "$OPT_VERBOSE" = "yes" ]; then
5417             if [ -n "$xlcver" ]; then
5418                 echo Found IBM xlC version: $xlcver.
5419             else
5420                 echo Could not determine IBM xlC version, assuming oldest supported.
5421             fi
5422         fi
5423
5424         case "$xlcver" in
5425             [123456].*)
5426                 canBuildWebKit="no"
5427                 canBuildQtXmlPatterns="no"
5428                 canBuildQtConcurrent="no"
5429                 ;;
5430             *)
5431                 canBuildWebKit="no"
5432                 canBuildQtConcurrent="no"
5433                 ;;
5434         esac
5435         ;;
5436     irix-cc*)
5437         canBuildWebKit="no"
5438         canBuildQtConcurrent="no"
5439         ;;
5440 esac
5441
5442 if [ "$CFG_GUI" = "no" ]; then
5443     # WebKit requires QtGui
5444     canBuildWebKit="no"
5445 fi
5446
5447 if [ "$CFG_SHARED" = "no" ]; then
5448     echo
5449     echo "WARNING: Using static linking will disable the WebKit module."
5450     echo
5451     canBuildWebKit="no"
5452 fi
5453
5454 CFG_CONCURRENT="yes"
5455 if [ "$canBuildQtConcurrent" = "no" ]; then
5456     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
5457     CFG_CONCURRENT="no"
5458 else
5459     QT_CONFIG="$QT_CONFIG concurrent"
5460 fi
5461
5462 # ### Vestige
5463 if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
5464     QT_CONFIG="$QT_CONFIG audio-backend"
5465 fi
5466
5467 # ### Vestige
5468 if [ "$CFG_WEBKIT" = "debug" ]; then
5469     QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug"
5470 fi
5471
5472 # ### Vestige
5473 QT_CONFIG="$QT_CONFIG v8"
5474 # Detect snapshot support
5475 if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
5476     case "$CFG_HOST_ARCH,$CFG_ARCH" in
5477         i386,arm)
5478         ;;
5479     *) canUseV8Snapshot="no"
5480         ;;
5481     esac
5482 else
5483     if [ -n "$_SBOX_DIR" -a "$CFG_ARCH" = "arm" ]; then
5484         # QEMU crashes when building inside Scratchbox with an ARM target
5485         canUseV8Snapshot="no"
5486     fi
5487 fi
5488 if [ "$CFG_V8SNAPSHOT" = "auto" ]; then
5489     CFG_V8SNAPSHOT="$canUseV8Snapshot"
5490 fi
5491 if [ "$CFG_V8SNAPSHOT" = "yes" -a "$canUseV8Snapshot" = "no" ]; then
5492     echo "Error: V8 snapshot was requested, but is not supported on this platform."
5493     exit 1
5494 fi
5495 if [ "$CFG_V8SNAPSHOT" = "yes" ]; then
5496     QT_CONFIG="$QT_CONFIG v8snapshot"
5497 fi
5498
5499 # ### Vestige
5500 if [ "$CFG_QML_DEBUG" = "no" ]; then
5501     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QML_NO_DEBUGGER"
5502 fi
5503
5504 case "$QMAKE_CONF_COMPILER" in
5505 *g++*)
5506     # GNU C++
5507     COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
5508
5509     case "$COMPILER_VERSION" in
5510     *.*.*)
5511         QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
5512         QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
5513         QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
5514         ;;
5515     *.*)
5516         QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
5517         QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
5518         QT_GCC_PATCH_VERSION=0
5519         ;;
5520     esac
5521
5522     ;;
5523 *)
5524     #
5525     ;;
5526 esac
5527
5528 #-------------------------------------------------------------------------------
5529 # part of configuration information goes into qconfig.h
5530 #-------------------------------------------------------------------------------
5531
5532 case "$CFG_QCONFIG" in
5533 full)
5534     echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
5535     ;;
5536 *)
5537     tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
5538     echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
5539     if [ -f "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" ]; then
5540         cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
5541     elif [ -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
5542         cat `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` >>"$tmpconfig"
5543     fi
5544     echo "#endif" >>"$tmpconfig"
5545     ;;
5546 esac
5547
5548 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5549
5550 /* Qt Edition */
5551 #ifndef QT_EDITION
5552 #  define QT_EDITION $QT_EDITION
5553 #endif
5554 EOF
5555
5556 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
5557 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5558
5559 if [ "$CFG_SHARED" = "no" ]; then
5560     cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5561 /* Qt was configured for a static build */
5562 #if !defined(QT_SHARED) && !defined(QT_STATIC)
5563 # define QT_STATIC
5564 #endif
5565
5566 EOF
5567 fi
5568
5569 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5570     echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
5571 fi
5572
5573 if [ "$CFG_FRAMEWORK" = "yes" ]; then
5574     echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
5575 fi
5576
5577 if [ "$BUILD_ON_MAC" = "yes" ]; then
5578     cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5579 #if defined(__LP64__)
5580 # define QT_POINTER_SIZE 8
5581 #else
5582 # define QT_POINTER_SIZE 4
5583 #endif
5584 EOF
5585 else
5586     "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5587     echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
5588 fi
5589
5590 #REDUCE_RELOCATIONS is a elf/unix only thing, so not in windows configure.exe
5591 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
5592     echo "#define QT_REDUCE_RELOCATIONS" >>"$outpath/src/corelib/global/qconfig.h.new"
5593 fi
5594
5595
5596 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5597
5598 if [ "$CFG_DEV" = "yes" ]; then
5599     echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
5600 fi
5601
5602 # Add QPA to config.h
5603 QCONFIG_FLAGS="$QCONFIG_FLAGS Q_WS_QPA QT_NO_QWS_QPF QT_NO_QWS_QPF2"
5604
5605 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
5606     QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
5607 fi
5608
5609 # Add turned on SQL drivers
5610 for DRIVER in $CFG_SQL_AVAILABLE; do
5611     eval "VAL=\$CFG_SQL_$DRIVER"
5612     case "$VAL" in
5613     qt)
5614         ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
5615         QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
5616         SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
5617     ;;
5618     plugin)
5619         SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
5620     ;;
5621     esac
5622 done
5623
5624
5625 QMakeVar set sql-drivers "$SQL_DRIVERS"
5626 QMakeVar set sql-plugins "$SQL_PLUGINS"
5627
5628 # Add other configuration options to the qconfig.h file
5629 [ "$CFG_GIF" = "yes" ]       && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
5630 [ "$CFG_PNG" != "yes" ]      && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
5631 [ "$CFG_JPEG" != "yes" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
5632 [ "$CFG_ZLIB" != "yes" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
5633 [ "$CFG_DBUS" = "no" ]      && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
5634
5635 # X11/Unix/Mac only configs
5636 [ "$CFG_CUPS" = "no" ]       && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
5637 [ "$CFG_ICONV" = "no" ]      && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
5638 [ "$CFG_GLIB" != "yes" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
5639 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
5640 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
5641 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
5642 [ "$CFG_MREMAP" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
5643 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
5644 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
5645 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
5646 [ "$CFG_INOTIFY" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
5647 [ "$CFG_NIS" = "no" ]        && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
5648 [ "$CFG_OPENSSL" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL QT_NO_SSL"
5649 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
5650
5651 [ "$CFG_SM" = "no" ]         && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
5652 [ "$CFG_XCURSOR" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
5653 [ "$CFG_XFIXES" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
5654 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
5655 [ "$CFG_XINERAMA" = "no" ]   && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
5656 [ "$CFG_XKB" = "no" ]        && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
5657 [ "$CFG_XRANDR" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
5658 [ "$CFG_XRENDER" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
5659 [ "$CFG_MITSHM" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
5660 [ "$CFG_XSHAPE" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
5661 [ "$CFG_XVIDEO" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XVIDEO"
5662 [ "$CFG_XSYNC" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
5663 [ "$CFG_XINPUT" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
5664
5665 [ "$CFG_XCURSOR" = "runtime" ]   && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
5666 [ "$CFG_XINERAMA" = "runtime" ]  && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
5667 [ "$CFG_XFIXES" = "runtime" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
5668 [ "$CFG_XRANDR" = "runtime" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
5669 [ "$CFG_XINPUT" = "runtime" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
5670 [ "$CFG_ALSA" = "no" ]           && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
5671 [ "$CFG_PULSEAUDIO" = "no" ]          && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PULSEAUDIO"
5672 [ "$CFG_COREWLAN" = "no" ]       && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_COREWLAN"
5673
5674 # sort QCONFIG_FLAGS for neatness if we can
5675 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
5676 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
5677
5678 if [ -n "$QCONFIG_FLAGS" ]; then
5679 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5680 #ifndef QT_BOOTSTRAPPED
5681
5682 EOF
5683     for cfg in $QCONFIG_FLAGS; do
5684         cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
5685         cfg=`echo $cfg | sed 's/=/ /'`    # turn first '=' into a space
5686         # figure out define logic, so we can output the correct
5687         # ifdefs to override the global defines in a project
5688         cfgdNeg=
5689         if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
5690             # QT_NO_option can be forcefully turned on by QT_option
5691             cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
5692         elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
5693             # QT_option can be forcefully turned off by QT_NO_option
5694             cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
5695         fi
5696
5697         if [ -z $cfgdNeg ]; then
5698 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5699 #ifndef $cfgd
5700 # define $cfg
5701 #endif
5702
5703 EOF
5704         else
5705 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5706 #if defined($cfgd) && defined($cfgdNeg)
5707 # undef $cfgd
5708 #elif !defined($cfgd) && !defined($cfgdNeg)
5709 # define $cfg
5710 #endif
5711
5712 EOF
5713         fi
5714     done
5715 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5716 #endif // QT_BOOTSTRAPPED
5717
5718 EOF
5719 fi
5720
5721 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
5722 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5723 #define QT_VISIBILITY_AVAILABLE
5724
5725 EOF
5726 fi
5727
5728 if [ -n "$QT_LIBINFIX" ]; then
5729 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5730 #define QT_LIBINFIX "$QT_LIBINFIX"
5731
5732 EOF
5733 fi
5734
5735 echo "#define QT_QPA_DEFAULT_PLATFORM_NAME \"$QT_QPA_DEFAULT_PLATFORM\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5736
5737 # avoid unecessary rebuilds by copying only if qconfig.h has changed
5738 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
5739     rm -f "$outpath/src/corelib/global/qconfig.h.new"
5740 else
5741     [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
5742     mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
5743     chmod -w "$outpath/src/corelib/global/qconfig.h"
5744     if [ ! -f "$outpath/include/QtCore/qconfig.h" ]; then
5745         ln -s "$outpath/src/corelib/global/qconfig.h" "$outpath/include/QtCore/qconfig.h"
5746     fi
5747 fi
5748
5749 #-------------------------------------------------------------------------------
5750 # save configuration into qconfig.pri
5751 #-------------------------------------------------------------------------------
5752 QTCONFIG="$outpath/mkspecs/qconfig.pri"
5753 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
5754 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
5755 if [ "$CFG_DEBUG" = "yes" ]; then
5756     QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
5757     if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5758         QT_CONFIG="$QT_CONFIG release"
5759     fi
5760     QT_CONFIG="$QT_CONFIG debug"
5761 elif [ "$CFG_DEBUG" = "no" ]; then
5762     QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
5763     if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5764         QT_CONFIG="$QT_CONFIG debug"
5765     fi
5766     QT_CONFIG="$QT_CONFIG release"
5767 fi
5768 if [ "$CFG_FRAMEWORK" = "no" ]; then
5769     QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
5770 else
5771     QT_CONFIG="$QT_CONFIG qt_framework"
5772     QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
5773 fi
5774 if [ "$CFG_DEV" = "yes" ]; then
5775     QT_CONFIG="$QT_CONFIG private_tests"
5776 fi
5777
5778 cat >>"$QTCONFIG.tmp" <<EOF
5779 #configuration
5780 CONFIG += $QTCONFIG_CONFIG
5781 QT_ARCH = $CFG_ARCH
5782 QT_HOST_ARCH = $CFG_HOST_ARCH
5783 QT_CPU_FEATURES = $CFG_CPUFEATURES
5784 QT_HOST_CPU_FEATURES = $CFG_HOST_CPUFEATURES
5785 QT_EDITION = $Edition
5786 QT_CONFIG += $QT_CONFIG
5787
5788 #versioning
5789 QT_VERSION = $QT_VERSION
5790 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
5791 QT_MINOR_VERSION = $QT_MINOR_VERSION
5792 QT_PATCH_VERSION = $QT_PATCH_VERSION
5793
5794 #namespaces
5795 QT_LIBINFIX = $QT_LIBINFIX
5796 QT_NAMESPACE = $QT_NAMESPACE
5797
5798 EOF
5799
5800 if [ -n "$PKG_CONFIG_SYSROOT_DIR" ] || [ -n "$PKG_CONFIG_LIBDIR" ]; then
5801     echo "# pkgconfig" >> "$QTCONFIG.tmp"
5802     echo "PKG_CONFIG_SYSROOT_DIR = $PKG_CONFIG_SYSROOT_DIR" >> "$QTCONFIG.tmp"
5803     echo "PKG_CONFIG_LIBDIR = $PKG_CONFIG_LIBDIR" >> "$QTCONFIG.tmp"
5804     echo >> "$QTCONFIG.tmp"
5805 fi
5806
5807 if [ -n "$CFG_SYSROOT" ]; then
5808     echo "# sysroot" >>"$QTCONFIG.tmp"
5809     echo `basename "$XQMAKESPEC"` \{ >>"$QTCONFIG.tmp"
5810     echo "    QMAKE_CFLAGS    += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5811     echo "    QMAKE_CXXFLAGS  += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5812     echo "    QMAKE_LFLAGS    += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5813     echo "}" >> "$QTCONFIG.tmp"
5814     echo >> "$QTCONFIG.tmp"
5815 fi
5816 if [ -n "$RPATH_FLAGS" ]; then
5817     echo "QMAKE_RPATHDIR += $RPATH_FLAGS" >> "$QTCONFIG.tmp"
5818 fi
5819 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
5820     echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
5821     echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
5822     echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
5823 fi
5824
5825 if [ -n "$QMAKE_INCDIR_OPENGL_ES2" ]; then
5826     echo "#Qt opengl include path" >> "$QTCONFIG.tmp"
5827     echo "QMAKE_INCDIR_OPENGL_ES2 = `shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`" >> "$QTCONFIG.tmp"
5828 fi
5829
5830 # replace qconfig.pri if it differs from the newly created temp file
5831 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
5832     rm -f "$QTCONFIG.tmp"
5833 else
5834     mv -f "$QTCONFIG.tmp" "$QTCONFIG"
5835 fi
5836
5837 #-------------------------------------------------------------------------------
5838 # save configuration into qmodule.pri
5839 #-------------------------------------------------------------------------------
5840 QTMODULE="$outpath/mkspecs/qmodule.pri"
5841
5842 echo "CONFIG += $QMAKE_CONFIG create_prl link_prl" >> "$QTMODULE.tmp"
5843
5844 # Ensure we can link to uninistalled libraries
5845 if [ "$BUILD_ON_MAC" != "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ] && linkerSupportsFlag -rpath-link "$outpath/lib"; then
5846     echo "QMAKE_LFLAGS    = -Wl,-rpath-link,\$\$QT_BUILD_TREE/lib \$\$QMAKE_LFLAGS" >> "$QTMODULE.tmp"
5847 fi
5848 if [ -n "$QT_CFLAGS_PSQL" ]; then
5849     echo "QT_CFLAGS_PSQL   = $QT_CFLAGS_PSQL" >> "$QTMODULE.tmp"
5850 fi
5851 if [ -n "$QT_LFLAGS_PSQL" ]; then
5852     echo "QT_LFLAGS_PSQL   = $QT_LFLAGS_PSQL" >> "$QTMODULE.tmp"
5853 fi
5854 if [ -n "$QT_CFLAGS_MYSQL" ]; then
5855     echo "QT_CFLAGS_MYSQL   = $QT_CFLAGS_MYSQL" >> "$QTMODULE.tmp"
5856 fi
5857 if [ -n "$QT_LFLAGS_MYSQL" ]; then
5858     echo "QT_LFLAGS_MYSQL   = $QT_LFLAGS_MYSQL" >> "$QTMODULE.tmp"
5859 fi
5860 if [ -n "$QT_CFLAGS_SQLITE" ]; then
5861     echo "QT_CFLAGS_SQLITE   = $QT_CFLAGS_SQLITE" >> "$QTMODULE.tmp"
5862 fi
5863 if [ -n "$QT_LFLAGS_SQLITE" ]; then
5864     echo "QT_LFLAGS_SQLITE   = $QT_LFLAGS_SQLITE" >> "$QTMODULE.tmp"
5865 fi
5866 if [ -n "$QT_LFLAGS_ODBC" ]; then
5867     echo "QT_LFLAGS_ODBC   = $QT_LFLAGS_ODBC" >> "$QTMODULE.tmp"
5868 fi
5869 if [ -n "$QT_LFLAGS_TDS" ]; then
5870     echo "QT_LFLAGS_TDS   = $QT_LFLAGS_TDS" >> "$QTMODULE.tmp"
5871 fi
5872
5873 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
5874     echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$QTMODULE.tmp"
5875 fi
5876
5877 #dump in the OPENSSL_LIBS info
5878 if [ '!' -z "$OPENSSL_LIBS" ]; then
5879     echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$QTMODULE.tmp"
5880 elif [ "$CFG_OPENSSL" = "linked" ]; then
5881     echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$QTMODULE.tmp"
5882 fi
5883
5884 #dump in the SDK info
5885 if [ '!' -z "$CFG_SDK" ]; then
5886    echo "QMAKE_MAC_SDK = $CFG_SDK" >> "$QTMODULE.tmp"
5887 fi
5888
5889 # cmdline args
5890 cat "$QMAKE_VARS_FILE" >> "$QTMODULE.tmp"
5891 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
5892
5893 # replace qmodule.pri if it differs from the newly created temp file
5894 if cmp -s "$QTMODULE.tmp" "$QTMODULE"; then
5895     rm -f "$QTMODULE.tmp"
5896 else
5897     mv -f "$QTMODULE.tmp" "$QTMODULE"
5898 fi
5899
5900 #-------------------------------------------------------------------------------
5901 # save configuration into .qmake.cache
5902 #-------------------------------------------------------------------------------
5903
5904 CACHEFILE="$outpath/.qmake.cache"
5905 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
5906 cat >>"$CACHEFILE.tmp" <<EOF
5907 #paths
5908 QT_SOURCE_TREE = \$\$quote($relpath)
5909 QT_BUILD_TREE = \$\$quote($outpath)
5910 QT_BUILD_PARTS = $CFG_BUILD_PARTS
5911
5912 include(\$\$PWD/mkspecs/qmodule.pri)
5913 CONFIG += dylib depend_includepath fix_output_dirs no_private_qt_headers_warning QTDIR_build
5914
5915 EOF
5916
5917 #dump the qmake spec
5918 if [ -d "$outpath/mkspecs/$XPLATFORM" ]; then
5919    echo "XQMAKESPEC = \$\$QT_BUILD_TREE/mkspecs/$XPLATFORM" >> "$CACHEFILE.tmp"
5920 else
5921    echo "XQMAKESPEC = $XPLATFORM" >> "$CACHEFILE.tmp"
5922 fi
5923 if [ -d "$outpath/mkspecs/$PLATFORM" ]; then
5924    echo "QMAKESPEC = \$\$QT_BUILD_TREE/mkspecs/$PLATFORM" >> "$CACHEFILE.tmp"
5925 else
5926    echo "QMAKESPEC = $PLATFORM" >> "$CACHEFILE.tmp"
5927 fi
5928
5929 # replace .qmake.cache if it differs from the newly created temp file
5930 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
5931     rm -f "$CACHEFILE.tmp"
5932 else
5933     mv -f "$CACHEFILE.tmp" "$CACHEFILE"
5934 fi
5935
5936 #-------------------------------------------------------------------------------
5937 # give feedback on configuration
5938 #-------------------------------------------------------------------------------
5939 exec 3>&1 1>$outpath/config.summary # redirect output temporarily to config.summary
5940
5941 echo
5942 if [ "$XPLATFORM" = "$PLATFORM" ]; then
5943     echo "Build type:    $PLATFORM"
5944 else
5945     echo "Building on:   $PLATFORM"
5946     echo "Building for:  $XPLATFORM"
5947 fi
5948
5949 # the missing space before $CFG_FEATURES is intentional
5950 echo "Architecture:  $CFG_ARCH, features:$CFG_CPUFEATURES"
5951 echo "Host architecture: $CFG_HOST_ARCH, features:$CFG_HOST_CPUFEATURES"
5952
5953 if [ -n "$PLATFORM_NOTES" ]; then
5954     echo "Platform notes:"
5955     echo "$PLATFORM_NOTES"
5956 else
5957     echo
5958 fi
5959
5960 if [ "$OPT_VERBOSE" = "yes" ]; then
5961     echo $ECHO_N "qmake vars .......... $ECHO_C"
5962     cat "$QMAKE_VARS_FILE" | tr '\n' ' '
5963     echo "qmake switches ......... $QMAKE_SWITCHES"
5964 fi
5965
5966 echo "Build .................. $CFG_BUILD_PARTS"
5967 echo "Configuration .......... $QMAKE_CONFIG $QT_CONFIG"
5968 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5969    echo "Debug .................. yes (combined)"
5970    if [ "$CFG_DEBUG" = "yes" ]; then
5971        echo "Default Link ........... debug"
5972    else
5973        echo "Default Link ........... release"
5974    fi
5975 else
5976    echo "Debug .................. $CFG_DEBUG"
5977 fi
5978 echo "C++11 support .......... $CFG_CXX11"
5979 if [ -n "$PKG_CONFIG" ]; then
5980     echo "pkg-config ............. yes"
5981 else
5982     echo "pkg-config ............. no"
5983 fi
5984 [ "$CFG_DBUS" = "no" ]     && echo "QtDBus module .......... no"
5985 [ "$CFG_DBUS" = "yes" ]    && echo "QtDBus module .......... yes (run-time)"
5986 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)"
5987 echo "QtConcurrent code ...... $CFG_CONCURRENT"
5988 echo "QtGui module ........... $CFG_GUI"
5989 echo "QtWidgets module ....... $CFG_WIDGETS"
5990 if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
5991     echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore"
5992 else
5993     echo "JavaScriptCore JIT ..... $CFG_JAVASCRIPTCORE_JIT"
5994 fi
5995 echo "QML debugging .......... $CFG_QML_DEBUG"
5996 echo "PCH support ............ $CFG_PRECOMPILE"
5997 if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
5998     echo "SSE2/SSE3/SSSE3......... ${CFG_SSE2}/${CFG_SSE3}/${CFG_SSSE3}"
5999     echo "SSE4.1/SSE4.2........... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
6000     echo "AVX/AVX2................ ${CFG_AVX}/${CFG_AVX2}"
6001 elif [ "$CFG_ARCH" = "arm" ]; then
6002     echo "iWMMXt support ......... ${CFG_IWMMXT}"
6003     echo "NEON support ........... ${CFG_NEON}"
6004 fi
6005 if [ "$CFG_ARCH" = "mips" ]; then
6006     echo "MIPS_DSP/MIPS_DSPR2..... ${CFG_MIPS_DSP}/${CFG_MIPS_DSPR2}"
6007 fi
6008 echo "IPv6 ifname support .... $CFG_IPV6IFNAME"
6009 echo "getaddrinfo support .... $CFG_GETADDRINFO"
6010 echo "getifaddrs support ..... $CFG_GETIFADDRS"
6011 echo "Accessibility .......... $CFG_ACCESSIBILITY"
6012 echo "NIS support ............ $CFG_NIS"
6013 echo "CUPS support ........... $CFG_CUPS"
6014 echo "Iconv support .......... $CFG_ICONV"
6015 echo "Glib support ........... $CFG_GLIB"
6016 echo "GStreamer support ...... $CFG_GSTREAMER"
6017 echo "PulseAudio support ..... $CFG_PULSEAUDIO"
6018 echo "Large File support ..... $CFG_LARGEFILE"
6019 echo "GIF support ............ $CFG_GIF"
6020 if [ "$CFG_JPEG" = "no" ]; then
6021     echo "JPEG support ........... $CFG_JPEG"
6022 else
6023     echo "JPEG support ........... $CFG_JPEG ($CFG_LIBJPEG)"
6024 fi
6025 if [ "$CFG_PNG" = "no" ]; then
6026     echo "PNG support ............ $CFG_PNG"
6027 else
6028     echo "PNG support ............ $CFG_PNG ($CFG_LIBPNG)"
6029 fi
6030 echo "zlib support ........... $CFG_ZLIB"
6031 echo "Session management ..... $CFG_SM"
6032 echo "libudev support ........ $CFG_LIBUDEV"
6033
6034 if [ "$CFG_OPENGL" = "desktop" ]; then
6035     echo "OpenGL support ......... yes (Desktop OpenGL)"
6036 elif [ "$CFG_OPENGL" = "es2" ]; then
6037     echo "OpenGL support ......... yes (OpenGL ES 2.x)"
6038 else
6039     echo "OpenGL support ......... no"
6040 fi
6041
6042 if [ "$CFG_OPENVG" ]; then
6043     if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
6044         echo "OpenVG support ......... ShivaVG"
6045     else
6046         echo "OpenVG support ......... $CFG_OPENVG"
6047     fi
6048 fi
6049
6050 echo "XShape support ......... $CFG_XSHAPE"
6051 echo "XVideo support ......... $CFG_XVIDEO"
6052 echo "XSync support .......... $CFG_XSYNC"
6053 echo "Xinerama support ....... $CFG_XINERAMA"
6054 echo "Xcursor support ........ $CFG_XCURSOR"
6055 echo "Xfixes support ......... $CFG_XFIXES"
6056 echo "Xrandr support ......... $CFG_XRANDR"
6057 echo "Xi support ............. $CFG_XINPUT"
6058 echo "Xi2 support ............ $CFG_XINPUT2"
6059 echo "MIT-SHM support ........ $CFG_MITSHM"
6060 echo "FontConfig support ..... $CFG_FONTCONFIG"
6061 echo "XKB Support ............ $CFG_XKB"
6062 echo "immodule support ....... $CFG_IM"
6063 echo "GTK theme support ...... $CFG_QGTKSTYLE"
6064
6065 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support .......... $CFG_SQL_mysql"
6066 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support ..... $CFG_SQL_psql"
6067 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........... $CFG_SQL_odbc"
6068 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ............ $CFG_SQL_oci"
6069 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ............ $CFG_SQL_tds"
6070 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ............ $CFG_SQL_db2"
6071 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ...... $CFG_SQL_ibase"
6072 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support ....... $CFG_SQL_sqlite2"
6073 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ......... $CFG_SQL_sqlite ($CFG_SQLITE)"
6074
6075 OPENSSL_LINKAGE=""
6076 if [ "$CFG_OPENSSL" = "yes" ]; then
6077     OPENSSL_LINKAGE="(run-time)"
6078 elif [ "$CFG_OPENSSL" = "linked" ]; then
6079     OPENSSL_LINKAGE="(linked)"
6080 fi
6081 echo "OpenSSL support ........ $CFG_OPENSSL $OPENSSL_LINKAGE"
6082 echo "Alsa support ........... $CFG_ALSA"
6083 if [ "$BUILD_ON_MAC" = "yes" ]; then
6084     echo "CoreWlan support ....... $CFG_COREWLAN"
6085 fi
6086 echo "libICU support ......... $CFG_ICU"
6087 echo "PCRE support ........... $CFG_PCRE"
6088 if [ "$CFG_XCB_LIMITED" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6089     echo "Xcb support ............ limited (old version)"
6090 else
6091     echo "Xcb support ............ $CFG_XCB"
6092 fi
6093 echo "Xrender support ........ $CFG_XRENDER"
6094 if [ "$XPLATFORM_MAEMO" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6095     echo "XInput2 support ........ $CFG_XINPUT2"
6096 fi
6097 echo "EGLFS support .......... $CFG_EGLFS"
6098 echo "DirectFB support ....... $CFG_DIRECTFB"
6099 echo
6100
6101 # complain about not being able to use dynamic plugins if we are using a static build
6102 if [ "$CFG_SHARED" = "no" ]; then
6103     echo
6104     echo "WARNING: Using static linking will disable the use of dynamically"
6105     echo "loaded plugins. Make sure to import all needed static plugins,"
6106     echo "or compile needed modules into the library."
6107     echo
6108 fi
6109 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
6110     echo
6111     echo "NOTE: When linking against OpenSSL, you can override the default"
6112     echo "library names through OPENSSL_LIBS."
6113     echo "For example:"
6114     echo "    OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
6115     echo
6116 fi
6117
6118 exec 1>&3 3>&- # restore stdout
6119 cat $outpath/config.summary # display config feedback to user
6120
6121 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
6122     echo
6123     echo "Error: debug-only framework builds are not supported. Configure with -no-framework"
6124     echo "if you want a pure debug build."
6125     echo
6126     exit 1
6127 fi
6128
6129 sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
6130 PROCS=1
6131 EXEC=""
6132
6133
6134 #-------------------------------------------------------------------------------
6135 # build makefiles based on the configuration
6136 #-------------------------------------------------------------------------------
6137
6138 if [ "$CFG_NOPROCESS" != "yes" ]; then
6139     echo "Creating makefiles. Please wait..."
6140     "$outpath/bin/qmake" -r ${OPT_FAST+CONFIG+=fast} "$relpath"
6141     echo "Done"
6142
6143     if [ "$OPT_FAST" = "yes" ]; then
6144         PART_ROOTS=
6145         for part in $CFG_BUILD_PARTS; do
6146             case "$part" in
6147             examples|tests) PART_ROOTS="$PART_ROOTS $part" ;;
6148             esac
6149         done
6150         if [ "x$PART_ROOTS" != "x" ]; then
6151             echo
6152             echo "Creating stub makefiles. Please wait..."
6153             QMAKE="$outpath/bin/qmake"
6154             [ "$CFG_DEBUG_RELEASE" = "no" ] && first_tgt="first_target: first" || first_tgt=
6155             (cd "$relpath" && find $PART_ROOTS -name '*.pro') | grep -v /testdata/ | while read p; do
6156                 d=${p%/*}
6157                 test -f "$outpath/$d/Makefile" && continue
6158                 echo "  for $relpath/$p"
6159
6160                 mkdir -p "$outpath/$d" || exit
6161                 cat > "$outpath/$d/Makefile" <<EOF || exit
6162 # $outpath/$d/Makefile: generated by configure
6163 #
6164 # WARNING: This makefile will be replaced with a real makefile.
6165 # All changes made to this file will be lost.
6166
6167 QMAKE = "$QMAKE"
6168
6169 $first_tgt
6170 all clean install qmake first Makefile: FORCE
6171         \$(QMAKE) $QMAKE_SWITCHES "$relpath/$p"
6172         \$(MAKE) \$@
6173 FORCE:
6174 EOF
6175             done || exit
6176             echo "Done"
6177         fi
6178     fi
6179 fi
6180
6181 #-------------------------------------------------------------------------------
6182 # check for platforms that we don't yet know about
6183 #-------------------------------------------------------------------------------
6184 if [ "$CFG_ARCH" = "unknown" ]; then
6185 cat <<EOF
6186
6187         NOTICE: configure was unable to determine the architecture
6188         for the $XQMAKESPEC target.
6189
6190         Qt will not use a specialized implementation for any atomic
6191         operations. Instead a generic implemention based on either GCC
6192         intrinsics or C++11 std::atomic<T> will be used (when
6193         available). The generic implementations are generally as fast
6194         as and always as safe as a specialized implementation.
6195
6196         If no generic implementation is available, Qt will use a
6197         fallback UNIX implementation which uses a single
6198         pthread_mutex_t to protect all atomic operations. This
6199         implementation is the slow (but safe) fallback implementation
6200         for architectures Qt does not yet support.
6201 EOF
6202 fi
6203
6204 #-------------------------------------------------------------------------------
6205 # check if the user passed the -no-zlib option, which is no longer supported
6206 #-------------------------------------------------------------------------------
6207 if [ -n "$ZLIB_FORCED" ]; then
6208     which_zlib="supplied"
6209     if [ "$CFG_ZLIB" = "system" ]; then
6210         which_zlib="system"
6211     fi
6212
6213 cat <<EOF
6214
6215         NOTICE: The -no-zlib option was supplied but is no longer
6216         supported.
6217
6218         Qt now requires zlib support in all builds, so the -no-zlib
6219         option was ignored. Qt will be built using the $which_zlib
6220         zlib.
6221 EOF
6222 fi
6223
6224 #-------------------------------------------------------------------------------
6225 # check if the user passed the obsoleted -wayland or -no-wayland flag
6226 #-------------------------------------------------------------------------------
6227 if [ "$CFG_OBSOLETE_WAYLAND" = "yes" ]; then
6228 cat <<EOF
6229
6230         NOTICE: The -wayland and -no-wayland flags are now obsolete
6231
6232         All configuring of QtWayland plugin and QtCompositor happens in the module
6233 EOF
6234 fi
6235
6236 #-------------------------------------------------------------------------------
6237 # check if the user passed the obsoleted -arch or -host-arch options
6238 #-------------------------------------------------------------------------------
6239 if [ "$OPT_OBSOLETE_HOST_ARG" = "yes" ]; then
6240 cat <<EOF
6241
6242         NOTICE: The -arch and -host-arch options are obsolete.
6243
6244         Qt now detects the target and host architectures based on compiler
6245         output. Qt will be built using $CFG_ARCH for the target architecture
6246         and $CFG_HOST_ARCH for the host architecture (note that these two
6247         will be the same unless you are cross-compiling).
6248 EOF
6249 fi
6250
6251 #-------------------------------------------------------------------------------
6252 # finally save the executed command to another script
6253 #-------------------------------------------------------------------------------
6254 if [ `basename $0` != "config.status" ]; then
6255     CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
6256
6257     # add the system variables
6258     for varname in $SYSTEM_VARIABLES; do
6259         cmd=`echo \
6260 'if [ -n "\$'${varname}'" ]; then
6261     CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
6262 fi'`
6263         eval "$cmd"
6264     done
6265
6266     echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
6267
6268     [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
6269     echo "#!/bin/sh" > "$outpath/config.status"
6270     [ -n "$PKG_CONFIG_SYSROOT_DIR" ] && \
6271         echo "export PKG_CONFIG_SYSROOT_DIR=$PKG_CONFIG_SYSROOT_DIR" >> "$outpath/config.status"
6272     [ -n "$PKG_CONFIG_LIBDIR" ] && \
6273         echo "export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR" >> "$outpath/config.status"
6274     echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
6275     echo "  $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
6276     echo "else" >> "$outpath/config.status"
6277     echo "  $CONFIG_STATUS" >> "$outpath/config.status"
6278     echo "fi" >> "$outpath/config.status"
6279     chmod +x "$outpath/config.status"
6280 fi
6281
6282 if [ -n "$RPATH_MESSAGE" ]; then
6283     echo
6284     echo "$RPATH_MESSAGE"
6285 fi
6286
6287 MAKE=`basename "$MAKE"`
6288 echo
6289 echo Qt is now configured for building. Just run \'$MAKE\'.
6290 if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
6291     echo Once everything is built, Qt is installed.
6292     echo You should not run \'$MAKE install\'.
6293 else
6294     echo Once everything is built, you must run \'$MAKE install\'.
6295     echo Qt will be installed into $QT_INSTALL_PREFIX
6296 fi
6297 echo
6298 echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.
6299 echo