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