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