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