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