Don't base QTDIR detection on .qmake.cache.
[profile/ivi/qtbase.git] / configure
1 #!/bin/sh
2 #############################################################################
3 ##
4 ## Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
5 ## All rights reserved.
6 ## Contact: Nokia Corporation (qt-info@nokia.com)
7 ##
8 ## This file is the build configuration utility of the Qt Toolkit.
9 ##
10 ## $QT_BEGIN_LICENSE:LGPL$
11 ## GNU Lesser General Public License Usage
12 ## This file may be used under the terms of the GNU Lesser General Public
13 ## License version 2.1 as published by the Free Software Foundation and
14 ## appearing in the file LICENSE.LGPL included in the packaging of this
15 ## file. Please review the following information to ensure the GNU Lesser
16 ## General Public License version 2.1 requirements will be met:
17 ## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
18 ##
19 ## In addition, as a special exception, Nokia gives you certain additional
20 ## rights. These rights are described in the Nokia Qt LGPL Exception
21 ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
22 ##
23 ## GNU General Public License Usage
24 ## Alternatively, this file may be used under the terms of the GNU General
25 ## Public License version 3.0 as published by the Free Software Foundation
26 ## and appearing in the file LICENSE.GPL included in the packaging of this
27 ## file. Please review the following information to ensure the GNU General
28 ## Public License version 3.0 requirements will be met:
29 ## http://www.gnu.org/copyleft/gpl.html.
30 ##
31 ## Other Usage
32 ## Alternatively, this file may be used in accordance with the terms and
33 ## conditions contained in a signed written agreement between you and Nokia.
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
75 :> "$QMAKE_VARS_FILE"
76
77 #-------------------------------------------------------------------------------
78 # utility functions
79 #-------------------------------------------------------------------------------
80
81 shellEscape()
82 {
83     echo "$@" | sed 's/ /\ /g'
84 }
85
86 # Adds a new qmake variable to the cache
87 # Usage: QMakeVar mode varname contents
88 #   where mode is one of: set, add, del
89 QMakeVar()
90 {
91     case "$1" in
92         set)
93             eq="="
94             ;;
95         add)
96             eq="+="
97             ;;
98         del)
99             eq="-="
100             ;;
101         *)
102             echo >&2 "BUG: wrong command to QMakeVar: $1"
103             ;;
104     esac
105
106     echo "$2" "$eq" "$3" >> "$QMAKE_VARS_FILE"
107 }
108
109 # Helper function for getQMakeConf. It parses include statements in
110 # qmake.conf and prints out the expanded file
111 getQMakeConf1()
112 {
113     while read line; do case "$line" in
114         include*)
115             inc_file=`echo "$line" | sed -n -e "/^include.*(.*)/s/include.*(\(.*\)).*$/\1/p"`
116             current_dir=`dirname "$1"`
117             conf_file="$current_dir/$inc_file"
118             if [ ! -f  "$conf_file" ]; then
119                 echo "WARNING: Unable to find file $conf_file" >&2
120                 continue
121             fi
122             getQMakeConf1 "$conf_file"
123         ;;
124         *)
125             echo "$line"
126         ;;
127     esac; done < "$1"
128 }
129
130
131 # relies on $QMAKESPEC being set correctly. parses include statements in
132 # qmake.conf and prints out the expanded file
133 getQMakeConf()
134 {
135     tmpSPEC="$QMAKESPEC"
136     if [ -n "$1" ]; then
137         tmpSPEC="$1"
138     fi
139     getQMakeConf1 "$tmpSPEC/qmake.conf"
140 }
141
142 # relies on $TEST_COMPILER being set correctly
143 compilerSupportsFlag()
144 {
145     cat >conftest.cpp <<EOF
146 int main() { return 0; }
147 EOF
148     "$TEST_COMPILER" "$@" -o conftest.o conftest.cpp
149     ret=$?
150     rm -f conftest.cpp conftest.o
151     return $ret
152 }
153
154 # relies on $TEST_COMPILER being set correctly
155 linkerSupportsFlag()
156 {
157     lflags=-Wl
158     for flag
159     do
160         safe_flag=`shellEscape "$flag"`
161         lflags=$lflags,$safe_flag
162     done
163     compilerSupportsFlag "$lflags" >/dev/null 2>&1
164 }
165
166 #-------------------------------------------------------------------------------
167 # operating system detection
168 #-------------------------------------------------------------------------------
169
170 # need that throughout the script
171 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
172 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
173 UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
174 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
175
176 # detect the "echo without newline" style. usage: echo $ECHO_N "<string>$ECHO_C"
177 if echo '\c' | grep '\c' >/dev/null; then
178     ECHO_N=-n
179 else
180     ECHO_C='\c'
181 fi
182
183 #-------------------------------------------------------------------------------
184 # window system detection
185 #-------------------------------------------------------------------------------
186
187 PLATFORM_X11=no
188 PLATFORM_QWS=maybe
189 PLATFORM_QPA=maybe
190 BUILD_ON_MAC=no
191 if [ -d /System/Library/Frameworks/Carbon.framework ]; then
192     PLATFORM_MAC=maybe
193     BUILD_ON_MAC=yes
194 else
195     PLATFORM_MAC=no
196 fi
197
198 #-----------------------------------------------------------------------------
199 # Qt version detection
200 #-----------------------------------------------------------------------------
201 QT_VERSION=`grep '^# *define *QT_VERSION_STR' "$relpath"/src/corelib/global/qglobal.h`
202 QT_MAJOR_VERSION=
203 QT_MINOR_VERSION=0
204 QT_PATCH_VERSION=0
205 if [ -n "$QT_VERSION" ]; then
206    QT_VERSION=`echo $QT_VERSION | sed 's,^# *define *QT_VERSION_STR *"*\([^ ]*\)"$,\1,'`
207    MAJOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
208    if [ -n "$MAJOR" ]; then
209      MINOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
210       PATCH=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
211       QT_MAJOR_VERSION="$MAJOR"
212       [ -z "$MINOR" ] || QT_MINOR_VERSION="$MINOR"
213       [ -z "$PATCH" ] || QT_PATCH_VERSION="$PATCH"
214    fi
215 fi
216 if [ -z "$QT_MAJOR_VERSION" ]; then
217    echo "Cannot process version from qglobal.h: $QT_VERSION"
218    echo "Cannot proceed."
219    exit 1
220 fi
221
222 QT_PACKAGEDATE=`grep '^# *define *QT_PACKAGEDATE_STR' "$relpath"/src/corelib/global/qglobal.h | sed -e 's,^# *define *QT_PACKAGEDATE_STR *"\([^ ]*\)"$,\1,' -e s,-,,g`
223 if [ -z "$QT_PACKAGEDATE" ]; then
224    echo "Unable to determine package date from qglobal.h: '$QT_PACKAGEDATE'"
225    echo "Cannot proceed"
226    exit 1
227 fi
228
229 #-------------------------------------------------------------------------------
230 # check the license
231 #-------------------------------------------------------------------------------
232 COMMERCIAL_USER=ask
233 CFG_DEV=no
234 CFG_NOKIA=no
235 CFG_EMBEDDED=no
236 CFG_RTOS_ENABLED=yes
237 EditionString=Commercial
238
239 earlyArgParse()
240 {
241     # parse the arguments, setting things to "yes" or "no"
242     while [ "$#" -gt 0 ]; do
243         CURRENT_OPT="$1"
244         UNKNOWN_ARG=no
245         case "$1" in
246         #Autoconf style options
247         --enable-*)
248             VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
249             VAL=yes
250             ;;
251         --disable-*)
252             VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
253             VAL=no
254             ;;
255         --*=*)
256             VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
257             VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
258             ;;
259         --no-*)
260             VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
261             VAL=no
262             ;;
263         -embedded)
264             VAR=embedded
265             # this option may or may not be followed by an argument
266             if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
267                 VAL=auto
268             else
269                 shift;
270                 VAL=$1
271             fi
272             ;;
273         -embedded-lite|-qpa)
274             VAR=qpa
275             # this option may or may not be followed by an argument
276             if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
277                 VAL=auto
278             else
279                 shift;
280                 VAL=$1
281             fi
282             ;;
283         -nacl)
284             shift;
285             VAR=nacl
286             VAL=$1
287             ;;
288
289         -h|help|--help|-help)
290             if [ "$VAL" = "yes" ]; then
291                 OPT_HELP="$VAL"
292                 COMMERCIAL_USER="no" #doesn't matter we will display the help
293             else
294                 UNKNOWN_OPT=yes
295                 COMMERCIAL_USER="no" #doesn't matter we will display the help
296             fi
297             ;;
298         --*)
299             VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
300             VAL=yes
301             ;;
302         -*)
303             VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
304             VAL="unknown"
305             ;;
306         *)
307             UNKNOWN_ARG=yes
308             ;;
309         esac
310         if [ "$UNKNOWN_ARG" = "yes" ]; then
311             shift
312             continue
313         fi
314         shift
315
316         UNKNOWN_OPT=no
317         case "$VAR" in
318         embedded)
319             CFG_EMBEDDED="$VAL"
320             PLATFORM_X11=no
321             PLATFORM_MAC=no
322             PLATFORM_QWS=yes
323             PLATFORM_QPA=no
324             ;;
325         qpa)
326             CFG_EMBEDDED="no"
327             if [ "$PLATFORM_QPA" != "no" ]; then
328                 if [ "$PLATFORM_QPA" = "maybe" ]; then
329                     PLATFORM_X11=no
330                     PLATFORM_MAC=no
331                     PLATFORM_QWS=no
332                     PLATFORM_QPA=yes
333                 fi
334             else
335                 echo "No license exists to enable Qt QPA. Disabling."
336                 CFG_EMBEDDED=no
337             fi
338             ;;
339         nacl)
340             echo "Using NaCl at $VAL."
341             PLATFORM_X11=no
342             PLATFORM_MAC=no
343             PLATFORM_QWS=no
344             CFG_NACL_PATH=$VAL
345             CFG_EMBEDDED=nacl
346             ;;
347
348         developer-build)
349             CFG_DEV="yes"
350             ;;
351         nokia-developer)
352             CFG_DEV="yes"
353             CFG_NOKIA="yes"
354             COMMERCIAL_USER="no"
355             ;;
356         commercial)
357             COMMERCIAL_USER="yes"
358             ;;
359         opensource)
360             COMMERCIAL_USER="no"
361             ;;
362         *)
363             UNKNOWN_OPT=yes
364             ;;
365         esac
366     done
367 }
368
369 earlyArgParse "$@"
370
371 if [ "$COMMERCIAL_USER" = "ask" ]; then
372     while true; do
373         echo "Which edition of Qt do you want to use ?"
374         echo
375         echo "Type 'c' if you want to use the Commercial Edition."
376         echo "Type 'o' if you want to use the Open Source Edition."
377         echo
378         read commercial
379         echo
380         if [ "$commercial" = "c" ]; then
381             COMMERCIAL_USER="yes"
382             break
383         elif [ "$commercial" = "o" ]; then
384             COMMERCIAL_USER="no"
385             break
386         fi
387     done
388 fi
389
390 if [ "$CFG_NOKIA" = "yes" ]; then
391     Licensee="Nokia"
392     Edition="NokiaInternalBuild"
393     EditionString="Nokia Internal Build"
394     QT_EDITION="QT_EDITION_OPENSOURCE"
395     [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
396 elif [ -f "$relpath"/LICENSE.PREVIEW.COMMERCIAL ] && [ $COMMERCIAL_USER = "yes" ]; then
397     # Commercial preview release
398     [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
399     Licensee="Preview"
400     Edition="Preview"
401     QT_EDITION="QT_EDITION_DESKTOP"
402     LicenseType="Technology Preview"
403 elif [ $COMMERCIAL_USER = "yes" ]; then
404     # one of commercial editions
405     [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
406     [ "$PLATFORM_QPA" = "maybe" ] && PLATFORM_QPA=no
407     [ "$PLATFORM_QWS" = "maybe" ] && PLATFORM_QWS=no
408
409     # read in the license file
410     if [ -f "$LICENSE_FILE" ]; then
411         . "$LICENSE_FILE" >/dev/null 2>&1
412         if [ -z "$LicenseKeyExt" ]; then
413             echo
414             echo "You are using an old license file."
415             echo
416             echo "Please install the license file supplied by Nokia,"
417             echo "or install the Qt Open Source Edition if you intend to"
418             echo "develop free software."
419             exit 1
420         fi
421         if [ -z "$Licensee" ]; then
422             echo
423             echo "Invalid license key. Please check the license key."
424             exit 1
425         fi
426     else
427         if [ -z "$LicenseKeyExt" ]; then
428             echo
429             echo $ECHO_N "Please enter your license key: $ECHO_C"
430             read LicenseKeyExt
431             Licensee="Unknown user"
432         fi
433     fi
434
435     # Key verification
436     echo "$LicenseKeyExt" | grep ".....*-....*-....*-....*-.....*-.....*-...." >/dev/null 2>&1 \
437         && LicenseValid="yes" \
438         || LicenseValid="no"
439     if [ "$LicenseValid" != "yes" ]; then
440         echo
441         echo "Invalid license key. Please check the license key."
442         exit 1
443     fi
444     ProductCode=`echo $LicenseKeyExt | cut -f 1 -d - | cut -b 1`
445     PlatformCode=`echo $LicenseKeyExt | cut -f 2 -d -`
446     LicenseTypeCode=`echo $LicenseKeyExt | cut -f 3 -d -`
447     LicenseFeatureCode=`echo $LicenseKeyExt | cut -f 4 -d - | cut -b 1`
448
449     # determine which edition we are licensed to use
450     case "$LicenseTypeCode" in
451     F4M)
452         LicenseType="Commercial"
453         case $ProductCode in
454         F)
455             Edition="Universal"
456             QT_EDITION="QT_EDITION_UNIVERSAL"
457             ;;
458         B)
459             Edition="FullFramework"
460             EditionString="Full Framework"
461             QT_EDITION="QT_EDITION_DESKTOP"
462             ;;
463         L)
464             Edition="GUIFramework"
465             EditionString="GUI Framework"
466             QT_EDITION="QT_EDITION_DESKTOPLIGHT"
467             ;;
468         esac
469         ;;
470     Z4M|R4M|Q4M)
471         LicenseType="Evaluation"
472         QMakeVar add DEFINES QT_EVAL
473         case $ProductCode in
474          B)
475             Edition="Evaluation"
476             QT_EDITION="QT_EDITION_EVALUATION"
477             ;;
478         esac
479         ;;
480     esac
481     if [ -z "$LicenseType" -o -z "$Edition" -o -z "$QT_EDITION" ]; then
482         echo
483         echo "Invalid license key. Please check the license key."
484         exit 1
485     fi
486
487     # verify that we are licensed to use Qt on this platform
488     LICENSE_EXTENSION=
489     case "$PlatformCode" in
490         *L)
491             CFG_RTOS_ENABLED=yes
492             PlatformCode=`echo "$PlatformCode" | sed 'h;y/8NPQRTZ/UCWX9M7/;x;G;s/\(.\)....\(.\)./\1\2/'`
493             ;;
494         *)
495             CFG_RTOS_ENABLED=no
496             PlatformCode=`echo "$PlatformCode" | sed 's/.$//'`
497             ;;
498     esac
499     ### EMBEDDED_QPA logic missing ###
500     case "$PlatformCode,$PLATFORM_MAC,$PLATFORM_QWS" in
501         X9,* | XC,* | XU,* | XW,* | XM,*)
502             # Qt All-OS
503             LICENSE_EXTENSION="-ALLOS"
504             ;;
505         8M,* | KM,* | S9,* | SC,* | SM,* | SU,* | SW,* | X9,* | XC,* | XU,* | XW,*)
506             # Qt for Embedded Linux
507             LICENSE_EXTENSION="-EMBEDDED"
508             ;;
509         6M,*,no | N7,*,no | N9,*,no | NX,*,no)
510             # Embedded no-deploy
511             LICENSE_EXTENSION="-EMBEDDED"
512             ;;
513         FM,*,no | LM,yes,* | ZM,no,no)
514             # Desktop
515             LICENSE_EXTENSION="-DESKTOP"
516             ;;
517         *)
518             Platform=Linux/X11
519             [ "$PLATFORM_MAC" = "yes" ] && Platform='Mac OS X'
520             [ "$PLATFORM_QWS" = "yes" ] && Platform='Embedded Linux'
521             echo
522             echo "You are not licensed for the $Platform platform."
523             echo
524             echo "Please contact qt-info@nokia.com to upgrade your license to"
525             echo "include the $Platform platform, or install the Qt Open Source Edition"
526             echo "if you intend to develop free software."
527             exit 1
528             ;;
529     esac
530
531     if test -r "$relpath/.LICENSE"; then
532         # Generic, non-final license
533         LICENSE_EXTENSION=""
534         line=`sed 'y/a-z/A-Z/;q' "$relpath"/.LICENSE`
535         case "$line" in
536             *BETA*)
537                 Edition=Beta
538                 ;;
539             *TECHNOLOGY?PREVIEW*)
540                 Edition=Preview
541                 ;;
542             *EVALUATION*)
543                 Edition=Evaluation
544                 ;;
545             *)
546                 echo >&2 "Invalid license files; cannot continue"
547                 exit 1
548                 ;;
549         esac
550         Licensee="$Edition"
551         EditionString="$Edition"
552         QT_EDITION="QT_EDITION_DESKTOP"
553     fi
554
555     case "$LicenseFeatureCode" in
556     B|G|L|Y)
557         # US
558         case "$LicenseType" in
559         Commercial)
560             cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}-US" "$outpath/LICENSE"
561             ;;
562         Evaluation)
563             cp -f "$relpath/.LICENSE-EVALUATION-US" "$outpath/LICENSE"
564             ;;
565         esac
566         ;;
567     2|4|5|F)
568         # non-US
569         case "$LicenseType" in
570         Commercial)
571             cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}" "$outpath/LICENSE"
572             ;;
573         Evaluation)
574             cp -f "$relpath/.LICENSE-EVALUATION" "$outpath/LICENSE"
575             ;;
576         esac
577         ;;
578     *)
579         echo
580         echo "Invalid license key. Please check the license key."
581         exit 1
582         ;;
583     esac
584     case "$LicenseFeatureCode" in
585         4|B|F|Y)
586             CFG_RTOS_ENABLED=yes
587             ;;
588         2|5|G|L)
589             CFG_RTOS_ENABLED=no
590             ;;
591     esac
592     if [ '!' -f "$outpath/LICENSE" ]; then
593         echo "The LICENSE, LICENSE.GPL3 LICENSE.LGPL file shipped with"
594         echo "this software has disappeared."
595         echo
596         echo "Sorry, you are not licensed to use this software."
597         echo "Try re-installing."
598         echo
599         exit 1
600     fi
601 elif [ $COMMERCIAL_USER = "no" ]; then
602     # Open Source edition - may only be used under the terms of the GPL or LGPL.
603     [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
604     Licensee="Open Source"
605     Edition="OpenSource"
606     EditionString="Open Source"
607     QT_EDITION="QT_EDITION_OPENSOURCE"
608 fi
609
610 #-------------------------------------------------------------------------------
611 # initalize variables
612 #-------------------------------------------------------------------------------
613
614 SYSTEM_VARIABLES="RANLIB STRIP OBJDUMP LD CC CXX CFLAGS CXXFLAGS LDFLAGS"
615 for varname in $SYSTEM_VARIABLES; do
616     qmakevarname="${varname}"
617     # use LDFLAGS for autoconf compat, but qmake uses QMAKE_LFLAGS
618     if [ "${varname}" = "LDFLAGS" ]; then
619         qmakevarname="LFLAGS"
620     elif [ "${varname}" = "LD" ]; then
621         qmakevarname="LINK"
622     fi
623     cmd=`echo \
624 'if [ -n "\$'${varname}'" ]; then
625     QMakeVar set QMAKE_'${qmakevarname}' "\$'${varname}'"
626 fi'`
627     eval "$cmd"
628 done
629 # Use CC/CXX to run config.tests
630 mkdir -p "$outpath/config.tests"
631 rm -f "$outpath/config.tests/.qmake.cache"
632 cp "$QMAKE_VARS_FILE" "$outpath/config.tests/.qmake.cache"
633
634 QMakeVar add styles "cde mac motif plastique cleanlooks windows"
635 QMakeVar add decorations "default windows styled"
636 QMakeVar add mouse-drivers "pc"
637 if [ "$UNAME_SYSTEM" = "Linux" ] ; then
638     QMakeVar add gfx-drivers "linuxfb"
639     QMakeVar add mouse-drivers "linuxtp"
640 fi
641 QMakeVar add kbd-drivers "tty"
642
643 if [ "$CFG_DEV" = "yes" ]; then
644     QMakeVar add kbd-drivers "um"
645 fi
646
647 # QTDIR may be set and point to an old or system-wide Qt installation
648 unset QTDIR
649
650 # the minimum version of libdbus-1 that we require:
651 MIN_DBUS_1_VERSION=0.93
652
653 # initalize internal variables
654 CFG_CONFIGURE_EXIT_ON_ERROR=yes
655 CFG_PROFILE=no
656 CFG_EXCEPTIONS=unspecified
657 CFG_GUI=auto # (yes|no|auto)
658 CFG_SCRIPT=auto # (yes|no|auto)
659 CFG_SCRIPTTOOLS=auto # (yes|no|auto)
660 CFG_XMLPATTERNS=auto # (yes|no|auto)
661 CFG_INCREMENTAL=auto
662 CFG_QCONFIG=full
663 CFG_DEBUG=auto
664 CFG_MYSQL_CONFIG=
665 CFG_DEBUG_RELEASE=no
666 CFG_SHARED=yes
667 CFG_SM=auto
668 CFG_XSHAPE=auto
669 CFG_XSYNC=auto
670 CFG_XVIDEO=auto
671 CFG_XINERAMA=runtime
672 CFG_XFIXES=runtime
673 CFG_ZLIB=auto
674 CFG_SYMBIAN_DEFFILES=auto
675 CFG_S60=auto
676 CFG_SQLITE=qt
677 CFG_GIF=auto
678 CFG_TIFF=auto
679 CFG_LIBTIFF=auto
680 CFG_PNG=yes
681 CFG_LIBPNG=auto
682 CFG_JPEG=auto
683 CFG_LIBJPEG=auto
684 CFG_MNG=auto
685 CFG_LIBMNG=auto
686 CFG_XCURSOR=runtime
687 CFG_XRANDR=runtime
688 CFG_XRENDER=auto
689 CFG_MITSHM=auto
690 CFG_OPENGL=auto
691 CFG_OPENVG=auto
692 CFG_OPENVG_LC_INCLUDES=no
693 CFG_OPENVG_SHIVA=auto
694 CFG_OPENVG_ON_OPENGL=auto
695 CFG_EGL=no
696 CFG_EGL_GLES_INCLUDES=no
697 CFG_SSE=auto
698 CFG_FONTCONFIG=auto
699 CFG_QWS_FREETYPE=auto
700 CFG_LIBFREETYPE=auto
701 CFG_SQL_AVAILABLE=
702 QT_DEFAULT_BUILD_PARTS="libs examples demos tests"
703 CFG_BUILD_PARTS=""
704 CFG_NOBUILD_PARTS=""
705 CFG_RELEASE_QMAKE=no
706 CFG_PHONON=auto
707 CFG_PHONON_BACKEND=yes
708 CFG_MULTIMEDIA=auto
709 CFG_AUDIO_BACKEND=auto
710 CFG_SVG=auto
711 CFG_DECLARATIVE=auto
712 CFG_DECLARATIVE_DEBUG=yes
713 CFG_WEBKIT=auto # (yes|no|auto|debug)
714 CFG_JAVASCRIPTCORE_JIT=auto
715 CFG_LOCATION=auto
716
717 CFG_GFX_AVAILABLE="linuxfb transformed qvfb vnc multiscreen directfb"
718 CFG_GFX_ON="linuxfb multiscreen"
719 CFG_GFX_PLUGIN_AVAILABLE=
720 CFG_GFX_PLUGIN=
721 CFG_GFX_OFF=
722 CFG_KBD_AVAILABLE="tty linuxinput qvfb"
723 CFG_KBD_ON="tty"    #default, see QMakeVar above
724 CFG_MOUSE_AVAILABLE="pc linuxtp linuxinput tslib qvfb"
725 CFG_MOUSE_ON="pc linuxtp"   #default, see QMakeVar above
726
727 if [ -f "$relpath/src/gui/embedded/qscreenqnx_qws.cpp" ]; then
728     CFG_KBD_AVAILABLE="${CFG_KBD_AVAILABLE} qnx"
729     CFG_MOUSE_AVAILABLE="${CFG_MOUSE_AVAILABLE} qnx"
730     CFG_GFX_AVAILABLE="${CFG_GFX_AVAILABLE} qnx"
731 fi
732 if [ -f "$relpath/src/gui/embedded/qscreenintegrityfb_qws.cpp" ]; then
733     CFG_KBD_AVAILABLE="${CFG_KBD_AVAILABLE} integrity"
734     CFG_MOUSE_AVAILABLE="${CFG_MOUSE_AVAILABLE} integrity"
735     CFG_GFX_AVAILABLE="${CFG_GFX_AVAILABLE} integrityfb"
736 fi
737
738 CFG_ARCH=
739 CFG_HOST_ARCH=
740 CFG_KBD_PLUGIN_AVAILABLE=
741 CFG_KBD_PLUGIN=
742 CFG_KBD_OFF=
743 CFG_MOUSE_PLUGIN_AVAILABLE=
744 CFG_MOUSE_PLUGIN=
745 CFG_MOUSE_OFF=
746 CFG_USE_GNUMAKE=no
747 CFG_IM=yes
748 CFG_DECORATION_AVAILABLE="styled windows default"
749 CFG_DECORATION_ON="${CFG_DECORATION_AVAILABLE}" # all on by default
750 CFG_DECORATION_PLUGIN_AVAILABLE=
751 CFG_DECORATION_PLUGIN=
752 CFG_XINPUT=runtime
753 CFG_XKB=auto
754 CFG_XCB=no
755 CFG_NIS=auto
756 CFG_CUPS=auto
757 CFG_ICONV=auto
758 CFG_DBUS=auto
759 CFG_GLIB=auto
760 CFG_GSTREAMER=auto
761 CFG_QGTKSTYLE=auto
762 CFG_QS60STYLE=auto
763 CFG_LARGEFILE=auto
764 CFG_OPENSSL=auto
765 CFG_PTMALLOC=no
766 CFG_STL=auto
767 CFG_PRECOMPILE=auto
768 CFG_SEPARATE_DEBUG_INFO=no
769 CFG_SEPARATE_DEBUG_INFO_NOCOPY=no
770 CFG_REDUCE_EXPORTS=auto
771 CFG_MMX=auto
772 CFG_3DNOW=auto
773 CFG_SSE=auto
774 CFG_SSE2=auto
775 CFG_SSE3=auto
776 CFG_SSSE3=auto
777 CFG_SSE4_1=auto
778 CFG_SSE4_2=auto
779 CFG_AVX=auto
780 CFG_REDUCE_RELOCATIONS=no
781 CFG_IPV6=auto
782 CFG_NAS=no
783 CFG_QWS_DEPTHS=all
784 CFG_USER_BUILD_KEY=
785 CFG_ACCESSIBILITY=auto
786 CFG_QT3SUPPORT=yes
787 CFG_ENDIAN=auto
788 CFG_HOST_ENDIAN=auto
789 CFG_DOUBLEFORMAT=auto
790 CFG_ARMFPA=auto
791 CFG_IWMMXT=no
792 CFG_NEON=auto
793 CFG_CLOCK_GETTIME=auto
794 CFG_CLOCK_MONOTONIC=auto
795 CFG_MREMAP=auto
796 CFG_GETADDRINFO=auto
797 CFG_IPV6IFNAME=auto
798 CFG_GETIFADDRS=auto
799 CFG_INOTIFY=auto
800 CFG_RPATH=yes
801 CFG_FRAMEWORK=auto
802 CFG_MAC_ARCHS=
803 MAC_CONFIG_TEST_COMMANDLINE=  # used to make the configure tests run with the correct arch's and SDK settings
804 CFG_MAC_DWARF2=auto
805 CFG_MAC_XARCH=auto
806 CFG_MAC_CARBON=no
807 CFG_MAC_COCOA=yes
808 COMMANDLINE_MAC_CARBON=no
809 CFG_MAC_HARFBUZZ=no
810 CFG_SXE=no
811 CFG_PREFIX_INSTALL=yes
812 CFG_SDK=
813 D_FLAGS=
814 I_FLAGS=
815 L_FLAGS=
816 RPATH_FLAGS=
817 l_FLAGS=
818 QCONFIG_FLAGS=
819 XPLATFORM=              # This seems to be the QMAKESPEC, like "linux-g++" or "symbian-gcce"
820 XPLATFORM_MINGW=no      # Whether target platform is MinGW (win32-g++*)
821 XPLATFORM_SYMBIAN=no    # Whether target platform is SYMBIAN (*symbian*)
822 XPLATFORM_SYMBIAN_SBSV2=no # Whether target platform is SYMBIAN_SBSV2 (symbian-sbsv2)
823 PLATFORM=$QMAKESPEC
824 QT_CROSS_COMPILE=no
825 OPT_CONFIRM_LICENSE=no
826 OPT_SHADOW=maybe
827 OPT_FAST=auto
828 OPT_VERBOSE=no
829 OPT_HELP=
830 CFG_SILENT=no
831 CFG_GRAPHICS_SYSTEM=default
832 CFG_RUNTIME_SYSTEM=
833 CFG_ALSA=auto
834 CFG_PULSEAUDIO=auto
835 CFG_COREWLAN=auto
836 CFG_ICD=auto
837 CFG_NOPROCESS=no
838 CFG_ICU=auto
839
840 # initalize variables used for installation
841 QT_INSTALL_PREFIX=
842 QT_INSTALL_DOCS=
843 QT_INSTALL_HEADERS=
844 QT_INSTALL_LIBS=
845 QT_INSTALL_BINS=
846 QT_INSTALL_PLUGINS=
847 QT_INSTALL_IMPORTS=
848 QT_INSTALL_DATA=
849 QT_INSTALL_TRANSLATIONS=
850 QT_INSTALL_SETTINGS=
851 QT_INSTALL_EXAMPLES=
852 QT_INSTALL_DEMOS=
853 QT_HOST_PREFIX=
854
855 #flags for SQL drivers
856 QT_CFLAGS_PSQL=
857 QT_LFLAGS_PSQL=
858 QT_CFLAGS_MYSQL=
859 QT_LFLAGS_MYSQL=
860 QT_LFLAGS_MYSQL_R=
861 QT_CFLAGS_SQLITE=
862 QT_LFLAGS_SQLITE=
863 QT_LFLAGS_ODBC="-lodbc"
864 QT_LFLAGS_TDS=
865
866 # flags for libdbus-1
867 QT_CFLAGS_DBUS=
868 QT_LIBS_DBUS=
869
870 # flags for Glib (X11 only)
871 QT_CFLAGS_GLIB=
872 QT_LIBS_GLIB=
873
874 # flags for GStreamer (X11 only)
875 QT_CFLAGS_GSTREAMER=
876 QT_LIBS_GSTREAMER=
877
878 #flag for Symbian fpu settings
879 QT_CFLAGS_FPU=
880
881 # flags for libconnsettings0 (used for Maemo ICD bearer management plugin)
882 QT_CFLAGS_CONNSETTINGS=
883 QT_LIBS_CONNSETTINGS=
884
885 #-------------------------------------------------------------------------------
886 # check SQL drivers, mouse drivers and decorations available in this package
887 #-------------------------------------------------------------------------------
888
889 # opensource version removes some drivers, so force them to be off
890 CFG_SQL_tds=no
891 CFG_SQL_oci=no
892 CFG_SQL_db2=no
893
894 CFG_SQL_AVAILABLE=
895 if [ -d "$relpath/src/plugins/sqldrivers" ]; then
896   for a in "$relpath/src/plugins/sqldrivers/"*; do
897      if [ -d "$a" ]; then
898          base_a=`basename "$a"`
899          CFG_SQL_AVAILABLE="${CFG_SQL_AVAILABLE} ${base_a}"
900          eval "CFG_SQL_${base_a}=auto"
901      fi
902   done
903 fi
904
905 CFG_DECORATION_PLUGIN_AVAILABLE=
906 if [ -d "$relpath/src/plugins/decorations" ]; then
907   for a in "$relpath/src/plugins/decorations/"*; do
908      if [ -d "$a" ]; then
909          base_a=`basename "$a"`
910          CFG_DECORATION_PLUGIN_AVAILABLE="${CFG_DECORATION_PLUGIN_AVAILABLE} ${base_a}"
911      fi
912   done
913 fi
914
915 CFG_KBD_PLUGIN_AVAILABLE=
916 if [ -d "$relpath/src/plugins/kbddrivers" ]; then
917   for a in "$relpath/src/plugins/kbddrivers/"*; do
918      if [ -d "$a" ]; then
919          base_a=`basename "$a"`
920          CFG_KBD_PLUGIN_AVAILABLE="${CFG_KBD_PLUGIN_AVAILABLE} ${base_a}"
921      fi
922   done
923 fi
924
925 CFG_MOUSE_PLUGIN_AVAILABLE=
926 if [ -d "$relpath/src/plugins/mousedrivers" ]; then
927   for a in "$relpath/src/plugins/mousedrivers/"*; do
928      if [ -d "$a" ]; then
929          base_a=`basename "$a"`
930          CFG_MOUSE_PLUGIN_AVAILABLE="${CFG_MOUSE_PLUGIN_AVAILABLE} ${base_a}"
931      fi
932   done
933 fi
934
935 CFG_GFX_PLUGIN_AVAILABLE=
936 if [ -d "$relpath/src/plugins/gfxdrivers" ]; then
937   for a in "$relpath/src/plugins/gfxdrivers/"*; do
938      if [ -d "$a" ]; then
939          base_a=`basename "$a"`
940          CFG_GFX_PLUGIN_AVAILABLE="${CFG_GFX_PLUGIN_AVAILABLE} ${base_a}"
941      fi
942   done
943   CFG_GFX_OFF="$CFG_GFX_AVAILABLE" # assume all off
944 fi
945
946 CFG_IMAGEFORMAT_PLUGIN_AVAILABLE=
947 if [ -d "$relpath/src/plugins/imageformats" ]; then
948     for a in "$relpath/src/plugins/imageformats/"*; do
949         if [ -d "$a" ]; then
950             base_a=`basename "$a"`
951             CFG_IMAGEFORMAT_PLUGIN_AVAILABLE="${CFG_IMAGEFORMAT_PLUGIN_AVAILABLE} ${base_a}"
952         fi
953     done
954 fi
955
956 #-------------------------------------------------------------------------------
957 # Set Default NaCl options
958 #-------------------------------------------------------------------------------
959 if [ "$CFG_EMBEDDED" = "nacl" ]; then
960     echo "Setting NaCl options:"
961     echo "-static"
962     CFG_SHARED=no
963     echo "-qpa nacl"
964     PLATFORM_QPA=yes
965     echo "-fast"
966     OPT_FAST=yes
967     echo "-qconfig nacl"
968     CFG_QCONFIG=nacl
969
970     if [ `uname` = "Linux" ]; then
971         I_FLAGS="$I_FLAGS -I${CFG_NACL_PATH}/toolchain/linux_x86/sdk/nacl-sdk/include"
972         L_FLAGS="$L_FLAGS -I${CFG_NACL_PATH}/toolchain/linux_x86/sdk/nacl-sdk/lib"
973     else
974         I_FLAGS="$I_FLAGS -I${CFG_NACL_PATH}/toolchain/mac_x86/sdk/nacl-sdk/include"
975         L_FLAGS="$L_FLAGS -I${CFG_NACL_PATH}/toolchain/mac_x86/sdk/nacl-sdk/lib"
976     fi
977
978     echo "-no-multimedia -no-webkit -no-phonon -no-nultimedia -no-mediaservices -no-xmlpatterns -no-script -no-sql-sqlite -nomake tests"
979     CFG_MULTIMEDIA=no
980     CFG_WEBKIT=no
981     CFG_PHONON=no
982     CFG_MULTIMEDIA=no
983     CFG_MEDIASERVICES=no
984     CFG_XMLPATTERNS=no
985     CFG_SCRIPT=no
986     CFG_SQLITE=no
987     CFG_SQL_sqlite=no
988     CFG_LIBTIFF=no
989     CFG_NOBUILD_PARTS="$CFG_NOBUILD_PARTS tests"
990     QT_CONFIG="$QT_CONFIG nacl"
991 fi
992
993 #-------------------------------------------------------------------------------
994 # parse command line arguments
995 #-------------------------------------------------------------------------------
996
997 # parse the arguments, setting things to "yes" or "no"
998 while [ "$#" -gt 0 ]; do
999     CURRENT_OPT="$1"
1000     UNKNOWN_ARG=no
1001     case "$1" in
1002     #Autoconf style options
1003     --enable-*)
1004         VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
1005         VAL=yes
1006         ;;
1007     --disable-*)
1008         VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
1009         VAL=no
1010         ;;
1011     --*=*)
1012         VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
1013         VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
1014         ;;
1015     --no-*)
1016         VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
1017         VAL=no
1018         ;;
1019     --*)
1020         VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
1021         VAL=yes
1022         ;;
1023     #Qt plugin options
1024     -no-*-*|-plugin-*-*|-qt-*-*)
1025         VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
1026         VAL=`echo $1 | sed "s,^-\([^-]*\).*,\1,"`
1027         ;;
1028     #WebKit options
1029     -webkit)
1030         VAR="webkit"
1031         VAL="yes"
1032         ;;
1033     -webkit-debug)
1034         VAR="webkit"
1035         VAL="debug"
1036         ;;
1037     -no-webkit)
1038         VAR="webkit"
1039         VAL="no"
1040         ;;
1041     #Qt style no options
1042     -no-*)
1043         VAR=`echo $1 | sed "s,^-no-\(.*\),\1,"`
1044         VAL=no
1045         ;;
1046     #Qt style yes options
1047     -incremental|-qvfb|-profile|-shared|-static|-sm|-xinerama|-xshape|-xsync|-xinput|-egl|-reduce-exports|-pch|-separate-debug-info|-stl|-freetype|-xcursor|-xfixes|-xrandr|-xrender|-mitshm|-fontconfig|-xkb|-xcb|-nis|-qdbus|-dbus|-dbus-linked|-glib|-gstreamer|-gtkstyle|-cups|-iconv|-largefile|-h|-help|-v|-verbose|-debug|-release|-fast|-accessibility|-confirm-license|-gnumake|-framework|-qt3support|-debug-and-release|-exceptions|-cocoa|-carbon|-universal|-harfbuzz|-prefix-install|-silent|-armfpa|-optimized-qmake|-dwarf2|-reduce-relocations|-sse|-openssl|-openssl-linked|-ptmalloc|-xmlpatterns|-phonon|-phonon-backend|-multimedia|-audio-backend|-svg|-declarative|-declarative-debug|-javascript-jit|-script|-scripttools|-rpath|-force-pkg-config|-s60|-usedeffiles|-icu)
1048         VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1049         VAL=yes
1050         ;;
1051     #Qt style options that pass an argument
1052     -qconfig)
1053         if [ "$PLATFORM_QWS" != "yes" -a "$PLATFORM_QPA" != "yes" ]; then
1054             echo
1055             echo "WARNING: -qconfig is only tested and supported on Qt for Embedded Linux."
1056             echo
1057         fi
1058         CFG_QCONFIG="$VAL"
1059         VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1060         shift
1061         VAL=$1
1062         ;;
1063     -prefix|-docdir|-headerdir|-plugindir|-importdir|-datadir|-libdir|-bindir|-translationdir|-sysconfdir|-examplesdir|-demosdir|-depths|-make|-nomake|-platform|-xplatform|-buildkey|-sdk|-arch|-host-arch|-mysql_config)
1064         VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1065         shift
1066         VAL="$1"
1067         ;;
1068     #Qt style complex options in one command
1069     -enable-*|-disable-*)
1070         VAR=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
1071         VAL=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
1072         ;;
1073     #Qt Builtin/System style options
1074     -no-*|-system-*|-qt-*)
1075         VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
1076         VAL=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
1077         ;;
1078     #Options that cannot be generalized
1079     -k|-continue)
1080         VAR=fatal_error
1081         VAL=no
1082         ;;
1083     -embedded)
1084         VAR=embedded
1085         # this option may or may not be followed by an argument
1086         if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1087             VAL=auto
1088         else
1089             shift;
1090             VAL=$1
1091         fi
1092         ;;
1093     -embedded-lite|-qpa)
1094         VAR=qpa
1095         # this option may or may not be followed by an argument
1096         if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1097             VAL=auto
1098         else
1099             shift;
1100             VAL=$1
1101         fi
1102         ;;
1103     -nacl)
1104         VAR=nacl
1105         shift;
1106     ;;
1107     -opengl)
1108         VAR=opengl
1109         # this option may or may not be followed by an argument
1110         if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1111             VAL=yes
1112         else
1113             shift;
1114             VAL=$1
1115         fi
1116         ;;
1117     -openvg)
1118         VAR=openvg
1119         # this option may or may not be followed by an argument
1120         if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1121             VAL=yes
1122         else
1123             shift;
1124             VAL=$1
1125         fi
1126         ;;
1127     -hostprefix)
1128         VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1129         # this option may or may not be followed by an argument
1130         if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1131             VAL=$outpath
1132         else
1133             shift;
1134             VAL=$1
1135         fi
1136         ;;
1137     -host-*-endian)
1138         VAR=host_endian
1139         VAL=`echo $1 | sed "s,^-.*-\(.*\)-.*,\1,"`
1140         ;;
1141     -*-endian)
1142         VAR=endian
1143         VAL=`echo $1 | sed "s,^-\(.*\)-.*,\1,"`
1144         ;;
1145     -qtnamespace)
1146         VAR="qtnamespace"
1147         shift
1148         VAL="$1"
1149         ;;
1150     -graphicssystem)
1151         VAR="graphicssystem"
1152         shift
1153         VAL=$1
1154         ;;
1155     -runtimegraphicssystem)
1156         VAR="runtimegraphicssystem"
1157         shift
1158         VAL=$1
1159         ;;
1160     -qtlibinfix)
1161         VAR="qtlibinfix"
1162         shift
1163         VAL="$1"
1164         ;;
1165     -D?*|-D)
1166         VAR="add_define"
1167         if [ "$1" = "-D" ]; then
1168             shift
1169             VAL="$1"
1170         else
1171             VAL=`echo $1 | sed 's,-D,,'`
1172         fi
1173         ;;
1174     -fpu)
1175         VAR="fpu"
1176         # this option may or may not be followed by an argument
1177         if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
1178             VAL=no
1179         else
1180             shift
1181             VAL=$1
1182         fi
1183         ;;
1184     -I?*|-I)
1185         VAR="add_ipath"
1186         if [ "$1" = "-I" ]; then
1187             shift
1188             VAL="$1"
1189         else
1190             VAL=`echo $1 | sed 's,-I,,'`
1191         fi
1192         ;;
1193     -L?*|-L)
1194         VAR="add_lpath"
1195         if [ "$1" = "-L" ]; then
1196             shift
1197             VAL="$1"
1198         else
1199             VAL=`echo $1 | sed 's,-L,,'`
1200         fi
1201         ;;
1202     -R?*|-R)
1203         VAR="add_rpath"
1204         if [ "$1" = "-R" ]; then
1205             shift
1206             VAL="$1"
1207         else
1208             VAL=`echo $1 | sed 's,-R,,'`
1209         fi
1210         ;;
1211     -l?*)
1212         VAR="add_link"
1213         VAL=`echo $1 | sed 's,-l,,'`
1214         ;;
1215     -F?*|-F)
1216         VAR="add_fpath"
1217         if [ "$1" = "-F" ]; then
1218             shift
1219             VAL="$1"
1220         else
1221             VAL=`echo $1 | sed 's,-F,,'`
1222         fi
1223         ;;
1224     -fw?*|-fw)
1225         VAR="add_framework"
1226         if [ "$1" = "-fw" ]; then
1227             shift
1228             VAL="$1"
1229         else
1230             VAL=`echo $1 | sed 's,-fw,,'`
1231         fi
1232         ;;
1233     -*)
1234         VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1235         VAL="unknown"
1236         ;;
1237     *)
1238         UNKNOWN_ARG=yes
1239         ;;
1240     esac
1241     if [ "$UNKNOWN_ARG" = "yes" ]; then
1242         echo "$1: unknown argument"
1243         OPT_HELP=yes
1244         ERROR=yes
1245         shift
1246         continue
1247      fi
1248     shift
1249
1250     UNKNOWN_OPT=no
1251     case "$VAR" in
1252     qt3support)
1253         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1254             CFG_QT3SUPPORT="$VAL"
1255         else
1256             UNKNOWN_OPT=yes
1257         fi
1258         ;;
1259     accessibility)
1260         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1261             CFG_ACCESSIBILITY="$VAL"
1262         else
1263             UNKNOWN_OPT=yes
1264         fi
1265         ;;
1266     license)
1267         LICENSE_FILE="$VAL"
1268         ;;
1269     gnumake)
1270         CFG_USE_GNUMAKE="$VAL"
1271         ;;
1272     mysql_config)
1273         CFG_MYSQL_CONFIG="$VAL"
1274         ;;
1275     prefix)
1276         QT_INSTALL_PREFIX="$VAL"
1277         ;;
1278     hostprefix)
1279         QT_HOST_PREFIX="$VAL"
1280         ;;
1281     force-pkg-config)
1282         QT_FORCE_PKGCONFIG=yes
1283         ;;
1284     docdir)
1285         QT_INSTALL_DOCS="$VAL"
1286         ;;
1287     headerdir)
1288         QT_INSTALL_HEADERS="$VAL"
1289         ;;
1290     plugindir)
1291         QT_INSTALL_PLUGINS="$VAL"
1292         ;;
1293     importdir)
1294         QT_INSTALL_IMPORTS="$VAL"
1295         ;;
1296     datadir)
1297         QT_INSTALL_DATA="$VAL"
1298         ;;
1299     libdir)
1300         QT_INSTALL_LIBS="$VAL"
1301         ;;
1302     qtnamespace)
1303         QT_NAMESPACE="$VAL"
1304         ;;
1305     qtlibinfix)
1306         QT_LIBINFIX="$VAL"
1307         ;;
1308     translationdir)
1309         QT_INSTALL_TRANSLATIONS="$VAL"
1310         ;;
1311     sysconfdir|settingsdir)
1312         QT_INSTALL_SETTINGS="$VAL"
1313         ;;
1314     examplesdir)
1315         QT_INSTALL_EXAMPLES="$VAL"
1316         ;;
1317     demosdir)
1318         QT_INSTALL_DEMOS="$VAL"
1319         ;;
1320     qconfig)
1321         CFG_QCONFIG="$VAL"
1322         ;;
1323     sysroot)
1324         CFG_SYSROOT="$VAL"
1325         ;;
1326     bindir)
1327         QT_INSTALL_BINS="$VAL"
1328         ;;
1329     buildkey)
1330         CFG_USER_BUILD_KEY="$VAL"
1331         ;;
1332     sxe)
1333         CFG_SXE="$VAL"
1334         ;;
1335     embedded)
1336         CFG_EMBEDDED="$VAL"
1337         PLATFORM_X11=no
1338         PLATFORM_MAC=no
1339         PLATFORM_QWS=yes
1340         PLATFORM_QPA=no
1341         ;;
1342     embedded-lite|qpa)
1343         CFG_EMBEDDED="no"
1344         PLATFORM_X11=no
1345         PLATFORM_MAC=no
1346         PLATFORM_QWS=no
1347         PLATFORM_QPA=yes
1348         ;;
1349     nacl)
1350         ;;
1351     sse)
1352         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1353             CFG_SSE="$VAL"
1354         else
1355             UNKNOWN_OPT=yes
1356         fi
1357         ;;
1358     endian)
1359         if [ "$VAL" = "little" ]; then
1360             CFG_ENDIAN="Q_LITTLE_ENDIAN"
1361         elif [ "$VAL" = "big" ]; then
1362             CFG_ENDIAN="Q_BIG_ENDIAN"
1363         else
1364             UNKNOWN_OPT=yes
1365         fi
1366         ;;
1367     host_endian)
1368         if [ "$VAL" = "little" ]; then
1369             CFG_HOST_ENDIAN="Q_LITTLE_ENDIAN"
1370         elif [ "$VAL" = "big" ]; then
1371             CFG_HOST_ENDIAN="Q_BIG_ENDIAN"
1372         else
1373             UNKNOWN_OPT=yes
1374         fi
1375         ;;
1376     armfpa)
1377         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1378             CFG_ARMFPA="$VAL"
1379         else
1380             UNKNOWN_OPT=yes
1381         fi
1382         ;;
1383     depths)
1384         CFG_QWS_DEPTHS="$VAL"
1385         ;;
1386     opengl)
1387         if  [ "$VAL" = "auto" ] || [ "$VAL" = "desktop" ] ||
1388             [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] ||
1389             [ "$VAL" = "es1" ] || [ "$VAL" = "es2" ]; then
1390             CFG_OPENGL="$VAL"
1391             if  [ "$VAL" = "es1" ] || [ "$VAL" = "es2" ]; then
1392                 CFG_EGL="yes"
1393             fi
1394         else
1395             UNKNOWN_OPT=yes
1396         fi
1397         ;;
1398     openvg)
1399         if [ "$VAL" = "auto" ] || [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1400             CFG_OPENVG="$VAL"
1401             if [ "$CFG_EGL" = "no" ] && [ "$VAL" != "no" ]; then
1402                 CFG_EGL=auto
1403             fi
1404         else
1405             UNKNOWN_OPT=yes
1406         fi
1407         ;;
1408     graphicssystem)
1409         if [ "$PLATFORM_QWS" = "yes" ]; then
1410             echo "Error: Graphics System plugins are not supported on QWS."
1411             echo "   On QWS, the graphics system API is part of the QScreen plugin architecture "
1412             echo "   rather than existing as a separate plugin."
1413             echo ""
1414             UNKNOWN_OPT=yes
1415         else
1416             if  [ "$VAL" = "opengl" ]; then
1417                 CFG_GRAPHICS_SYSTEM="opengl"
1418             elif [ "$VAL" = "openvg" ]; then
1419                 CFG_GRAPHICS_SYSTEM="openvg"
1420             elif [ "$VAL" = "raster" ]; then
1421                 CFG_GRAPHICS_SYSTEM="raster"
1422             elif [ "$VAL" = "runtime" ]; then
1423                 CFG_GRAPHICS_SYSTEM="runtime"
1424             else
1425                 UNKNOWN_OPT=yes
1426             fi
1427         fi
1428         ;;
1429     runtimegraphicssystem)
1430         if  [ "$VAL" != "runtime" ]; then
1431             CFG_RUNTIME_SYSTEM="$VAL"
1432         fi
1433         ;;
1434
1435     qvfb) # left for commandline compatibility, not documented
1436         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1437             if [ "$VAL" = "yes" ]; then
1438                 QMakeVar add gfx-drivers qvfb
1439                 QMakeVar add kbd-drivers qvfb
1440                 QMakeVar add mouse-drivers qvfb
1441                 CFG_GFX_ON="$CFG_GFX_ON qvfb"
1442                 CFG_KBD_ON="$CFG_KBD_ON qvfb"
1443                 CFG_MOUSE_ON="$CFG_MOUSE_ON qvfb"
1444             fi
1445         else
1446             UNKNOWN_OPT=yes
1447         fi
1448         ;;
1449     nomake)
1450         CFG_NOBUILD_PARTS="$CFG_NOBUILD_PARTS $VAL"
1451         ;;
1452     make)
1453         CFG_BUILD_PARTS="$CFG_BUILD_PARTS $VAL"
1454         ;;
1455     x11)
1456         PLATFORM_QPA=no
1457         PLATFORM_MAC=no
1458         PLATFORM_QWS=no
1459         PLATFORM_X11=yes
1460         ;;
1461     sdk)
1462         if [ "$PLATFORM_MAC" = "yes" ]; then
1463             CFG_SDK="$VAL"
1464         else
1465             UNKNOWN_OPT=yes
1466         fi
1467         ;;
1468      dwarf2)
1469         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1470             CFG_MAC_DWARF2="$VAL"
1471         else
1472             UNKNOWN_OPT=yes
1473         fi
1474         ;;
1475     arch)
1476         # if this is a Mac then "windows" probably means
1477         # we are cross-compiling for MinGW
1478         if [ "$PLATFORM_MAC" = "yes" ] && [ "$VAL" != "windows" ]; then
1479             CFG_MAC_ARCHS="$CFG_MAC_ARCHS $VAL"
1480         else
1481             CFG_ARCH=$VAL
1482         fi
1483         ;;
1484     host-arch)
1485         CFG_HOST_ARCH=$VAL
1486         ;;
1487     universal)
1488         if [ "$PLATFORM_MAC" = "yes" ] && [ "$VAL" = "yes" ]; then
1489             CFG_MAC_ARCHS="$CFG_MAC_ARCHS x86 ppc"
1490         else
1491             UNKNOWN_OPT=yes
1492         fi
1493         ;;
1494     cocoa)
1495 #       do nothing - Cocoa is the default.
1496         ;;
1497     carbon)
1498         if [ "$PLATFORM_MAC" = "yes" ] && [ "$VAL" = "yes" ]; then
1499             CFG_MAC_CARBON="$VAL"
1500             COMMANDLINE_MAC_CARBON="$VAL"
1501         else
1502             UNKNOWN_OPT=yes
1503         fi
1504         ;;
1505     harfbuzz)
1506         if [ "$PLATFORM_MAC" = "yes" ] && [ "$CFG_MAC_CARBON" != "yes" ] && [ "$VAL" = "yes" ]; then
1507             CFG_MAC_HARFBUZZ="$VAL"
1508         else
1509             UNKNOWN_OPT=yes
1510         fi
1511         ;;
1512
1513     framework)
1514         if [ "$PLATFORM_MAC" = "yes" ] || [ "$PLATFORM_QPA" = "yes" ]; then
1515             CFG_FRAMEWORK="$VAL"
1516         else
1517             UNKNOWN_OPT=yes
1518         fi
1519         ;;
1520     profile)
1521         if [ "$VAL" = "yes" ]; then
1522             CFG_PROFILE=yes
1523             QMakeVar add QMAKE_CFLAGS -pg
1524             QMakeVar add QMAKE_CXXFLAGS -pg
1525             QMakeVar add QMAKE_LFLAGS -pg
1526             QMAKE_VARS="$QMAKE_VARS CONFIG+=nostrip"
1527         else
1528             UNKNOWN_OPT=yes
1529         fi
1530         ;;
1531     exceptions|g++-exceptions)
1532         if [ "$VAL" = "no" ]; then
1533             CFG_EXCEPTIONS=no
1534         elif [ "$VAL" = "yes" ]; then
1535             CFG_EXCEPTIONS=yes
1536         else
1537             UNKNOWN_OPT=yes
1538         fi
1539         ;;
1540     platform)
1541         PLATFORM="$VAL"
1542         # keep compatibility with old platform names
1543         case $PLATFORM in
1544         aix-64)
1545             PLATFORM=aix-xlc-64
1546             ;;
1547         hpux-o64)
1548             PLATFORM=hpux-acc-o64
1549             ;;
1550         hpux-n64)
1551             PLATFORM=hpux-acc-64
1552             ;;
1553         hpux-acc-n64)
1554             PLATFORM=hpux-acc-64
1555             ;;
1556         irix-n32)
1557             PLATFORM=irix-cc
1558             ;;
1559         irix-64)
1560             PLATFORM=irix-cc-64
1561             ;;
1562         irix-cc-n64)
1563             PLATFORM=irix-cc-64
1564             ;;
1565         reliant-64)
1566             PLATFORM=reliant-cds-64
1567             ;;
1568         solaris-64)
1569             PLATFORM=solaris-cc-64
1570             ;;
1571         openunix-cc)
1572             PLATFORM=unixware-cc
1573             ;;
1574         openunix-g++)
1575             PLATFORM=unixware-g++
1576             ;;
1577         unixware7-cc)
1578             PLATFORM=unixware-cc
1579             ;;
1580         unixware7-g++)
1581             PLATFORM=unixware-g++
1582             ;;
1583         macx-g++-64)
1584             PLATFORM=macx-g++
1585             NATIVE_64_ARCH=
1586             case `uname -p` in
1587             i386) NATIVE_64_ARCH="x86_64" ;;
1588             powerpc) NATIVE_64_ARCH="ppc64" ;;
1589             *)   echo "WARNING: Can't detect CPU architecture for macx-g++-64" ;;
1590             esac
1591             if [ ! -z "$NATIVE_64_ARCH" ]; then
1592                 QTCONFIG_CONFIG="$QTCONFIG_CONFIG $NATIVE_64_ARCH"
1593                 CFG_MAC_ARCHS="$CFG_MAC_ARCHS $NATIVE_64_ARCH"
1594             fi
1595             ;;
1596         esac
1597         ;;
1598     xplatform)
1599         XPLATFORM="$VAL"
1600         case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
1601         case "$XPLATFORM" in *symbian*) XPLATFORM_SYMBIAN=yes;; esac
1602         case "$XPLATFORM" in symbian-sbsv2) XPLATFORM_SYMBIAN_SBSV2=yes;; esac
1603         ;;
1604     debug-and-release)
1605         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1606             CFG_DEBUG_RELEASE="$VAL"
1607         else
1608             UNKNOWN_OPT=yes
1609         fi
1610         ;;
1611     optimized-qmake)
1612         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1613             CFG_RELEASE_QMAKE="$VAL"
1614         else
1615             UNKNOWN_OPT=yes
1616         fi
1617         ;;
1618     release)
1619         if [ "$VAL" = "yes" ]; then
1620             CFG_DEBUG=no
1621         elif [ "$VAL" = "no" ]; then
1622             CFG_DEBUG=yes
1623         else
1624             UNKNOWN_OPT=yes
1625         fi
1626         ;;
1627     prefix-install)
1628         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1629             CFG_PREFIX_INSTALL="$VAL"
1630         else
1631             UNKNOWN_OPT=yes
1632         fi
1633         ;;
1634     debug)
1635         CFG_DEBUG="$VAL"
1636         ;;
1637     developer-build|commercial|opensource|nokia-developer)
1638         # These switches have been dealt with already
1639         ;;
1640     static)
1641         if [ "$VAL" = "yes" ]; then
1642             CFG_SHARED=no
1643         elif [ "$VAL" = "no" ]; then
1644             CFG_SHARED=yes
1645         else
1646             UNKNOWN_OPT=yes
1647         fi
1648         ;;
1649     incremental)
1650         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1651             CFG_INCREMENTAL="$VAL"
1652         else
1653             UNKNOWN_OPT=yes
1654         fi
1655         ;;
1656     fatal_error)
1657         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1658             CFG_CONFIGURE_EXIT_ON_ERROR="$VAL"
1659         else
1660             UNKNOWN_OPT=yes
1661         fi
1662         ;;
1663     feature-*)
1664             FEATURE=`echo $VAR | sed "s,^[^-]*-\([^-]*\),\1," | tr 'abcdefghijklmnopqrstuvwxyz-' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
1665             if [ "$VAL" = "no" ]; then
1666                 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_$FEATURE"
1667             elif [ "$VAL" = "yes" ] || [ "$VAL" = "unknown" ]; then
1668                 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_$FEATURE"
1669             else
1670                 UNKNOWN_OPT=yes
1671             fi
1672         ;;
1673     shared)
1674         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1675             CFG_SHARED="$VAL"
1676         else
1677             UNKNOWN_OPT=yes
1678         fi
1679         ;;
1680     gif)
1681         if [ "$VAL" = "no" ]; then
1682             CFG_GIF="$VAL"
1683         else
1684             UNKNOWN_OPT=yes
1685         fi
1686         ;;
1687     sm)
1688         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1689             CFG_SM="$VAL"
1690         else
1691             UNKNOWN_OPT=yes
1692         fi
1693
1694         ;;
1695     xinerama)
1696         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1697             CFG_XINERAMA="$VAL"
1698         else
1699             UNKNOWN_OPT=yes
1700         fi
1701         ;;
1702     xshape)
1703         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1704             CFG_XSHAPE="$VAL"
1705         else
1706             UNKNOWN_OPT=yes
1707         fi
1708         ;;
1709     xvideo)
1710         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1711             CFG_XVIDEO="$VAL"
1712         else
1713             UNKNOWN_OPT=yes
1714         fi
1715         ;;
1716     xsync)
1717         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1718             CFG_XSYNC="$VAL"
1719         else
1720             UNKNOWN_OPT=yes
1721         fi
1722         ;;
1723     xinput)
1724         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1725             CFG_XINPUT="$VAL"
1726         else
1727             UNKNOWN_OPT=yes
1728         fi
1729         ;;
1730     egl)
1731         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1732             CFG_EGL="$VAL"
1733         else
1734             UNKNOWN_OPT=yes
1735         fi
1736         ;;
1737     stl)
1738         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1739             CFG_STL="$VAL"
1740         else
1741             UNKNOWN_OPT=yes
1742         fi
1743         ;;
1744     pch)
1745         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1746             CFG_PRECOMPILE="$VAL"
1747         else
1748             UNKNOWN_OPT=yes
1749         fi
1750         ;;
1751     separate-debug-info)
1752         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1753             CFG_SEPARATE_DEBUG_INFO="$VAL"
1754         elif [ "$VAL" = "nocopy" ] ; then
1755             CFG_SEPARATE_DEBUG_INFO="yes"
1756             CFG_SEPARATE_DEBUG_INFO_NOCOPY="yes"
1757         else
1758             UNKNOWN_OPT=yes
1759         fi
1760         ;;
1761     reduce-exports)
1762         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1763             CFG_REDUCE_EXPORTS="$VAL"
1764         else
1765             UNKNOWN_OPT=yes
1766         fi
1767         ;;
1768     mmx)
1769         if [ "$VAL" = "no" ]; then
1770             CFG_MMX="$VAL"
1771         else
1772             UNKNOWN_OPT=yes
1773         fi
1774         ;;
1775     3dnow)
1776         if [ "$VAL" = "no" ]; then
1777             CFG_3DNOW="$VAL"
1778         else
1779             UNKNOWN_OPT=yes
1780         fi
1781         ;;
1782     sse)
1783         if [ "$VAL" = "no" ]; then
1784             CFG_SSE="$VAL"
1785         else
1786             UNKNOWN_OPT=yes
1787         fi
1788         ;;
1789     sse2)
1790         if [ "$VAL" = "no" ]; then
1791             CFG_SSE2="$VAL"
1792         else
1793             UNKNOWN_OPT=yes
1794         fi
1795         ;;
1796     sse3)
1797         if [ "$VAL" = "no" ]; then
1798             CFG_SSE3="$VAL"
1799         else
1800             UNKNOWN_OPT=yes
1801         fi
1802         ;;
1803     ssse3)
1804         if [ "$VAL" = "no" ]; then
1805             CFG_SSSE3="$VAL"
1806         else
1807             UNKNOWN_OPT=yes
1808         fi
1809         ;;
1810     sse4.1)
1811         if [ "$VAL" = "no" ]; then
1812             CFG_SSE4_1="$VAL"
1813         else
1814             UNKNOWN_OPT=yes
1815         fi
1816         ;;
1817     sse4.2)
1818         if [ "$VAL" = "no" ]; then
1819             CFG_SSE4_2="$VAL"
1820         else
1821             UNKNOWN_OPT=yes
1822         fi
1823         ;;
1824     avx)
1825         if [ "$VAL" = "no" ]; then
1826             CFG_AVX="$VAL"
1827         else
1828             UNKNOWN_OPT=yes
1829         fi
1830         ;;
1831     iwmmxt)
1832         CFG_IWMMXT="yes"
1833         ;;
1834     neon)
1835         if [ "$VAL" = "no" ]; then
1836             CFG_NEON="$VAL"
1837         else
1838             UNKNOWN_OPT=yes
1839         fi
1840         ;;
1841     reduce-relocations)
1842         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1843             CFG_REDUCE_RELOCATIONS="$VAL"
1844         else
1845             UNKNOWN_OPT=yes
1846         fi
1847         ;;
1848     freetype)
1849         [ "$VAL" = "qt" ] && VAL=yes
1850         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1851             CFG_QWS_FREETYPE="$VAL"
1852         else
1853             UNKNOWN_OPT=yes
1854         fi
1855         ;;
1856     zlib)
1857         [ "$VAL" = "qt" ] && VAL=yes
1858         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1859             CFG_ZLIB="$VAL"
1860         else
1861             UNKNOWN_OPT=yes
1862         fi
1863         # No longer supported:
1864         #[ "$VAL" = "no" ] && CFG_LIBPNG=no
1865         ;;
1866     s60)
1867         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1868             CFG_S60="$VAL"
1869         else
1870             UNKNOWN_OPT=yes
1871         fi
1872         ;;
1873     usedeffiles)
1874         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1875             CFG_SYMBIAN_DEFFILES="$VAL"
1876         else
1877             UNKNOWN_OPT=yes
1878         fi
1879         ;;
1880     sqlite)
1881         if [ "$VAL" = "system" ]; then
1882             CFG_SQLITE=system
1883         else
1884             UNKNOWN_OPT=yes
1885         fi
1886         ;;
1887     libpng)
1888         [ "$VAL" = "yes" ] && VAL=qt
1889         if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1890             CFG_LIBPNG="$VAL"
1891         else
1892             UNKNOWN_OPT=yes
1893         fi
1894         ;;
1895     libjpeg)
1896         [ "$VAL" = "yes" ] && VAL=qt
1897         if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1898             CFG_LIBJPEG="$VAL"
1899         else
1900             UNKNOWN_OPT=yes
1901         fi
1902         ;;
1903     libmng)
1904         [ "$VAL" = "yes" ] && VAL=qt
1905         if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1906             CFG_LIBMNG="$VAL"
1907         else
1908             UNKNOWN_OPT=yes
1909         fi
1910         ;;
1911     libtiff)
1912         [ "$VAL" = "yes" ] && VAL=qt
1913         if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1914             CFG_LIBTIFF="$VAL"
1915         else
1916             UNKNOWN_OPT=yes
1917         fi
1918         ;;
1919     nas-sound)
1920         if [ "$VAL" = "system" ] || [ "$VAL" = "no" ]; then
1921             CFG_NAS="$VAL"
1922         else
1923             UNKNOWN_OPT=yes
1924         fi
1925         ;;
1926     xcursor)
1927         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1928             CFG_XCURSOR="$VAL"
1929         else
1930             UNKNOWN_OPT=yes
1931         fi
1932         ;;
1933     xfixes)
1934         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1935             CFG_XFIXES="$VAL"
1936         else
1937             UNKNOWN_OPT=yes
1938         fi
1939         ;;
1940     xrandr)
1941         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1942             CFG_XRANDR="$VAL"
1943         else
1944             UNKNOWN_OPT=yes
1945         fi
1946         ;;
1947     xrender)
1948         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1949             CFG_XRENDER="$VAL"
1950         else
1951             UNKNOWN_OPT=yes
1952         fi
1953         ;;
1954     mitshm)
1955         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1956             CFG_MITSHM="$VAL"
1957         else
1958             UNKNOWN_OPT=yes
1959         fi
1960         ;;
1961     fontconfig)
1962         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1963             CFG_FONTCONFIG="$VAL"
1964         else
1965             UNKNOWN_OPT=yes
1966         fi
1967         ;;
1968     xkb)
1969         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1970             CFG_XKB="$VAL"
1971         else
1972             UNKNOWN_OPT=yes
1973         fi
1974         ;;
1975     xcb)
1976         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1977             CFG_XCB="$VAL"
1978         else
1979             UNKNOWN_OPT=yes
1980         fi
1981         ;;
1982     cups)
1983         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1984             CFG_CUPS="$VAL"
1985         else
1986             UNKNOWN_OPT=yes
1987         fi
1988         ;;
1989     iconv)
1990         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1991             CFG_ICONV="$VAL"
1992         else
1993             UNKNOWN_OPT=yes
1994         fi
1995         ;;
1996     glib)
1997         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1998             CFG_GLIB="$VAL"
1999         else
2000             UNKNOWN_OPT=yes
2001         fi
2002         ;;
2003     gstreamer)
2004         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2005             CFG_GSTREAMER="$VAL"
2006         else
2007             UNKNOWN_OPT=yes
2008         fi
2009         ;;
2010     gtkstyle)
2011         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2012             CFG_QGTKSTYLE="$VAL"
2013         else
2014             UNKNOWN_OPT=yes
2015         fi
2016         ;;
2017     style-s60)
2018         if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ]; then
2019             CFG_QS60STYLE="$VAL"
2020         else
2021             UNKNOWN_OPT=yes
2022         fi
2023         ;;
2024     gui)
2025         if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
2026             CFG_GUI="yes"
2027         else
2028             if [ "$VAL" = "no" ]; then
2029                 CFG_GUI="no"
2030             else
2031                 UNKNOWN_OPT=yes
2032             fi
2033         fi
2034         ;;
2035     qdbus|dbus)
2036         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "linked" ]; then
2037             CFG_DBUS="$VAL"
2038         elif [ "$VAL" = "runtime" ]; then
2039             CFG_DBUS="yes"
2040         else
2041             UNKNOWN_OPT=yes
2042         fi
2043         ;;
2044     dbus-linked)
2045         if [ "$VAL" = "yes" ]; then
2046             CFG_DBUS="linked"
2047         else
2048             UNKNOWN_OPT=yes
2049         fi
2050         ;;
2051     nis)
2052         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2053             CFG_NIS="$VAL"
2054         else
2055             UNKNOWN_OPT=yes
2056         fi
2057         ;;
2058     largefile)
2059         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2060             CFG_LARGEFILE="$VAL"
2061         else
2062             UNKNOWN_OPT=yes
2063         fi
2064         ;;
2065     openssl)
2066         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2067             CFG_OPENSSL="$VAL"
2068         else
2069             UNKNOWN_OPT=yes
2070         fi
2071         ;;
2072     openssl-linked)
2073         if [ "$VAL" = "yes" ]; then
2074             CFG_OPENSSL="linked"
2075         else
2076             UNKNOWN_OPT=yes
2077         fi
2078         ;;
2079     ptmalloc)
2080         if [ "$VAL" = "yes" ]; then
2081             CFG_PTMALLOC="yes"
2082         else
2083             UNKNOWN_OPT=yes
2084         fi
2085         ;;
2086
2087     xmlpatterns)
2088         if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
2089             CFG_XMLPATTERNS="yes"
2090         else
2091             if [ "$VAL" = "no" ]; then
2092                 CFG_XMLPATTERNS="no"
2093             else
2094                 UNKNOWN_OPT=yes
2095             fi
2096         fi
2097         ;;
2098     script)
2099         if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
2100             CFG_SCRIPT="yes"
2101         else
2102             if [ "$VAL" = "no" ]; then
2103                 CFG_SCRIPT="no"
2104             else
2105                 UNKNOWN_OPT=yes
2106             fi
2107         fi
2108         ;;
2109     scripttools)
2110         if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
2111             CFG_SCRIPTTOOLS="yes"
2112         else
2113             if [ "$VAL" = "no" ]; then
2114                 CFG_SCRIPTTOOLS="no"
2115             else
2116                 UNKNOWN_OPT=yes
2117             fi
2118         fi
2119         ;;
2120     svg)
2121         if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
2122             CFG_SVG="yes"
2123         else
2124             if [ "$VAL" = "no" ]; then
2125                 CFG_SVG="no"
2126             else
2127                 UNKNOWN_OPT=yes
2128             fi
2129         fi
2130         ;;
2131     declarative)
2132         if [ "$VAL" = "yes" ]; then
2133             CFG_DECLARATIVE="yes"
2134         else
2135             if [ "$VAL" = "no" ]; then
2136                 CFG_DECLARATIVE="no"
2137             else
2138                 UNKNOWN_OPT=yes
2139             fi
2140         fi
2141         ;;
2142     declarative-debug)
2143         if [ "$VAL" = "yes" ]; then
2144             CFG_DECLARATIVE_DEBUG="yes"
2145         else
2146             if [ "$VAL" = "no" ]; then
2147                 CFG_DECLARATIVE_DEBUG="no"
2148             else
2149                 UNKNOWN_OPT=yes
2150             fi
2151         fi
2152         ;;
2153     webkit)
2154         [ "$VAL" = "auto" ] && VAL="yes"
2155         CFG_WEBKIT="$VAL"
2156         ;;
2157     location)
2158         if [ "$VAL" = "yes" ]; then
2159             CFG_LOCATION="yes"
2160         else
2161             if [ "$VAL" = "no" ]; then
2162                 CFG_LOCATION="no"
2163             else
2164                 UNKNOWN_OPT=yes
2165             fi
2166         fi
2167         ;;
2168     javascript-jit)
2169         if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ] || [ "$VAL" = "no" ]; then 
2170             CFG_JAVASCRIPTCORE_JIT="$VAL"
2171         else
2172             UNKNOWN_OPT=yes
2173         fi
2174         ;;
2175     confirm-license)
2176         if [ "$VAL" = "yes" ]; then
2177             OPT_CONFIRM_LICENSE="$VAL"
2178         else
2179             UNKNOWN_OPT=yes
2180         fi
2181         ;;
2182     h|help)
2183         if [ "$VAL" = "yes" ]; then
2184             OPT_HELP="$VAL"
2185         else
2186             UNKNOWN_OPT=yes
2187         fi
2188         ;;
2189     sql-*|gfx-*|decoration-*|kbd-*|mouse-*|imageformat-*)
2190         # if Qt style options were used, $VAL can be "no", "qt", or "plugin"
2191         # if autoconf style options were used, $VAL can be "yes" or "no"
2192         [ "$VAL" = "yes" ] && VAL=qt
2193         # now $VAL should be "no", "qt", or "plugin"... double-check
2194         if [ "$VAL" != "no" ] && [ "$VAL" != "qt" ] && [ "$VAL" != "plugin" ]; then
2195             UNKNOWN_OPT=yes
2196         fi
2197         # now $VAL is "no", "qt", or "plugin"
2198         OPT="$VAL"
2199         VAL=`echo $VAR | sed "s,^[^-]*-\([^-]*\).*,\1,"`
2200         VAR=`echo $VAR | sed "s,^\([^-]*\).*,\1,"`
2201
2202         # Grab the available values
2203         case "$VAR" in
2204         sql)
2205             avail="$CFG_SQL_AVAILABLE"
2206             ;;
2207         gfx)
2208             avail="$CFG_GFX_AVAILABLE"
2209             if [ "$OPT" = "plugin" ]; then
2210                 avail="$CFG_GFX_PLUGIN_AVAILABLE"
2211             fi
2212             ;;
2213         decoration)
2214             avail="$CFG_DECORATION_AVAILABLE"
2215             if [ "$OPT" = "plugin" ]; then
2216                 avail="$CFG_DECORATION_PLUGIN_AVAILABLE"
2217             fi
2218             ;;
2219         kbd)
2220             avail="$CFG_KBD_AVAILABLE"
2221             if [ "$OPT" = "plugin" ]; then
2222                 avail="$CFG_KBD_PLUGIN_AVAILABLE"
2223             fi
2224             ;;
2225         mouse)
2226             avail="$CFG_MOUSE_AVAILABLE"
2227             if [ "$OPT" = "plugin" ]; then
2228                 avail="$CFG_MOUSE_PLUGIN_AVAILABLE"
2229             fi
2230             ;;
2231         imageformat)
2232             avail="$CFG_IMAGEFORMAT_PLUGIN_AVAILABLE"
2233             if [ "$OPT" != "plugin" ]; then
2234                 # png is always built in
2235                 avail="$avail png"
2236             fi
2237             ;;
2238         *)
2239             avail=""
2240             echo "BUG: Unhandled type $VAR used in $CURRENT_OPT"
2241             ;;
2242         esac
2243
2244         # Check that that user's value is available.
2245         found=no
2246         for d in $avail; do
2247             if [ "$VAL" = "$d" ]; then
2248                 found=yes
2249                 break
2250             fi
2251         done
2252         [ "$found" = yes ] || ERROR=yes
2253
2254         if [ "$VAR" = "sql" ]; then
2255             # set the CFG_SQL_driver
2256             eval "CFG_SQL_$VAL=\$OPT"
2257             continue
2258         elif [ "$VAR" = "imageformat" ]; then
2259             [ "$OPT" = "qt" ] && OPT=yes
2260             VAL="`echo $VAL |tr a-z A-Z`"
2261             eval "CFG_$VAL=$OPT"
2262             continue
2263         fi
2264
2265         if [ "$OPT" = "plugin" ] || [ "$OPT" = "qt" ]; then
2266             if [ "$OPT" = "plugin" ]; then
2267                 [ "$VAR" = "decoration" ] && QMakeVar del "${VAR}s" "$VAL"
2268                 [ "$VAR" = "decoration" ] && CFG_DECORATION_ON=`echo "${CFG_DECORATION_ON} " | sed "s,${VAL} ,,g"` && CFG_DECORATION_PLUGIN="$CFG_DECORATION_PLUGIN ${VAL}"
2269                 [ "$VAR" = "kbd" ] && QMakeVar del "${VAR}s" "$VAL"
2270                 [ "$VAR" = "kbd" ] && CFG_KBD_ON=`echo "${CFG_KBD_ON} " | sed "s,${VAL} ,,g"` && CFG_KBD_PLUGIN="$CFG_KBD_PLUGIN ${VAL}"
2271                 [ "$VAR" = "mouse" ] && QMakeVar del "${VAR}s" "$VAL"
2272                 [ "$VAR" = "mouse" ] && CFG_MOUSE_ON=`echo "${CFG_MOUSE_ON} " | sed "s,${VAL} ,,g"` && CFG_MOUSE_PLUGIN="$CFG_MOUSE_PLUGIN ${VAL}"
2273                 [ "$VAR" = "gfx" ] && QMakeVar del "${VAR}s" "$VAL"
2274                 [ "$VAR" = "gfx" ] && CFG_GFX_ON=`echo "${CFG_GFX_ON} " | sed "s,${VAL} ,,g"` && CFG_GFX_PLUGIN="${CFG_GFX_PLUGIN} ${VAL}"
2275                 VAR="${VAR}-${OPT}"
2276             else
2277                 if [ "$VAR" = "gfx" ] || [ "$VAR" = "kbd" ] || [ "$VAR" = "decoration" ] || [ "$VAR" = "mouse" ]; then
2278                     [ "$VAR" = "gfx" ] && CFG_GFX_ON="$CFG_GFX_ON $VAL"
2279                     [ "$VAR" = "kbd" ] && CFG_KBD_ON="$CFG_KBD_ON $VAL"
2280                     [ "$VAR" = "decoration" ] && CFG_DECORATION_ON="$CFG_DECORATION_ON $VAL"
2281                     [ "$VAR" = "mouse" ] && CFG_MOUSE_ON="$CFG_MOUSE_ON $VAL"
2282                     VAR="${VAR}-driver"
2283                 fi
2284             fi
2285             QMakeVar add "${VAR}s" "${VAL}"
2286         elif [ "$OPT" = "no" ]; then
2287             PLUG_VAR="${VAR}-plugin"
2288             if [ "$VAR" = "gfx" ] || [ "$VAR" = "kbd" ] || [ "$VAR" = "mouse" ]; then
2289                 IN_VAR="${VAR}-driver"
2290             else
2291                 IN_VAR="${VAR}"
2292             fi
2293             [ "$VAR" = "decoration" ] && CFG_DECORATION_ON=`echo "${CFG_DECORATION_ON} " | sed "s,${VAL} ,,g"`
2294             [ "$VAR" = "gfx" ] && CFG_GFX_ON=`echo "${CFG_GFX_ON} " | sed "s,${VAL} ,,g"`
2295             [ "$VAR" = "kbd" ] && CFG_KBD_ON=`echo "${CFG_KBD_ON} " | sed "s,${VAL} ,,g"`
2296             [ "$VAR" = "mouse" ] && CFG_MOUSE_ON=`echo "${CFG_MOUSE_ON} " | sed "s,${VAL} ,,g"`
2297             QMakeVar del "${IN_VAR}s" "$VAL"
2298             QMakeVar del "${PLUG_VAR}s" "$VAL"
2299         fi
2300         if [ "$ERROR" = "yes" ]; then
2301            echo "$CURRENT_OPT: unknown argument"
2302            OPT_HELP=yes
2303         fi
2304         ;;
2305     v|verbose)
2306         if [ "$VAL" = "yes" ]; then
2307             if [ "$OPT_VERBOSE" = "$VAL" ]; then            # takes two verboses to turn on qmake debugs
2308                 QMAKE_SWITCHES="$QMAKE_SWITCHES -d"
2309             else
2310                 OPT_VERBOSE=yes
2311             fi
2312         elif [ "$VAL" = "no" ]; then
2313             if [ "$OPT_VERBOSE" = "$VAL" ] && echo "$QMAKE_SWITCHES" | grep ' -d' >/dev/null 2>&1; then
2314                 QMAKE_SWITCHES=`echo $QMAKE_SWITCHES | sed "s, -d,,"`
2315             else
2316                 OPT_VERBOSE=no
2317             fi
2318         else
2319             UNKNOWN_OPT=yes
2320         fi
2321         ;;
2322     fast)
2323         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2324             OPT_FAST="$VAL"
2325         else
2326             UNKNOWN_OPT=yes
2327         fi
2328         ;;
2329     rpath)
2330         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2331             CFG_RPATH="$VAL"
2332         else
2333             UNKNOWN_OPT=yes
2334         fi
2335         ;;
2336     add_define)
2337         D_FLAGS="$D_FLAGS \"$VAL\""
2338         ;;
2339     add_ipath)
2340         I_FLAGS="$I_FLAGS -I\"${VAL}\""
2341         ;;
2342     add_lpath)
2343         L_FLAGS="$L_FLAGS -L\"${VAL}\""
2344         ;;
2345     add_rpath)
2346         RPATH_FLAGS="$RPATH_FLAGS \"${VAL}\""
2347         ;;
2348     add_link)
2349         l_FLAGS="$l_FLAGS -l\"${VAL}\""
2350         ;;
2351     add_fpath)
2352         if [ "$PLATFORM_MAC" = "yes" ]; then
2353             L_FLAGS="$L_FLAGS -F\"${VAL}\""
2354             I_FLAGS="$I_FLAGS -F\"${VAL}\""
2355         else
2356             UNKNOWN_OPT=yes
2357         fi
2358         ;;
2359     add_framework)
2360         if [ "$PLATFORM_MAC" = "yes" ]; then
2361             l_FLAGS="$l_FLAGS -framework \"${VAL}\""
2362         else
2363             UNKNOWN_OPT=yes
2364         fi
2365         ;;
2366     silent)
2367         CFG_SILENT="$VAL"
2368         ;;
2369     phonon)
2370         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2371             CFG_PHONON="$VAL"
2372         else
2373             UNKNOWN_OPT=yes
2374         fi
2375         ;;
2376     phonon-backend)
2377         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2378             CFG_PHONON_BACKEND="$VAL"
2379         else
2380             UNKNOWN_OPT=yes
2381         fi
2382         ;;
2383     multimedia)
2384         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2385             CFG_MULTIMEDIA="$VAL"
2386         else
2387             UNKNOWN_OPT=yes
2388         fi
2389         ;;
2390     dont-process)
2391         CFG_NOPROCESS=yes
2392         ;;
2393     process)
2394         CFG_NOPROCESS=no
2395         ;;
2396     audio-backend)
2397         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2398             CFG_AUDIO_BACKEND="$VAL"
2399         else
2400             UNKNOWN_OPT=yes
2401         fi
2402         ;;
2403     fpu)
2404        if [ "$VAL" != "no" ]; then
2405           QT_CFLAGS_FPU=$VAL
2406        fi
2407        ;;
2408     icu)
2409         if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2410             CFG_ICU="$VAL"
2411         else
2412             UNKNOWN_OPT=yes
2413         fi
2414         ;;
2415     *)
2416         UNKNOWN_OPT=yes
2417         ;;
2418     esac
2419     if [ "$UNKNOWN_OPT" = "yes" ]; then
2420         echo "${CURRENT_OPT}: invalid command-line switch"
2421         OPT_HELP=yes
2422         ERROR=yes
2423     fi
2424 done
2425
2426 if [ "$CFG_QCONFIG" != "full" ] && [ "$CFG_QT3SUPPORT" = "yes" ]; then
2427     echo "Warning: '-qconfig $CFG_QCONFIG' will disable the qt3support library."
2428     CFG_QT3SUPPORT="no"
2429 fi
2430 if [ "$CFG_GUI" = "no" ]; then
2431     echo "Warning: -no-gui will disable the qt3support library."
2432     CFG_QT3SUPPORT="no"
2433 fi
2434
2435 #disable Qt3Support for Lighthouse
2436 if [ "$PLATFORM_QPA" = "yes" ]; then
2437     CFG_QT3SUPPORT="no"
2438 fi
2439
2440 # update QT_CONFIG to show our current predefined configuration
2441 case "$CFG_QCONFIG" in
2442 minimal|small|medium|large|full)
2443     # these are a sequence of increasing functionality
2444     for c in minimal small medium large full; do
2445         QT_CONFIG="$QT_CONFIG $c-config"
2446         [ "$CFG_QCONFIG" = $c ] && break
2447     done
2448     ;;
2449 *)
2450     # not known to be sufficient for anything
2451     if [ '!' -f "$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h" ] && [ '!' -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
2452         echo >&2 "Error: configuration file not found:"
2453         echo >&2 "  $relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h"
2454         echo >&2 "  or"
2455         echo >&2 "  `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"`"
2456         OPT_HELP=yes
2457     fi
2458 esac
2459
2460 #-------------------------------------------------------------------------------
2461 # build tree initialization
2462 #-------------------------------------------------------------------------------
2463
2464 # where to find which..
2465 unixtests="$relpath/config.tests/unix"
2466 mactests="$relpath/config.tests/mac"
2467 symbiantests="$relpath/config.tests/symbian"
2468 WHICH="$unixtests/which.test"
2469
2470 PERL=`$WHICH perl 2>/dev/null`
2471
2472 # find out which awk we want to use, prefer gawk, then nawk, then regular awk
2473 AWK=
2474 for e in gawk nawk awk; do
2475     if "$WHICH" $e >/dev/null 2>&1 && ( $e -f /dev/null /dev/null ) >/dev/null 2>&1; then
2476         AWK=$e
2477         break
2478     fi
2479 done
2480
2481 # find perl
2482 PERL="/usr/bin/perl"
2483 if "$WHICH" perl >/dev/null 2>&1 && ( perl /dev/null ) >/dev/null 2>&1; then
2484     PERL=`$WHICH perl`
2485 fi
2486
2487 ### skip this if the user just needs help...
2488 if [ "$OPT_HELP" != "yes" ]; then
2489
2490 # is this a shadow build?
2491 if [ "$OPT_SHADOW" = "maybe" ]; then
2492     OPT_SHADOW=no
2493     if [ "$relpath" != "$outpath" ] && [ '!' -f "$outpath/configure" ]; then
2494         if [ -h "$outpath" ]; then
2495             [ "$relpath" -ef "$outpath" ] || OPT_SHADOW=yes
2496         else
2497             OPT_SHADOW=yes
2498         fi
2499     fi
2500 fi
2501 if [ "$OPT_SHADOW" = "yes" ]; then
2502     if [ -f "$relpath/.qmake.cache" -o -f "$relpath/src/corelib/global/qconfig.h" -o -f "$relpath/src/corelib/global/qconfig.cpp" ]; then
2503         echo >&2 "You cannot make a shadow build from a source tree containing a previous build."
2504         echo >&2 "Cannot proceed."
2505         exit 1
2506     fi
2507     [ "$OPT_VERBOSE" = "yes" ] && echo "Performing shadow build..."
2508 fi
2509
2510 if [ "$PLATFORM_X11" = "yes" -o "$PLATFORM_QWS" = "yes" -o "$PLATFORM_QPA" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2511     echo
2512     echo "WARNING: -debug-and-release is not supported anymore on Qt/X11 and Qt for Embedded Linux"
2513     echo "Qt can be built in release mode with separate debug information, so"
2514     echo "-debug-and-release is not necessary anymore"
2515     echo
2516 fi
2517
2518 # detect build style
2519 if [ "$CFG_DEBUG" = "auto" ]; then
2520     if [ "$PLATFORM_MAC" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then
2521         CFG_DEBUG_RELEASE=yes
2522         CFG_DEBUG=yes
2523     elif [ "$CFG_DEV" = "yes" ]; then
2524         CFG_DEBUG_RELEASE=no
2525         CFG_DEBUG=yes
2526     else
2527         CFG_DEBUG_RELEASE=no
2528         CFG_DEBUG=no
2529     fi
2530 fi
2531 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2532     QMAKE_CONFIG="$QMAKE_CONFIG build_all"
2533 fi
2534
2535 if [ "$CFG_SILENT" = "yes" ]; then
2536     QMAKE_CONFIG="$QMAKE_CONFIG silent"
2537 fi
2538
2539 # if the source tree is different from the build tree,
2540 # symlink or copy part of the sources
2541 if [ "$OPT_SHADOW" = "yes" ]; then
2542     echo "Preparing build tree..."
2543
2544     if [ -z "$PERL" ]; then
2545         echo
2546         echo "You need perl in your PATH to make a shadow build."
2547         echo "Cannot proceed."
2548         exit 1
2549     fi
2550
2551     [ -d "$outpath/bin" ] || mkdir -p "$outpath/bin"
2552
2553     # symlink the qmake directory
2554     find "$relpath/qmake" | while read a; do
2555         my_a=`echo "$a" | sed "s,^${relpath}/,${outpath}/,"`
2556         if [ '!' -f "$my_a" ]; then
2557             if [ -d "$a" ]; then
2558                 # directories are created...
2559                 mkdir -p "$my_a"
2560             else
2561                 a_dir=`dirname "$my_a"`
2562                 [ -d "$a_dir" ] || mkdir -p "$a_dir"
2563                 # ... and files are symlinked
2564                 case `basename "$a"` in
2565                 *.o|*.d|GNUmakefile*|qmake)
2566                     ;;
2567                 *)
2568                     rm -f "$my_a"
2569                     ln -s "$a" "$my_a"
2570                     ;;
2571                 esac
2572             fi
2573         fi
2574     done
2575
2576     # make a syncqt script that can be used in the shadow
2577     rm -f "$outpath/bin/syncqt"
2578     if [ -x "$relpath/bin/syncqt" ]; then
2579         mkdir -p "$outpath/bin"
2580         echo "#!/bin/sh" >"$outpath/bin/syncqt"
2581         echo "perl \"$relpath/bin/syncqt\" -outdir \"$outpath\" \"$relpath\" \"\$@\"" >>"$outpath/bin/syncqt"
2582         chmod 755 "$outpath/bin/syncqt"
2583     fi
2584
2585     for i in elf2e32_qtwrapper createpackage patch_capabilities; do
2586         rm -f "$outpath/bin/$i"
2587         if [ -x "$relpath/bin/$i" ]; then
2588             mkdir -p "$outpath/bin"
2589             echo "#!/bin/sh" >"$outpath/bin/$i"
2590             echo "QTDIR=\"$relpath\"; export QTDIR" >>"$outpath/bin/$i"
2591             echo "\"$relpath/bin/$i\" \"\$@\"" >>"$outpath/bin/$i"
2592             chmod 755 "$outpath/bin/$i"
2593         fi
2594     done
2595
2596     # symlink the mkspecs directory
2597     mkdir -p "$outpath/mkspecs"
2598     rm -rf "$outpath"/mkspecs/*
2599     ln -s "$relpath"/mkspecs/* "$outpath/mkspecs"
2600     rm -f "$outpath/mkspecs/default"
2601
2602     ShadowMkspecs()
2603     {
2604         rm -rf "$outpath/mkspecs/$1"
2605         find "$relpath/mkspecs/$1" -type d | sed "s,^$relpath,$outpath," | xargs mkdir -p
2606         find "$relpath/mkspecs/$1" -type f | sed "s,^$relpath/,," | while read f; do ln -s "$relpath/$f" "$outpath/$f"; done
2607     }
2608
2609     # Special case for mkspecs/features directory.
2610     # To be able to place .prf files into a shadow build directory,
2611     # we're creating links for files only. The directory structure is reproduced.
2612     ShadowMkspecs features
2613
2614     # The modules dir is special, too.
2615     ShadowMkspecs modules
2616
2617     # symlink the doc directory
2618     rm -rf "$outpath/doc"
2619     ln -s "$relpath/doc" "$outpath/doc"
2620
2621     # make sure q3porting.xml can be found
2622     mkdir -p "$outpath/tools/porting/src"
2623     rm -f "$outpath/tools/porting/src/q3porting.xml"
2624     ln -s "$relpath/tools/porting/src/q3porting.xml" "$outpath/tools/porting/src"
2625 fi
2626
2627 # symlink fonts to be able to run application from build directory
2628 if [ "$PLATFORM_QWS" = "yes" -o "$PLATFORM_QPA" = "yes" ] && [ ! -d "${outpath}/lib/fonts" ]; then
2629     if [ "$PLATFORM" = "$XPLATFORM" ]; then
2630         mkdir -p "${outpath}/lib"
2631         ln -s "${relpath}/lib/fonts" "${outpath}/lib/fonts"
2632     fi
2633 fi
2634
2635 if [ "$OPT_FAST" = "auto" ]; then
2636    if [ '!' -z "$AWK" ] && [ "$CFG_DEV" = "yes" ]; then
2637        OPT_FAST=yes
2638    else
2639        OPT_FAST=no
2640    fi
2641 fi
2642
2643 # find a make command
2644 if [ -z "$MAKE" ]; then
2645     MAKE=
2646     for mk in gmake make; do
2647         if "$WHICH" $mk >/dev/null 2>&1; then
2648             MAKE=`"$WHICH" $mk`
2649             break
2650         fi
2651     done
2652     if [ -z "$MAKE" ]; then
2653         echo >&2 "You don't seem to have 'make' or 'gmake' in your PATH."
2654         echo >&2 "Cannot proceed."
2655         exit 1
2656     fi
2657     # export MAKE, we need it later in the config.tests
2658     export MAKE
2659 fi
2660
2661 fi ### help
2662
2663 #-------------------------------------------------------------------------------
2664 # auto-detect all that hasn't been specified in the arguments
2665 #-------------------------------------------------------------------------------
2666
2667 [ "$PLATFORM_QWS" = "yes" -a "$CFG_EMBEDDED" = "no" ] && CFG_EMBEDDED=auto
2668 if [ "$CFG_EMBEDDED" != "no" ]; then
2669     case "$UNAME_SYSTEM:$UNAME_RELEASE" in
2670     Darwin:*)
2671         [ -z "$PLATFORM" ] && PLATFORM=qws/macx-generic-g++
2672         if [ -z "$XPLATFORM" ]; then
2673             [ "$CFG_EMBEDDED" = "auto" ] && CFG_EMBEDDED=generic
2674             XPLATFORM="qws/macx-$CFG_EMBEDDED-g++"
2675         fi
2676         ;;
2677     FreeBSD:*)
2678         [ -z "$PLATFORM" ] && PLATFORM=qws/freebsd-generic-g++
2679         if [ -z "$XPLATFORM" ]; then
2680             [ "$CFG_EMBEDDED" = "auto" ] && CFG_EMBEDDED=generic
2681             XPLATFORM="qws/freebsd-$CFG_EMBEDDED-g++"
2682         fi
2683         ;;
2684     SunOS:5*)
2685         [ -z "$PLATFORM" ] && PLATFORM=qws/solaris-generic-g++
2686         if [ -z "$XPLATFORM" ]; then
2687             [ "$CFG_EMBEDDED" = "auto" ] && CFG_EMBEDDED=generic
2688             XPLATFORM="qws/solaris-$CFG_EMBEDDED-g++"
2689         fi
2690         ;;
2691     Linux:*)
2692         if [ -z "$PLATFORM" ]; then
2693             case "$UNAME_MACHINE" in
2694             *86)
2695                 PLATFORM=qws/linux-x86-g++
2696                 ;;
2697             *86_64)
2698                 PLATFORM=qws/linux-x86_64-g++
2699                 ;;
2700             *)
2701                 PLATFORM=qws/linux-generic-g++
2702                 ;;
2703             esac
2704         fi
2705         if [ -z "$XPLATFORM" ]; then
2706             if [ "$CFG_EMBEDDED" = "auto" ]; then
2707                 if [ -n "$CFG_ARCH" ]; then
2708                     CFG_EMBEDDED=$CFG_ARCH
2709                 else
2710                     case "$UNAME_MACHINE" in
2711                     *86)
2712                         CFG_EMBEDDED=x86
2713                         ;;
2714                     *86_64)
2715                         CFG_EMBEDDED=x86_64
2716                         ;;
2717                     *)
2718                         CFG_EMBEDDED=generic
2719                         ;;
2720                     esac
2721                 fi
2722             fi
2723             XPLATFORM="qws/linux-$CFG_EMBEDDED-g++"
2724         fi
2725         ;;
2726     QNX:*)
2727         [ -z "$PLATFORM" ] && PLATFORM=unsupported/qws/qnx-generic-g++
2728         if [ -z "$XPLATFORM" ]; then
2729             [ "$CFG_EMBEDDED" = "auto" ] && CFG_EMBEDDED=generic
2730             XPLATFORM="unsupported/qws/qnx-$CFG_EMBEDDED-g++"
2731         fi
2732         ;;
2733     CYGWIN*:*)
2734         if [ -z "$XPLATFORM" ]; then
2735                 CFG_EMBEDDED=x86
2736         fi
2737         ;;
2738     *)
2739         echo "Qt for Embedded Linux is not supported on this platform. Disabling."
2740         CFG_EMBEDDED=no
2741         PLATFORM_QWS=no
2742         PLATFORM_QPA=no
2743         ;;
2744     esac
2745 fi
2746 if [ -z "$PLATFORM" ]; then
2747     PLATFORM_NOTES=
2748     case "$UNAME_SYSTEM:$UNAME_RELEASE" in
2749      Darwin:*)
2750         if [ "$PLATFORM_MAC" = "yes" -o "$PLATFORM_QPA" = "yes" ]; then
2751           PLATFORM=macx-g++
2752         # PLATFORM=macx-xcode
2753         else
2754           PLATFORM=darwin-g++
2755         fi
2756         ;;
2757      AIX:*)
2758         #PLATFORM=aix-g++
2759         #PLATFORM=aix-g++-64
2760         PLATFORM=aix-xlc
2761         #PLATFORM=aix-xlc-64
2762         PLATFORM_NOTES="
2763             - Also available for AIX: aix-g++ aix-g++-64 aix-xlc-64
2764         "
2765         ;;
2766      GNU:*)
2767         PLATFORM=hurd-g++
2768         ;;
2769      dgux:*)
2770         PLATFORM=dgux-g++
2771         ;;
2772 #     DYNIX/ptx:4*)
2773 #       PLATFORM=dynix-g++
2774 #       ;;
2775      ULTRIX:*)
2776         PLATFORM=ultrix-g++
2777         ;;
2778      FreeBSD:*)
2779         PLATFORM=freebsd-g++
2780         PLATFORM_NOTES="
2781             - Also available for FreeBSD: freebsd-icc
2782         "
2783         ;;
2784      OpenBSD:*)
2785         PLATFORM=openbsd-g++
2786         ;;
2787      NetBSD:*)
2788         PLATFORM=netbsd-g++
2789         ;;
2790      BSD/OS:*|BSD/386:*)
2791         PLATFORM=bsdi-g++
2792         ;;
2793      IRIX*:*)
2794         #PLATFORM=irix-g++
2795         PLATFORM=irix-cc
2796         #PLATFORM=irix-cc-64
2797         PLATFORM_NOTES="
2798             - Also available for IRIX: irix-g++ irix-cc-64
2799         "
2800         ;;
2801      HP-UX:*)
2802         case "$UNAME_MACHINE" in
2803             ia64)
2804                 #PLATFORM=hpuxi-acc-32
2805                 PLATFORM=hpuxi-acc-64
2806                 PLATFORM_NOTES="
2807                     - Also available for HP-UXi: hpuxi-acc-32
2808                 "
2809             ;;
2810             *)
2811                 #PLATFORM=hpux-g++
2812                 PLATFORM=hpux-acc
2813                 #PLATFORM=hpux-acc-64
2814                 #PLATFORM=hpux-cc
2815                 #PLATFORM=hpux-acc-o64
2816                 PLATFORM_NOTES="
2817                     - Also available for HP-UX: hpux-g++ hpux-acc-64 hpux-acc-o64
2818                 "
2819             ;;
2820         esac
2821         ;;
2822      OSF1:*)
2823         #PLATFORM=tru64-g++
2824         PLATFORM=tru64-cxx
2825         PLATFORM_NOTES="
2826             - Also available for Tru64: tru64-g++
2827         "
2828         ;;
2829      Linux:*)
2830         case "$UNAME_MACHINE" in
2831             x86_64|s390x|ppc64)
2832                 PLATFORM=linux-g++-64
2833                 ;;
2834             *)
2835                 PLATFORM=linux-g++
2836                 ;;
2837         esac
2838         PLATFORM_NOTES="
2839             - Also available for Linux: linux-kcc linux-icc linux-cxx
2840         "
2841         ;;
2842      SunOS:5*)
2843         if [ "$XPLATFORM_MINGW" = "yes" ]; then
2844             PLATFORM="solaris-g++"
2845         else
2846             #PLATFORM=solaris-g++
2847             PLATFORM=solaris-cc
2848             #PLATFORM=solaris-cc64
2849         fi
2850         PLATFORM_NOTES="
2851             - Also available for Solaris: solaris-g++ solaris-cc-64
2852         "
2853         ;;
2854      ReliantUNIX-*:*|SINIX-*:*)
2855         PLATFORM=reliant-cds
2856         #PLATFORM=reliant-cds-64
2857         PLATFORM_NOTES="
2858             - Also available for Reliant UNIX: reliant-cds-64
2859         "
2860         ;;
2861      CYGWIN*:*)
2862         PLATFORM=cygwin-g++
2863         ;;
2864      LynxOS*:*)
2865         PLATFORM=lynxos-g++
2866         ;;
2867      OpenUNIX:*)
2868         #PLATFORM=unixware-g++
2869         PLATFORM=unixware-cc
2870         PLATFORM_NOTES="
2871             - Also available for OpenUNIX: unixware-g++
2872         "
2873         ;;
2874      UnixWare:*)
2875         #PLATFORM=unixware-g++
2876         PLATFORM=unixware-cc
2877         PLATFORM_NOTES="
2878             - Also available for UnixWare: unixware-g++
2879         "
2880         ;;
2881      SCO_SV:*)
2882         #PLATFORM=sco-g++
2883         PLATFORM=sco-cc
2884         PLATFORM_NOTES="
2885             - Also available for SCO OpenServer: sco-g++
2886         "
2887         ;;
2888      UNIX_SV:*)
2889         PLATFORM=unixware-g++
2890         ;;
2891      QNX:*)
2892         PLATFORM=unsupported/qnx-g++
2893         ;;
2894      *)
2895         if [ "$OPT_HELP" != "yes" ]; then
2896             echo
2897             for p in $PLATFORMS; do
2898                 echo "    $relconf $* -platform $p"
2899             done
2900             echo >&2
2901             echo "   The build script does not currently recognize all" >&2
2902             echo "   platforms supported by Qt." >&2
2903             echo "   Rerun this script with a -platform option listed to" >&2
2904             echo "   set the system/compiler combination you use." >&2
2905             echo >&2
2906             exit 2
2907         fi
2908     esac
2909 fi
2910
2911 if [ "$PLATFORM_QWS" = "yes" ]; then
2912     CFG_SM=no
2913     PLATFORMS=`find "$relpath/mkspecs/qws" | sed "s,$relpath/mkspecs/qws/,,"`
2914 else
2915     PLATFORMS=`find "$relpath/mkspecs/" -type f | grep -v qws | sed "s,$relpath/mkspecs/qws/,,"`
2916 fi
2917
2918 [ -z "$XPLATFORM" ] && XPLATFORM="$PLATFORM"
2919
2920 case `basename "$XPLATFORM"` in win32-g++*) XPLATFORM_MINGW=yes;; esac
2921 case "$XPLATFORM" in *symbian*) XPLATFORM_SYMBIAN=yes;; esac
2922 case "$XPLATFORM" in symbian-sbsv2) XPLATFORM_SYMBIAN_SBSV2=yes;; esac
2923
2924 if [ -d "$PLATFORM" ]; then
2925   QMAKESPEC="$PLATFORM"
2926 else
2927   QMAKESPEC="$relpath/mkspecs/${PLATFORM}"
2928 fi
2929 if [ -d "$XPLATFORM" ]; then
2930   XQMAKESPEC="$XPLATFORM"
2931 else
2932   XQMAKESPEC="$relpath/mkspecs/${XPLATFORM}"
2933 fi
2934 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2935     QT_CROSS_COMPILE=yes
2936     QMAKE_CONFIG="$QMAKE_CONFIG cross_compile"
2937 fi
2938
2939 if [ "$PLATFORM_MAC" = "yes" ]; then
2940    if [ `basename $QMAKESPEC` = "macx-xcode" ] || [ `basename $XQMAKESPEC` = "macx-xcode" ]; then
2941       echo >&2
2942       echo "   Platform 'macx-xcode' should not be used when building Qt/Mac." >&2
2943       echo "   Please build Qt/Mac with 'macx-g++', then if you would like to" >&2
2944       echo "   use mac-xcode on your application code it can link to a Qt/Mac" >&2
2945       echo "   built with 'macx-g++'" >&2
2946       echo >&2
2947       exit 2
2948     fi
2949 fi
2950
2951 # check specified platforms are supported
2952 if [ '!' -d "$QMAKESPEC" ]; then
2953     echo
2954     echo "   The specified system/compiler is not supported:"
2955     echo
2956     echo "      $QMAKESPEC"
2957     echo
2958     echo "   Please see the README file for a complete list."
2959     echo
2960     exit 2
2961 fi
2962 if [ '!' -d "$XQMAKESPEC" ]; then
2963     echo
2964     echo "   The specified system/compiler is not supported:"
2965     echo
2966     echo "      $XQMAKESPEC"
2967     echo
2968     echo "   Please see the README file for a complete list."
2969     echo
2970     exit 2
2971 fi
2972 if [ '!' -f "${XQMAKESPEC}/qplatformdefs.h" ]; then
2973     echo
2974     echo "   The specified system/compiler port is not complete:"
2975     echo
2976     echo "      $XQMAKESPEC/qplatformdefs.h"
2977     echo
2978     echo "   Please contact qt-bugs@trolltech.com."
2979     echo
2980     exit 2
2981 fi
2982
2983 # now look at the configs and figure out what platform we are config'd for
2984 [ "$CFG_EMBEDDED" = "no" ] && [ "$PLATFORM_QPA" != "yes" ] \
2985   && [ '!' -z "`getQMakeConf \"$XQMAKESPEC\" | grep QMAKE_LIBS_X11 | awk '{print $3;}'`" ] \
2986   && PLATFORM_X11=yes
2987 ### echo "$XQMAKESPEC" | grep mkspecs/qws >/dev/null 2>&1 && PLATFORM_QWS=yes
2988
2989 if [ "$UNAME_SYSTEM" = "SunOS" ]; then
2990     # Solaris 2.5 and 2.6 have libposix4, which was renamed to librt for Solaris 7 and up
2991     if echo $UNAME_RELEASE | grep "^5\.[5|6]" >/dev/null 2>&1; then
2992         sed -e "s,-lrt,-lposix4," "$XQMAKESPEC/qmake.conf" > "$XQMAKESPEC/qmake.conf.new"
2993         mv "$XQMAKESPEC/qmake.conf.new" "$XQMAKESPEC/qmake.conf"
2994     fi
2995 fi
2996
2997 #-------------------------------------------------------------------------------
2998 # determine the system architecture
2999 #-------------------------------------------------------------------------------
3000 if [ "$OPT_VERBOSE" = "yes" ]; then
3001     echo "Determining system architecture... ($UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_MACHINE)"
3002 fi
3003
3004 if [ "$CFG_EMBEDDED" != "no" -a "$CFG_EMBEDDED" != "auto" ] && [ -n "$CFG_ARCH" ]; then
3005     if [ "$CFG_ARCH" != "$CFG_EMBEDDED" ]; then
3006         echo ""
3007         echo "You have specified a target architecture with -embedded and -arch."
3008         echo "The two architectures you have specified are different, so we can"
3009         echo "not proceed. Either set both to be the same, or only use -embedded."
3010         echo ""
3011         exit 1
3012     fi
3013 fi
3014
3015 if [ "$CFG_RTOS_ENABLED" = "no" ]; then
3016     case `basename "$XPLATFORM"` in
3017         qnx-* | vxworks-*)
3018             echo ""
3019             echo "You are not licensed for Qt for `basename $XPLATFORM`."
3020             echo ""
3021             echo "Please contact qt-info@nokia.com to upgrade your license to"
3022             echo "include this platform, or install the Qt Open Source Edition"
3023             echo "if you intend to develop free software."
3024             exit 1
3025             ;;
3026     esac
3027 fi
3028
3029 if [ -z "${CFG_HOST_ARCH}" ]; then
3030     case "$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_MACHINE" in
3031     GNU:*:*)
3032         CFG_HOST_ARCH=`echo ${UNAME_MACHINE} | sed -e 's,[-/].*$,,'`
3033         case "$CFG_HOST_ARCH" in
3034             i?86)
3035                 CFG_HOST_ARCH=i386
3036                 ;;
3037         esac
3038         if [ "$OPT_VERBOSE" = "yes" ]; then
3039             echo "    GNU/Hurd ($CFG_HOST_ARCH)"
3040         fi
3041         ;;
3042     IRIX*:*:*)
3043         CFG_HOST_ARCH=`uname -p`
3044         if [ "$OPT_VERBOSE" = "yes" ]; then
3045             echo "    SGI ($CFG_HOST_ARCH)"
3046         fi
3047         ;;
3048     SunOS:5*:*)
3049         case "$UNAME_MACHINE" in
3050         sun4u*|sun4v*)
3051             if [ "$OPT_VERBOSE" = "yes" ]; then
3052                 echo "    Sun SPARC (sparc)"
3053             fi
3054             CFG_HOST_ARCH=sparc
3055             ;;
3056         i86pc)
3057             case "$PLATFORM" in
3058             *-64*)
3059                 if [ "$OPT_VERBOSE" = "yes" ]; then
3060                     echo "    64-bit AMD 80x86 (x86_64)"
3061                 fi
3062                 CFG_HOST_ARCH=x86_64
3063                 ;;
3064             *)
3065                 if [ "$OPT_VERBOSE" = "yes" ]; then
3066                     echo "    32-bit Intel 80x86 (i386)"
3067                 fi
3068                 CFG_HOST_ARCH=i386
3069                 ;;
3070             esac
3071         esac
3072         ;;
3073     Darwin:*:*)
3074         case "$UNAME_MACHINE" in
3075             Power?Macintosh)
3076                 if [ "$OPT_VERBOSE" = "yes" ]; then
3077                     echo "    32-bit Apple PowerPC (powerpc)"
3078                 fi
3079                 ;;
3080             x86)
3081                 if [ "$OPT_VERBOSE" = "yes" ]; then
3082                     echo "    32-bit Intel 80x86 (i386)"
3083                 fi
3084                 ;;
3085         esac
3086         CFG_HOST_ARCH=macosx
3087         ;;
3088     AIX:*:00????????00)
3089         if [ "$OPT_VERBOSE" = "yes" ]; then
3090         echo "    64-bit IBM PowerPC (powerpc)"
3091         fi
3092         CFG_HOST_ARCH=powerpc
3093         ;;
3094     HP-UX:*:9000*)
3095         if [ "$OPT_VERBOSE" = "yes" ]; then
3096             echo "    HP PA-RISC (parisc)"
3097         fi
3098         CFG_HOST_ARCH=parisc
3099         ;;
3100     *:*:i?86)
3101         if [ "$OPT_VERBOSE" = "yes" ]; then
3102             echo "    32-bit Intel 80x86 (i386)"
3103         fi
3104         CFG_HOST_ARCH=i386
3105         ;;
3106     *:*:x86_64|*:*:amd64)
3107         if [ "$PLATFORM" = "linux-g++-32" -o "$PLATFORM" = "linux-icc-32" ]; then
3108             if [ "$OPT_VERBOSE" = "yes" ]; then
3109                 echo "    32 bit on 64-bit AMD 80x86 (i386)"
3110             fi
3111             CFG_HOST_ARCH=i386
3112         else
3113             if [ "$OPT_VERBOSE" = "yes" ]; then
3114                 echo "    64-bit AMD 80x86 (x86_64)"
3115             fi
3116             CFG_HOST_ARCH=x86_64
3117         fi
3118         ;;
3119     *:*:ppc)
3120         if [ "$OPT_VERBOSE" = "yes" ]; then
3121             echo "    32-bit PowerPC (powerpc)"
3122         fi
3123         CFG_HOST_ARCH=powerpc
3124         ;;
3125     *:*:ppc64)
3126         if [ "$OPT_VERBOSE" = "yes" ]; then
3127             echo "    64-bit PowerPC (powerpc)"
3128         fi
3129         CFG_HOST_ARCH=powerpc
3130         ;;
3131     *:*:s390*)
3132         if [ "$OPT_VERBOSE" = "yes" ]; then
3133             echo "    IBM S/390 (s390)"
3134         fi
3135         CFG_HOST_ARCH=s390
3136         ;;
3137     *:*:arm*)
3138         if [ "$OPT_VERBOSE" = "yes" ]; then
3139             echo "    ARM (arm)"
3140         fi
3141         CFG_HOST_ARCH=arm
3142         ;;
3143     Linux:*:sparc*)
3144         if [ "$OPT_VERBOSE" = "yes" ]; then
3145             echo "    Linux on SPARC"
3146         fi
3147         CFG_HOST_ARCH=sparc
3148         ;;
3149     QNX:*:*)
3150         case "$UNAME_MACHINE" in
3151         x86pc)
3152             if [ "$OPT_VERBOSE" = "yes" ]; then
3153                 echo "    QNX on Intel 80x86 (i386)"
3154             fi
3155             CFG_HOST_ARCH=i386
3156             ;;
3157         esac
3158         ;;
3159     *:*:*)
3160         if [ "$OPT_VERBOSE" = "yes" ]; then
3161             echo "    Trying '$UNAME_MACHINE'..."
3162         fi
3163         CFG_HOST_ARCH="$UNAME_MACHINE"
3164         ;;
3165     esac
3166 fi
3167
3168 if [ "$PLATFORM" != "$XPLATFORM" -a "$CFG_EMBEDDED" != "no" ]; then
3169     if [ -n "$CFG_ARCH" ]; then
3170         CFG_EMBEDDED=$CFG_ARCH
3171     fi
3172
3173     case "$CFG_EMBEDDED" in
3174     x86)
3175         CFG_ARCH=i386
3176         ;;
3177     x86_64)
3178         CFG_ARCH=x86_64
3179         ;;
3180     ipaq|sharp)
3181         CFG_ARCH=arm
3182         ;;
3183     dm7000)
3184         CFG_ARCH=powerpc
3185         ;;
3186     dm800)
3187         CFG_ARCH=mips
3188         ;;
3189     sh4al)
3190         CFG_ARCH=sh4a
3191         ;;
3192     arm*)
3193         CFG_ARCH=arm
3194         ;;
3195     *)
3196         CFG_ARCH="$CFG_EMBEDDED"
3197         ;;
3198     esac
3199 elif [ "$XPLATFORM_MINGW" = "yes" ]; then
3200     [ -z "$CFG_ARCH" ] && CFG_ARCH="windows"
3201 elif [ "$XPLATFORM_SYMBIAN" = "yes" ]; then
3202     CFG_ARCH=symbian
3203 elif [ "$PLATFORM_MAC" = "yes" ] || [ -z "$CFG_ARCH" ]; then
3204     CFG_ARCH=$CFG_HOST_ARCH
3205 fi
3206
3207 # for compatibility
3208 COMPAT_ARCH=
3209 case "$CFG_ARCH" in
3210 arm*)
3211     # previously, armv6 was a different arch
3212     CFG_ARCH=arm
3213     COMPAT_ARCH=armv6
3214     ;;
3215 esac
3216
3217 if [ -d "$relpath/src/corelib/arch/$CFG_ARCH" ]; then
3218     if [ "$OPT_VERBOSE" = "yes" ]; then
3219         echo "    '$CFG_ARCH' is supported"
3220     fi
3221 else
3222     if [ "$OPT_VERBOSE" = "yes" ]; then
3223         echo "    '$CFG_ARCH' is unsupported, using 'generic'"
3224     fi
3225     CFG_ARCH=generic
3226 fi
3227 if [ "$CFG_HOST_ARCH" != "$CFG_ARCH" ]; then
3228     if [ -d "$relpath/src/corelib/arch/$CFG_HOST_ARCH" ]; then
3229         if [ "$OPT_VERBOSE" = "yes" ]; then
3230             echo "    '$CFG_HOST_ARCH' is supported"
3231         fi
3232     else
3233         if [ "$OPT_VERBOSE" = "yes" ]; then
3234             echo "    '$CFG_HOST_ARCH' is unsupported, using 'generic'"
3235         fi
3236         CFG_HOST_ARCH=generic
3237     fi
3238 fi
3239
3240 if [ "$OPT_VERBOSE" = "yes" ]; then
3241     echo "System architecture: '$CFG_ARCH'"
3242     if [ "$PLATFORM_QWS" = "yes" -o "$PLATFORM_QPA" = "yes" ]; then
3243         echo "Host architecture: '$CFG_HOST_ARCH'"
3244     fi
3245 fi
3246
3247 #-------------------------------------------------------------------------------
3248 # tests that don't need qmake (must be run before displaying help)
3249 #-------------------------------------------------------------------------------
3250
3251 if [ -z "$PKG_CONFIG" ]; then
3252     # See if PKG_CONFIG is set in the mkspec:
3253     PKG_CONFIG=`getQMakeConf "$XQMAKESPEC" | sed -n -e 's%PKG_CONFIG[^_].*=%%p' | tr '\n' ' '`
3254 fi
3255 if [ -z "$PKG_CONFIG" ]; then
3256     PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
3257 fi
3258
3259 # Work out if we can use pkg-config
3260 if [ "$QT_CROSS_COMPILE" = "yes" ]; then
3261     if [ "$QT_FORCE_PKGCONFIG" = "yes" ]; then
3262         echo >&2 ""
3263         echo >&2 "You have asked to use pkg-config and are cross-compiling."
3264         echo >&2 "Please make sure you have a correctly set-up pkg-config"
3265         echo >&2 "environment!"
3266         echo >&2 ""
3267         if [ -z "$PKG_CONFIG_PATH" ]; then
3268             echo >&2 ""
3269             echo >&2 "Warning: PKG_CONFIG_PATH has not been set.  This could mean"
3270             echo >&2 "the host compiler's .pc files will be used. This is probably"
3271             echo >&2 "not what you want."
3272             echo >&2 ""
3273         elif [ -z "$PKG_CONFIG_SYSROOT" ] && [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
3274             echo >&2 ""
3275             echo >&2 "Warning: PKG_CONFIG_SYSROOT/PKG_CONFIG_SYSROOT_DIR has not"
3276             echo >&2 "been set. This means your toolchain's .pc files must contain"
3277             echo >&2 "the paths to the toolchain's libraries & headers. If configure"
3278             echo >&2 "tests are failing, please check these files."
3279             echo >&2 ""
3280         fi
3281     else
3282         echo >&2 ""
3283         echo >&2 "You have not explicitly asked to use pkg-config and are cross-compiling."
3284         echo >&2 "pkg-config will not be used to automatically query cflag/lib parameters for"
3285         echo >&2 "dependencies"
3286         echo >&2 ""
3287         PKG_CONFIG=""
3288     fi
3289 fi
3290
3291 # process CFG_MAC_ARCHS
3292 if [ "$PLATFORM_MAC" = "yes" ]; then
3293 #   check -arch arguments for validity.
3294     ALLOWED="x86 ppc x86_64 ppc64 i386"
3295     # Save the list so we can re-write it using only valid values
3296     CFG_MAC_ARCHS_IN="$CFG_MAC_ARCHS"
3297     CFG_MAC_ARCHS=
3298     for i in $CFG_MAC_ARCHS_IN
3299     do 
3300         if echo "$ALLOWED" | grep -w -v "$i" > /dev/null 2>&1; then
3301             echo "Unknown architecture: \"$i\". Supported architectures: x86[i386] ppc x86_64 ppc64";
3302             exit 2;
3303         fi
3304         if [ "$i" = "i386" -o "$i" = "x86" ]; then
3305             # These are synonymous values
3306             # CFG_MAC_ARCHS requires x86 while GCC requires i386
3307             CFG_MAC_ARCHS="$CFG_MAC_ARCHS x86"
3308             MAC_CONFIG_TEST_COMMANDLINE="$MAC_CONFIG_TEST_COMMANDLINE -arch i386"
3309         else
3310             CFG_MAC_ARCHS="$CFG_MAC_ARCHS $i"
3311             MAC_CONFIG_TEST_COMMANDLINE="$MAC_CONFIG_TEST_COMMANDLINE -arch $i"
3312         fi
3313     done
3314 fi
3315
3316 # pass on $CFG_SDK to the configure tests.
3317 if [ '!' -z "$CFG_SDK" ]; then
3318     MAC_CONFIG_TEST_COMMANDLINE="$MAC_CONFIG_TEST_COMMANDLINE -sdk $CFG_SDK"
3319 fi
3320
3321 # find the default framework value
3322 if [ "$PLATFORM_MAC" = "yes" ] && [ "$PLATFORM" != "macx-xlc" ]; then
3323     if [ "$CFG_FRAMEWORK" = "auto" ]; then
3324         CFG_FRAMEWORK="$CFG_SHARED"
3325     elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
3326         echo
3327         echo "WARNING: Using static linking will disable the use of Mac frameworks."
3328         echo
3329         CFG_FRAMEWORK="no"
3330     fi
3331 else
3332     CFG_FRAMEWORK=no
3333 fi
3334
3335 QMAKE_CONF_COMPILER=`getQMakeConf "$XQMAKESPEC" | grep "^QMAKE_CXX[^_A-Z0-9]" | sed "s,.* *= *\(.*\)$,\1," | tail -1`
3336 TEST_COMPILER="$CXX"
3337
3338 [ -z "$TEST_COMPILER" ] && TEST_COMPILER=$QMAKE_CONF_COMPILER
3339 if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
3340     #for Symbian we don't need this checking
3341     if [ -z "$TEST_COMPILER" ]; then
3342         echo "ERROR: Cannot set the compiler for the configuration tests"
3343         exit 1
3344     fi
3345 fi
3346
3347 if [ "$CFG_EMBEDDED" = "nacl" ]; then
3348     TEST_COMPILER="nacl-gcc"
3349 fi
3350
3351 SYSROOT_FLAG=
3352 if [ -n "$CFG_SYSROOT" ]; then
3353     if compilerSupportsFlag --sysroot="$CFG_SYSROOT"; then
3354         [ "$OPT_VERBOSE" = "yes" ] && echo "Setting sysroot to: $CFG_SYSROOT"
3355         SYSROOT_FLAG="--sysroot=$CFG_SYSROOT"
3356     else
3357         echo >&2 "The compiler doesn't support the --sysroot flag, I can't set the sysroot"
3358         exit 1
3359     fi
3360 fi
3361 export SYSROOT_FLAG    # used by config.tests/unix/compile.test
3362
3363 # auto-detect precompiled header support
3364 if [ "$CFG_PRECOMPILE" = "auto" ]; then
3365     if [ `echo "$CFG_MAC_ARCHS" | wc -w` -gt 1 ]; then
3366        CFG_PRECOMPILE=no
3367     elif "$unixtests/precomp.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
3368        CFG_PRECOMPILE=no
3369     else
3370        CFG_PRECOMPILE=yes
3371     fi
3372 elif [ "$CFG_PRECOMPILE" = "yes" ] && [ `echo "$CFG_MAC_ARCHS" | wc -w` -gt 1 ]; then
3373     echo
3374     echo "WARNING: Using universal binaries disables precompiled headers."
3375     echo
3376     CFG_PRECOMPILE=no
3377 fi
3378
3379 #auto-detect DWARF2 on the mac
3380 if [ "$PLATFORM_MAC" = "yes" ] && [ "$CFG_MAC_DWARF2" = "auto" ]; then
3381     if "$mactests/dwarf2.test" "$TEST_COMPILER" "$OPT_VERBOSE" "$mactests" ; then
3382         CFG_MAC_DWARF2=no
3383     else
3384         CFG_MAC_DWARF2=yes
3385     fi
3386 fi
3387
3388 # auto-detect support for -Xarch on the mac
3389 if [ "$PLATFORM_MAC" = "yes" ] && [ "$CFG_MAC_XARCH" = "auto" ]; then
3390     if "$mactests/xarch.test" "$TEST_COMPILER" "$OPT_VERBOSE" "$mactests" ; then
3391         CFG_MAC_XARCH=no
3392     else
3393         CFG_MAC_XARCH=yes
3394     fi
3395 fi
3396
3397 # don't autodetect support for separate debug info on objcopy when
3398 # cross-compiling as lots of toolchains seems to have problems with this
3399 if [ "$QT_CROSS_COMPILE" = "yes" ] && [ "$CFG_SEPARATE_DEBUG_INFO" = "auto" ]; then
3400     CFG_SEPARATE_DEBUG_INFO="no"
3401 fi
3402
3403 # auto-detect support for separate debug info in objcopy
3404 if [ "$CFG_SEPARATE_DEBUG_INFO" != "no" ] && [ "$CFG_SHARED" = "yes" ]; then
3405     TEST_COMPILER_CFLAGS=`getQMakeConf "$XQMAKESPEC" | sed -n -e 's%QMAKE_CFLAGS[^_=]*[+*]*=%%p' | tr '\n' ' '`
3406     TEST_COMPILER_CXXFLAGS=`getQMakeConf "$XQMAKESPEC" | sed -n -e 's%QMAKE_CXXFLAGS[^_=]*[+*]*=%%p' | tr '\n' ' '`
3407     TEST_OBJCOPY=`getQMakeConf "$XQMAKESPEC" | grep "^QMAKE_OBJCOPY" | sed "s%.* *= *\(.*\)$%\1%" | tail -1`
3408     COMPILER_WITH_FLAGS="$TEST_COMPILER $TEST_COMPILER_CXXFLAGS"
3409     COMPILER_WITH_FLAGS=`echo "$COMPILER_WITH_FLAGS" | sed -e "s%\\$\\$QMAKE_CFLAGS%$TEST_COMPILER_CFLAGS%g"`
3410     if "$unixtests/objcopy.test" "$COMPILER_WITH_FLAGS" "$TEST_OBJCOPY" "$OPT_VERBOSE"; then
3411        CFG_SEPARATE_DEBUG_INFO=no
3412     else
3413        case "$PLATFORM" in
3414        hpux-*)
3415            # binutils on HP-UX is buggy; default to no.
3416            CFG_SEPARATE_DEBUG_INFO=no
3417            ;;
3418        *)
3419            CFG_SEPARATE_DEBUG_INFO=yes
3420            ;;
3421        esac
3422     fi
3423 fi
3424
3425 # auto-detect -fvisibility support
3426 if [ "$CFG_REDUCE_EXPORTS" = "auto" ]; then
3427     if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
3428        CFG_REDUCE_EXPORTS=no
3429     else
3430        CFG_REDUCE_EXPORTS=yes
3431     fi
3432 fi
3433
3434 # detect the availability of the -Bsymbolic-functions linker optimization
3435 if [ "$CFG_REDUCE_RELOCATIONS" != "no" ]; then
3436     if "$unixtests/bsymbolic_functions.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
3437         CFG_REDUCE_RELOCATIONS=no
3438     else
3439         CFG_REDUCE_RELOCATIONS=yes
3440     fi
3441 fi
3442
3443 # auto-detect GNU make support
3444 if [ "$CFG_USE_GNUMAKE" = "auto" ] && "$MAKE" -v | grep "GNU Make" >/dev/null 2>&1; then
3445    CFG_USE_GNUMAKE=yes
3446 fi
3447
3448 # If -opengl wasn't specified, don't try to auto-detect
3449 if [ "$PLATFORM_QWS" = "yes" ] && [ "$CFG_OPENGL" = "auto" ]; then
3450         CFG_OPENGL=no
3451 fi
3452
3453 # mac
3454 if [ "$PLATFORM_MAC" = "yes" ] && [ "$XPLATFORM_SYMBIAN" = "no" ]; then
3455     if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
3456         CFG_OPENGL=desktop
3457     fi
3458 fi
3459
3460 # find the default framework value
3461 if [ "$PLATFORM_MAC" = "yes" ] && [ "$PLATFORM" != "macx-xlc" ]; then
3462     if [ "$CFG_FRAMEWORK" = "auto" ]; then
3463         CFG_FRAMEWORK="$CFG_SHARED"
3464     elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
3465         echo
3466         echo "WARNING: Using static linking will disable the use of Mac frameworks."
3467         echo
3468         CFG_FRAMEWORK="no"
3469     fi
3470 else
3471     CFG_FRAMEWORK=no
3472 fi
3473
3474 # Print a warning if configure was called with the 10.4u SDK option on Snow Leopard
3475 # with the default mkspec. The 10.4u SDK does not support gcc 4.2.
3476 if [ "$PLATFORM_MAC" = "yes" ] && [ '!' -z "$CFG_SDK" ]; then
3477     # get the darwin version. 10.0.0 and up means snow leopard.
3478     VERSION=`uname -r | tr '.' ' ' | awk '{print $1}'`
3479     if [ "$VERSION" -gt 9 ] && [ "$CFG_SDK" == "/Developer/SDKs/MacOSX10.4u.sdk/" ] && [ "$PLATFORM" == "macx-g++" ]; then
3480         echo
3481         echo "WARNING: The 10.4u SDK does not support gcc 4.2. Configure with -platform macx-g++40. "
3482         echo
3483     fi
3484 fi
3485
3486 # x11 tests are done after qmake is built
3487
3488
3489 #setup the build parts
3490 if [ -z "$CFG_BUILD_PARTS" ]; then
3491     CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS"
3492
3493     # don't build tools by default when cross-compiling
3494     if [ "$PLATFORM" != "$XPLATFORM" ]; then
3495         CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
3496     fi
3497 fi
3498 for nobuild in $CFG_NOBUILD_PARTS; do
3499     CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
3500 done
3501 if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then
3502 #    echo
3503 #    echo "WARNING: libs is a required part of the build."
3504 #    echo
3505     CFG_BUILD_PARTS="$CFG_BUILD_PARTS libs"
3506 fi
3507
3508 #-------------------------------------------------------------------------------
3509 # post process QT_INSTALL_* variables
3510 #-------------------------------------------------------------------------------
3511
3512 #prefix
3513 if [ -z "$QT_INSTALL_PREFIX" ]; then
3514     if [ "$CFG_DEV" = "yes" ]; then
3515         QT_INSTALL_PREFIX="$outpath" # In Development, we use sandboxed builds by default
3516     elif [ "$PLATFORM_QWS" = "yes" -o "$PLATFORM_QPA" = "yes" ]; then
3517         if [ "$PLATFORM_QPA" = "yes" ]; then
3518         QT_INSTALL_PREFIX="/usr/local/Trolltech/QtLighthouse-${QT_VERSION}"
3519         else
3520         QT_INSTALL_PREFIX="/usr/local/Trolltech/QtEmbedded-${QT_VERSION}"
3521         fi
3522         if [ "$PLATFORM" != "$XPLATFORM" ]; then
3523             QT_INSTALL_PREFIX="${QT_INSTALL_PREFIX}-${CFG_ARCH}"
3524         fi
3525     elif [ -d "$EPOCROOT" ] && [ "$XPLATFORM_SYMBIAN" = "yes" ]; then
3526         if [ "$XPLATFORM_SYMBIAN" = "yes" ]; then
3527             QT_INSTALL_PREFIX="$EPOCROOT/epoc32/"
3528             QT_INSTALL_LIBS="$EPOCROOT/epoc32/release/armv5/lib/"
3529         fi
3530     else
3531         QT_INSTALL_PREFIX="/usr/local/Trolltech/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Trolltech/Qt-$QT_VERSION
3532     fi
3533 fi
3534 QT_INSTALL_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PREFIX"`
3535
3536 if [ "$XPLATFORM_SYMBIAN" = "yes" ]; then
3537     [ -z "$QT_HOST_PREFIX" ] && QT_HOST_PREFIX="$QT_INSTALL_PREFIX"
3538     [ -z "$QT_INSTALL_DOCS" ] && QT_INSTALL_DOCS=
3539     [ -z "$QT_INSTALL_HEADERS" ] && QT_INSTALL_HEADERS=
3540     [ -z "$QT_INSTALL_LIBS" ] && QT_INSTALL_LIBS=
3541     [ -z "$QT_INSTALL_BINS" ] && QT_INSTALL_BINS=
3542     [ -z "$QT_INSTALL_PLUGINS" ] && QT_INSTALL_PLUGINS="\\\\resource\\\\qt$QT_LIBINFIX\\\\plugins"
3543     [ -z "$QT_INSTALL_IMPORTS" ] && QT_INSTALL_IMPORTS="\\\\resource\\\\qt$QT_LIBINFIX\\\\imports"
3544     [ -z "$QT_INSTALL_DATA" ] && QT_INSTALL_DATA=
3545     [ -z "$QT_INSTALL_TRANSLATIONS" ] && QT_INSTALL_TRANSLATIONS="\\\\resource\\\\qt$QT_LIBINFIX\\\\translations"
3546     [ -z "$QT_INSTALL_SETTINGS" ] && QT_INSTALL_SETTINGS=
3547     [ -z "$QT_INSTALL_EXAMPLES" ] && QT_INSTALL_EXAMPLES=
3548     [ -z "$QT_INSTALL_DEMOS" ] && QT_INSTALL_DEMOS=
3549 else
3550     #docs
3551     if [ -z "$QT_INSTALL_DOCS" ]; then #default
3552         if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
3553             if [ "$PLATFORM_MAC" = "yes" ]; then
3554                 QT_INSTALL_DOCS="/Developer/Documentation/Qt"
3555             fi
3556         fi
3557         [ -z "$QT_INSTALL_DOCS" ] && QT_INSTALL_DOCS="$QT_INSTALL_PREFIX/doc" #fallback
3558
3559     fi
3560     QT_INSTALL_DOCS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DOCS"`
3561
3562     #headers
3563     if [ -z "$QT_INSTALL_HEADERS" ]; then #default
3564         if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
3565             if [ "$PLATFORM_MAC" = "yes" ]; then
3566                 if [ "$CFG_FRAMEWORK" = "yes" ]; then
3567                     QT_INSTALL_HEADERS=
3568                 fi
3569             fi
3570         fi
3571         [ -z "$QT_INSTALL_HEADERS" ] && QT_INSTALL_HEADERS="$QT_INSTALL_PREFIX/include"
3572
3573     fi
3574     QT_INSTALL_HEADERS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_HEADERS"`
3575
3576     #libs
3577     if [ -z "$QT_INSTALL_LIBS" ]; then #default
3578         if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
3579             if [ "$PLATFORM_MAC" = "yes" ]; then
3580                 if [ "$CFG_FRAMEWORK" = "yes" ]; then
3581                     QT_INSTALL_LIBS="/Libraries/Frameworks"
3582                 fi
3583             fi
3584         fi
3585         [ -z "$QT_INSTALL_LIBS" ] && QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib" #fallback
3586     fi
3587     QT_INSTALL_LIBS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBS"`
3588
3589     #bins
3590     if [ -z "$QT_INSTALL_BINS" ]; then #default
3591         if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
3592             if [ "$PLATFORM_MAC" = "yes" ]; then
3593                 QT_INSTALL_BINS="/Developer/Applications/Qt"
3594             fi
3595         fi
3596         [ -z "$QT_INSTALL_BINS" ] && QT_INSTALL_BINS="$QT_INSTALL_PREFIX/bin" #fallback
3597
3598     fi
3599     QT_INSTALL_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_BINS"`
3600
3601     #plugins
3602     if [ -z "$QT_INSTALL_PLUGINS" ]; then #default
3603         if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
3604             if [ "$PLATFORM_MAC" = "yes" ]; then
3605                 QT_INSTALL_PLUGINS="/Developer/Applications/Qt/plugins"
3606             fi
3607         fi
3608         [ -z "$QT_INSTALL_PLUGINS" ] && QT_INSTALL_PLUGINS="$QT_INSTALL_PREFIX/plugins" #fallback
3609     fi
3610     QT_INSTALL_PLUGINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PLUGINS"`
3611
3612     #imports
3613     if [ -z "$QT_INSTALL_IMPORTS" ]; then #default
3614         if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
3615             if [ "$PLATFORM_MAC" = "yes" ]; then
3616                 QT_INSTALL_IMPORTS="/Developer/Applications/Qt/imports"
3617             fi
3618         fi
3619         [ -z "$QT_INSTALL_IMPORTS" ] && QT_INSTALL_IMPORTS="$QT_INSTALL_PREFIX/imports" #fallback
3620     fi
3621     QT_INSTALL_IMPORTS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_IMPORTS"`
3622
3623     #data
3624     if [ -z "$QT_INSTALL_DATA" ]; then #default
3625         QT_INSTALL_DATA="$QT_INSTALL_PREFIX"
3626     fi
3627     QT_INSTALL_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DATA"`
3628
3629     #translations
3630     if [ -z "$QT_INSTALL_TRANSLATIONS" ]; then #default
3631         QT_INSTALL_TRANSLATIONS="$QT_INSTALL_PREFIX/translations"
3632     fi
3633     QT_INSTALL_TRANSLATIONS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TRANSLATIONS"`
3634
3635     #settings
3636     if [ -z "$QT_INSTALL_SETTINGS" ]; then #default
3637         if [ "$PLATFORM_MAC" = "yes" ]; then
3638             QT_INSTALL_SETTINGS=/Library/Preferences/Qt
3639         else
3640             QT_INSTALL_SETTINGS=/etc/xdg
3641         fi
3642     fi
3643     QT_INSTALL_SETTINGS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_SETTINGS"`
3644
3645     #examples
3646     if [ -z "$QT_INSTALL_EXAMPLES" ]; then #default
3647         if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
3648             if [ "$PLATFORM_MAC" = "yes" ]; then
3649                 QT_INSTALL_EXAMPLES="/Developer/Examples/Qt"
3650             fi
3651         fi
3652         [ -z "$QT_INSTALL_EXAMPLES" ] && QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples" #fallback
3653     fi
3654     QT_INSTALL_EXAMPLES=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_EXAMPLES"`
3655
3656     #demos
3657     if [ -z "$QT_INSTALL_DEMOS" ]; then #default
3658         if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
3659             if [ "$PLATFORM_MAC" = "yes" ]; then
3660                 QT_INSTALL_DEMOS="/Developer/Examples/Qt/Demos"
3661             fi
3662         fi
3663         [ -z "$QT_INSTALL_DEMOS" ] && QT_INSTALL_DEMOS="$QT_INSTALL_PREFIX/demos"
3664     fi
3665     QT_INSTALL_DEMOS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DEMOS"`
3666 fi
3667
3668 #-------------------------------------------------------------------------------
3669 # help - interactive parts of the script _after_ this section please
3670 #-------------------------------------------------------------------------------
3671
3672 # next, emit a usage message if something failed.
3673 if [ "$OPT_HELP" = "yes" ]; then
3674     [ "x$ERROR" = "xyes" ] && echo
3675     if [ "$CFG_NIS" = "no" ]; then
3676         NSY=" "
3677         NSN="*"
3678     else
3679         NSY="*"
3680         NSN=" "
3681     fi
3682     if [ "$CFG_CUPS" = "no" ]; then
3683         CUY=" "
3684         CUN="*"
3685     else
3686         CUY="*"
3687         CUN=" "
3688     fi
3689     if [ "$CFG_ICONV" = "no" ]; then
3690         CIY=" "
3691         CIN="*"
3692     else
3693         CIY="*"
3694         CIN=" "
3695     fi
3696     if [ "$CFG_LARGEFILE" = "no" ]; then
3697         LFSY=" "
3698         LFSN="*"
3699     else
3700         LFSY="*"
3701         LFSN=" "
3702     fi
3703     if [ "$CFG_STL" = "auto" ] || [ "$CFG_STL" = "yes" ]; then
3704         SHY="*"
3705         SHN=" "
3706     else
3707         SHY=" "
3708         SHN="*"
3709     fi
3710     if [ "$CFG_IPV6" = "auto" ]; then
3711         I6Y="*"
3712         I6N=" "
3713     fi
3714     if [ "$CFG_PRECOMPILE" = "auto" ] || [ "$CFG_PRECOMPILE" = "no" ]; then
3715         PHY=" "
3716         PHN="*"
3717     else
3718         PHY="*"
3719         PHN=" "
3720     fi
3721
3722     if [ "$CFG_XCB" = "no" ]; then
3723         XCY=" "
3724         XCN="*"
3725     else
3726         XCY="*"
3727         XCN=" "
3728     fi
3729
3730     cat <<EOF
3731 Usage:  $relconf [-h] [-prefix <dir>] [-prefix-install] [-bindir <dir>] [-libdir <dir>]
3732         [-docdir <dir>] [-headerdir <dir>] [-plugindir <dir> ] [-importdir <dir>] [-datadir <dir>]
3733         [-translationdir <dir>] [-sysconfdir <dir>] [-examplesdir <dir>]
3734         [-demosdir <dir>] [-buildkey <key>] [-release] [-debug]
3735         [-debug-and-release] [-developer-build] [-shared] [-static] [-no-fast] [-fast] [-no-largefile]
3736         [-largefile] [-no-exceptions] [-exceptions] [-no-accessibility]
3737         [-accessibility] [-no-stl] [-stl] [-no-sql-<driver>] [-sql-<driver>]
3738         [-plugin-sql-<driver>] [-system-sqlite] [-no-qt3support] [-qt3support]
3739         [-platform] [-D <string>] [-I <string>] [-L <string>] [-help]
3740         [-qt-zlib] [-system-zlib] [-no-gif] [-no-libtiff] [-qt-libtiff] [-system-libtiff]
3741         [-no-libpng] [-qt-libpng] [-system-libpng] [-no-libmng] [-qt-libmng]
3742         [-system-libmng] [-no-libjpeg] [-qt-libjpeg] [-system-libjpeg] [-make <part>]
3743         [-nomake <part>] [-R <string>]  [-l <string>] [-no-rpath]  [-rpath] [-continue]
3744         [-verbose] [-v] [-silent] [-no-nis] [-nis] [-no-cups] [-cups] [-no-iconv]
3745         [-iconv] [-no-pch] [-pch] [-no-dbus] [-dbus] [-dbus-linked] [-no-gui]
3746         [-no-separate-debug-info] [-no-mmx] [-no-3dnow] [-no-sse] [-no-sse2]
3747         [-no-sse3] [-no-ssse3] [-no-sse4.1] [-no-sse4.2] [-no-avx] [-no-neon]
3748         [-qtnamespace <namespace>] [-qtlibinfix <infix>] [-separate-debug-info] [-armfpa]
3749         [-no-optimized-qmake] [-optimized-qmake] [-no-xmlpatterns] [-xmlpatterns]
3750         [-no-multimedia] [-multimedia] [-no-phonon] [-phonon] [-no-phonon-backend] [-phonon-backend]
3751         [-no-media-backend] [-media-backend] [-no-audio-backend] [-audio-backend] 
3752         [-no-openssl] [-openssl] [-openssl-linked]
3753         [-no-gtkstyle] [-gtkstyle] [-no-svg] [-svg] [-no-webkit] [-webkit] [-webkit-debug]
3754         [-no-javascript-jit] [-javascript-jit]
3755         [-no-script] [-script] [-no-scripttools] [-scripttools] 
3756         [-no-declarative] [-declarative] [-no-declarative-debug] [-declarative-debug]
3757         [-no-location] [-location]
3758         [additional platform specific options (see below)]
3759
3760
3761 Installation options:
3762
3763     -qpa ................ This will enable the QPA build.
3764                           QPA is a window system agnostic implementation of Qt.
3765
3766  These are optional, but you may specify install directories.
3767
3768     -prefix <dir> ...... This will install everything relative to <dir>
3769                          (default $QT_INSTALL_PREFIX)
3770 EOF
3771 if [ "$PLATFORM_QWS" = "yes" -o "$PLATFORM_QPA" = "yes" ]; then
3772 cat <<EOF
3773
3774     -hostprefix [dir] .. Tools and libraries needed when developing
3775                          applications are installed in [dir]. If [dir] is
3776                          not given, the current build directory will be used.
3777 EOF
3778 fi
3779 cat <<EOF
3780
3781   * -prefix-install .... Force a sandboxed "local" installation of
3782                          Qt. This will install into
3783                          $QT_INSTALL_PREFIX, if this option is
3784                          disabled then some platforms will attempt a
3785                          "system" install by placing default values to
3786                          be placed in a system location other than
3787                          PREFIX.
3788
3789  You may use these to separate different parts of the install:
3790
3791     -bindir <dir> ......... Executables will be installed to <dir>
3792                             (default PREFIX/bin)
3793     -libdir <dir> ......... Libraries will be installed to <dir>
3794                             (default PREFIX/lib)
3795     -docdir <dir> ......... Documentation will be installed to <dir>
3796                             (default PREFIX/doc)
3797     -headerdir <dir> ...... Headers will be installed to <dir>
3798                             (default PREFIX/include)
3799     -plugindir <dir> ...... Plugins will be installed to <dir>
3800                             (default PREFIX/plugins)
3801     -importdir <dir> ...... Imports for QML will be installed to <dir>
3802                             (default PREFIX/imports)
3803     -datadir <dir> ........ Data used by Qt programs will be installed to <dir>
3804                             (default PREFIX)
3805     -translationdir <dir> . Translations of Qt programs will be installed to <dir>
3806                             (default PREFIX/translations)
3807     -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
3808                             (default PREFIX/etc/settings)
3809     -examplesdir <dir> .... Examples will be installed to <dir>
3810                             (default PREFIX/examples)
3811     -demosdir <dir> ....... Demos will be installed to <dir>
3812                             (default PREFIX/demos)
3813
3814  You may use these options to turn on strict plugin loading.
3815
3816     -buildkey <key> .... Build the Qt library and plugins using the specified
3817                          <key>.  When the library loads plugins, it will only
3818                          load those that have a matching key.
3819
3820 Configure options:
3821
3822  The defaults (*) are usually acceptable. A plus (+) denotes a default value
3823  that needs to be evaluated. If the evaluation succeeds, the feature is
3824  included. Here is a short explanation of each option:
3825
3826  *  -release ........... Compile and link Qt with debugging turned off.
3827     -debug ............. Compile and link Qt with debugging turned on.
3828     -debug-and-release . Compile and link two versions of Qt, with and without
3829                          debugging turned on (Mac only).
3830
3831     -developer-build ... Compile and link Qt with Qt developer options (including auto-tests exporting)
3832
3833     -opensource ........ Compile and link the Open-Source Edition of Qt.
3834     -commercial ........ Compile and link the Commercial Edition of Qt.
3835
3836
3837  *  -shared ............ Create and use shared Qt libraries.
3838     -static ............ Create and use static Qt libraries.
3839
3840  *  -no-fast ........... Configure Qt normally by generating Makefiles for all
3841                          project files.
3842     -fast .............. Configure Qt quickly by generating Makefiles only for
3843                          library and subdirectory targets.  All other Makefiles
3844                          are created as wrappers, which will in turn run qmake.
3845
3846     -no-largefile ...... Disables large file support.
3847  +  -largefile ......... Enables Qt to access files larger than 4 GB.
3848
3849 EOF
3850 if [ "$PLATFORM_QWS" = "yes" -o "$PLATFORM_QPA" = "yes" ]; then
3851     EXCN="*"
3852     EXCY=" "
3853 else
3854     EXCN=" "
3855     EXCY="*"
3856 fi
3857 if [ "$CFG_DBUS" = "no" ]; then
3858     DBY=" "
3859     DBN="+"
3860 else
3861     DBY="+"
3862     DBN=" "
3863 fi
3864
3865     cat << EOF
3866  $EXCN  -no-exceptions ..... Disable exceptions on compilers that support it.
3867  $EXCY  -exceptions ........ Enable exceptions on compilers that support it.
3868
3869     -no-accessibility .. Do not compile Accessibility support.
3870  *  -accessibility ..... Compile Accessibility support.
3871
3872  $SHN  -no-stl ............ Do not compile STL support.
3873  $SHY  -stl ............... Compile STL support.
3874
3875     -no-sql-<driver> ... Disable SQL <driver> entirely.
3876     -qt-sql-<driver> ... Enable a SQL <driver> in the QtSql library, by default
3877                          none are turned on.
3878     -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
3879                          at run time.
3880
3881                          Possible values for <driver>:
3882                          [ $CFG_SQL_AVAILABLE ]
3883
3884     -system-sqlite ..... Use sqlite from the operating system.
3885
3886     -no-qt3support ..... Disables the Qt 3 support functionality.
3887  *  -qt3support ........ Enables the Qt 3 support functionality.
3888
3889     -no-xmlpatterns .... Do not build the QtXmlPatterns module.
3890  +  -xmlpatterns ....... Build the QtXmlPatterns module.
3891                          QtXmlPatterns is built if a decent C++ compiler
3892                          is used and exceptions are enabled.
3893
3894     -no-multimedia ..... Do not build the QtMultimedia module.
3895  +  -multimedia ........ Build the QtMultimedia module.
3896
3897     -no-audio-backend .. Do not build the platform audio backend into QtMultimedia.
3898  +  -audio-backend ..... Build the platform audio backend into QtMultimedia if available.
3899
3900     -no-phonon ......... Do not build the Phonon module.
3901  +  -phonon ............ Build the Phonon module.
3902                          Phonon is built if a decent C++ compiler is used.
3903     -no-phonon-backend.. Do not build the platform phonon plugin.
3904  +  -phonon-backend..... Build the platform phonon plugin.
3905
3906     -no-svg ............ Do not build the SVG module.
3907  +  -svg ............... Build the SVG module.
3908
3909     -no-webkit ......... Do not build the WebKit module.
3910  +  -webkit ............ Build the WebKit module.
3911                          WebKit is built if a decent C++ compiler is used.
3912     -webkit-debug ...... Build the WebKit module with debug symbols.
3913
3914     -no-javascript-jit . Do not build the JavaScriptCore JIT compiler.
3915  +  -javascript-jit .... Build the JavaScriptCore JIT compiler.
3916
3917     -no-script ......... Do not build the QtScript module.
3918  +  -script ............ Build the QtScript module.
3919
3920     -no-scripttools .... Do not build the QtScriptTools module.
3921  +  -scripttools ....... Build the QtScriptTools module.
3922
3923     -no-declarative ..... Do not build the declarative module.
3924  +  -declarative ....... Build the declarative module.
3925
3926     -no-declarative-debug ..... Do not build the declarative debugging support.
3927  +  -declarative-debug ....... Build the declarative debugging support.
3928
3929     -no-location ....... Do not build the QtLocation module.
3930  +  -location .......... Build the QtLocation module.
3931
3932     -platform target ... The operating system and compiler you are building
3933                          on ($PLATFORM).
3934
3935                          See the README file for a list of supported
3936                          operating systems and compilers.
3937 EOF
3938
3939 if [ "${PLATFORM_QWS}" != "yes" -a "${PLATFORM_QPA}" != "yes" ]; then
3940 cat << EOF
3941     -graphicssystem <sys> Sets an alternate graphics system. Available options are:
3942                            raster - Software rasterizer
3943                            opengl - Rendering via OpenGL, Experimental!
3944                            openvg - Rendering via OpenVG, Experimental!
3945
3946 EOF
3947 fi
3948
3949 cat << EOF
3950
3951     -no-mmx ............ Do not compile with use of MMX instructions.
3952     -no-3dnow .......... Do not compile with use of 3DNOW instructions.
3953     -no-sse ............ Do not compile with use of SSE instructions.
3954     -no-sse2 ........... Do not compile with use of SSE2 instructions.
3955     -no-sse3 ........... Do not compile with use of SSE3 instructions.
3956     -no-ssse3 .......... Do not compile with use of SSSE3 instructions.
3957     -no-sse4.1.......... Do not compile with use of SSE4.1 instructions.
3958     -no-sse4.2.......... Do not compile with use of SSE4.2 instructions.
3959     -no-avx ............ Do not compile with use of AVX instructions.
3960     -no-neon ........... Do not compile with use of NEON instructions.
3961
3962     -qtnamespace <name>  Wraps all Qt library code in 'namespace <name> {...}'.
3963     -qtlibinfix <infix>  Renames all libQt*.so to libQt*<infix>.so.
3964
3965     -D <string> ........ Add an explicit define to the preprocessor.
3966     -I <string> ........ Add an explicit include path.
3967     -L <string> ........ Add an explicit library path.
3968
3969     -help, -h .......... Display this information.
3970
3971 Third Party Libraries:
3972
3973     -qt-zlib ........... Use the zlib bundled with Qt.
3974  +  -system-zlib ....... Use zlib from the operating system.
3975                          See http://www.gzip.org/zlib
3976
3977     -no-gif ............ Do not compile GIF reading support.
3978
3979     -no-libtiff ........ Do not compile TIFF support.
3980     -qt-libtiff ........ Use the libtiff bundled with Qt.
3981  +  -system-libtiff .... Use libtiff from the operating system.
3982                          See http://www.libtiff.org
3983
3984     -no-libpng ......... Do not compile PNG support.
3985     -qt-libpng ......... Use the libpng bundled with Qt.
3986  +  -system-libpng ..... Use libpng from the operating system.
3987                          See http://www.libpng.org/pub/png
3988
3989     -no-libmng ......... Do not compile MNG support.
3990     -qt-libmng ......... Use the libmng bundled with Qt.
3991  +  -system-libmng ..... Use libmng from the operating system.
3992                          See http://www.libmng.com
3993
3994     -no-libjpeg ........ Do not compile JPEG support.
3995     -qt-libjpeg ........ Use the libjpeg bundled with Qt.
3996  +  -system-libjpeg .... Use libjpeg from the operating system.
3997                          See http://www.ijg.org
3998
3999     -no-openssl ........ Do not compile support for OpenSSL.
4000  +  -openssl ........... Enable run-time OpenSSL support.
4001     -openssl-linked .... Enabled linked OpenSSL support.
4002
4003     -ptmalloc .......... Override the system memory allocator with ptmalloc.
4004                          (Experimental.)
4005
4006 Additional options:
4007
4008     -make <part> ....... Add part to the list of parts to be built at make time.
4009                          ($QT_DEFAULT_BUILD_PARTS)
4010     -nomake <part> ..... Exclude part from the list of parts to be built.
4011
4012     -R <string> ........ Add an explicit runtime library path to the Qt
4013                          libraries.
4014     -l <string> ........ Add an explicit library.
4015
4016     -no-rpath .......... Do not use the library install path as a runtime
4017                          library path.
4018  +  -rpath ............. Link Qt libraries and executables using the library
4019                          install path as a runtime library path. Equivalent
4020                          to -R install_libpath
4021
4022     -continue .......... Continue as far as possible if an error occurs.
4023
4024     -verbose, -v ....... Print verbose information about each step of the
4025                          configure process.
4026
4027     -silent ............ Reduce the build output so that warnings and errors
4028                          can be seen more easily.
4029
4030  *  -no-optimized-qmake ... Do not build qmake optimized.
4031     -optimized-qmake ...... Build qmake optimized.
4032
4033     -no-gui ............ Don't build the Qt GUI library
4034
4035  $NSN  -no-nis ............ Do not compile NIS support.
4036  $NSY  -nis ............... Compile NIS support.
4037
4038  $CUN  -no-cups ........... Do not compile CUPS support.
4039  $CUY  -cups .............. Compile CUPS support.
4040                          Requires cups/cups.h and libcups.so.2.
4041
4042  $CIN  -no-iconv .......... Do not compile support for iconv(3).
4043  $CIY  -iconv ............. Compile support for iconv(3).
4044
4045  $PHN  -no-pch ............ Do not use precompiled header support.
4046  $PHY  -pch ............... Use precompiled header support.
4047
4048  $DBN  -no-dbus ........... Do not compile the QtDBus module.
4049  $DBY  -dbus .............. Compile the QtDBus module and dynamically load libdbus-1.
4050     -dbus-linked ....... Compile the QtDBus module and link to libdbus-1.
4051
4052     -reduce-relocations ..... Reduce relocations in the libraries through extra
4053                               linker optimizations (Qt/X11 and Qt for Embedded Linux only;
4054                               experimental; needs GNU ld >= 2.18).
4055 EOF
4056
4057 if [ "$CFG_SEPARATE_DEBUG_INFO" = "auto" ]; then
4058     if [ "$QT_CROSS_COMPILE" = "yes" ]; then
4059         SBY=""
4060         SBN="*"
4061     else
4062         SBY="*"
4063         SBN=" "
4064     fi
4065 elif [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
4066     SBY="*"
4067     SBN=" "
4068 else
4069     SBY=" "
4070     SBN="*"
4071 fi
4072
4073 if [ "$PLATFORM_X11" = "yes" -o "$PLATFORM_QWS" = "yes" -o "$PLATFORM_QPA" = "yes" ]; then
4074
4075     cat << EOF
4076
4077  $SBN  -no-separate-debug-info . Do not store debug information in a separate file.
4078  $SBY  -separate-debug-info .... Strip debug information into a separate .debug file.
4079
4080  $XKN  -no-xcb ............ Do not compile Xcb (X protocol C-language Binding) support.
4081  $XKY  -xcb ............... Compile Xcb support.
4082
4083 EOF
4084
4085 fi # X11/QWS
4086
4087 if [ "$PLATFORM_X11" = "yes" ]; then
4088     if [ "$CFG_SM" = "no" ]; then
4089         SMY=" "
4090         SMN="*"
4091     else
4092         SMY="*"
4093         SMN=" "
4094     fi
4095     if [ "$CFG_XSHAPE" = "no" ]; then
4096         SHY=" "
4097         SHN="*"
4098     else
4099         SHY="*"
4100         SHN=" "
4101     fi
4102     if [ "$CFG_XVIDEO" = "no" ]; then
4103         XVY=" "
4104         XVN="*"
4105     else
4106         XVY="*"
4107         XVN=" "
4108     fi
4109     if [ "$CFG_XINERAMA" = "no" ]; then
4110         XAY=" "
4111         XAN="*"
4112     else
4113         XAY="*"
4114         XAN=" "
4115     fi
4116     if [ "$CFG_FONTCONFIG" = "no" ]; then
4117         FCGY=" "
4118         FCGN="*"
4119     else
4120         FCGY="*"
4121         FCGN=" "
4122     fi
4123     if [ "$CFG_XCURSOR" = "no" ]; then
4124         XCY=" "
4125         XCN="*"
4126     else
4127         XCY="*"
4128         XCN=" "
4129     fi
4130     if [ "$CFG_XFIXES" = "no" ]; then
4131         XFY=" "
4132         XFN="*"
4133     else
4134         XFY="*"
4135         XFN=" "
4136     fi
4137     if [ "$CFG_XRANDR" = "no" ]; then
4138         XZY=" "
4139         XZN="*"
4140     else
4141         XZY="*"
4142         XZN=" "
4143     fi
4144     if [ "$CFG_XRENDER" = "no" ]; then
4145         XRY=" "
4146         XRN="*"
4147     else
4148         XRY="*"
4149         XRN=" "
4150     fi
4151     if [ "$CFG_MITSHM" = "no" ]; then
4152         XMY=" "
4153         XMN="*"
4154     else
4155         XMY="*"
4156         XMN=" "
4157     fi
4158     if [ "$CFG_XINPUT" = "no" ]; then
4159         XIY=" "
4160         XIN="*"
4161     else
4162         XIY="*"
4163         XIN=" "
4164     fi
4165     if [ "$CFG_XKB" = "no" ]; then
4166         XKY=" "
4167         XKN="*"
4168     else
4169         XKY="*"
4170         XKN=" "
4171     fi
4172     if [ "$CFG_IM" = "no" ]; then
4173         IMY=" "
4174         IMN="*"
4175     else
4176         IMY="*"
4177         IMN=" "
4178     fi
4179     cat << EOF
4180
4181 Qt/X11 only:
4182
4183     -no-gtkstyle ....... Do not build the GTK theme integration.
4184  +  -gtkstyle .......... Build the GTK theme integration.
4185
4186  *  -no-nas-sound ...... Do not compile in NAS sound support.
4187     -system-nas-sound .. Use NAS libaudio from the operating system.
4188                          See http://radscan.com/nas.html
4189
4190     -egl ............... Use EGL instead of GLX to manage contexts.
4191                          When building for desktop OpenGL, this option will
4192                          make Qt use EGL to manage contexts rather than the
4193                          GLX, which is the default. Note: For OpenGL ES, EGL
4194                          is always used.
4195
4196     -no-opengl ......... Do not support OpenGL.
4197  +  -opengl <api> ...... Enable OpenGL support.
4198                          With no parameter, this will auto-detect the "best"
4199                          OpenGL API to use. If desktop OpenGL is available, it
4200                          will be used. Use desktop, es1, or es2 for <api>
4201                          to force the use of the Desktop (OpenGL 1.x or 2.x),
4202                          OpenGL ES 1.x Common profile, or 2.x APIs instead.
4203
4204      -no-openvg ........ Do not support OpenVG.
4205  +   -openvg ........... Enable OpenVG support.
4206                          Requires EGL support, typically supplied by an OpenGL
4207                          or other graphics implementation.
4208
4209  $SMN  -no-sm ............. Do not support X Session Management.
4210  $SMY  -sm ................ Support X Session Management, links in -lSM -lICE.
4211
4212  $SHN  -no-xshape ......... Do not compile XShape support.
4213  $SHY  -xshape ............ Compile XShape support.
4214                          Requires X11/extensions/shape.h.
4215
4216  $XVN  -no-xvideo ......... Do not compile XVideo support.
4217  $XVY  -xvideo ............ Compile XVideo support.
4218                          Requires X11/extensions/Xv.h & Xvlib.h.
4219
4220  $SHN  -no-xsync .......... Do not compile XSync support.
4221  $SHY  -xsync ............. Compile XSync support.
4222                          Requires X11/extensions/sync.h.
4223
4224  $XAN  -no-xinerama ....... Do not compile Xinerama (multihead) support.
4225  $XAY  -xinerama .......... Compile Xinerama support.
4226                          Requires X11/extensions/Xinerama.h and libXinerama.
4227                          By default, Xinerama support will be compiled if
4228                          available and the shared libraries are dynamically
4229                          loaded at runtime.
4230
4231  $XCN  -no-xcursor ........ Do not compile Xcursor support.
4232  $XCY  -xcursor ........... Compile Xcursor support.
4233                          Requires X11/Xcursor/Xcursor.h and libXcursor.
4234                          By default, Xcursor support will be compiled if
4235                          available and the shared libraries are dynamically
4236                          loaded at runtime.
4237
4238  $XFN  -no-xfixes ......... Do not compile Xfixes support.
4239  $XFY  -xfixes ............ Compile Xfixes support.
4240                          Requires X11/extensions/Xfixes.h and libXfixes.
4241                          By default, Xfixes support will be compiled if
4242                          available and the shared libraries are dynamically
4243                          loaded at runtime.
4244
4245  $XZN  -no-xrandr ......... Do not compile Xrandr (resize and rotate) support.
4246  $XZY  -xrandr ............ Compile Xrandr support.
4247                          Requires X11/extensions/Xrandr.h and libXrandr.
4248
4249  $XRN  -no-xrender ........ Do not compile Xrender support.
4250  $XRY  -xrender ........... Compile Xrender support.
4251                          Requires X11/extensions/Xrender.h and libXrender.
4252
4253  $XMN  -no-mitshm ......... Do not compile MIT-SHM support.
4254  $XMY  -mitshm ............ Compile MIT-SHM support.
4255                          Requires sys/ipc.h, sys/shm.h and X11/extensions/XShm.h
4256
4257  $FCGN  -no-fontconfig ..... Do not compile FontConfig (anti-aliased font) support.
4258  $FCGY  -fontconfig ........ Compile FontConfig support.
4259                          Requires fontconfig/fontconfig.h, libfontconfig,
4260                          freetype.h and libfreetype.
4261
4262  $XIN  -no-xinput ......... Do not compile Xinput support.
4263  $XIY  -xinput ............ Compile Xinput support. This also enabled tablet support
4264                          which requires IRIX with wacom.h and libXi or
4265                          XFree86 with X11/extensions/XInput.h and libXi.
4266
4267  $XKN  -no-xkb ............ Do not compile XKB (X KeyBoard extension) support.
4268  $XKY  -xkb ............... Compile XKB support.
4269
4270 EOF
4271 fi
4272
4273 if [ "$PLATFORM_MAC" = "yes" ]; then
4274     cat << EOF
4275
4276 Qt/Mac only:
4277
4278     -Fstring ........... Add an explicit framework path.
4279     -fw string ......... Add an explicit framework.
4280
4281     -cocoa ............. [Deprecated] Cocoa is now enabled by default.
4282
4283     -carbon .............Build the Carbon version of Qt. 64-bit archs
4284                          are not supported by carbon and will be built
4285                          with cocoa
4286
4287  *  -framework ......... Build Qt as a series of frameworks and
4288                          link tools against those frameworks.
4289     -no-framework ...... Do not build Qt as a series of frameworks.
4290
4291  *  -dwarf2 ............ Enable dwarf2 debugging symbols.
4292     -no-dwarf2 ......... Disable dwarf2 debugging symbols.
4293
4294     -universal ......... Equivalent to -arch "ppc x86"
4295
4296     -arch <arch> ....... Build Qt for <arch>
4297                          Example values for <arch>: x86 ppc x86_64 ppc64
4298                          Multiple -arch arguments can be specified.
4299
4300     -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
4301                          To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
4302
4303     -harfbuzz .......... Use HarfBuzz to do text layout instead of Core Text when possible.
4304                          It is only available to Cocoa builds.
4305  *  -no-harfbuzz ....... Disable HarfBuzz on Mac. It can still be enabled by setting
4306                          QT_ENABLE_HARFBUZZ environment variable.
4307
4308 EOF
4309 fi
4310
4311 if [ "$PLATFORM_QWS" = "yes" ]; then
4312     cat << EOF
4313 Qt for Embedded Linux:
4314
4315     -embedded <arch> .... This will enable the embedded build, you must have a
4316                           proper license for this switch to work.
4317                           Example values for <arch>: arm mips x86 generic
4318 EOF
4319 fi
4320
4321 if [ "$PLATFORM_QPA" = "yes" ]; then
4322     cat << EOF
4323 Qt for QPA only:
4324 EOF
4325 fi
4326
4327 if [ "$PLATFORM_QWS" = "yes" -o "$PLATFORM_QPA" = "yes" ]; then
4328     cat << EOF
4329
4330     -xplatform target ... The target platform when cross-compiling.
4331
4332     -no-feature-<feature> Do not compile in <feature>.
4333     -feature-<feature> .. Compile in <feature>. The available features
4334                           are described in src/corelib/global/qfeatures.txt
4335
4336     -armfpa ............. Target platform uses the ARM-FPA floating point format.
4337     -no-armfpa .......... Target platform does not use the ARM-FPA floating point format.
4338
4339                           The floating point format is usually autodetected by configure. Use this
4340                           to override the detected value.
4341
4342     -little-endian ...... Target platform is little endian (LSB first).
4343     -big-endian ......... Target platform is big endian (MSB first).
4344
4345     -host-little-endian . Host platform is little endian (LSB first).
4346     -host-big-endian .... Host platform is big endian (MSB first).
4347
4348                           You only need to specify the endianness when
4349                           cross-compiling, otherwise the host
4350                           endianness will be used.
4351
4352     -no-freetype ........ Do not compile in Freetype2 support.
4353     -qt-freetype ........ Use the libfreetype bundled with Qt.
4354  *  -system-freetype .... Use libfreetype from the operating system.
4355                           See http://www.freetype.org/
4356
4357     -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
4358                           default ($CFG_QCONFIG).
4359
4360     -no-opengl .......... Do not support OpenGL.
4361     -opengl <api> ....... Enable OpenGL ES support
4362                           With no parameter, this will attempt to auto-detect OpenGL ES 1.x
4363                           or 2.x, or regular desktop OpenGL.
4364                           Use es1 or es2 for <api> to override auto-detection.
4365 EOF
4366 fi
4367
4368 if [ "$PLATFORM_QWS" = "yes" ]; then
4369     cat << EOF
4370
4371     -depths <list> ...... Comma-separated list of supported bit-per-pixel
4372                           depths, from: 1, 4, 8, 12, 15, 16, 18, 24, 32 and 'all'.
4373
4374     -qt-decoration-<style> ....Enable a decoration <style> in the QtGui library,
4375                                by default all available decorations are on.
4376                                Possible values for <style>: [ $CFG_DECORATION_AVAILABLE ]
4377     -plugin-decoration-<style> Enable decoration <style> as a plugin to be
4378                                linked to at run time.
4379                                Possible values for <style>: [ $CFG_DECORATION_PLUGIN_AVAILABLE ]
4380     -no-decoration-<style> ....Disable decoration <style> entirely.
4381                                Possible values for <style>: [ $CFG_DECORATION_AVAILABLE ]
4382
4383     -qt-gfx-<driver> ... Enable a graphics <driver> in the QtGui library.
4384                          Possible values for <driver>: [ $CFG_GFX_AVAILABLE ]
4385     -plugin-gfx-<driver> Enable graphics <driver> as a plugin to be
4386                          linked to at run time.
4387                          Possible values for <driver>: [ $CFG_GFX_PLUGIN_AVAILABLE ]
4388     -no-gfx-<driver> ... Disable graphics <driver> entirely.
4389                          Possible values for <driver>: [ $CFG_GFX_AVAILABLE ]
4390
4391     -qt-kbd-<driver> ... Enable a keyboard <driver> in the QtGui library.
4392                          Possible values for <driver>: [ $CFG_KBD_AVAILABLE ]
4393
4394     -plugin-kbd-<driver> Enable keyboard <driver> as a plugin to be linked to
4395                          at runtime.
4396                          Possible values for <driver>: [ $CFG_KBD_PLUGIN_AVAILABLE ]
4397
4398     -no-kbd-<driver> ... Disable keyboard <driver> entirely.
4399                          Possible values for <driver>: [ $CFG_KBD_AVAILABLE ]
4400
4401     -qt-mouse-<driver> ... Enable a mouse <driver> in the QtGui library.
4402                            Possible values for <driver>: [ $CFG_MOUSE_AVAILABLE ]
4403     -plugin-mouse-<driver> Enable mouse <driver> as a plugin to be linked to
4404                            at runtime.
4405                            Possible values for <driver>: [ $CFG_MOUSE_PLUGIN_AVAILABLE ]
4406     -no-mouse-<driver> ... Disable mouse <driver> entirely.
4407                            Possible values for <driver>: [ $CFG_MOUSE_AVAILABLE ]
4408
4409     -iwmmxt ............ Compile using the iWMMXt instruction set
4410                          (available on some XScale CPUs).
4411 EOF
4412 fi
4413
4414 if [ "$PLATFORM_QWS" = "yes" -o "$PLATFORM_QPA" = "yes" -o "$PLATFORM_X11" = "yes" ]; then
4415     if [ "$CFG_GLIB" = "no" ]; then
4416         GBY=" "
4417         GBN="+"
4418     else
4419         GBY="+"
4420         GBN=" "
4421     fi
4422     cat << EOF
4423  $GBN  -no-glib ........... Do not compile Glib support.
4424  $GBY  -glib .............. Compile Glib support.
4425
4426 EOF
4427 fi
4428
4429 if [ "$XPLATFORM_SYMBIAN" = "yes" ]; then
4430     cat << EOF
4431
4432 Qt for Symbian only:
4433     -no-s60 ............ Do not compile in S60 support.
4434  +  -s60 ............... Compile with support for the S60 UI Framework.
4435     -no-style-s60....... Disable s60 style
4436  +  -qt-style-s60....... Enable s60 style in the Qt Library
4437
4438     -no-usedeffiles .... Disable the usage of DEF files.
4439  *  -usedeffiles ....... Enable the usage of DEF files.
4440 EOF
4441 fi
4442    [ "x$ERROR" = "xyes" ] && exit 1
4443    exit 0
4444 fi # Help
4445
4446
4447 # -----------------------------------------------------------------------------
4448 # LICENSING, INTERACTIVE PART
4449 # -----------------------------------------------------------------------------
4450
4451 if [ "$PLATFORM_QWS" = "yes" ]; then
4452     Platform="Qt for Embedded Linux"
4453 elif [ "$PLATFORM_QPA" = "yes" ]; then
4454     Platform="Qt Lighthouse"
4455 elif [ "$XPLATFORM_SYMBIAN" = "yes" ]; then
4456     Platform="Qt for Symbian"
4457 elif [ "$PLATFORM_MAC" = "yes" ]; then
4458     Platform="Qt for Mac OS X"
4459 elif [ "$XPLATFORM_MINGW" = "yes" ]; then
4460     Platform="Qt for Windows"
4461 elif [ '!' -z "`getQMakeConf \"$XQMAKESPEC\" | grep QMAKE_LIBS_X11 | awk '{print $3;}'`" ]; then
4462     PLATFORM_X11=yes
4463     Platform="Qt for Linux/X11"
4464 fi
4465
4466 echo
4467 echo "This is the $Platform ${EditionString} Edition."
4468 echo
4469
4470 if [ "$Edition" = "NokiaInternalBuild" ]; then
4471     echo "Detected -nokia-developer option"
4472     echo "Nokia employees and agents are allowed to use this software under"
4473     echo "the authority of Nokia Corporation and/or its subsidiary(-ies)"
4474 elif [ "$Edition" = "OpenSource" ]; then
4475     while true; do
4476         echo "You are licensed to use this software under the terms of"
4477         echo "the Lesser GNU General Public License (LGPL) versions 2.1."
4478         if [ -f "$relpath/LICENSE.GPL3" ]; then
4479             echo "You are also licensed to use this software under the terms of"
4480             echo "the GNU General Public License (GPL) versions 3."
4481             affix="either"
4482         else
4483             affix="the"
4484         fi
4485         echo
4486         if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
4487             echo "You have already accepted the terms of the $LicenseType license."
4488             acceptance=yes
4489         else
4490             if [ -f "$relpath/LICENSE.GPL3" ]; then
4491                 echo "Type '3' to view the GNU General Public License version 3."
4492             fi
4493             echo "Type 'L' to view the Lesser GNU General Public License version 2.1."
4494             echo "Type 'yes' to accept this license offer."
4495             echo "Type 'no' to decline this license offer."
4496             echo
4497             echo $ECHO_N "Do you accept the terms of $affix license? $ECHO_C"
4498             read acceptance
4499         fi
4500         echo
4501         if [ "$acceptance" = "yes" ] || [ "$acceptance" = "y" ]; then
4502             break
4503         elif [ "$acceptance" = "no" ]; then
4504             echo "You are not licensed to use this software."
4505             echo
4506             exit 1
4507         elif [ "$acceptance" = "3" ]; then
4508             more "$relpath/LICENSE.GPL3"
4509         elif [ "$acceptance" = "L" ]; then
4510             more "$relpath/LICENSE.LGPL"
4511         fi
4512     done
4513 elif [ "$Edition" = "Preview" ]; then
4514     TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
4515     while true; do
4516
4517         if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
4518             echo "You have already accepted the terms of the $LicenseType license."
4519             acceptance=yes
4520         else
4521             echo "You are licensed to use this software under the terms of"
4522             echo "the $TheLicense"
4523             echo
4524             echo "Type '?' to read the Preview License."
4525             echo "Type 'yes' to accept this license offer."
4526             echo "Type 'no' to decline this license offer."
4527             echo
4528             echo $ECHO_N "Do you accept the terms of the license? $ECHO_C"
4529             read acceptance
4530         fi
4531         echo
4532         if [ "$acceptance" = "yes" ]; then
4533             break
4534         elif [ "$acceptance" = "no" ] ;then
4535             echo "You are not licensed to use this software."
4536             echo
4537             exit 0
4538         elif [ "$acceptance" = "?" ]; then
4539             more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
4540         fi
4541     done
4542 elif [ "$Edition" != "OpenSource" ]; then
4543     if [ -n "$ExpiryDate" ]; then
4544         ExpiryDate=`echo $ExpiryDate | sed -e "s,-,,g" | tr -d "\n\r"`
4545         [ -z "$ExpiryDate" ] && ExpiryDate="0"
4546         Today=`date +%Y%m%d`
4547         if [ "$Today" -gt "$ExpiryDate" ]; then
4548             case "$LicenseType" in
4549             Commercial|Academic|Educational)
4550                 if [ "$QT_PACKAGEDATE" -gt "$ExpiryDate" ]; then
4551                     echo
4552                     echo "NOTICE  NOTICE  NOTICE  NOTICE"
4553                     echo
4554                     echo "  Your support and upgrade period has expired."
4555                     echo
4556                     echo "  You are no longer licensed to use this version of Qt."
4557                     echo "  Please contact qt-info@nokia.com to renew your support"
4558                     echo "  and upgrades for this license."
4559                     echo
4560                     echo "NOTICE  NOTICE  NOTICE  NOTICE"
4561                     echo
4562                     exit 1
4563                 else
4564                     echo
4565                     echo "WARNING  WARNING  WARNING  WARNING"
4566                     echo
4567                     echo "  Your support and upgrade period has expired."
4568                     echo
4569                     echo "  You may continue to use your last licensed release"
4570                     echo "  of Qt under the terms of your existing license"
4571                     echo "  agreement. But you are not entitled to technical"
4572                     echo "  support, nor are you entitled to use any more recent"
4573                     echo "  Qt releases."
4574                     echo
4575                     echo "  Please contact qt-info@nokia.com to renew your"
4576                     echo "  support and upgrades for this license."
4577                     echo
4578                     echo "WARNING  WARNING  WARNING  WARNING"
4579                     echo
4580                     sleep 3
4581                 fi
4582                 ;;
4583             Evaluation|*)
4584                 echo
4585                 echo "NOTICE  NOTICE  NOTICE  NOTICE"
4586                 echo
4587                 echo "  Your Evaluation license has expired."
4588                 echo
4589                 echo "  You are no longer licensed to use this software. Please"
4590                 echo "  contact qt-info@nokia.com to purchase license, or install"
4591                 echo "  the Qt Open Source Edition if you intend to develop free"
4592                 echo "  software."
4593                 echo
4594                 echo "NOTICE  NOTICE  NOTICE  NOTICE"
4595                 echo
4596                 exit 1
4597                 ;;
4598             esac
4599         fi
4600     fi
4601     TheLicense=`head -n 1 "$outpath/LICENSE"`
4602     while true; do
4603         if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
4604             echo "You have already accepted the terms of the $TheLicense."
4605             acceptance=yes
4606         else
4607             echo "You are licensed to use this software under the terms of"
4608             echo "the $TheLicense."
4609             echo
4610             echo "Type '?' to view the $TheLicense."
4611             echo "Type 'yes' to accept this license offer."
4612             echo "Type 'no' to decline this license offer."
4613             echo
4614             echo $ECHO_N "Do you accept the terms of the $TheLicense? $ECHO_C"
4615             read acceptance
4616         fi
4617         echo
4618         if [ "$acceptance" = "yes" ]; then
4619             break
4620         elif [ "$acceptance" = "no" ]; then
4621             echo "You are not licensed to use this software."
4622             echo
4623             exit 1
4624         else [ "$acceptance" = "?" ]
4625             more "$outpath/LICENSE"
4626         fi
4627     done
4628 fi
4629
4630 # this should be moved somewhere else
4631 case "$PLATFORM" in
4632 aix-*)
4633     AIX_VERSION=`uname -v`
4634     if [ "$AIX_VERSION" -lt "5" ]; then
4635         QMakeVar add QMAKE_LIBS_X11 -lbind
4636     fi
4637     ;;
4638 *)
4639     ;;
4640 esac
4641
4642 #-------------------------------------------------------------------------------
4643 # generate qconfig.cpp
4644 #-------------------------------------------------------------------------------
4645 [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
4646
4647 LICENSE_USER_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_lcnsuser=$Licensee"`
4648 LICENSE_PRODUCTS_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_lcnsprod=$Edition"`
4649 PREFIX_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_prfxpath=$QT_INSTALL_PREFIX"`
4650 DOCUMENTATION_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_docspath=$QT_INSTALL_DOCS"`
4651 HEADERS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_hdrspath=$QT_INSTALL_HEADERS"`
4652 LIBRARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_libspath=$QT_INSTALL_LIBS"`
4653 BINARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_binspath=$QT_INSTALL_BINS"`
4654 PLUGINS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_plugpath=$QT_INSTALL_PLUGINS"`
4655 IMPORTS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_impspath=$QT_INSTALL_IMPORTS"`
4656 DATA_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_datapath=$QT_INSTALL_DATA"`
4657 TRANSLATIONS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_trnspath=$QT_INSTALL_TRANSLATIONS"`
4658 SETTINGS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_stngpath=$QT_INSTALL_SETTINGS"`
4659 EXAMPLES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_xmplpath=$QT_INSTALL_EXAMPLES"`
4660 DEMOS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_demopath=$QT_INSTALL_DEMOS"`
4661
4662 TODAY=`date +%Y-%m-%d`
4663 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
4664 /* License Info */
4665 static const char qt_configure_licensee_str          [256 + 12] = "$LICENSE_USER_STR";
4666 static const char qt_configure_licensed_products_str [256 + 12] = "$LICENSE_PRODUCTS_STR";
4667
4668 /* Installation date */
4669 static const char qt_configure_installation          [12+11]    = "qt_instdate=$TODAY";
4670 EOF
4671
4672
4673 if [ ! -z "$QT_HOST_PREFIX" ]; then
4674     HOSTPREFIX_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_prfxpath=$QT_HOST_PREFIX"`
4675     HOSTDOCUMENTATION_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_docspath=$QT_HOST_PREFIX/doc"`
4676     HOSTHEADERS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_hdrspath=$QT_HOST_PREFIX/include"`
4677     HOSTLIBRARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_libspath=$QT_HOST_PREFIX/lib"`
4678     HOSTBINARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_binspath=$QT_HOST_PREFIX/bin"`
4679     HOSTPLUGINS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_plugpath=$QT_HOST_PREFIX/plugins"`
4680     HOSTIMPORTS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_impspath=$QT_HOST_PREFIX/IMPORTS"`
4681     HOSTDATA_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_datapath=$QT_HOST_PREFIX"`
4682     HOSTTRANSLATIONS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_trnspath=$QT_HOST_PREFIX/translations"`
4683     HOSTSETTINGS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_stngpath=$QT_INSTALL_SETTINGS"`
4684     HOSTEXAMPLES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_xmplpath=$QT_INSTALL_EXAMPLES"`
4685     HOSTDEMOS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_demopath=$QT_INSTALL_DEMOS"`
4686
4687     cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
4688
4689 #if defined(QT_BOOTSTRAPPED) || defined(QT_BUILD_QMAKE)
4690 /* Installation Info */
4691 static const char qt_configure_prefix_path_str       [256 + 12] = "$HOSTPREFIX_PATH_STR";
4692 static const char qt_configure_documentation_path_str[256 + 12] = "$HOSTDOCUMENTATION_PATH_STR";
4693 static const char qt_configure_headers_path_str      [256 + 12] = "$HOSTHEADERS_PATH_STR";
4694 static const char qt_configure_libraries_path_str    [256 + 12] = "$HOSTLIBRARIES_PATH_STR";
4695 static const char qt_configure_binaries_path_str     [256 + 12] = "$HOSTBINARIES_PATH_STR";
4696 static const char qt_configure_plugins_path_str      [256 + 12] = "$HOSTPLUGINS_PATH_STR";
4697 static const char qt_configure_imports_path_str      [256 + 12] = "$HOSTIMPORTS_PATH_STR";
4698 static const char qt_configure_data_path_str         [256 + 12] = "$HOSTDATA_PATH_STR";
4699 static const char qt_configure_translations_path_str [256 + 12] = "$HOSTTRANSLATIONS_PATH_STR";
4700 static const char qt_configure_settings_path_str     [256 + 12] = "$HOSTSETTINGS_PATH_STR";
4701 static const char qt_configure_examples_path_str     [256 + 12] = "$HOSTEXAMPLES_PATH_STR";
4702 static const char qt_configure_demos_path_str        [256 + 12] = "$HOSTDEMOS_PATH_STR";
4703 #else // QT_BOOTSTRAPPED
4704 EOF
4705 fi
4706
4707 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
4708 /* Installation Info */
4709 static const char qt_configure_prefix_path_str       [256 + 12] = "$PREFIX_PATH_STR";
4710 static const char qt_configure_documentation_path_str[256 + 12] = "$DOCUMENTATION_PATH_STR";
4711 static const char qt_configure_headers_path_str      [256 + 12] = "$HEADERS_PATH_STR";
4712 static const char qt_configure_libraries_path_str    [256 + 12] = "$LIBRARIES_PATH_STR";
4713 static const char qt_configure_binaries_path_str     [256 + 12] = "$BINARIES_PATH_STR";
4714 static const char qt_configure_plugins_path_str      [256 + 12] = "$PLUGINS_PATH_STR";
4715 static const char qt_configure_imports_path_str      [256 + 12] = "$IMPORTS_PATH_STR";
4716 static const char qt_configure_data_path_str         [256 + 12] = "$DATA_PATH_STR";
4717 static const char qt_configure_translations_path_str [256 + 12] = "$TRANSLATIONS_PATH_STR";
4718 static const char qt_configure_settings_path_str     [256 + 12] = "$SETTINGS_PATH_STR";
4719 static const char qt_configure_examples_path_str     [256 + 12] = "$EXAMPLES_PATH_STR";
4720 static const char qt_configure_demos_path_str        [256 + 12] = "$DEMOS_PATH_STR";
4721 EOF
4722
4723 if [ ! -z "$QT_HOST_PREFIX" ]; then
4724     cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
4725 #endif // QT_BOOTSTRAPPED
4726
4727 EOF
4728 fi
4729
4730 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
4731 /* strlen( "qt_lcnsxxxx" ) == 12 */
4732 #define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;
4733 #define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;
4734 #define QT_CONFIGURE_PREFIX_PATH qt_configure_prefix_path_str + 12;
4735 #define QT_CONFIGURE_DOCUMENTATION_PATH qt_configure_documentation_path_str + 12;
4736 #define QT_CONFIGURE_HEADERS_PATH qt_configure_headers_path_str + 12;
4737 #define QT_CONFIGURE_LIBRARIES_PATH qt_configure_libraries_path_str + 12;
4738 #define QT_CONFIGURE_BINARIES_PATH qt_configure_binaries_path_str + 12;
4739 #define QT_CONFIGURE_PLUGINS_PATH qt_configure_plugins_path_str + 12;
4740 #define QT_CONFIGURE_IMPORTS_PATH qt_configure_imports_path_str + 12;
4741 #define QT_CONFIGURE_DATA_PATH qt_configure_data_path_str + 12;
4742 #define QT_CONFIGURE_TRANSLATIONS_PATH qt_configure_translations_path_str + 12;
4743 #define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12;
4744 #define QT_CONFIGURE_EXAMPLES_PATH qt_configure_examples_path_str + 12;
4745 #define QT_CONFIGURE_DEMOS_PATH qt_configure_demos_path_str + 12;
4746 EOF
4747
4748 # avoid unecessary rebuilds by copying only if qconfig.cpp has changed
4749 if cmp -s "$outpath/src/corelib/global/qconfig.cpp" "$outpath/src/corelib/global/qconfig.cpp.new"; then
4750     rm -f "$outpath/src/corelib/global/qconfig.cpp.new"
4751 else
4752     [ -f "$outpath/src/corelib/global/qconfig.cpp" ] && chmod +w "$outpath/src/corelib/global/qconfig.cpp"
4753     mv "$outpath/src/corelib/global/qconfig.cpp.new" "$outpath/src/corelib/global/qconfig.cpp"
4754     chmod -w "$outpath/src/corelib/global/qconfig.cpp"
4755 fi
4756
4757 # -----------------------------------------------------------------------------
4758 if [ "$LicenseType" = "Evaluation" ]; then
4759     EVALKEY=`"$relpath/config.tests/unix/padstring" 524 "qt_qevalkey=$LicenseKeyExt"`
4760 elif echo "$D_FLAGS" | grep QT_EVAL >/dev/null 2>&1; then
4761     EVALKEY=`"$relpath/config.tests/unix/padstring" 524 "qt_qevalkey="`
4762 fi
4763
4764 if [ -n "$EVALKEY" ]; then
4765     rm -f "$outpath/src/corelib/global/qconfig_eval.cpp"
4766     cat > "$outpath/src/corelib/global/qconfig_eval.cpp" <<EOF
4767 /* Evaluation license key */
4768 static const volatile char qt_eval_key_data                   [512 + 12] = "$EVALKEY";
4769 EOF
4770     chmod -w "$outpath/src/corelib/global/qconfig_eval.cpp"
4771 fi
4772
4773
4774 # -----------------------------------------------------------------------------
4775 # build qmake
4776 # -----------------------------------------------------------------------------
4777
4778 # symlink includes
4779 if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
4780     SYNCQT_OPTS=
4781     [ "$CFG_DEV" = "yes" ] && SYNCQT_OPTS="$SYNCQT_OPTS -check-includes"
4782     if [ "$OPT_SHADOW" = "yes" ]; then
4783         "$outpath/bin/syncqt" $SYNCQT_OPTS || exit 1
4784     elif [ "$CFG_DEV" = "yes" ] || [ ! -d $relpath/include ] || [ -d $relpath/.git ]; then
4785         QTDIR="$relpath" perl "$outpath/bin/syncqt" $SYNCQT_OPTS || exit 1
4786     fi
4787 fi
4788
4789 # $1: variable name
4790 # $2: optional transformation
4791 # relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
4792 # is where the resulting variable is written to
4793 # Assumes that the optional transformation produces the same variable name for each hit
4794 setBootstrapVariable()
4795 {
4796     getQMakeConf | $AWK '/^('"$1"')[^_A-Z0-9]/ { print $0; }' | ( [ -n "$2" ] && sed "$2" ; [ -z "$2" ] && cat ) | $AWK '
4797 BEGIN {
4798     variable = ""
4799     combinedValue = ""
4800 }
4801 {
4802     valStart = index($0, "=") + 1
4803
4804     append = 0
4805     if (substr($0, valStart - 2, 1) == "+") {
4806         append = 1
4807     }
4808
4809     variable = substr($0, 0, valStart - 2 - append)
4810     value = substr($0, valStart)
4811     gsub("[ \t]+", "", variable)
4812     gsub("^[ \t]+", "", value)
4813     gsub("[ \t]+$", "", value)
4814
4815     if (append == 1 && length(combinedValue) > 0) {
4816         combinedValue = combinedValue " " value
4817     } else {
4818         combinedValue = value
4819     }
4820 }
4821 END {
4822     if (length(combinedValue) > 0) {
4823         printf "%s = %s\n", variable, combinedValue
4824     }
4825 }' >> "$mkfile"
4826 }
4827
4828 # build qmake
4829 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
4830     echo "Creating qmake. Please wait..."
4831
4832     OLD_QCONFIG_H=
4833     QCONFIG_H="$outpath/src/corelib/global/qconfig.h"
4834     QMAKE_QCONFIG_H="${QCONFIG_H}.qmake"
4835     if [ -f "$QCONFIG_H" ]; then
4836          OLD_QCONFIG_H=$QCONFIG_H
4837          mv -f "$OLD_QCONFIG_H" "${OLD_QCONFIG_H}.old"
4838     fi
4839
4840     # create temporary qconfig.h for compiling qmake, if it doesn't exist
4841     # when building qmake, we use #defines for the install paths,
4842     # however they are real functions in the library
4843     if [ '!' -f "$QMAKE_QCONFIG_H" ]; then
4844         mkdir -p "$outpath/src/corelib/global"
4845         [ -f "$QCONFIG_H" ] && chmod +w "$QCONFIG_H"
4846         echo "/* All features enabled while building qmake */" >"$QMAKE_QCONFIG_H"
4847     fi
4848
4849     mv -f "$QMAKE_QCONFIG_H" "$QCONFIG_H"
4850
4851     #mkspecs/default is used as a (gasp!) default mkspec so QMAKESPEC needn't be set once configured
4852     rm -rf mkspecs/default
4853     ln -s `echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default
4854     # fix makefiles
4855     for mkfile in GNUmakefile Makefile; do
4856         EXTRA_LFLAGS=
4857         EXTRA_CFLAGS=
4858         in_mkfile="${mkfile}.in"
4859         if [ "$mkfile" = "Makefile" ]; then
4860 #           if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
4861 #               (cd qmake && qmake) >/dev/null 2>&1 && continue
4862 #           fi
4863             in_mkfile="${mkfile}.unix"
4864         fi
4865         in_mkfile="$relpath/qmake/$in_mkfile"
4866         mkfile="$outpath/qmake/$mkfile"
4867         if [ -f "$mkfile" ]; then
4868             [ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
4869             rm -f "$mkfile"
4870         fi
4871         [ -f "$in_mkfile" ] || continue
4872
4873         echo "########################################################################" > "$mkfile"
4874         echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
4875         echo "########################################################################" >> "$mkfile"
4876         EXTRA_OBJS=
4877         EXTRA_SRCS=
4878         EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
4879         EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
4880         EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
4881
4882         if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then
4883             EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
4884         fi
4885
4886         [ -n "$CC" ] && echo "CC = $CC" >> "$mkfile"
4887         [ -n "$CXX" ] && echo "CXX = $CXX" >> "$mkfile"
4888         if [ "$CFG_SILENT" = "yes" ]; then
4889             [ -z "$CC" ] && setBootstrapVariable QMAKE_CC 's,QMAKE_CC.*=,CC=\@,'
4890             [ -z "$CXX" ] && setBootstrapVariable QMAKE_CXX 's,QMAKE_CXX.*=,CXX=\@,'
4891         else
4892             [ -z "$CC" ] && setBootstrapVariable QMAKE_CC 's,QMAKE_CC,CC,'
4893             [ -z "$CXX" ] && setBootstrapVariable QMAKE_CXX 's,QMAKE_CXX,CXX,'
4894         fi
4895         setBootstrapVariable QMAKE_CFLAGS
4896         setBootstrapVariable QMAKE_CXXFLAGS 's,\$\$QMAKE_CFLAGS,\$(QMAKE_CFLAGS),'
4897         setBootstrapVariable QMAKE_LFLAGS
4898
4899         if [ $QT_EDITION = "QT_EDITION_OPENSOURCE" ]; then
4900             EXTRA_CFLAGS="$EXTRA_CFLAGS -DQMAKE_OPENSOURCE_EDITION"
4901             EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DQMAKE_OPENSOURCE_EDITION"
4902         fi
4903         if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
4904             setBootstrapVariable QMAKE_CFLAGS_RELEASE
4905             setBootstrapVariable QMAKE_CXXFLAGS_RELEASE 's,\$\$QMAKE_CFLAGS_RELEASE,\$(QMAKE_CFLAGS_RELEASE),'
4906             EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
4907             EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
4908         elif [ "$CFG_DEBUG" = "yes" ]; then
4909             setBootstrapVariable QMAKE_CFLAGS_DEBUG
4910             setBootstrapVariable QMAKE_CXXFLAGS_DEBUG 's,\$\$QMAKE_CFLAGS_DEBUG,\$(QMAKE_CFLAGS_DEBUG),'
4911             EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
4912             EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
4913         fi
4914
4915         if [ '!' -z "$RPATH_FLAGS" ] && [ '!' -z "`getQMakeConf \"$QMAKESPEC\" | $AWK '/QMAKE_(LFLAGS_)?RPATH/ {print $3;}'`" ]; then
4916             setBootstrapVariable "QMAKE_(LFLAGS_)?RPATH" 's,\$\$LITERAL_WHITESPACE, ,;s,QMAKE_RPATH,QMAKE_LFLAGS_RPATH,'
4917             for rpath in $RPATH_FLAGS; do
4918                 EXTRA_LFLAGS="\$(QMAKE_LFLAGS_RPATH)\"$rpath\" $EXTRA_LFLAGS"
4919             done
4920         fi
4921         if [ "$BUILD_ON_MAC" = "yes" ]; then
4922             echo "export MACOSX_DEPLOYMENT_TARGET = 10.4" >> "$mkfile"
4923             echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
4924             echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
4925             EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
4926             EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
4927             EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
4928             EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
4929             EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
4930             if echo "$CFG_MAC_ARCHS" | grep x86 > /dev/null 2>&1; then # matches both x86 and x86_64
4931                 X86_CFLAGS="-arch i386"
4932                 X86_LFLAGS="-arch i386"
4933                 EXTRA_CFLAGS="$X86_CFLAGS $EXTRA_CFLAGS"
4934                 EXTRA_CXXFLAGS="$X86_CFLAGS $EXTRA_CXXFLAGS"
4935                 EXTRA_LFLAGS="$EXTRA_LFLAGS $X86_LFLAGS"
4936             fi
4937             if echo "$CFG_MAC_ARCHS" | grep ppc > /dev/null 2>&1; then # matches both ppc and ppc64
4938                 PPC_CFLAGS="-arch ppc"
4939                 PPC_LFLAGS="-arch ppc"
4940                 EXTRA_CFLAGS="$PPC_CFLAGS $EXTRA_CFLAGS"
4941                 EXTRA_CXXFLAGS="$PPC_CFLAGS $EXTRA_CXXFLAGS"
4942                 EXTRA_LFLAGS="$EXTRA_LFLAGS $PPC_LFLAGS"
4943             fi
4944             if [ '!' -z "$CFG_SDK" ]; then
4945                 echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
4946                 echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
4947                 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(SDK_CFLAGS)"
4948                 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(SDK_CFLAGS)"
4949                 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(SDK_LFLAGS)"
4950             fi
4951         fi
4952         [ "$CFG_EMBEDDED" != "no" ] && EXTRA_CFLAGS="$EXTRA_CFLAGS -DQWS"
4953         if [ '!' -z "$D_FLAGS" ]; then
4954             for DEF in $D_FLAGS; do
4955                 EXTRA_CFLAGS="$EXTRA_CFLAGS \"-D${DEF}\""
4956             done
4957         fi
4958         QMAKE_BIN_DIR="$QT_INSTALL_BINS"
4959         [ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
4960         QMAKE_DATA_DIR="$QT_INSTALL_DATA"
4961         [ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
4962         echo >>"$mkfile"
4963         adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
4964         adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
4965         adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
4966         sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
4967             -e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
4968             -e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
4969             -e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
4970             -e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
4971             -e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
4972             -e "s,@QMAKESPEC@,$adjqmakespec,g" -e "s,@QT_VERSION@,$QT_VERSION,g" "$in_mkfile" >>"$mkfile"
4973
4974         if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
4975             (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
4976             sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
4977             sed "s,$outpath,$adjoutpath,g" "$mkfile.tmp" >"$mkfile"
4978             rm "$mkfile.tmp"
4979         fi
4980     done
4981
4982     QMAKE_BUILD_ERROR=no
4983     (cd "$outpath/qmake"; "$MAKE") || QMAKE_BUILD_ERROR=yes
4984     [ '!' -z "$QCONFIG_H" ] && mv -f "$QCONFIG_H" "$QMAKE_QCONFIG_H" #move qmake's qconfig.h to qconfig.h.qmake
4985     [ '!' -z "$OLD_QCONFIG_H" ] && mv -f "${OLD_QCONFIG_H}.old" "$OLD_QCONFIG_H" #put back qconfig.h
4986     [ "$QMAKE_BUILD_ERROR" = "yes" ] && exit 2
4987 fi # Build qmake
4988
4989 #-------------------------------------------------------------------------------
4990 # tests that need qmake
4991 #-------------------------------------------------------------------------------
4992
4993 # detect availability of float math.h functions
4994 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/floatmath "floatmath" $L_FLAGS $I_FLAGS $l_FLAGS; then
4995     CFG_USE_FLOATMATH=yes
4996 else
4997     CFG_USE_FLOATMATH=no
4998 fi
4999
5000 # detect mmx support
5001 if [ "${CFG_MMX}" = "auto" ]; then
5002     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mmx "mmx" $L_FLAGS $I_FLAGS $l_FLAGS "-mmmx"; then
5003         CFG_MMX=yes
5004     else
5005         CFG_MMX=no
5006     fi
5007 fi
5008
5009 # detect 3dnow support
5010 if [ "${CFG_3DNOW}" = "auto" ]; then
5011     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/3dnow "3dnow" $L_FLAGS $I_FLAGS $l_FLAGS "-m3dnow"; then
5012         CFG_3DNOW=yes
5013     else
5014         CFG_3DNOW=no
5015     fi
5016 fi
5017
5018 # detect sse support
5019 if [ "${CFG_SSE}" = "auto" ]; then
5020     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sse "sse" $L_FLAGS $I_FLAGS $l_FLAGS "-msse"; then
5021         CFG_SSE=yes
5022     else
5023         CFG_SSE=no
5024     fi
5025 fi
5026
5027 # detect sse2 support
5028 if [ "${CFG_SSE2}" = "auto" ]; then
5029     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sse2 "sse2" $L_FLAGS $I_FLAGS $l_FLAGS "-msse2"; then
5030        CFG_SSE2=yes
5031     else
5032        CFG_SSE2=no
5033     fi
5034 fi
5035
5036 # detect sse3 support
5037 if [ "${CFG_SSE3}" = "auto" ]; then
5038     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sse3 "sse3" $L_FLAGS $I_FLAGS $l_FLAGS "-msse3"; then
5039        CFG_SSE3=yes
5040     else
5041        CFG_SSE3=no
5042     fi
5043 fi
5044
5045 # detect ssse3 support
5046 if [ "${CFG_SSSE3}" = "auto" ]; then
5047     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/ssse3 "ssse3" $L_FLAGS $I_FLAGS $l_FLAGS "-mssse3"; then
5048        CFG_SSSE3=yes
5049     else
5050        CFG_SSSE3=no
5051     fi
5052 fi
5053
5054 # detect sse4.1 support
5055 if [ "${CFG_SSE4_1}" = "auto" ]; then
5056     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
5057        CFG_SSE4_1=yes
5058     else
5059        CFG_SSE4_1=no
5060     fi
5061 fi
5062
5063 # detect sse4.2 support
5064 if [ "${CFG_SSE4_2}" = "auto" ]; then
5065     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
5066        CFG_SSE4_2=yes
5067     else
5068        CFG_SSE4_2=no
5069     fi
5070 fi
5071
5072 # detect avx support
5073 if [ "${CFG_AVX}" = "auto" ]; then
5074     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/avx "avx" $L_FLAGS $I_FLAGS $l_FLAGS "-mavx"; then
5075        CFG_AVX=yes
5076     else
5077        CFG_AVX=no
5078     fi
5079 fi
5080
5081 # check iWMMXt support
5082 if [ "$CFG_IWMMXT" = "yes" ]; then
5083     "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/iwmmxt "iwmmxt" $L_FLAGS $I_FLAGS $l_FLAGS "-mcpu=iwmmxt"
5084     if [ $? != "0" ]; then
5085         echo "The iWMMXt functionality test failed!"
5086         echo " Please make sure your compiler supports iWMMXt intrinsics!"
5087         exit 1
5088     fi
5089 fi
5090
5091 # detect neon support
5092 if [ "$CFG_ARCH" = "arm" ] && [ "${CFG_NEON}" = "auto" ]; then
5093     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
5094         CFG_NEON=yes
5095     else
5096         CFG_NEON=no
5097     fi
5098 fi
5099
5100 [ "$XPLATFORM_MINGW" = "yes" ] && QMakeVar add styles "windowsxp windowsvista"
5101
5102 if [ "$XPLATFORM_SYMBIAN" = "yes" ]; then
5103     QMakeVar set styles "windows s60"   #overwrite previous default
5104     CFG_LIBFREETYPE=no
5105     CFG_ZLIB=yes
5106
5107     if [ "$CFG_LARGEFILE" = auto ]; then
5108         CFG_LARGEFILE=no
5109     fi
5110     if [ "$CFG_PHONON" = auto ]; then
5111         CFG_PHONON=yes
5112     fi
5113
5114     if test -z "$EPOCROOT"; then
5115         echo "Please export EPOCROOT. It should point to the sdk install dir"
5116         exit 1
5117     fi
5118     if test ! -d "$EPOCROOT/epoc32"; then
5119         echo "Could not find the 'epoc32' dir in your EPOCROOT."
5120         exit 1
5121     fi
5122
5123     if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
5124         # Raptor does not support configure tests.
5125
5126         # the main commands needed to compile;
5127         (mkdir -p config.tests/symbian/rcomp
5128             cd config.tests/symbian/rcomp
5129             rm -f rcomp_test.rsg
5130             touch rcomp_test.rpp rcomp_test.rsc rcomp_test.rss
5131             rcomp -u -m045,046,047 -s./rcomp_test.rpp -o./rcomp_test.rsc -h./rcomp_test.rsg -i./rcomp_test.rss 2>&1 > /dev/null
5132             if test ! -f rcomp_test.rsg; then
5133                 echo "Finding a working rcomp in your PATH failed."
5134                 echo "Fatal error. Make sure you have the epoc tools working and in your PATH";
5135                 exit 1;
5136             fi
5137         )
5138
5139         # compile a simple main that uses printf
5140         if ! "$symbiantests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/symbian/simple "simple" $L_FLAGS $I_FLAGS $l_FLAGS
5141         then
5142             echo "Testing your compiler failed. Could not compile a simple application."
5143             echo "Fatal error; Rerun configure with -verbose to get more details."
5144             exit 1;
5145         fi
5146     fi
5147 fi
5148
5149 # detect zlib
5150 if [ "$CFG_ZLIB" = "no" ]; then
5151     # Note: Qt no longer support builds without zlib
5152     # So we force a "no" to be "auto" here.
5153     # If you REALLY really need no zlib support, you can still disable
5154     # it by doing the following:
5155     #   add "no-zlib" to mkspecs/qconfig.pri
5156     #   #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
5157     #
5158     # There's no guarantee that Qt will build under those conditions
5159
5160     CFG_ZLIB=auto
5161     ZLIB_FORCED=yes
5162 fi
5163 if [ "$CFG_ZLIB" = "auto" ]; then
5164     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
5165        CFG_ZLIB=system
5166     else
5167        CFG_ZLIB=yes
5168     fi
5169 fi
5170
5171 if [ "$CFG_LARGEFILE" = "auto" ]; then
5172     #Large files should be enabled for all Linux systems
5173     CFG_LARGEFILE=yes
5174 fi
5175
5176
5177 if [ "$CFG_S60" = "auto" ]; then
5178     if [ "$XPLATFORM_SYMBIAN" = "yes" ]; then
5179         CFG_S60=yes
5180     else
5181         CFG_S60=no
5182     fi
5183 fi
5184
5185 if [ "$CFG_QS60STYLE" = "auto" ]; then
5186     if [ "$XPLATFORM_SYMBIAN" = "yes" ]; then
5187         CFG_QS60STYLE=qt
5188     else
5189         CFG_QS60STYLE=no
5190     fi
5191 fi
5192
5193 if [ "$CFG_SYMBIAN_DEFFILES" = "auto" ]; then
5194     # elf2e32 crashes when using def files together with gcce.
5195     if [ "$XPLATFORM_SYMBIAN" = "yes" ] && [ "$CFG_DEV" = "no" ] && [ "$XPLATFORM" != "symbian-gcce" ]; then
5196         CFG_SYMBIAN_DEFFILES=yes
5197     else
5198         CFG_SYMBIAN_DEFFILES=no
5199     fi
5200 fi
5201
5202 # detect how jpeg should be built
5203 if [ "$CFG_JPEG" = "auto" ]; then
5204     if [ "$CFG_SHARED" = "yes" ]; then
5205         CFG_JPEG=plugin
5206     else
5207         CFG_JPEG=yes
5208     fi
5209 fi
5210 # detect jpeg
5211 if [ "$CFG_LIBJPEG" = "auto" ]; then
5212     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
5213        CFG_LIBJPEG=system
5214     else
5215        CFG_LIBJPEG=qt
5216     fi
5217 fi
5218
5219 # detect how gif should be built
5220 if [ "$CFG_GIF" = "auto" ]; then
5221     if [ "$CFG_SHARED" = "yes" ]; then
5222         CFG_GIF=plugin
5223     else
5224         CFG_GIF=yes
5225     fi
5226 fi
5227
5228 # detect how tiff should be built
5229 if [ "$CFG_TIFF" = "auto" ]; then
5230     if [ "$CFG_SHARED" = "yes" ]; then
5231         CFG_TIFF=plugin
5232     else
5233         CFG_TIFF=yes
5234     fi
5235 fi
5236
5237 # detect tiff
5238 if [ "$CFG_LIBTIFF" = "auto" ]; then
5239     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/libtiff "libtiff" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
5240         CFG_LIBTIFF=system
5241     else
5242         CFG_LIBTIFF=qt
5243     fi
5244 fi
5245
5246 # detect how mng should be built
5247 if [ "$CFG_MNG" = "auto" ]; then
5248     if [ "$CFG_SHARED" = "yes" ]; then
5249         CFG_MNG=plugin
5250     else
5251         CFG_MNG=yes
5252     fi
5253 fi
5254 # detect mng
5255 if [ "$CFG_LIBMNG" = "auto" ]; then
5256     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/libmng "libmng" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
5257        CFG_LIBMNG=system
5258     else
5259        CFG_LIBMNG=qt
5260     fi
5261 fi
5262
5263 # detect png
5264 if [ "$CFG_LIBPNG" = "auto" ]; then
5265     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
5266        CFG_LIBPNG=system
5267     else
5268        CFG_LIBPNG=qt
5269     fi
5270 fi
5271
5272 # detect accessibility
5273 if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
5274     if [ "$XPLATFORM_SYMBIAN" = "yes" ]; then
5275         # accessibility is currently unsupported
5276         CFG_ACCESSIBILITY=no
5277     else
5278         CFG_ACCESSIBILITY=yes
5279     fi
5280 fi
5281
5282 # auto-detect SQL-modules support
5283 for _SQLDR in $CFG_SQL_AVAILABLE; do
5284         case $_SQLDR in
5285         mysql)
5286             if [ "$CFG_SQL_mysql" != "no" ]; then
5287                 [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
5288                 if [ -x "$CFG_MYSQL_CONFIG" ]; then
5289                     QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null`
5290                     QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null`
5291                     QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null`
5292                     QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
5293                     QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
5294                 fi
5295                 if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
5296                     if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5297                         echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
5298                         echo " You need MySql 4 or higher."
5299                         echo " If you believe this message is in error you may use the continue"
5300                         echo " switch (-continue) to $0 to continue."
5301                         exit 101
5302                     else
5303                         CFG_SQL_mysql="no"
5304                         QT_LFLAGS_MYSQL=""
5305                         QT_LFLAGS_MYSQL_R=""
5306                         QT_CFLAGS_MYSQL=""
5307                     fi
5308                 else
5309                     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
5310                         QMakeVar add CONFIG use_libmysqlclient_r
5311                         if [ "$CFG_SQL_mysql" = "auto" ]; then
5312                             CFG_SQL_mysql=plugin
5313                         fi
5314                         QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
5315                     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
5316                         if [ "$CFG_SQL_mysql" = "auto" ]; then
5317                             CFG_SQL_mysql=plugin
5318                         fi
5319                     else
5320                         if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5321                             echo "MySQL support cannot be enabled due to functionality tests!"
5322                             echo " Turn on verbose messaging (-v) to $0 to see the final report."
5323                             echo " If you believe this message is in error you may use the continue"
5324                             echo " switch (-continue) to $0 to continue."
5325                             exit 101
5326                         else
5327                             CFG_SQL_mysql=no
5328                             QT_LFLAGS_MYSQL=""
5329                             QT_LFLAGS_MYSQL_R=""
5330                             QT_CFLAGS_MYSQL=""
5331                         fi
5332                     fi
5333                 fi
5334             fi
5335             ;;
5336         psql)
5337             if [ "$CFG_SQL_psql" != "no" ]; then
5338                 # Be careful not to use native pg_config when cross building.
5339                 if [ "$XPLATFORM_MINGW" != "yes" ] && "$WHICH" pg_config >/dev/null 2>&1; then
5340                     QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null`
5341                     QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null`
5342                 fi
5343                 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
5344                 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
5345                 # But, respect PSQL_LIBS if set
5346                 [ -z "$PSQL_LIBS" ] || QT_LFLAGS_PSQL="$PSQL_LIBS"
5347                 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
5348                     if [ "$CFG_SQL_psql" = "auto" ]; then
5349                         CFG_SQL_psql=plugin
5350                     fi
5351                 else
5352                     if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5353                         echo "PostgreSQL support cannot be enabled due to functionality tests!"
5354                         echo " Turn on verbose messaging (-v) to $0 to see the final report."
5355                         echo " If you believe this message is in error you may use the continue"
5356                         echo " switch (-continue) to $0 to continue."
5357                         exit 101
5358                     else
5359                         CFG_SQL_psql=no
5360                         QT_CFLAGS_PSQL=""
5361                         QT_LFLAGS_PSQL=""
5362                     fi
5363                 fi
5364             fi
5365         ;;
5366         odbc)
5367             if [ "$CFG_SQL_odbc" != "no" ]; then
5368                 if ( [ "$PLATFORM_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
5369                     if [ "$CFG_SQL_odbc" = "auto" ]; then
5370                         CFG_SQL_odbc=plugin
5371                     fi
5372                 else
5373                     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
5374                         QT_LFLAGS_ODBC="-liodbc"
5375                         if [ "$CFG_SQL_odbc" = "auto" ]; then
5376                             CFG_SQL_odbc=plugin
5377                         fi
5378                     else
5379                         if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5380                             echo "ODBC support cannot be enabled due to functionality tests!"
5381                             echo " Turn on verbose messaging (-v) to $0 to see the final report."
5382                             echo " If you believe this message is in error you may use the continue"
5383                             echo " switch (-continue) to $0 to continue."
5384                             exit 101
5385                         else
5386                             CFG_SQL_odbc=no
5387                         fi
5388                     fi
5389                 fi
5390             fi
5391             ;;
5392         oci)
5393             if [ "$CFG_SQL_oci" != "no" ]; then
5394                 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
5395                     if [ "$CFG_SQL_oci" = "auto" ]; then
5396                         CFG_SQL_oci=plugin
5397                     fi
5398                 else
5399                     if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5400                         echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
5401                         echo " Turn on verbose messaging (-v) to $0 to see the final report."
5402                         echo " If you believe this message is in error you may use the continue"
5403                         echo " switch (-continue) to $0 to continue."
5404                         exit 101
5405                     else
5406                         CFG_SQL_oci=no
5407                     fi
5408                 fi
5409             fi
5410             ;;
5411         tds)
5412             if [ "$CFG_SQL_tds" != "no" ]; then
5413                 [ -z "$SYBASE" ] || QT_LFLAGS_TDS="-L$SYBASE/lib"
5414                 [ -z "$SYBASE_LIBS" ] || QT_LFLAGS_TDS="$QT_LFLAGS_TDS $SYBASE_LIBS"
5415                 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
5416                     if [ "$CFG_SQL_tds" = "auto" ]; then
5417                         CFG_SQL_tds=plugin
5418                     fi
5419                 else
5420                     if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5421                         echo "TDS support cannot be enabled due to functionality tests!"
5422                         echo " Turn on verbose messaging (-v) to $0 to see the final report."
5423                         echo " If you believe this message is in error you may use the continue"
5424                         echo " switch (-continue) to $0 to continue."
5425                         exit 101
5426                     else
5427                         CFG_SQL_tds=no
5428                     fi
5429                 fi
5430             fi
5431             ;;
5432         db2)
5433             if [ "$CFG_SQL_db2" != "no" ]; then
5434                 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
5435                     if [ "$CFG_SQL_db2" = "auto" ]; then
5436                         CFG_SQL_db2=plugin
5437                     fi
5438                 else
5439                     if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5440                         echo "ODBC support cannot be enabled due to functionality tests!"
5441                         echo " Turn on verbose messaging (-v) to $0 to see the final report."
5442                         echo " If you believe this message is in error you may use the continue"
5443                         echo " switch (-continue) to $0 to continue."
5444                         exit 101
5445                     else
5446                         CFG_SQL_db2=no
5447                     fi
5448                 fi
5449             fi
5450             ;;
5451         ibase)
5452             if [ "$CFG_SQL_ibase" != "no" ]; then
5453                 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
5454                     if [ "$CFG_SQL_ibase" = "auto" ]; then
5455                         CFG_SQL_ibase=plugin
5456                     fi
5457                 else
5458                     if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5459                         echo "InterBase support cannot be enabled due to functionality tests!"
5460                         echo " Turn on verbose messaging (-v) to $0 to see the final report."
5461                         echo " If you believe this message is in error you may use the continue"
5462                         echo " switch (-continue) to $0 to continue."
5463                         exit 101
5464                     else
5465                         CFG_SQL_ibase=no
5466                     fi
5467                 fi
5468             fi
5469             ;;
5470         sqlite2)
5471             if [ "$CFG_SQL_sqlite2" != "no" ]; then
5472                 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
5473                     if [ "$CFG_SQL_sqlite2" = "auto" ]; then
5474                         CFG_SQL_sqlite2=plugin
5475                     fi
5476                 else
5477                     if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5478                         echo "SQLite2 support cannot be enabled due to functionality tests!"
5479                         echo " Turn on verbose messaging (-v) to $0 to see the final report."
5480                         echo " If you believe this message is in error you may use the continue"
5481                         echo " switch (-continue) to $0 to continue."
5482                         exit 101
5483                     else
5484                         CFG_SQL_sqlite2=no
5485                     fi
5486                 fi
5487             fi
5488             ;;
5489         sqlite)
5490             if [ "$CFG_SQL_sqlite" = "auto" ]; then # the default
5491                 if [ "$XPLATFORM_SYMBIAN" = "yes" ]; then
5492                     # sqlite on symbian is typically not build in Qt but deployed as a pre-existing sis file and should be marked as driver.
5493                     # Configuration parameters should be set
5494                     CFG_SQL_sqlite=qt
5495                     QT_LFLAGS_SQLITE=-lsqlite3
5496                     QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
5497                 fi
5498             fi
5499             if [ "$CFG_SQL_sqlite" != "no" ]; then
5500                 SQLITE_AUTODETECT_FAILED="no"
5501                 if [ "$CFG_SQLITE" = "system" ]; then
5502                     if [ -n "$PKG_CONFIG" ]; then
5503                         QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
5504                         QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
5505                     fi
5506                     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
5507                         if [ "$CFG_SQL_sqlite" = "auto" ]; then
5508                             CFG_SQL_sqlite=plugin
5509                         fi
5510                         QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
5511                     else
5512                         SQLITE_AUTODETECT_FAILED="yes"
5513                         CFG_SQL_sqlite=no
5514                     fi
5515                 elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
5516                     if [ "$CFG_SQL_sqlite" = "auto" ]; then
5517                             CFG_SQL_sqlite=plugin
5518                     fi
5519                 else
5520                     SQLITE_AUTODETECT_FAILED="yes"
5521                     CFG_SQL_sqlite=no
5522                 fi
5523
5524                 if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5525                     echo "SQLite support cannot be enabled due to functionality tests!"
5526                     echo " Turn on verbose messaging (-v) to $0 to see the final report."
5527                     echo " If you believe this message is in error you may use the continue"
5528                     echo " switch (-continue) to $0 to continue."
5529                     exit 101
5530                 fi
5531             fi
5532             ;;
5533         *)
5534             if [ "$OPT_VERBOSE" = "yes" ]; then
5535                 echo "unknown SQL driver: $_SQLDR"
5536             fi
5537             ;;
5538         esac
5539 done
5540
5541 # auto-detect NIS support
5542 if [ "$CFG_NIS" != "no" ]; then
5543     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
5544         CFG_NIS=yes
5545     else
5546         if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5547             echo "NIS support cannot be enabled due to functionality tests!"
5548             echo " Turn on verbose messaging (-v) to $0 to see the final report."
5549             echo " If you believe this message is in error you may use the continue"
5550             echo " switch (-continue) to $0 to continue."
5551             exit 101
5552         else
5553             CFG_NIS=no
5554         fi
5555     fi
5556 fi
5557
5558 # auto-detect CUPS support
5559 if [ "$CFG_CUPS" != "no" ]; then
5560     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
5561         CFG_CUPS=yes
5562     else
5563         if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5564             echo "Cups support cannot be enabled due to functionality tests!"
5565             echo " Turn on verbose messaging (-v) to $0 to see the final report."
5566             echo " If you believe this message is in error you may use the continue"
5567             echo " switch (-continue) to $0 to continue."
5568             exit 101
5569         else
5570             CFG_CUPS=no
5571         fi
5572     fi
5573 fi
5574
5575 # auto-detect iconv(3) support
5576 if [ "$CFG_ICONV" != "no" ]; then
5577     if [ "$PLATFORM_QWS" = "yes" -o "$PLATFORM_QPA" = "yes" ]; then
5578         CFG_ICONV=no
5579     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
5580         CFG_ICONV=yes
5581     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
5582         CFG_ICONV=sun
5583     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
5584         CFG_ICONV=gnu
5585     else
5586         if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5587             echo "Iconv support cannot be enabled due to functionality tests!"
5588             echo " Turn on verbose messaging (-v) to $0 to see the final report."
5589             echo " If you believe this message is in error you may use the continue"
5590             echo " switch (-continue) to $0 to continue."
5591             exit 101
5592         else
5593             CFG_ICONV=no
5594         fi
5595     fi
5596 fi
5597
5598 # auto-detect libdbus-1 support
5599 if [ "$CFG_DBUS" != "no" ]; then
5600     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
5601         QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
5602         QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
5603     fi
5604     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
5605         [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
5606         QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
5607         QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
5608     else
5609         if [ "$CFG_DBUS" = "auto" ]; then
5610             CFG_DBUS=no
5611         elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5612             # CFG_DBUS is "yes" or "linked" here
5613
5614             echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
5615             echo " Turn on verbose messaging (-v) to $0 to see the final report."
5616             echo " If you believe this message is in error you may use the continue"
5617             echo " switch (-continue) to $0 to continue."
5618             exit 101
5619         fi
5620     fi
5621 fi
5622
5623 if [ "$CFG_MULTIMEDIA" = "auto" ]; then
5624     CFG_MULTIMEDIA="$CFG_GUI"
5625 fi
5626
5627 if [ "$CFG_MULTIMEDIA" = "yes" ] && [ "$CFG_GUI" = "no" ]; then
5628     echo "QtMultimedia requested, but it can't be built without QtGui"
5629     exit 1
5630 fi
5631
5632 # Generate a CRC of the namespace for using in constants for the Carbon port.
5633 # This should mean that you really *can* load two Qt's and have our custom
5634 # Carbon events work.
5635 if [ "$PLATFORM_MAC" = "yes" -a ! -z "$QT_NAMESPACE" ]; then
5636     QT_NAMESPACE_MAC_CRC=`"$mactests/crc.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/mac/crc $QT_NAMESPACE $L_FLAGS $I_FLAGS $l_FLAGS`
5637 fi
5638
5639 # X11/QWS/Lighthouse
5640 if [ "$PLATFORM_X11" = "yes" -o "$PLATFORM_QWS" = "yes" -o "$PLATFORM_QPA" = "yes" ]; then
5641
5642     # auto-detect Glib support
5643     if [ "$CFG_GLIB" != "no" ]; then
5644         if [ -n "$PKG_CONFIG" ]; then
5645             QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
5646             QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
5647         fi
5648         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 $X11TESTS_FLAGS ; then
5649             CFG_GLIB=yes
5650             QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
5651             QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
5652         else
5653             if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5654                 echo "Glib support cannot be enabled due to functionality tests!"
5655                 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5656                 echo " If you believe this message is in error you may use the continue"
5657                 echo " switch (-continue) to $0 to continue."
5658                 exit 101
5659             else
5660                 CFG_GLIB=no
5661             fi
5662         fi
5663     fi
5664
5665     if [ "$CFG_GUI" = "no" ]; then
5666         if [ "$CFG_PHONON" = "auto" ]; then
5667             CFG_PHONON=no
5668         fi
5669         if [ "$CFG_PHONON" != "no" ]; then
5670             echo "Phonon enabled, but GUI disabled."
5671             echo " You might need to either enable the GUI or disable Phonon"
5672             exit 1
5673         fi
5674     fi
5675
5676     # Auto-detect GStreamer support (needed for Phonon)
5677     if [ "$CFG_PHONON" != "no" ]; then
5678         if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
5679             if [ -n "$PKG_CONFIG" ]; then
5680                 QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
5681                 QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
5682             fi
5683             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 $X11TESTS_FLAGS; then
5684                 CFG_GSTREAMER=yes
5685                 QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
5686                 QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
5687             else
5688                 if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5689                     echo "Gstreamer support cannot be enabled due to functionality tests!"
5690                     echo " Turn on verbose messaging (-v) to $0 to see the final report."
5691                     echo " If you believe this message is in error you may use the continue"
5692                     echo " switch (-continue) to $0 to continue."
5693                     exit 101
5694                 else
5695                     CFG_GSTREAMER=no
5696                 fi
5697             fi
5698         elif [ "$CFG_GLIB" = "no" ]; then
5699             CFG_GSTREAMER=no
5700         fi
5701     else
5702         CFG_GSTREAMER=no
5703     fi
5704
5705     if [ "$CFG_PHONON" != "no" ]; then
5706         if [ "$CFG_PHONON_BACKEND" != "no" ]; then
5707             if [ "$CFG_GSTREAMER" = "yes" ]; then
5708                 CFG_PHONON=yes
5709             else
5710                 if [ "$CFG_PHONON" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5711                     echo "Phonon support cannot be enabled due to functionality tests!"
5712                     echo " Turn on verbose messaging (-v) to $0 to see the final report."
5713                     echo " If you believe this message is in error you may use the continue"
5714                     echo " switch (-continue) to $0 to continue."
5715                     exit 101
5716                 else
5717                     CFG_PHONON=no
5718                 fi
5719             fi
5720         else
5721             CFG_PHONON=yes
5722         fi
5723     fi
5724
5725     # auto-detect icd support
5726     if [ "$CFG_GLIB" = "yes" -a "$CFG_ICD" != "no" ]; then
5727         if [ -n "$PKG_CONFIG" ]; then
5728             QT_CFLAGS_CONNSETTINGS=`$PKG_CONFIG --cflags connsettings icd2 2>/dev/null`
5729             QT_LIBS_CONNSETTINGS=`$PKG_CONFIG --libs connsettings icd2 2>/dev/null`
5730         fi
5731         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/icd "ICD" $L_FLAGS $I_FLAGS $l_FLAGS $QT_CFLAGS_CONNSETTINGS $QT_LIBS_CONNSETTINGS; then
5732             [ "$CFG_ICD" = "auto" ] && CFG_ICD=yes
5733             QMakeVar set QT_CFLAGS_CONNSETTINGS "$QT_CFLAGS_CONNSETTINGS"
5734             QMakeVar set QT_LIBS_CONNSETTINGS "$QT_LIBS_CONNSETTINGS"
5735         else
5736             if [ "$CFG_ICD" = "auto" ]; then
5737                 CFG_ICD=no
5738             elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5739                 # CFG_ICD is "yes"
5740
5741                 echo "The ICD Bearer Management plugin cannot be enabled because connsettings was not found."
5742                 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5743                 echo " If you believe this message is in error you may use the continue"
5744                 echo " switch (-continue) to $0 to continue."
5745                 exit 101
5746             fi
5747         fi
5748     elif [ "$CFG_GLIB" = "no" ]; then
5749         CFG_ICD=no
5750     fi
5751
5752     # auto-detect libicu support
5753     if [ "$CFG_ICU" != "no" ]; then
5754         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/icu "ICU" $L_FLAGS $I_FLAGS $l_FLAGS; then
5755             [ "$CFG_ICU" = "auto" ] && CFG_ICU=yes
5756         else
5757             if [ "$CFG_ICU" = "auto" ]; then
5758                 CFG_ICU=no
5759             elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5760                 # CFG_ICU is "yes"
5761
5762                 echo "The ICU library support cannot be enabled."
5763                 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5764                 echo " If you believe this message is in error you may use the continue"
5765                 echo " switch (-continue) to $0 to continue."
5766                 exit 101
5767             fi
5768         fi
5769     fi
5770
5771     # Auto-detect PulseAudio support
5772     if [ "$CFG_PULSEAUDIO" != "no" ]; then
5773         if [ -n "$PKG_CONFIG" ]; then
5774             QT_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
5775             QT_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
5776         fi
5777         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 $X11TESTS_FLAGS; then
5778             CFG_PULSEAUDIO=yes
5779             QMakeVar set QT_CFLAGS_PULSEAUDIO "$QT_CFLAGS_PULSEAUDIO"
5780             QMakeVar set QT_LIBS_PULSEAUDIO "$QT_LIBS_PULSEAUDIO"
5781         else
5782             if [ "$CFG_PULSEAUDIO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5783                 echo "PulseAudio support cannot be enabled due to functionality tests!"
5784                 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5785                 echo " If you believe this message is in error you may use the continue"
5786                 echo " switch (-continue) to $0 to continue."
5787                 exit 101
5788             else
5789                 CFG_PULSEAUDIO=no
5790             fi
5791         fi
5792     fi
5793 fi # X11/QWS/Lighthouse
5794
5795 # X11
5796 if [ "$PLATFORM_X11" = "yes" -a "$CFG_GUI" != "no" ]; then
5797     x11tests="$relpath/config.tests/x11"
5798     X11TESTS_FLAGS=
5799
5800     # work around broken X11 headers when using GCC 2.95 or later
5801     NOTYPE=no
5802     "$x11tests/notype.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" && NOTYPE=yes
5803     if [ $NOTYPE = "yes" ]; then
5804         QMakeVar add QMAKE_CXXFLAGS -fpermissive
5805         X11TESTS_FLAGS="$X11TESTS_FLAGS -fpermissive"
5806     fi
5807
5808     # Check we actually have X11 :-)
5809     "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xlib "XLib" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS
5810     if [ $? != "0" ]; then
5811         echo "Basic XLib functionality test failed!"
5812         echo " You might need to modify the include and library search paths by editing"
5813         echo " QMAKE_INCDIR_X11 and QMAKE_LIBDIR_X11 in ${XQMAKESPEC}."
5814         exit 1
5815     fi
5816 fi
5817
5818 # X11/MINGW/SYMBIAN OpenGL
5819 if [ "$PLATFORM_X11" = "yes" -o "$XPLATFORM_MINGW" = "yes" -o "$XPLATFORM_SYMBIAN" = "yes" ]; then
5820     # auto-detect OpenGL support (es1 = OpenGL ES 1.x Common, es2 = OpenGL ES 2.x)
5821     if [ "$CFG_GUI" = "no" ]; then
5822         if [ "$CFG_OPENGL" = "auto" ]; then
5823             CFG_OPENGL=no
5824         fi
5825         if [ "$CFG_OPENGL" != "no" ]; then
5826             echo "OpenGL enabled, but GUI disabled."
5827             echo " You might need to either enable the GUI or disable OpenGL"
5828             exit 1
5829         fi
5830     fi
5831     if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
5832         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/opengl "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
5833             CFG_OPENGL=desktop
5834         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
5835             CFG_OPENGL=es2
5836             if [ "$CFG_EGL" = "no" ]; then
5837                 CFG_EGL=auto
5838             fi
5839         elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles1 "OpenGL ES 1.x" $L_FLAGS $I_FLAGS $l_FLAGS; then
5840             CFG_OPENGL=es1
5841             if [ "$CFG_EGL" = "no" ]; then
5842                 CFG_EGL=auto
5843             fi
5844         else
5845             if [ "$CFG_OPENGL" = "yes" ]; then
5846                 echo "All the OpenGL functionality tests failed!"
5847                 echo " You might need to modify the include and library search paths by editing"
5848                 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
5849                 echo " ${XQMAKESPEC}."
5850                 exit 1
5851             fi
5852             CFG_OPENGL=no
5853         fi
5854         case "$PLATFORM" in
5855         hpux*)
5856             # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
5857             if [ "$CFG_OPENGL" = "desktop" ]; then
5858                 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/glxfbconfig "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS
5859                 if [ $? != "0" ]; then
5860                     QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
5861                 fi
5862             fi
5863             ;;
5864         *)
5865             ;;
5866         esac
5867     elif [ "$CFG_OPENGL" = "es1" ]; then
5868         # OpenGL ES 1.x
5869         "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles1 "OpenGL ES 1.x" $L_FLAGS $I_FLAGS $l_FLAGS
5870         if [ $? != "0" ]; then
5871             echo "The OpenGL ES 1.x functionality test failed!"
5872             echo " You might need to modify the include and library search paths by editing"
5873             echo " QMAKE_INCDIR_OPENGL_ES1, QMAKE_LIBDIR_OPENGL_ES1 and QMAKE_LIBS_OPENGL_ES1 in"
5874             echo " ${XQMAKESPEC}."
5875             exit 1
5876         fi
5877     elif [ "$CFG_OPENGL" = "es2" ]; then
5878         #OpenGL ES 2.x
5879         "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles2 "OpenGL ES 2.x" $L_FLAGS $I_FLAGS $l_FLAGS
5880         if [ $? != "0" ]; then
5881             echo "The OpenGL ES 2.0 functionality test failed!"
5882             echo " You might need to modify the include and library search paths by editing"
5883             echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
5884             echo " ${XQMAKESPEC}."
5885             exit 1
5886         fi
5887     elif [ "$CFG_OPENGL" = "desktop" ]; then
5888         # Desktop OpenGL support
5889         "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/opengl "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS
5890         if [ $? != "0" ]; then
5891             echo "The OpenGL functionality test failed!"
5892             echo " You might need to modify the include and library search paths by editing"
5893             echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
5894             echo " ${XQMAKESPEC}."
5895             exit 1
5896         fi
5897         case "$PLATFORM" in
5898         hpux*)
5899             # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
5900             "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/glxfbconfig "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS
5901             if [ $? != "0" ]; then
5902                 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
5903             fi
5904             ;;
5905         *)
5906             ;;
5907         esac
5908     fi
5909
5910     # if opengl is disabled and the user specified graphicssystem gl, disable it...
5911     if [ "$CFG_GRAPHICS_SYSTEM" = "opengl" ] && [ "$CFG_OPENGL" = "no" ]; then
5912         echo "OpenGL Graphics System is disabled due to missing OpenGL support..."
5913         CFG_GRAPHICS_SYSTEM=default
5914     fi
5915 fi # X11/MINGW OpenGL
5916
5917 # X11
5918 if [ "$PLATFORM_X11" = "yes" ]; then
5919     # auto-detect Xcursor support
5920     if [ "$CFG_XCURSOR" != "no" ]; then
5921         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xcursor "Xcursor" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
5922             if [ "$CFG_XCURSOR" != "runtime" ]; then
5923                 CFG_XCURSOR=yes;
5924             fi
5925         else
5926             if [ "$CFG_XCURSOR" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5927                 echo "Xcursor support cannot be enabled due to functionality tests!"
5928                 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5929                 echo " If you believe this message is in error you may use the continue"
5930                 echo " switch (-continue) to $0 to continue."
5931                 exit 101
5932             else
5933                 CFG_XCURSOR=no
5934             fi
5935         fi
5936     fi
5937
5938     # auto-detect Xfixes support
5939     if [ "$CFG_XFIXES" != "no" ]; then
5940         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xfixes "Xfixes" $L_FLAGS $I_FLAGS $X11TESTS_FLAGS; then
5941             if [ "$CFG_XFIXES" != "runtime" ]; then
5942                 CFG_XFIXES=yes;
5943             fi
5944         else
5945             if [ "$CFG_XFIXES" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5946                 echo "Xfixes support cannot be enabled due to functionality tests!"
5947                 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5948                 echo " If you believe this message is in error you may use the continue"
5949                 echo " switch (-continue) to $0 to continue."
5950                 exit 101
5951             else
5952                 CFG_XFIXES=no
5953             fi
5954         fi
5955     fi
5956
5957     # auto-detect Xrandr support (resize and rotate extension)
5958     if [ "$CFG_XRANDR" != "no" ]; then
5959         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xrandr "Xrandr" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
5960             if [ "$CFG_XRANDR" != "runtime" ]; then
5961             CFG_XRANDR=yes
5962             fi
5963         else
5964             if [ "$CFG_XRANDR" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5965                 echo "Xrandr support cannot be enabled due to functionality tests!"
5966                 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5967                 echo " If you believe this message is in error you may use the continue"
5968                 echo " switch (-continue) to $0 to continue."
5969                 exit 101
5970             else
5971                 CFG_XRANDR=no
5972             fi
5973         fi
5974     fi
5975
5976     # auto-detect Xrender support
5977     if [ "$CFG_XRENDER" != "no" ]; then
5978         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xrender "Xrender" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
5979             CFG_XRENDER=yes
5980         else
5981             if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5982                 echo "Xrender support cannot be enabled due to functionality tests!"
5983                 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5984                 echo " If you believe this message is in error you may use the continue"
5985                 echo " switch (-continue) to $0 to continue."
5986                 exit 101
5987             else
5988                 CFG_XRENDER=no
5989             fi
5990         fi
5991     fi
5992
5993     # Additional check to decide if WebKit support will be included
5994     if [ "$CFG_XRENDER" = "no" ] && [ "$CFG_WEBKIT" != "no" ]; then
5995         echo "Warning: -no-xrender will disable the QtWebkit module."
5996         CFG_WEBKIT="no"
5997     fi
5998
5999     # auto-detect MIT-SHM support
6000     if [ "$CFG_MITSHM" != "no" ]; then
6001         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/mitshm "mitshm" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
6002             CFG_MITSHM=yes
6003         else
6004             if [ "$CFG_MITSHM" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
6005                 echo "MITSHM support cannot be enabled due to functionality tests!"
6006                 echo " Turn on verbose messaging (-v) to $0 to see the final report."
6007                 echo " If you believe this message is in error you may use the continue"
6008                 echo " switch (-continue) to $0 to continue."
6009                 exit 101
6010             else
6011                 CFG_MITSHM=no
6012             fi
6013         fi
6014     fi
6015
6016     # auto-detect FontConfig support
6017     if [ "$CFG_FONTCONFIG" != "no" ]; then
6018     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
6019         QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
6020         QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
6021     else
6022         QT_CFLAGS_FONTCONFIG=
6023         QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
6024     fi
6025     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/fontconfig "FontConfig" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then
6026             CFG_FONTCONFIG=yes
6027         QMakeVar set QMAKE_CFLAGS_X11 "$QT_CFLAGS_FONTCONFIG \$\$QMAKE_CFLAGS_X11"
6028         QMakeVar set QMAKE_LIBS_X11 "$QT_LIBS_FONTCONFIG \$\$QMAKE_LIBS_X11"
6029             CFG_LIBFREETYPE=system
6030         else
6031             if [ "$CFG_FONTCONFIG" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
6032                 echo "FontConfig support cannot be enabled due to functionality tests!"
6033                 echo " Turn on verbose messaging (-v) to $0 to see the final report."
6034                 echo " If you believe this message is in error you may use the continue"
6035                 echo " switch (-continue) to $0 to continue."
6036                 exit 101
6037             else
6038                 CFG_FONTCONFIG=no
6039             fi
6040         fi
6041     fi
6042
6043     # auto-detect Session Management support
6044     if [ "$CFG_SM" = "auto" ]; then
6045         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/sm "Session Management" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
6046             CFG_SM=yes
6047         else
6048             if [ "$CFG_SM" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
6049                 echo "Session Management support cannot be enabled due to functionality tests!"
6050                 echo " Turn on verbose messaging (-v) to $0 to see the final report."
6051                 echo " If you believe this message is in error you may use the continue"
6052                 echo " switch (-continue) to $0 to continue."
6053                 exit 101
6054             else
6055                 CFG_SM=no
6056             fi
6057         fi
6058     fi
6059
6060     # auto-detect SHAPE support
6061     if [ "$CFG_XSHAPE" != "no" ]; then
6062         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xshape "XShape" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
6063             CFG_XSHAPE=yes
6064         else
6065             if [ "$CFG_XSHAPE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
6066                 echo "XShape support cannot be enabled due to functionality tests!"
6067                 echo " Turn on verbose messaging (-v) to $0 to see the final report."
6068                 echo " If you believe this message is in error you may use the continue"
6069                 echo " switch (-continue) to $0 to continue."
6070                 exit 101
6071             else
6072                 CFG_XSHAPE=no
6073             fi
6074         fi
6075     fi
6076
6077     # auto-detect XVideo support
6078     if [ "$CFG_XVIDEO" != "no" ]; then
6079         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xvideo "XVideo" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
6080             CFG_XVIDEO=yes
6081         else
6082             if [ "$CFG_XVIDEO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
6083                 echo "XVideo support cannot be enabled due to functionality tests!"
6084                 echo " Turn on verbose messaging (-v) to $0 to see the final report."
6085                 echo " If you believe this message is in error you may use the continue"
6086                 echo " switch (-continue) to $0 to continue."
6087                 exit 101
6088             else
6089                 CFG_XVIDEO=no
6090             fi
6091         fi
6092     fi
6093
6094     # auto-detect XSync support
6095     if [ "$CFG_XSYNC" != "no" ]; then
6096         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xsync "XSync" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
6097             CFG_XSYNC=yes
6098         else
6099             if [ "$CFG_XSYNC" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
6100                 echo "XSync support cannot be enabled due to functionality tests!"
6101                 echo " Turn on verbose messaging (-v) to $0 to see the final report."
6102                 echo " If you believe this message is in error you may use the continue"
6103                 echo " switch (-continue) to $0 to continue."
6104                 exit 101
6105             else
6106                 CFG_XSYNC=no
6107             fi
6108         fi
6109     fi
6110
6111     # auto-detect Xinerama support
6112     if [ "$CFG_XINERAMA" != "no" ]; then
6113         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xinerama "Xinerama" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
6114             if [ "$CFG_XINERAMA" != "runtime" ]; then
6115                 CFG_XINERAMA=yes
6116             fi
6117         else
6118             if [ "$CFG_XINERAMA" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
6119                 echo "Xinerama support cannot be enabled due to functionality tests!"
6120                 echo " Turn on verbose messaging (-v) to $0 to see the final report."
6121                 echo " If you believe this message is in error you may use the continue"
6122                 echo " switch (-continue) to $0 to continue."
6123                 exit 101
6124             else
6125                 CFG_XINERAMA=no
6126             fi
6127         fi
6128     fi
6129
6130     # auto-detect Xinput support
6131     if [ "$CFG_XINPUT" != "no" ]; then
6132         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xinput "XInput" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
6133             if [ "$CFG_XINPUT" != "runtime" ]; then
6134                 CFG_XINPUT=yes
6135             fi
6136         else
6137             if [ "$CFG_XINPUT" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
6138                 echo "Tablet and Xinput support cannot be enabled due to functionality tests!"
6139                 echo " Turn on verbose messaging (-v) to $0 to see the final report."
6140                 echo " If you believe this message is in error you may use the continue"
6141                 echo " switch (-continue) to $0 to continue."
6142                 exit 101
6143             else
6144                 CFG_XINPUT=no
6145             fi
6146         fi
6147     fi
6148
6149     # auto-detect XKB support
6150     if [ "$CFG_XKB" != "no" ]; then
6151         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xkb "XKB" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
6152             CFG_XKB=yes
6153         else
6154             if [ "$CFG_XKB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
6155                 echo "XKB support cannot be enabled due to functionality tests!"
6156                 echo " Turn on verbose messaging (-v) to $0 to see the final report."
6157                 echo " If you believe this message is in error you may use the continue"
6158                 echo " switch (-continue) to $0 to continue."
6159                 exit 101
6160             else
6161                 CFG_XKB=no
6162             fi
6163         fi
6164     fi
6165
6166     if [ "$CFG_GLIB" = "yes" -a "$CFG_QGTKSTYLE" != "no" ]; then
6167         if [ -n "$PKG_CONFIG" ]; then
6168             QT_CFLAGS_QGTKSTYLE=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.10 atk 2>/dev/null`
6169             QT_LIBS_QGTKSTYLE=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null`
6170         fi
6171         if [ -n "$QT_CFLAGS_QGTKSTYLE" ] ; then
6172             CFG_QGTKSTYLE=yes
6173             QMakeVar set QT_CFLAGS_QGTKSTYLE "$QT_CFLAGS_QGTKSTYLE"
6174             QMakeVar set QT_LIBS_QGTKSTYLE "$QT_LIBS_QGTKSTYLE"
6175         else
6176             if [ "$CFG_QGTKSTYLE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
6177                 echo "Gtk theme support cannot be enabled due to functionality tests!"
6178                 echo " Turn on verbose messaging (-v) to $0 to see the final report."
6179                 echo " If you believe this message is in error you may use the continue"
6180                 echo " switch (-continue) to $0 to continue."
6181                 exit 101
6182             else
6183                 CFG_QGTKSTYLE=no
6184             fi
6185         fi
6186     elif [ "$CFG_GLIB" = "no" ]; then
6187         CFG_QGTKSTYLE=no
6188     fi
6189 fi # X11
6190
6191
6192 if [ "$PLATFORM_MAC" = "yes" ]; then
6193     if [ "$CFG_PHONON" != "no" ]; then
6194         # Always enable Phonon (unless it was explicitly disabled)
6195         CFG_PHONON=yes
6196     fi
6197
6198     if [ "$CFG_COREWLAN" = "auto" ]; then
6199         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
6200             CFG_COREWLAN=yes
6201         else
6202             CFG_COREWLAN=no
6203         fi
6204     fi
6205 fi
6206
6207
6208 if [ "$PLATFORM_QPA" = "yes" ]; then
6209     # auto-detect OpenGL support (es1 = OpenGL ES 1.x Common, es2 = OpenGL ES 2.x)
6210     if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
6211         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengldesktop "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
6212             CFG_OPENGL=desktop
6213         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
6214             CFG_OPENGL=es2
6215         elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles1 "OpenGL ES 1.x" $L_FLAGS $I_FLAGS $l_FLAGS; then
6216             CFG_OPENGL=es1
6217         else
6218             if [ "$CFG_OPENGL" = "yes" ]; then
6219                 echo "All the OpenGL functionality tests failed!"
6220                 echo " You might need to modify the include and library search paths by editing"
6221                 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
6222                 echo " ${XQMAKESPEC}."
6223                 exit 1
6224             fi
6225             CFG_OPENGL=no
6226         fi
6227     elif [ "$CFG_OPENGL" = "es1" ]; then
6228         # OpenGL ES 1.x
6229         "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles1 "OpenGL ES 1.x" $L_FLAGS $I_FLAGS $l_FLAGS
6230         if [ $? != "0" ]; then
6231             echo "The OpenGL ES 1.x functionality test failed!"
6232             echo " You might need to modify the include and library search paths by editing"
6233             echo " QMAKE_INCDIR_OPENGL_ES1, QMAKE_LIBDIR_OPENGL_ES1 and QMAKE_LIBS_OPENGL_ES1 in"
6234             echo " ${XQMAKESPEC}."
6235             exit 1
6236         fi
6237     elif [ "$CFG_OPENGL" = "es2" ]; then
6238         #OpenGL ES 2.x
6239         if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists glesv2 2>/dev/null; then
6240             QMAKE_INCDIR_OPENGL_ES2=`$PKG_CONFIG --variable=includedir glesv2 2>/dev/null`
6241             QMAKE_LIBDIR_OPENGL_ES2=`$PKG_CONFIG --variable=libdir glesv2 2>/dev/null`
6242             QMAKE_LIBS_OPENGL_ES2=`$PKG_CONFIG --libs glesv2 2>/dev/null`
6243             QMAKE_CFLAGS_OPENGL_ES2=`$PKG_CONFIG --cflags glesv2 2>/dev/null`
6244             QMakeVar set QMAKE_INCDIR_OPENGL_ES2 "$QMAKE_INCDIR_OPENGL_ES2"
6245             QMakeVar set QMAKE_LIBDIR_OPENGL_ES2 "$QMAKE_LIBDIR_OPENGL_ES2"
6246             QMakeVar set QMAKE_LIBS_OPENGL_ES2 "$QMAKE_LIBS_OPENGL_ES2"
6247         fi
6248
6249         "$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
6250         if [ $? != "0" ]; then
6251             echo "The OpenGL ES 2.0 functionality test failed!"
6252             echo " You might need to modify the include and library search paths by editing"
6253             echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
6254             echo " ${XQMAKESPEC}."
6255             exit 1
6256         fi
6257     elif [ "$CFG_OPENGL" = "desktop" ]; then
6258         # Desktop OpenGL support
6259         "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengldesktop "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS
6260         if [ $? != "0" ]; then
6261             echo "The OpenGL functionality test failed!"
6262             echo " You might need to modify the include and library search paths by editing"
6263             echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
6264             echo " ${XQMAKESPEC}."
6265             exit 1
6266         fi
6267     fi
6268
6269     # auto-detect FontConfig support
6270     if [ "$CFG_FONTCONFIG" != "no" ]; then
6271         if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
6272             QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
6273             QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
6274         else
6275             QT_CFLAGS_FONTCONFIG=
6276             QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
6277         fi
6278         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/fontconfig "FontConfig" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then
6279                 QT_CONFIG="$QT_CONFIG fontconfig"
6280                 QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG"
6281                 QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG"
6282                 CFG_LIBFREETYPE=system
6283         fi
6284
6285     fi
6286
6287     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists wayland-client 2>/dev/null; then
6288         QMAKE_CFLAGS_WAYLAND=`$PKG_CONFIG --cflags wayland-client 2>/dev/null`
6289         QMAKE_LIBS_WAYLAND=`$PKG_CONFIG --libs wayland-client 2>/dev/null`
6290         QMAKE_INCDIR_WAYLAND=`$PKG_CONFIG --variable=includedir wayland-client 2>/dev/null`
6291         QMAKE_LIBDIR_WAYLAND=`$PKG_CONFIG --variable=libdir wayland-client 2>/dev/null`
6292
6293         if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
6294             QMAKE_CFLAGS_WAYLAND="$QMAKE_CFLAGS_WAYLAND `$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
6295             QMAKE_LIBS_WAYLAND="$QMAKE_LIBS_WAYLAND `$PKG_CONFIG --libs xkbcommon 2>/dev/null`"
6296         else
6297             QMAKE_DEFINES_WAYLAND=QT_NO_WAYLAND_XKB
6298         fi
6299     fi
6300
6301     # QMake variables set here override those in the mkspec. Therefore we only set the variables here if they are not zero.
6302     if [ -n "$QMAKE_CFLAGS_WAYLAND" ] || [ -n "$QMAKE_LIBS_WAYLAND" ]; then
6303         QMakeVar set QMAKE_CFLAGS_WAYLAND "$QMAKE_CFLAGS_WAYLAND"
6304         QMakeVar set QMAKE_INCDIR_WAYLAND "$QMAKE_INCDIR_WAYLAND"
6305         QMakeVar set QMAKE_LIBS_WAYLAND "$QMAKE_LIBS_WAYLAND"
6306         QMakeVar set QMAKE_LIBDIR_WAYLAND "$QMAKE_LIBDIR_WAYLAND"
6307         QMakeVar set QMAKE_DEFINES_WAYLAND " $QMAKE_DEFINES_WAYLAND"
6308     fi
6309
6310     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qpa/wayland "Wayland" $L_FLAGS $I_FLAGS $l_FLAGS $QMAKE_CFLAGS_WAYLAND $QMAKE_LIBS_WAYLAND; then
6311         QT_CONFIG="$QT_CONFIG wayland"
6312     fi
6313
6314     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
6315         QT_CONFIG="$QT_CONFIG coreservices"
6316     else
6317         QMakeVar add DEFINES QT_NO_CORESERVICES
6318     fi
6319
6320 fi
6321
6322
6323 # QWS
6324 if [ "$PLATFORM_QWS" = "yes" ]; then
6325
6326     # auto-detect OpenGL support (es1 = OpenGL ES 1.x Common, es2 = OpenGL ES 2.x)
6327     if [ "$CFG_GUI" = "no" ]; then
6328         if [ "$CFG_OPENGL" = "auto" ]; then
6329             CFG_OPENGL=no
6330         fi
6331         if [ "$CFG_OPENGL" != "no" ]; then
6332             echo "OpenGL enabled, but GUI disabled."
6333             echo " You might need to either enable the GUI or disable OpenGL"
6334             exit 1
6335         fi
6336     fi
6337     if [ "$CFG_OPENGL" = "yes" ]; then
6338         CFG_EGL=auto
6339         if "$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
6340             CFG_OPENGL=es2
6341     elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles1 "OpenGL ES 1.x" $L_FLAGS $I_FLAGS $l_FLAGS; then
6342             CFG_OPENGL=es1
6343         else
6344             echo "All the OpenGL ES functionality tests failed!"
6345             echo " You might need to modify the include and library search paths by editing"
6346             echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
6347             echo " ${XQMAKESPEC}."
6348             exit 1
6349         fi
6350     elif [ "$CFG_OPENGL" = "es1" ]; then
6351         # OpenGL ES 1.x
6352         "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles1 "OpenGL ES 1.x" $L_FLAGS $I_FLAGS $l_FLAGS
6353         if [ $? != "0" ]; then
6354             echo "The OpenGL ES 1.x functionality test failed!"
6355             echo " You might need to modify the include and library search paths by editing"
6356             echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
6357             echo " ${XQMAKESPEC}."
6358             exit 1
6359         fi
6360         CFG_EGL=yes
6361     elif [ "$CFG_OPENGL" = "es2" ]; then
6362         #OpenGL ES 2.x
6363         "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles2 "OpenGL ES 2.x" $L_FLAGS $I_FLAGS $l_FLAGS
6364         if [ $? != "0" ]; then
6365             echo "The OpenGL ES 2.0 functionality test failed!"
6366             echo " You might need to modify the include and library search paths by editing"
6367             echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
6368             echo " ${XQMAKESPEC}."
6369             exit 1
6370         fi
6371         CFG_EGL=yes
6372     elif [ "$CFG_OPENGL" = "desktop" ]; then
6373         # Desktop OpenGL support
6374         echo "Desktop OpenGL support is not avaliable on Qt for Embedded Linux"
6375         exit 1
6376     fi
6377 fi
6378
6379 if [ "$PLATFORM_QWS" = "yes" ]; then
6380
6381     # screen drivers
6382     for screen in ${CFG_GFX_ON} ${CFG_GFX_PLUGIN}; do
6383        if [ "${screen}" = "ahi" ] && [ "${CFG_CONFIGURE_EXIT_ON_ERROR}" = "yes" ]; then
6384            "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qws/ahi "Ahi" $L_FLAGS $I_FLAGS $l_FLAGS
6385            if [ $? != "0" ]; then
6386                echo "The Ahi screen driver functionality test failed!"
6387                echo " You might need to modify the include and library search paths by editing"
6388                echo " QMAKE_INCDIR and QMAKE_LIBDIR in"
6389                echo " ${XQMAKESPEC}."
6390                exit 1
6391            fi
6392        fi
6393
6394        if [ "${screen}" = "svgalib" ] && [ "${CFG_CONFIGURE_EXIT_ON_ERROR}" = "yes" ]; then
6395            "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qws/svgalib "SVGAlib" $L_FLAGS $I_FLAGS $l_FLAGS
6396            if [ $? != "0" ]; then
6397                echo "The SVGAlib screen driver functionality test failed!"
6398                echo " You might need to modify the include and library search paths by editing"
6399                echo " QMAKE_INCDIR and QMAKE_LIBDIR in"
6400                echo " ${XQMAKESPEC}."
6401                exit 1
6402            fi
6403        fi
6404
6405        if [ "${screen}" = "directfb" ] && [ "${CFG_CONFIGURE_EXIT_ON_ERROR}" = "yes" ]; then
6406            if test -n "$PKG_CONFIG" && "$PKG_CONFIG" --exists directfb 2>/dev/null; then
6407                QT_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
6408                QT_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
6409            elif directfb-config --version >/dev/null 2>&1; then
6410                QT_CFLAGS_DIRECTFB=`directfb-config --cflags 2>/dev/null`
6411                QT_LIBS_DIRECTFB=`directfb-config --libs 2>/dev/null`
6412            fi
6413
6414            # QMake variables set here override those in the mkspec. Therefore we only set the variables here if they are not zero.
6415            if [ -n "$QT_CFLAGS_DIRECTFB" ] || [ -n "$QT_LIBS_DIRECTFB" ]; then
6416                QMakeVar set QT_CFLAGS_DIRECTFB "$QT_CFLAGS_DIRECTFB"
6417                QMakeVar set QT_LIBS_DIRECTFB "$QT_LIBS_DIRECTFB"
6418            fi
6419            if [ "$CFG_QT3SUPPORT" = "yes" ]; then
6420                QMakeVar set QT_DEFINES_DIRECTFB "QT3_SUPPORT"
6421            fi
6422
6423            "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qws/directfb "DirectFB" $L_FLAGS $I_FLAGS $l_FLAGS $QT_CFLAGS_DIRECTFB $QT_LIBS_DIRECTFB
6424            if [ $? != "0" ]; then
6425                echo "The DirectFB screen driver functionality test failed!"
6426                echo " You might need to modify the include and library search paths by editing"
6427                echo " QT_CFLAGS_DIRECTFB and QT_LIBS_DIRECTFB in"
6428                echo " ${XQMAKESPEC}."
6429                exit 1
6430            fi
6431        fi
6432
6433     done
6434
6435     # mouse drivers
6436     for mouse in ${CFG_MOUSE_ON} ${CFG_MOUSE_PLUGIN}; do
6437         if [ "${mouse}" = "tslib" ] && [ "${CFG_CONFIGURE_EXIT_ON_ERROR}" = "yes" ]; then
6438             "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/tslib "tslib" $L_FLAGS $I_FLAGS $l_FLAGS
6439             if [ $? != "0" ]; then
6440                echo "The tslib functionality test failed!"
6441                echo " You might need to modify the include and library search paths by editing"
6442                echo " QMAKE_INCDIR and QMAKE_LIBDIR in"
6443                echo " ${XQMAKESPEC}."
6444                 exit 1
6445             fi
6446         fi
6447     done
6448
6449     CFG_QGTKSTYLE=no
6450
6451     # sound
6452     "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qws/sound "sound" $L_FLAGS $I_FLAGS $l_FLAGS
6453     if [ $? != "0" ]; then
6454         QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SOUND"
6455     fi
6456
6457 fi # QWS
6458
6459 EGL_VARIANT=none
6460 # EGL Support
6461 if [ "$PLATFORM_X11" = "yes" -o "$PLATFORM_QWS" = "yes" ]; then
6462     if [ "$CFG_EGL" != "no" ]; then
6463         # detect EGL support
6464         if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/egl" "EGL (EGL/egl.h)" $L_FLAGS $I_FLAGS $l_FLAGS; then
6465             # EGL specified by QMAKE_*_EGL, included with <EGL/egl.h>
6466             EGL_VARIANT=regular
6467             CFG_EGL=yes
6468         fi
6469
6470         # Prefer this variant for ES1
6471         if [ "$CFG_OPENGL" = "es1" -o "$EGL_VARIANT" = "none" ]; then
6472             if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/egl4gles1" "EGL (GLES/egl.h)" $L_FLAGS $I_FLAGS $l_FLAGS; then
6473                 # EGL specified by QMAKE_*_EGL, included with <GLES/egl.h>
6474                 EGL_VARIANT=gles
6475                 CFG_EGL=yes
6476                 CFG_EGL_GLES_INCLUDES=yes
6477             fi
6478         fi
6479
6480         if [ "$EGL_VARIANT" = "none" ]; then
6481             if [ "$CFG_EGL" = "yes" ]; then
6482                 echo "The EGL functionality test failed!"
6483                 echo " EGL is required for OpenGL ES to manage contexts & surfaces."
6484                 echo " You might need to modify the include and library search paths by editing"
6485                 echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in"
6486                 echo " ${XQMAKESPEC}."
6487                 exit 1
6488             fi
6489             CFG_EGL=no
6490             # If QtOpenGL would be built against OpenGL ES, disable it as we can't to that if EGL is missing
6491             if [ "$CFG_OPENGL" = "es1" -o "$CFG_OPENGL" = "es2" ]; then
6492                 CFG_OPENGL=no
6493             fi
6494         fi
6495     fi
6496 fi
6497
6498 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_PHONON" != "no" ] && CFG_PHONON="yes"
6499
6500 # freetype support
6501 [ "x$CFG_EMBEDDED" != "xno" ] && CFG_LIBFREETYPE="$CFG_QWS_FREETYPE"
6502 [ "x$PLATFORM_MAC" = "xyes" ] && CFG_LIBFREETYPE=no
6503 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_LIBFREETYPE" = "auto" ] && CFG_LIBFREETYPE=no
6504 if [ "$CFG_LIBFREETYPE" = "auto" ]; then
6505     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
6506         CFG_LIBFREETYPE=system
6507     else
6508         CFG_LIBFREETYPE=yes
6509     fi
6510 fi
6511
6512 if [ "$CFG_ENDIAN" = "auto" ]; then
6513     if [ "$XPLATFORM_MINGW" = "yes" ]; then
6514         CFG_ENDIAN="Q_LITTLE_ENDIAN"
6515     elif [ "$XPLATFORM_SYMBIAN_SBSV2" = "yes" ]; then
6516         CFG_ENDIAN="Q_LITTLE_ENDIAN"
6517     elif [ "$PLATFORM_MAC" = "yes" ] && [ "$XPLATFORM_SYMBIAN" = "no" ]; then
6518         true #leave as auto
6519     else
6520         "$unixtests/endian.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
6521         F="$?"
6522         if [ "$F" -eq 0 ]; then
6523             CFG_ENDIAN="Q_LITTLE_ENDIAN"
6524         elif [ "$F" -eq 1 ]; then
6525             CFG_ENDIAN="Q_BIG_ENDIAN"
6526         else
6527             echo
6528             echo "The target system byte order could not be detected!"
6529             echo "Turn on verbose messaging (-v) to see the final report."
6530             echo "You can use the -little-endian or -big-endian switch to"
6531             echo "$0 to continue."
6532             exit 101
6533         fi
6534     fi
6535 fi
6536
6537 if [ "$CFG_HOST_ENDIAN" = "auto" ]; then
6538     if [ "$PLATFORM_MAC" = "yes" ]; then
6539         true #leave as auto
6540     else
6541         "$unixtests/endian.test" "$QMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
6542         F="$?"
6543         if [ "$F" -eq 0 ]; then
6544             CFG_HOST_ENDIAN="Q_LITTLE_ENDIAN"
6545         elif [ "$F" -eq 1 ]; then
6546             CFG_HOST_ENDIAN="Q_BIG_ENDIAN"
6547         else
6548             echo
6549             echo "The host system byte order could not be detected!"
6550             echo "Turn on verbose messaging (-v) to see the final report."
6551             echo "You can use the -host-little-endian or -host-big-endian switch to"
6552             echo "$0 to continue."
6553             exit 101
6554         fi
6555     fi
6556 fi
6557
6558 if [ "$CFG_ARMFPA" != "auto" ]; then
6559     if [ "$CFG_ARMFPA" = "yes" ]; then
6560         if [ "$CFG_ENDIAN" = "Q_LITTLE_ENDIAN" ]; then
6561             CFG_DOUBLEFORMAT="Q_DOUBLE_LITTLE_SWAPPED"
6562         else
6563             CFG_DOUBLEFORMAT="Q_DOUBLE_BIG_SWAPPED"
6564         fi
6565     else
6566         CFG_DOUBLEFORMAT="normal"
6567     fi
6568 fi
6569
6570
6571 if [ "$CFG_DOUBLEFORMAT" = "auto" ]; then
6572     if [ "$PLATFORM_QWS" != "yes" -o "$PLATFORM_QPA" = "yes" ]; then
6573         CFG_DOUBLEFORMAT=normal
6574     else
6575         "$unixtests/doubleformat.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
6576         F="$?"
6577         if [ "$F" -eq 10 ] && [ "$CFG_ENDIAN" = "Q_LITTLE_ENDIAN" ]; then
6578             CFG_DOUBLEFORMAT=normal
6579         elif [ "$F" -eq 11 ] && [ "$CFG_ENDIAN" = "Q_BIG_ENDIAN" ]; then
6580             CFG_DOUBLEFORMAT=normal
6581         elif [ "$F" -eq 10 ]; then
6582             CFG_DOUBLEFORMAT="Q_DOUBLE_LITTLE"
6583         elif [ "$F" -eq 11 ]; then
6584             CFG_DOUBLEFORMAT="Q_DOUBLE_BIG"
6585         elif [ "$F" -eq 12 ]; then
6586             CFG_DOUBLEFORMAT="Q_DOUBLE_LITTLE_SWAPPED"
6587             CFG_ARMFPA="yes"
6588         elif [ "$F" -eq 13 ]; then
6589             CFG_DOUBLEFORMAT="Q_DOUBLE_BIG_SWAPPED"
6590             CFG_ARMFPA="yes"
6591         else
6592             echo
6593             echo "The system floating point format could not be detected."
6594             echo "This may cause data to be generated in a wrong format"
6595             echo "Turn on verbose messaging (-v) to see the final report."
6596             # we do not fail on this since this is a new test, and if it fails,
6597             # the old behavior should be correct in most cases
6598             CFG_DOUBLEFORMAT=normal
6599         fi
6600     fi
6601 fi
6602
6603 HAVE_STL=no
6604 if [ "$XPLATFORM_SYMBIAN" = "yes" ] || "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/stl "STL" $L_FLAGS $I_FLAGS $l_FLAGS; then
6605     HAVE_STL=yes
6606 fi
6607
6608 if [ "$CFG_STL" != "no" ]; then
6609     if [ "$HAVE_STL" = "yes" ]; then
6610         CFG_STL=yes
6611     else
6612         if [ "$CFG_STL" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
6613             echo "STL support cannot be enabled due to functionality tests!"
6614             echo " Turn on verbose messaging (-v) to $0 to see the final report."
6615             echo " If you believe this message is in error you may use the continue"
6616             echo " switch (-continue) to $0 to continue."
6617             exit 101
6618         else
6619             CFG_STL=no
6620         fi
6621     fi
6622 fi
6623
6624 # find if the platform supports IPv6
6625 if [ "$CFG_IPV6" != "no" ]; then
6626     if [ "$XPLATFORM_SYMBIAN" = "yes" ]; then
6627         #IPV6 should always be enabled for Symbian release
6628         CFG_IPV6=yes
6629     elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/ipv6 "IPv6" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
6630         CFG_IPV6=yes
6631     else
6632         if [ "$CFG_IPV6" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
6633             echo "IPv6 support cannot be enabled due to functionality tests!"
6634             echo " Turn on verbose messaging (-v) to $0 to see the final report."
6635             echo " If you believe this message is in error you may use the continue"
6636             echo " switch (-continue) to $0 to continue."
6637             exit 101
6638         else
6639             CFG_IPV6=no
6640         fi
6641     fi
6642 fi
6643
6644 # detect POSIX clock_gettime()
6645 if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
6646     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
6647         CFG_CLOCK_GETTIME=yes
6648     else
6649         CFG_CLOCK_GETTIME=no
6650     fi
6651 fi
6652
6653 # detect POSIX monotonic clocks
6654 if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
6655     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
6656         CFG_CLOCK_MONOTONIC=yes
6657     else
6658         CFG_CLOCK_MONOTONIC=no
6659     fi
6660 elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
6661     CFG_CLOCK_MONOTONIC=no
6662 fi
6663
6664 # detect mremap
6665 if [ "$CFG_MREMAP" = "auto" ]; then
6666     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mremap "mremap" $L_FLAGS $I_FLAGS $l_FLAGS; then
6667         CFG_MREMAP=yes
6668     else
6669         CFG_MREMAP=no
6670     fi
6671 fi
6672
6673 # find if the platform provides getaddrinfo (ipv6 dns lookups)
6674 if [ "$CFG_GETADDRINFO" != "no" ]; then
6675     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/getaddrinfo "getaddrinfo" $L_FLAGS $I_FLAGS $l_FLAGS; then
6676         CFG_GETADDRINFO=yes
6677     else
6678         if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
6679             echo "getaddrinfo support cannot be enabled due to functionality tests!"
6680             echo " Turn on verbose messaging (-v) to $0 to see the final report."
6681             echo " If you believe this message is in error you may use the continue"
6682             echo " switch (-continue) to $0 to continue."
6683             exit 101
6684         else
6685             CFG_GETADDRINFO=no
6686         fi
6687     fi
6688 fi
6689
6690 # find if the platform provides inotify
6691 if [ "$CFG_INOTIFY" != "no" ]; then
6692     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/inotify "inotify" $L_FLAGS $I_FLAGS $l_FLAGS; then
6693         CFG_INOTIFY=yes
6694     else
6695         if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
6696             echo "inotify support cannot be enabled due to functionality tests!"
6697             echo " Turn on verbose messaging (-v) to $0 to see the final report."
6698             echo " If you believe this message is in error you may use the continue"
6699             echo " switch (-continue) to $0 to continue."
6700             exit 101
6701         else
6702             CFG_INOTIFY=no
6703         fi
6704     fi
6705 fi
6706
6707 # find if the platform provides if_nametoindex (ipv6 interface name support)
6708 if [ "$CFG_IPV6IFNAME" != "no" ]; then
6709     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
6710         CFG_IPV6IFNAME=yes
6711     else
6712         if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
6713             echo "IPv6 interface name support cannot be enabled due to functionality tests!"
6714             echo " Turn on verbose messaging (-v) to $0 to see the final report."
6715             echo " If you believe this message is in error you may use the continue"
6716             echo " switch (-continue) to $0 to continue."
6717             exit 101
6718         else
6719             CFG_IPV6IFNAME=no
6720         fi
6721     fi
6722 fi
6723
6724 # find if the platform provides getifaddrs (network interface enumeration)
6725 if [ "$CFG_GETIFADDRS" != "no" ]; then
6726     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/getifaddrs "getifaddrs" $L_FLAGS $I_FLAGS $l_FLAGS; then
6727         CFG_GETIFADDRS=yes
6728     else
6729         if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
6730             echo "getifaddrs support cannot be enabled due to functionality tests!"
6731             echo " Turn on verbose messaging (-v) to $0 to see the final report."
6732             echo " If you believe this message is in error you may use the continue"
6733             echo " switch (-continue) to $0 to continue."
6734             exit 101
6735         else
6736             CFG_GETIFADDRS=no
6737         fi
6738     fi
6739 fi
6740
6741 # detect OpenSSL
6742 if [ "$CFG_OPENSSL" != "no" ] && [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
6743     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
6744         if [ "$CFG_OPENSSL" = "auto" ]; then
6745             CFG_OPENSSL=yes
6746         fi
6747     else
6748         if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
6749             echo "OpenSSL support cannot be enabled due to functionality tests!"
6750             echo " Turn on verbose messaging (-v) to $0 to see the final report."
6751             echo " If you believe this message is in error you may use the continue"
6752             echo " switch (-continue) to $0 to continue."
6753             exit 101
6754         else
6755             CFG_OPENSSL=no
6756         fi
6757     fi
6758 else
6759     if [ "$CFG_OPENSSL" = "auto" ] && [ "$XPLATFORM_SYMBIAN_SBSV2" = "yes" ]; then
6760         #OpenSSl should be enabled for Symbian release
6761         CFG_OPENSSL=yes
6762     fi
6763 fi
6764
6765 # detect OpenVG support
6766 if [ "$CFG_OPENVG" != "no" ] && [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
6767     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
6768         if [ "$CFG_OPENVG" = "auto" ]; then
6769             CFG_OPENVG=yes
6770         fi
6771     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
6772         if [ "$CFG_OPENVG" = "auto" ]; then
6773             CFG_OPENVG=yes
6774         fi
6775         CFG_OPENVG_ON_OPENGL=yes
6776     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
6777         if [ "$CFG_OPENVG" = "auto" ]; then
6778             CFG_OPENVG=yes
6779         fi
6780         CFG_OPENVG_LC_INCLUDES=yes
6781     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
6782         if [ "$CFG_OPENVG" = "auto" ]; then
6783             CFG_OPENVG=yes
6784         fi
6785         CFG_OPENVG_LC_INCLUDES=yes
6786         CFG_OPENVG_ON_OPENGL=yes
6787     else
6788         if [ "$CFG_OPENVG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
6789             echo "$CFG_OPENVG was specified for OpenVG but cannot be enabled due to functionality tests!"
6790             echo " Turn on verbose messaging (-v) to $0 to see the final report."
6791             echo " If you believe this message is in error you may use the continue"
6792             echo " switch (-continue) to $0 to continue."
6793             exit 101
6794         else
6795             CFG_OPENVG=no
6796         fi
6797     fi
6798     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
6799         CFG_OPENVG_SHIVA=yes
6800     fi
6801 fi
6802
6803 # if openvg is disabled and the user specified graphicssystem vg, disable it...
6804 if [ "$CFG_GRAPHICS_SYSTEM" = "openvg" ] && [ "$CFG_OPENVG" = "no" ]; then
6805     echo "OpenVG Graphics System is disabled due to missing OpenVG support..."
6806     CFG_GRAPHICS_SYSTEM=default
6807 fi
6808
6809 if [ -n "$CFG_RUNTIME_SYSTEM" -a "$CFG_GRAPHICS_SYSTEM" != "runtime" ] || [ "$CFG_RUNTIME_SYSTEM" = "runtime" ]; then
6810     echo "Argument to -runtimegraphicssystem is invalid so ignoring..."
6811     CFG_RUNTIME_SYSTEM=
6812 fi
6813
6814 if [ "$CFG_PTMALLOC" != "no" ]; then
6815     # build ptmalloc, copy .a file to lib/
6816     echo "Building ptmalloc. Please wait..."
6817     (cd "$relpath/src/3rdparty/ptmalloc/"; "$MAKE" "clean" ; "$MAKE" "posix"
6818      mkdir "$outpath/lib/" ; cp "libptmalloc3.a" "$outpath/lib/")
6819
6820     QMakeVar add QMAKE_LFLAGS "$outpath/lib/libptmalloc3.a"
6821 fi
6822
6823 if [ "$CFG_ALSA" = "auto" ] && [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then
6824     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/alsa "alsa" $L_FLAGS $I_FLAGS $l_FLAGS; then
6825         CFG_ALSA=yes
6826     else
6827         CFG_ALSA=no
6828     fi
6829 elif [ "$XPLATFORM_SYMBIAN_SBSV2" = "yes" ]; then
6830     # Disabled for Symbian release
6831     CFG_ALSA=no
6832 fi
6833
6834 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ] || [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then 
6835     if [ "$CFG_ARCH" = "arm" ]; then
6836        "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/javascriptcore-jit "javascriptcore-jit" $L_FLAGS $I_FLAGS $l_FLAGS
6837         if [ $? != "0" ]; then
6838            CFG_JAVASCRIPTCORE_JIT=no
6839         fi
6840     else
6841         case "$XPLATFORM" in
6842             symbian-gcce)
6843                 CFG_JAVASCRIPTCORE_JIT=no
6844                 ;;
6845             linux-icc*)
6846                 CFG_JAVASCRIPTCORE_JIT=no
6847                 ;;
6848         esac
6849     fi
6850 fi
6851
6852 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ]; then
6853     QMakeVar set JAVASCRIPTCORE_JIT yes
6854 elif [ "$CFG_JAVASCRIPTCORE_JIT" = "no" ]; then
6855     QMakeVar set JAVASCRIPTCORE_JIT no
6856 fi
6857
6858 if [ "$CFG_AUDIO_BACKEND" = "auto" ]; then
6859     if [ "$XPLATFORM_SYMBIAN" = "yes" ]; then
6860          if "$symbiantests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/symbian/audio "audio" $L_FLAGS $I_FLAGS $l_FLAGS ; then
6861             CFG_AUDIO_BACKEND=yes
6862          fi
6863     else
6864         CFG_AUDIO_BACKEND=yes
6865     fi
6866 fi
6867
6868 if [ "$CFG_LARGEFILE" != "yes" ] && [ "$XPLATFORM_MINGW" = "yes" ]; then
6869     echo "Warning: largefile support cannot be disabled for win32."
6870     CFG_LARGEFILE="yes"
6871 elif [ "$CFG_LARGEFILE" != "no" ] && [ "$XPLATFORM_SYMBIAN" = "yes" ]; then
6872     echo "Warning: largefile support cannot be enabled for symbian."
6873     CFG_LARGEFILE="no"
6874 fi
6875
6876 #-------------------------------------------------------------------------------
6877 # ask for all that hasn't been auto-detected or specified in the arguments
6878 #-------------------------------------------------------------------------------
6879
6880 ### fix this: user input should be validated in a loop
6881 if [ "$PLATFORM_QWS" = "yes" ]; then
6882     PROMPT_FOR_DEPTHS="yes"
6883 else
6884     PROMPT_FOR_DEPTHS="no"
6885 fi
6886 if [ "$CFG_QWS_DEPTHS" = "prompted" -a "$PROMPT_FOR_DEPTHS" = "yes" ]; then
6887     echo
6888     echo "Choose pixel-depths to support:"
6889     echo
6890     echo "   1. 1bpp, black/white"
6891     echo "   4. 4bpp, grayscale"
6892     echo "   8. 8bpp, paletted"
6893     echo "  12. 12bpp, rgb 4-4-4"
6894     echo "  15. 15bpp, rgb 5-5-5"
6895     echo "  16. 16bpp, rgb 5-6-5"
6896     echo "  18. 18bpp, rgb 6-6-6"
6897     echo "  24. 24bpp, rgb 8-8-8"
6898     echo "  32. 32bpp, argb 8-8-8-8 and rgb 8-8-8"
6899     echo " all. All supported depths"
6900     echo
6901     echo "Your choices (default 8,16,32):"
6902     read CFG_QWS_DEPTHS
6903     if [ -z "$CFG_QWS_DEPTHS" ] || [ "$CFG_QWS_DEPTHS" = "yes" ]; then
6904         CFG_QWS_DEPTHS=8,16,32
6905     fi
6906 fi
6907 if [ -n "$CFG_QWS_DEPTHS" -a "$PLATFORM_QWS" = "yes" ]; then
6908     if [ "$CFG_QWS_DEPTHS" = "all" ]; then
6909         CFG_QWS_DEPTHS="1 4 8 12 15 16 18 24 32 generic"
6910     fi
6911     for D in `echo "$CFG_QWS_DEPTHS" | sed -e 's/,/ /g'`; do
6912         case $D in
6913             1|4|8|12|15|16|18|24|32) QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QWS_DEPTH_$D";;
6914             generic) QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QWS_DEPTH_GENERIC";;
6915         esac
6916     done
6917 fi
6918
6919 # enable dwarf2 support on Mac
6920 if [ "$CFG_MAC_DWARF2" = "yes" ]; then
6921     QT_CONFIG="$QT_CONFIG dwarf2"
6922 fi
6923
6924 # Set the default arch if there are no "-arch" arguments on the configure line
6925 # For "-carbon" builds: 32 bit x86/ppc.
6926 # For builds on snow leopard : compiler default (64-bit).
6927 # For builds on leopard : compiler default (32-bit).
6928 if [ "$PLATFORM_MAC" = "yes" ]  && [ "$CFG_MAC_ARCHS" = "" ]; then
6929     source "$mactests/defaultarch.test" "$TEST_COMPILER" "$OPT_VERBOSE" "$mactests"
6930
6931         if [ "$CFG_MAC_CARBON" = "yes" ]; then
6932                 if [ "$QT_MAC_DEFAULT_ARCH" = "x86_64" ]; then
6933                         CFG_MAC_ARCHS=" x86"
6934                 elif [ "$QT_MAC_DEFAULT_ARCH" = "ppc64" ]; then
6935                         CFG_MAC_ARCHS=" ppc"
6936                 else
6937                         CFG_MAC_ARCHS=" $QT_MAC_DEFAULT_ARCH"
6938                 fi
6939         else
6940                 CFG_MAC_ARCHS=" $QT_MAC_DEFAULT_ARCH"
6941     fi
6942
6943     [ "$OPT_VERBOSE" = "yes" ] && echo "Setting Mac architechture to$CFG_MAC_ARCHS."
6944 fi
6945
6946 # enable Cocoa and/or Carbon on Mac
6947 #  -carbon on the command line disables Cocoa, except for 64-bit archs
6948 if [ "$CFG_MAC_CARBON" = "yes" ]; then
6949     CFG_MAC_CARBON="YES"
6950     CFG_MAC_COCOA="NO"
6951
6952 #    check which archs are in use, enable cocoa if we find a 64-bit one
6953     if echo "$CFG_MAC_ARCHS" | grep 64 > /dev/null 2>&1; then
6954         CFG_MAC_COCOA="yes";
6955         CFG_MAC_CARBON="no";
6956         if echo "$CFG_MAC_ARCHS" | grep -w ppc > /dev/null 2>&1; then
6957             CFG_MAC_CARBON="yes";
6958         fi
6959         if echo "$CFG_MAC_ARCHS" | grep -w x86 > /dev/null 2>&1; then
6960             CFG_MAC_CARBON="yes";
6961         fi
6962     fi
6963 fi
6964
6965 # select Carbon on 10.4 Tiger.
6966 if [ "$PLATFORM_MAC" = "yes" ]; then
6967     VERSION=`uname -r | tr '.' ' ' | awk '{print $1}'`
6968     if [ "$VERSION" == 8 ]; then
6969         CFG_MAC_COCOA="no";
6970         CFG_MAC_CARBON="yes";
6971     fi
6972 fi
6973
6974 # select Carbon when using the 10.4u SDK
6975 if [ "$PLATFORM_MAC" = "yes" ]; then
6976     if [ "TEST$CFG_SDK" = "TEST/Developer/SDKs/MacOSX10.4u.sdk/" ]; then
6977         echo "Carbon on";
6978         CFG_MAC_COCOA="no";
6979         CFG_MAC_CARBON="yes";
6980     fi
6981 fi
6982
6983 # but disable Cocoa if cross-building for mingw and symbian
6984 [ "$XPLATFORM_MINGW" = "yes" ] && CFG_MAC_COCOA="no"
6985 [ "$XPLATFORM_SYMBIAN" = "yes" ] && CFG_MAC_COCOA="no"
6986
6987 # set the global Mac deployment target. This is overridden on an arch-by-arch basis
6988 # in some cases, see code further down
6989 case "$PLATFORM,$CFG_MAC_COCOA" in
6990     macx*,yes)
6991         # Cocoa
6992         QMakeVar set QMAKE_MACOSX_DEPLOYMENT_TARGET 10.5
6993         ;;
6994     macx*,no)
6995         # gcc, Carbon
6996         QMakeVar set QMAKE_MACOSX_DEPLOYMENT_TARGET 10.4
6997         ;;
6998 esac
6999
7000 # disable Qt 3 support on VxWorks and Symbian
7001 case "$XPLATFORM" in
7002     unsupported/vxworks*|symbian*)
7003         CFG_QT3SUPPORT="no"
7004     ;;
7005 esac
7006
7007 # enable Qt 3 support functionality
7008 if [ "$CFG_QT3SUPPORT" = "yes" ]; then
7009     QT_CONFIG="$QT_CONFIG gui-qt3support"
7010 fi
7011
7012 # enable Phonon
7013 if [ "$CFG_PHONON" = "yes" ]; then
7014     # No longer needed after modularization
7015     #QT_CONFIG="$QT_CONFIG phonon"
7016     if [ "$CFG_PHONON_BACKEND" = "yes" ]; then
7017         QT_CONFIG="$QT_CONFIG phonon-backend"
7018     fi
7019 else
7020     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PHONON"
7021 fi
7022
7023 # disable accessibility
7024 if [ "$CFG_ACCESSIBILITY" = "no" ]; then
7025     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
7026 else
7027     QT_CONFIG="$QT_CONFIG accessibility"
7028 fi
7029
7030 # egl stuff does not belong in lighthouse, but rather in plugins
7031 if [ "$PLATFORM_QPA" = "yes" ]; then
7032     CFG_EGL="no"
7033 fi
7034
7035 # enable egl
7036 if [ "$CFG_EGL" = "no" ]; then
7037     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL"
7038 else
7039     QT_CONFIG="$QT_CONFIG egl"
7040     if [ "$CFG_EGL_GLES_INCLUDES" = "yes" ]; then
7041         QCONFIG_FLAGS="$QCONFIG_FLAGS QT_GLES_EGL"
7042     fi
7043 fi
7044
7045 # enable openvg
7046 if [ "$CFG_OPENVG" = "no" ]; then
7047     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENVG"
7048 else
7049     QT_CONFIG="$QT_CONFIG openvg"
7050     if [ "$CFG_OPENVG_LC_INCLUDES" = "yes" ]; then
7051         QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LOWER_CASE_VG_INCLUDES"
7052     fi
7053     if [ "$CFG_OPENVG_ON_OPENGL" = "yes" ]; then
7054         QT_CONFIG="$QT_CONFIG openvg_on_opengl"
7055     fi
7056     if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
7057         QT_CONFIG="$QT_CONFIG shivavg"
7058         QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SHIVAVG"
7059     fi
7060 fi
7061
7062 if [ "$CFG_QS60STYLE" = "no" ]; then
7063     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_S60"
7064 else
7065     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_STYLE_S60"
7066 fi
7067
7068 # Just check if OpenGL is not set by command argumets for Symbian.
7069 if [ "$XPLATFORM_SYMBIAN" = "yes" ]; then
7070         if [ "$CFG_OPENGL" = "auto" ]; then
7071             CFG_OPENGL="no"
7072         fi
7073 fi
7074
7075 # enable opengl
7076 if [ "$CFG_OPENGL" = "no" ]; then
7077     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
7078 else
7079     QT_CONFIG="$QT_CONFIG opengl"
7080 fi
7081
7082 if [ "$CFG_OPENGL" = "es1" ] || [ "$CFG_OPENGL" = "es2" ]; then
7083     if [ "$PLATFORM_QWS" = "yes" ]; then
7084         QCONFIG_FLAGS="$QCONFIG_FLAGS Q_BACKINGSTORE_SUBSURFACES"
7085     fi
7086     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
7087 fi
7088
7089 if [ "$CFG_OPENGL" = "es1" ]; then
7090     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_1"
7091     QT_CONFIG="$QT_CONFIG opengles1"
7092 fi
7093
7094 if [ "$CFG_OPENGL" = "es2" ]; then
7095     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
7096     QT_CONFIG="$QT_CONFIG opengles2"
7097 fi
7098
7099 # safe execution environment
7100 if [ "$CFG_SXE" != "no" ]; then
7101     QT_CONFIG="$QT_CONFIG sxe"
7102 fi
7103
7104 # build up the variables for output
7105 if [ "$CFG_DEBUG" = "yes" ]; then
7106     QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
7107     QMAKE_CONFIG="$QMAKE_CONFIG debug"
7108 elif [ "$CFG_DEBUG" = "no" ]; then
7109     QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
7110     QMAKE_CONFIG="$QMAKE_CONFIG release"
7111 fi
7112 if [ "$CFG_SHARED" = "yes" ]; then
7113     QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
7114     QMAKE_CONFIG="$QMAKE_CONFIG shared dll"
7115 elif [ "$CFG_SHARED" = "no" ]; then
7116     QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
7117     QMAKE_CONFIG="$QMAKE_CONFIG static"
7118 fi
7119 if [ "$PLATFORM_QWS" = "yes" ]; then
7120     QMAKE_OUTDIR="${QMAKE_OUTDIR}-emb-$CFG_EMBEDDED"
7121     QMAKE_CONFIG="$QMAKE_CONFIG embedded"
7122     QT_CONFIG="$QT_CONFIG embedded"
7123     rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
7124 fi
7125 if [ "$PLATFORM_QPA" = "yes" ]; then
7126     QMAKE_CONFIG="$QMAKE_CONFIG qpa"
7127     QT_CONFIG="$QT_CONFIG qpa"
7128     QTCONFIG_CONFIG="$QTCONFIG_CONFIG qpa"
7129     rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
7130 fi
7131
7132 if [ "$CFG_EMBEDDED" = "nacl" ]; then
7133     QMAKE_CONFIG="$QMAKE_CONFIG nacl pepper"
7134     QT_CONFIG="$QT_CONFIG nacl pepper"
7135     rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
7136 fi
7137
7138 if [ "$XPLATFORM_MINGW" != "yes" ]; then
7139     # Do not set this here for Windows. Let qmake do it so
7140     # debug and release precompiled headers are kept separate.
7141     QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
7142 fi
7143 QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
7144 QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
7145 QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
7146 QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
7147 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
7148     QMAKE_CONFIG="$QMAKE_CONFIG largefile"
7149 fi
7150 if [ "$CFG_STL" = "no" ]; then
7151     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STL"
7152 else
7153     QMAKE_CONFIG="$QMAKE_CONFIG stl"
7154 fi
7155 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
7156     QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
7157 fi
7158 [ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
7159 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
7160 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
7161 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
7162     QMakeVar add QMAKE_CFLAGS -g
7163     QMakeVar add QMAKE_CXXFLAGS -g
7164     QMAKE_CONFIG="$QMAKE_CONFIG separate_debug_info"
7165 fi
7166 if [ "$CFG_SEPARATE_DEBUG_INFO_NOCOPY" = "yes" ] ; then
7167     QMAKE_CONFIG="$QMAKE_CONFIG separate_debug_info_nocopy"
7168 fi
7169 [ "$CFG_MMX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mmx"
7170 [ "$CFG_3DNOW" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG 3dnow"
7171 [ "$CFG_SSE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse"
7172 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
7173 [ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3"
7174 [ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3"
7175 [ "$CFG_SSE4_1" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_1"
7176 [ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2"
7177 [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx"
7178 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
7179 [ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
7180 [ "$PLATFORM_MAC" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG $CFG_MAC_ARCHS"
7181 if [ "$CFG_IPV6" = "yes" ]; then
7182     QT_CONFIG="$QT_CONFIG ipv6"
7183 fi
7184 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
7185     QT_CONFIG="$QT_CONFIG clock-gettime"
7186 fi
7187 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
7188     QT_CONFIG="$QT_CONFIG clock-monotonic"
7189 fi
7190 if [ "$CFG_MREMAP" = "yes" ]; then
7191     QT_CONFIG="$QT_CONFIG mremap"
7192 fi
7193 if [ "$CFG_GETADDRINFO" = "yes" ]; then
7194     QT_CONFIG="$QT_CONFIG getaddrinfo"
7195 fi
7196 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
7197     QT_CONFIG="$QT_CONFIG ipv6ifname"
7198 fi
7199 if [ "$CFG_GETIFADDRS" = "yes" ]; then
7200     QT_CONFIG="$QT_CONFIG getifaddrs"
7201 fi
7202 if [ "$CFG_INOTIFY" = "yes" ]; then
7203     QT_CONFIG="$QT_CONFIG inotify"
7204 fi
7205 if [ "$CFG_LIBJPEG" = "no" ]; then
7206     CFG_JPEG="no"
7207 elif [ "$CFG_LIBJPEG" = "system" ]; then
7208     QT_CONFIG="$QT_CONFIG system-jpeg"
7209 fi
7210 if [ "$CFG_JPEG" = "no" ]; then
7211     QT_CONFIG="$QT_CONFIG no-jpeg"
7212 elif [ "$CFG_JPEG" = "yes" ]; then
7213     QT_CONFIG="$QT_CONFIG jpeg"
7214 fi
7215 if [ "$CFG_LIBMNG" = "no" ]; then
7216     CFG_MNG="no"
7217 elif [ "$CFG_LIBMNG" = "system" ]; then
7218     QT_CONFIG="$QT_CONFIG system-mng"
7219 fi
7220 if [ "$CFG_MNG" = "no" ]; then
7221     QT_CONFIG="$QT_CONFIG no-mng"
7222 elif [ "$CFG_MNG" = "yes" ]; then
7223     QT_CONFIG="$QT_CONFIG mng"
7224 fi
7225 if [ "$CFG_LIBPNG" = "no" ]; then
7226     CFG_PNG="no"
7227 fi
7228 if [ "$CFG_LIBPNG" = "system" ]; then
7229     QT_CONFIG="$QT_CONFIG system-png"
7230 fi
7231 if [ "$CFG_PNG" = "no" ]; then
7232     QT_CONFIG="$QT_CONFIG no-png"
7233 elif [ "$CFG_PNG" = "yes" ]; then
7234     QT_CONFIG="$QT_CONFIG png"
7235 fi
7236 if [ "$CFG_GIF" = "no" ]; then
7237     QT_CONFIG="$QT_CONFIG no-gif"
7238 elif [ "$CFG_GIF" = "yes" ]; then
7239     QT_CONFIG="$QT_CONFIG gif"
7240 fi
7241 if [ "$CFG_LIBTIFF" = "no" ]; then
7242     CFG_TIFF="no"
7243 elif [ "$CFG_LIBTIFF" = "system" ]; then
7244     QT_CONFIG="$QT_CONFIG system-tiff"
7245 fi
7246 if [ "$CFG_TIFF" = "no" ]; then
7247     QT_CONFIG="$QT_CONFIG no-tiff"
7248 elif [ "$CFG_TIFF" = "yes" ]; then
7249     QT_CONFIG="$QT_CONFIG tiff"
7250 fi
7251 if [ "$CFG_LIBFREETYPE" = "no" ]; then
7252     QT_CONFIG="$QT_CONFIG no-freetype"
7253     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FREETYPE"
7254 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
7255     QT_CONFIG="$QT_CONFIG system-freetype"
7256 else
7257     QT_CONFIG="$QT_CONFIG freetype"
7258 fi
7259 if [ "$CFG_GUI" = "auto" ]; then
7260     CFG_GUI="yes"
7261 fi
7262 if [ "$CFG_GUI" = "no" ]; then
7263     QT_CONFIG="$QT_CONFIG no-gui"
7264 else
7265     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GUI"
7266 fi
7267
7268
7269 if [ "x$PLATFORM_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ] && [ "$XPLATFORM_SYMBIAN" != "yes" ]; then
7270     #On Mac we implicitly link against libz, so we
7271     #never use the 3rdparty stuff.
7272     [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
7273 fi
7274 if [ "$CFG_ZLIB" = "yes" ]; then
7275     QT_CONFIG="$QT_CONFIG zlib"
7276 elif [ "$CFG_ZLIB" = "system" ]; then
7277     QT_CONFIG="$QT_CONFIG system-zlib"
7278 fi
7279
7280 if [ "$CFG_S60" = "yes" ]; then
7281     QT_CONFIG="$QT_CONFIG s60"
7282 fi
7283
7284 if [ "$CFG_SYMBIAN_DEFFILES" = "yes" ]; then
7285     QTCONFIG_CONFIG="$QTCONFIG_CONFIG def_files"
7286 else
7287     QTCONFIG_CONFIG="$QTCONFIG_CONFIG def_files_disabled"
7288 fi
7289
7290 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
7291 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
7292 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
7293 [ "$CFG_ICONV" = "sun" ] && QT_CONFIG="$QT_CONFIG sun-libiconv"
7294 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
7295 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
7296 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
7297 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
7298 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
7299 [ "$CFG_NAS" = "system" ] && QT_CONFIG="$QT_CONFIG nas"
7300 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
7301 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
7302 [ "$CFG_MAC_HARFBUZZ" = "yes" ] && QT_CONFIG="$QT_CONFIG harfbuzz"
7303 [ "$CFG_XCB" = "yes" ] && QT_CONFIG="$QT_CONFIG xcb"
7304
7305 if [ "$PLATFORM_X11" = "yes" ]; then
7306     [ "$CFG_SM" = "yes" ] && QT_CONFIG="$QT_CONFIG x11sm"
7307
7308     # for some reason, the following libraries are not always built shared,
7309     # so *every* program/lib (including Qt) has to link against them
7310     if [ "$CFG_XSHAPE" = "yes" ]; then
7311         QT_CONFIG="$QT_CONFIG xshape"
7312     fi
7313     if [ "$CFG_XVIDEO" = "yes" ]; then
7314         QT_CONFIG="$QT_CONFIG xvideo"
7315     fi
7316     if [ "$CFG_XSYNC" = "yes" ]; then
7317         QT_CONFIG="$QT_CONFIG xsync"
7318     fi
7319     if [ "$CFG_XINERAMA" = "yes" ]; then
7320         QT_CONFIG="$QT_CONFIG xinerama"
7321         QMakeVar set QMAKE_LIBS_X11 '-lXinerama $$QMAKE_LIBS_X11'
7322     fi
7323     if [ "$CFG_XCURSOR" = "yes" ]; then
7324         QT_CONFIG="$QT_CONFIG xcursor"
7325         QMakeVar set QMAKE_LIBS_X11 '-lXcursor $$QMAKE_LIBS_X11'
7326     fi
7327     if [ "$CFG_XFIXES" = "yes" ]; then
7328         QT_CONFIG="$QT_CONFIG xfixes"
7329         QMakeVar set QMAKE_LIBS_X11 '-lXfixes $$QMAKE_LIBS_X11'
7330     fi
7331     if [ "$CFG_XRANDR" = "yes" ]; then
7332         QT_CONFIG="$QT_CONFIG xrandr"
7333         if [ "$CFG_XRENDER" != "yes" ]; then
7334             # libXrandr uses 1 function from libXrender, so we always have to have it :/
7335             QMakeVar set QMAKE_LIBS_X11 '-lXrandr -lXrender $$QMAKE_LIBS_X11'
7336         else
7337             QMakeVar set QMAKE_LIBS_X11 '-lXrandr $$QMAKE_LIBS_X11'
7338         fi
7339     fi
7340     if [ "$CFG_XRENDER" = "yes" ]; then
7341         QT_CONFIG="$QT_CONFIG xrender"
7342         QMakeVar set QMAKE_LIBS_X11 '-lXrender $$QMAKE_LIBS_X11'
7343     fi
7344     if [ "$CFG_MITSHM" = "yes" ]; then
7345         QT_CONFIG="$QT_CONFIG mitshm"
7346     fi
7347     if [ "$CFG_FONTCONFIG" = "yes" ]; then
7348         QT_CONFIG="$QT_CONFIG fontconfig"
7349     fi
7350     if [ "$CFG_XINPUT" = "yes" ]; then
7351         QMakeVar set QMAKE_LIBS_X11 '-lXi $$QMAKE_LIBS_X11'
7352     fi
7353     if [ "$CFG_XINPUT" = "yes" ]; then
7354         QT_CONFIG="$QT_CONFIG xinput tablet"
7355     fi
7356     if [ "$CFG_XKB" = "yes" ]; then
7357         QT_CONFIG="$QT_CONFIG xkb"
7358     fi
7359 fi
7360
7361 [ '!' -z "$D_FLAGS" ] && QMakeVar add DEFINES "$D_FLAGS"
7362 [ '!' -z "$L_FLAGS" ] && QMakeVar add QMAKE_LIBDIR_FLAGS "$L_FLAGS"
7363 [ '!' -z "$l_FLAGS" ] && QMakeVar add LIBS "$l_FLAGS"
7364
7365 if [ "$PLATFORM_MAC" = "yes" ]; then
7366     if [ "$CFG_RPATH" = "yes" ]; then
7367        QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
7368     fi
7369 elif [ -z "`getQMakeConf \"$XQMAKESPEC\" | $AWK '/QMAKE_(LFLAGS_)?RPATH/ {print $3;}'`" ]; then
7370     if [ -n "$RPATH_FLAGS" ]; then
7371         echo
7372         echo "ERROR: -R cannot be used on this platform as \$QMAKE_LFLAGS_RPATH is"
7373         echo "       undefined."
7374         echo
7375         exit 1
7376     elif [ "$CFG_RPATH" = "yes" ]; then
7377         RPATH_MESSAGE="        NOTE: This platform does not support runtime library paths, using -no-rpath."
7378         CFG_RPATH=no
7379     fi
7380 else
7381     if [ "$CFG_RPATH" = "yes" ]; then
7382         # set the default rpath to the library installation directory
7383         RPATH_FLAGS="\"$QT_INSTALL_LIBS\" $RPATH_FLAGS"
7384     fi
7385     if [ -n "$RPATH_FLAGS" ]; then
7386         # add the user defined rpaths
7387         QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
7388     fi
7389 fi
7390
7391 if [ '!' -z "$I_FLAGS" ]; then
7392     # add the user define include paths
7393     QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
7394     QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
7395 fi
7396
7397 # turn off exceptions for the compilers that support it
7398 if [ "$PLATFORM_QWS" = "yes" -o "$PLATFORM_QPA" = "yes" ]; then
7399     COMPILER=`echo $XPLATFORM | cut -f 3- -d-`
7400 elif [ "$XPLATFORM" != "$PLATFORM" ]; then
7401     COMPILER=`echo $XPLATFORM | cut -f 2- -d-`
7402 else
7403     COMPILER=`echo $PLATFORM | cut -f 2- -d-`
7404 fi
7405 if [ "$CFG_EXCEPTIONS" = "unspecified" -a "$PLATFORM_QWS" = "yes" ]; then
7406     CFG_EXCEPTIONS=no
7407 fi
7408
7409 if [ "$CFG_EXCEPTIONS" != "no" ]; then
7410     QTCONFIG_CONFIG="$QTCONFIG_CONFIG exceptions"
7411 fi
7412
7413 if [ "$XPLATFORM_MINGW" = "yes" ]; then
7414     # mkspecs/features/win32/default_pre.prf sets "no-rtti".
7415     # Follow default behavior of configure.exe by overriding with "rtti".
7416     QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti"
7417 fi
7418
7419 if [ "$CFG_ALSA" = "yes" ]; then
7420     QT_CONFIG="$QT_CONFIG alsa"
7421 fi
7422
7423 if [ "$CFG_PULSEAUDIO" = "yes" ]; then
7424     QT_CONFIG="$QT_CONFIG pulseaudio"
7425 fi
7426
7427 if [ "$CFG_COREWLAN" = "yes" ]; then
7428     QT_CONFIG="$QT_CONFIG corewlan"
7429 fi
7430
7431 if [ "$CFG_ICD" = "yes" ]; then
7432     QT_CONFIG="$QT_CONFIG icd"
7433 fi
7434
7435 if [ "$CFG_ICU" = "yes" ]; then
7436     QT_CONFIG="$QT_CONFIG icu"
7437 fi
7438
7439 #
7440 # Some Qt modules are too advanced in C++ for some old compilers
7441 # Detect here the platforms where they are known to work.
7442 #
7443 # See Qt documentation for more information on which features are
7444 # supported and on which compilers.
7445 #
7446 canBuildQtXmlPatterns="yes"
7447 canBuildWebKit="$HAVE_STL"
7448 canBuildQtConcurrent="yes"
7449
7450 # WebKit requires stdint.h
7451 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/stdint "Stdint" $L_FLAGS $I_FLAGS $l_FLAGS
7452 if [ $? != "0" ]; then
7453     canBuildWebKit="no"
7454 fi
7455
7456 case "$XPLATFORM" in
7457     hpux-g++*)
7458         # PA-RISC's assembly is too limited
7459         # gcc 3.4 on that platform can't build QtXmlPatterns
7460         # the assembly it generates cannot be compiled
7461
7462         # Check gcc's version
7463         case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
7464             4*)
7465                 ;;
7466             3.4*)
7467                 canBuildQtXmlPatterns="no"
7468                 ;;
7469             *)
7470                 canBuildWebKit="no"
7471                 canBuildQtXmlPatterns="no"
7472                 ;;
7473         esac
7474         ;;
7475     unsupported/vxworks-*-g++*)
7476         canBuildWebKit="no"
7477         ;;
7478     unsupported/vxworks-*-dcc*)
7479         canBuildWebKit="no"
7480         canBuildQtXmlPatterns="no"
7481         ;;
7482     *-g++*)
7483         # Check gcc's version
7484         case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
7485             4*|3.4*)
7486                 ;;
7487             3.3*)
7488                 canBuildWebKit="no"
7489                 ;;
7490             *)
7491                 canBuildWebKit="no"
7492                 canBuildQtXmlPatterns="no"
7493                 ;;
7494         esac
7495         ;;
7496     solaris-cc*)
7497         # Check the compiler version
7498         case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
7499             5.[012345678])
7500                 canBuildWebKit="no"
7501                 canBuildQtXmlPatterns="no"
7502                 canBuildQtConcurrent="no"
7503                 ;;
7504             5.*)
7505                 canBuildWebKit="no"
7506                 canBuildQtConcurrent="no"
7507                 ;;
7508         esac
7509         ;;
7510     hpux-acc*)
7511         canBuildWebKit="no"
7512         canBuildQtXmlPatterns="no"
7513         canBuildQtConcurrent="no"
7514         ;;
7515     hpuxi-acc*)
7516         canBuildWebKit="no"
7517         ;;
7518     aix-xlc*)
7519         # Get the xlC version
7520         cat > xlcver.c <<EOF
7521 #include <stdio.h>
7522 int main()
7523 {
7524     printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
7525     return 0;
7526 }
7527 EOF
7528         xlcver=
7529         if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
7530             xlcver=`./xlcver 2>/dev/null`
7531             rm -f ./xlcver
7532         fi
7533         if [ "$OPT_VERBOSE" = "yes" ]; then
7534             if [ -n "$xlcver" ]; then
7535                 echo Found IBM xlC version: $xlcver.
7536             else
7537                 echo Could not determine IBM xlC version, assuming oldest supported.
7538             fi
7539         fi
7540
7541         case "$xlcver" in
7542             [123456].*)
7543                 canBuildWebKit="no"
7544                 canBuildQtXmlPatterns="no"
7545                 canBuildQtConcurrent="no"
7546                 ;;
7547             *)
7548                 canBuildWebKit="no"
7549                 canBuildQtConcurrent="no"
7550                 ;;
7551         esac
7552         ;;
7553     irix-cc*)
7554         canBuildWebKit="no"
7555         canBuildQtConcurrent="no"
7556         ;;
7557     symbian-gcce)
7558         ;;
7559     symbian-armcc)
7560         ;;
7561 esac
7562
7563 if [ "$CFG_GUI" = "no" ]; then
7564     # WebKit requires QtGui
7565     canBuildWebKit="no"
7566 fi
7567
7568 if [ "$CFG_SHARED" = "no" ]; then
7569     echo
7570     echo "WARNING: Using static linking will disable the WebKit module."
7571     echo
7572     canBuildWebKit="no"
7573 fi
7574
7575 CFG_CONCURRENT="yes"
7576 if [ "$canBuildQtConcurrent" = "no" ]; then
7577     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
7578     CFG_CONCURRENT="no"
7579 fi
7580
7581 if [ "$CFG_XMLPATTERNS" = "yes" -a "$CFG_EXCEPTIONS" = "no" ]; then
7582     echo "QtXmlPatterns was requested, but it can't be built due to exceptions being disabled."
7583     exit 1
7584 fi
7585 if [ "$CFG_XMLPATTERNS" = "auto" -a "$CFG_EXCEPTIONS" != "no" ]; then
7586     CFG_XMLPATTERNS="$canBuildQtXmlPatterns"
7587 elif [ "$CFG_EXCEPTIONS" = "no" ]; then
7588     CFG_XMLPATTERNS="no"
7589 fi
7590 # No longer needed after modularization
7591 #if [ "$CFG_XMLPATTERNS" = "yes" ]; then
7592 #    QT_CONFIG="$QT_CONFIG xmlpatterns"
7593 #else
7594 #    QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XMLPATTERNS"
7595 #fi
7596
7597 # No longer needed after modularization
7598 #if [ "$CFG_MULTIMEDIA" = "no" ]; then
7599 #    QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MULTIMEDIA"
7600 #else
7601 #    QT_CONFIG="$QT_CONFIG multimedia"
7602 #fi
7603
7604 if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
7605     QT_CONFIG="$QT_CONFIG audio-backend"
7606 fi
7607
7608 if [ "$CFG_SVG" = "auto" ]; then
7609     CFG_SVG=$CFG_GUI
7610 fi
7611
7612 if [ "$CFG_SVG" = "yes" ] && [ "$CFG_GUI" = "no" ]; then
7613     echo "QtSvg requested, but it can't be built without QtGui"
7614     exit 1
7615 fi
7616
7617 if [ "$CFG_SVG" = "yes" ]; then
7618     QT_CONFIG="$QT_CONFIG svg"
7619 else
7620     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SVG"
7621 fi
7622
7623 if [ "$CFG_WEBKIT" != "no" ]; then
7624     CFG_WEBKIT="$canBuildWebKit"
7625 fi
7626
7627 if [ "$CFG_WEBKIT" != "no" ]; then
7628     # No longer needed after modularization
7629     #QT_CONFIG="$QT_CONFIG webkit"
7630     # The reason we set CFG_WEBKIT, is such that the printed overview of what will be enabled, shows correctly.
7631     if [ "$CFG_WEBKIT" = "debug" ]; then
7632         QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug"
7633     fi
7634 fi
7635
7636 if [ "$CFG_SCRIPT" = "auto" ]; then
7637     CFG_SCRIPT="yes"
7638 fi
7639
7640 # No longer needed after modularization
7641 #if [ "$CFG_SCRIPT" = "yes" ]; then
7642 #    QT_CONFIG="$QT_CONFIG script"
7643 #else
7644 #    QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SCRIPT"
7645 #fi
7646
7647 if [ "$CFG_SCRIPTTOOLS" = "yes" -a "$CFG_SCRIPT" = "no" ]; then
7648     echo "QtScriptTools was requested, but it can't be built due to QtScript being disabled."
7649     exit 1
7650 fi
7651 if [ "$CFG_SCRIPTTOOLS" = "auto" -a "$CFG_SCRIPT" != "no" ]; then
7652     case "$XPLATFORM" in
7653     symbian*)
7654         CFG_SCRIPTTOOLS="no"
7655         ;;
7656     *)
7657         CFG_SCRIPTTOOLS="yes"
7658         ;;
7659     esac
7660 elif [ "$CFG_SCRIPT" = "no" ]; then
7661     CFG_SCRIPTTOOLS="no"
7662 fi
7663
7664 # No longer needed after modularization
7665 #if [ "$CFG_SCRIPTTOOLS" = "yes" ]; then
7666 #    QT_CONFIG="$QT_CONFIG scripttools"
7667 #else
7668 #    QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SCRIPTTOOLS"
7669 #fi
7670
7671
7672 if [ "$CFG_DECLARATIVE" = "yes" ]; then
7673     if [ "$CFG_SCRIPT" = "no" -o "$CFG_GUI" = "no" ]; then
7674         echo "Error: QtDeclarative was requested, but it can't be built due to QtScript or QtGui being disabled."
7675         exit 1
7676     fi
7677 fi
7678 if [ "$CFG_DECLARATIVE" = "auto" ]; then
7679     if [ "$CFG_SCRIPT" = "no" -o "$CFG_GUI" = "no" ]; then
7680             CFG_DECLARATIVE=no
7681     else
7682             CFG_DECLARATIVE=yes
7683     fi
7684 fi
7685
7686 if [ "$CFG_DECLARATIVE" = "yes" ]; then
7687     # No longer needed after modularization
7688     #QT_CONFIG="$QT_CONFIG declarative"
7689     if [ "$CFG_DECLARATIVE_DEBUG" = "no" ]; then
7690         QCONFIG_FLAGS="$QCONFIG_FLAGS QDECLARATIVE_NO_DEBUG_PROTOCOL"
7691     fi
7692 else
7693     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DECLARATIVE"
7694 fi
7695
7696 if [ "$CFG_LOCATION" = "auto" ]; then
7697     CFG_LOCATION="$CFG_GUI"
7698 fi
7699
7700 if [ "$CFG_LOCATION" = "yes" ] && [ "$CFG_GUI" = "no" ]; then
7701     echo "QtLocation requested, but it can't be built without QtGui"
7702     exit 1
7703 fi
7704
7705 #Disable QtLocation until ready
7706 CFG_LOCATION="no"
7707
7708 if [ "$CFG_LOCATION" = "no" ]; then
7709     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_LOCATION"
7710 fi
7711
7712 if [ "$CFG_EXCEPTIONS" = "no" ]; then
7713     case "$COMPILER" in
7714     g++*)
7715         QMakeVar add QMAKE_CFLAGS -fno-exceptions
7716         QMakeVar add QMAKE_CXXFLAGS -fno-exceptions
7717         QMakeVar add QMAKE_LFLAGS -fno-exceptions
7718         ;;
7719     cc*)
7720         case "$PLATFORM" in
7721         irix-cc*)
7722             QMakeVar add QMAKE_CFLAGS -LANG:exceptions=off
7723             QMakeVar add QMAKE_CXXFLAGS -LANG:exceptions=off
7724             QMakeVar add QMAKE_LFLAGS -LANG:exceptions=off
7725             ;;
7726         *) ;;
7727         esac
7728         ;;
7729     *) ;;
7730     esac
7731     QMAKE_CONFIG="$QMAKE_CONFIG exceptions_off"
7732 fi
7733
7734 # On Mac, set the minimum deployment target for the different architechtures 
7735 # using the Xarch compiler option when supported (10.5 and up).  On 10.4 the
7736 # deployment version is set to 10.4 globally using the QMAKE_MACOSX_DEPLOYMENT_TARGET
7737 # env. variable. 
7738 if [ "$PLATFORM_MAC" = "yes" ] && [ "$CFG_MAC_XARCH" != "no" ] ; then
7739     if echo "$CFG_MAC_ARCHS" | grep '\<x86\>' > /dev/null 2>&1; then
7740         QMakeVar add QMAKE_CFLAGS "-Xarch_i386 -mmacosx-version-min=10.4"
7741         QMakeVar add QMAKE_CXXFLAGS "-Xarch_i386 -mmacosx-version-min=10.4"
7742         QMakeVar add QMAKE_LFLAGS "-Xarch_i386 -mmacosx-version-min=10.4"
7743         QMakeVar add QMAKE_OBJECTIVE_CFLAGS_X86 "-arch i386 -Xarch_i386 -mmacosx-version-min=10.4"
7744     fi
7745     if echo "$CFG_MAC_ARCHS" | grep '\<ppc\>' > /dev/null 2>&1; then
7746         QMakeVar add QMAKE_CFLAGS "-Xarch_ppc -mmacosx-version-min=10.4"
7747         QMakeVar add QMAKE_CXXFLAGS "-Xarch_ppc -mmacosx-version-min=10.4"
7748         QMakeVar add QMAKE_LFLAGS "-Xarch_ppc -mmacosx-version-min=10.4"
7749         QMakeVar add QMAKE_OBJECTIVE_CFLAGS_PPC "-arch ppc -Xarch_ppc -mmacosx-version-min=10.4"
7750     fi
7751     if echo "$CFG_MAC_ARCHS" | grep '\<x86_64\>' > /dev/null 2>&1; then
7752         QMakeVar add QMAKE_CFLAGS "-Xarch_x86_64 -mmacosx-version-min=10.5"
7753         QMakeVar add QMAKE_CXXFLAGS "-Xarch_x86_64 -mmacosx-version-min=10.5"
7754         QMakeVar add QMAKE_LFLAGS "-Xarch_x86_64 -mmacosx-version-min=10.5"
7755         QMakeVar add QMAKE_OBJECTIVE_CFLAGS_X86_64 "-arch x86_64 -Xarch_x86_64 -mmacosx-version-min=10.5"
7756     fi
7757     if echo "$CFG_MAC_ARCHS" | grep '\<ppc64\>' > /dev/null 2>&1; then
7758         QMakeVar add QMAKE_CFLAGS "-Xarch_ppc64 -mmacosx-version-min=10.5"
7759         QMakeVar add QMAKE_CXXFLAGS "-Xarch_ppc64 -mmacosx-version-min=10.5"
7760         QMakeVar add QMAKE_LFLAGS "-Xarch_ppc64 -mmacosx-version-min=10.5"
7761         QMakeVar add QMAKE_OBJECTIVE_CFLAGS_PPC_64 "-arch ppc64 -Xarch_ppc64 -mmacosx-version-min=10.5"
7762     fi
7763 fi
7764
7765 #-------------------------------------------------------------------------------
7766 # generate QT_BUILD_KEY
7767 #-------------------------------------------------------------------------------
7768
7769 # some compilers generate binary incompatible code between different versions,
7770 # so we need to generate a build key that is different between these compilers
7771 COMPAT_COMPILER=
7772 case "$COMPILER" in
7773 g++*)
7774     # GNU C++
7775     COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
7776
7777     case "$COMPILER_VERSION" in
7778     *.*.*)
7779         QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
7780         QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
7781         QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
7782         ;;
7783     *.*)
7784         QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
7785         QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
7786         QT_GCC_PATCH_VERSION=0
7787         ;;
7788     esac
7789
7790     case "$COMPILER_VERSION" in
7791     2.95.*)
7792         COMPILER_VERSION="2.95.*"
7793         ;;
7794     3.*)
7795         COMPILER_VERSION="3.*"
7796         ;;
7797     4.*)
7798         COMPILER_VERSION="4"
7799         ;;
7800     *)
7801         ;;
7802     esac
7803     [ '!' -z "$COMPILER_VERSION" ] && COMPILER="g++-${COMPILER_VERSION}"
7804     ;;
7805 icc*)
7806     # The Intel CC compiler on Unix systems matches the ABI of the g++
7807     # that is found on PATH
7808     COMPAT_COMPILER="icc"
7809     COMPILER="g++-4"
7810     case "`g++ -dumpversion` 2>/dev/null" in
7811     2.95.*)
7812         COMPILER="g++-2.95.*"
7813         ;;
7814     3.*)
7815 a        COMPILER="g++-3.*"
7816         ;;
7817     *)
7818         ;;
7819     esac
7820     ;;
7821 *)
7822     #
7823     ;;
7824 esac
7825
7826 # QT_CONFIG can contain the following:
7827 #
7828 # Things that affect the Qt API/ABI:
7829 #
7830 #   Options:
7831 #     minimal-config small-config medium-config large-config full-config
7832 #
7833 #   Different edition modules:
7834 #     gui network canvas table xml opengl sql
7835 #
7836 # Things that do not affect the Qt API/ABI:
7837 #     stl
7838 #     system-jpeg no-jpeg jpeg
7839 #     system-mng no-mng mng
7840 #     system-png no-png png
7841 #     system-zlib no-zlib zlib
7842 #     system-libtiff no-libtiff
7843 #     no-gif gif
7844 #     debug release
7845 #     dll staticlib
7846 #
7847 #     nocrosscompiler
7848 #     GNUmake
7849 #     largefile
7850 #     nis
7851 #     nas
7852 #     tablet
7853 #     ipv6
7854 #
7855 #     X11     : x11sm xinerama xcursor xfixes xrandr xrender mitshm fontconfig xkb
7856 #     Embedded: embedded qpa freetype
7857 #
7858 ALL_OPTIONS=
7859 BUILD_CONFIG=
7860 BUILD_OPTIONS=
7861
7862 # determine the build options
7863 for config_option in $QMAKE_CONFIG $QT_CONFIG; do
7864     SKIP="yes"
7865     case "$config_option" in
7866     *-config)
7867         # take the last *-config setting.  this is the highest config being used,
7868         # and is the one that we will use for tagging plugins
7869         BUILD_CONFIG="$config_option"
7870         ;;
7871
7872     *) # skip all other options since they don't affect the Qt API/ABI.
7873         ;;
7874     esac
7875
7876     if [ "$SKIP" = "no" ]; then
7877         BUILD_OPTIONS="$BUILD_OPTIONS $config_option"
7878     fi
7879 done
7880
7881 # put the options that we are missing into .options
7882 rm -f .options
7883 for opt in `echo $ALL_OPTIONS`; do
7884     SKIP="no"
7885     if echo $BUILD_OPTIONS | grep $opt >/dev/null 2>&1; then
7886         SKIP="yes"
7887     fi
7888     if [ "$SKIP" = "no" ]; then
7889         echo "$opt" >> .options
7890     fi
7891 done
7892
7893 # reconstruct BUILD_OPTIONS with a sorted negative feature list
7894 # (ie. only things that are missing are will be put into the build key)
7895 BUILD_OPTIONS=
7896 if [ -f .options ]; then
7897     for opt in `sort -f .options | uniq`; do
7898         BUILD_OPTIONS="$BUILD_OPTIONS no-$opt"
7899     done
7900 fi
7901 rm -f .options
7902
7903 # QT_NO* defines affect the Qt API (and binary compatibility).  they need
7904 # to be included in the build key
7905 for build_option in $D_FLAGS; do
7906     build_option=`echo $build_option | cut -d \" -f 2 -`
7907     case "$build_option" in
7908     QT_NO*)
7909         echo "$build_option" >> .options
7910         ;;
7911     *)
7912         # skip all other compiler defines
7913         ;;
7914     esac
7915 done
7916
7917 # sort the compile time defines (helps ensure that changes in this configure
7918 # script don't affect the QT_BUILD_KEY generation)
7919 if [ -f .options ]; then
7920     for opt in `sort -f .options | uniq`; do
7921         BUILD_OPTIONS="$BUILD_OPTIONS $opt"
7922     done
7923 fi
7924 rm -f .options
7925
7926 BUILD_OPTIONS="$BUILD_CONFIG $BUILD_OPTIONS"
7927 # extract the operating system from the XPLATFORM
7928 TARGET_OPERATING_SYSTEM=`echo $XPLATFORM | cut -f 2- -d/ | cut -f -1 -d-`
7929 if [ "$XPLATFORM_SYMBIAN" = "yes" ]; then
7930     QT_BUILD_KEY_SYSTEM_PART="Symbian"
7931 else
7932     QT_BUILD_KEY_SYSTEM_PART="$CFG_ARCH $TARGET_OPERATING_SYSTEM $COMPILER"
7933 fi
7934
7935 # when cross-compiling, don't include build-host information (build key is target specific)
7936 QT_BUILD_KEY="$CFG_USER_BUILD_KEY $QT_BUILD_KEY_SYSTEM_PART $BUILD_OPTIONS"
7937 if [ -n "$QT_NAMESPACE" ]; then
7938     QT_BUILD_KEY="$QT_BUILD_KEY $QT_NAMESPACE"
7939 fi
7940 MAC_NEED_TWO_BUILD_KEYS="no"
7941 if [ "$PLATFORM_MAC" = "yes" -a "$CFG_MAC_COCOA" = "yes" ]; then
7942     QT_BUILD_KEY_CARBON=$QT_BUILD_KEY
7943     TARGET_OPERATING_SYSTEM="$TARGET_OPERATING_SYSTEM-cocoa"
7944     QT_BUILD_KEY_COCOA="$CFG_USER_BUILD_KEY $CFG_ARCH $TARGET_OPERATING_SYSTEM $COMPILER $BUILD_OPTIONS"
7945     if [ "$CFG_MAC_CARBON" = "no" ]; then
7946         QT_BUILD_KEY=$QT_BUILD_KEY_COCOA
7947     else
7948         MAC_NEED_TWO_BUILD_KEYS="yes"
7949     fi
7950 fi
7951 # don't break loading plugins build with an older version of Qt
7952 QT_BUILD_KEY_COMPAT=
7953 if [ "$QT_CROSS_COMPILE" = "no" ]; then
7954     # previous versions of Qt used a build key built from the uname
7955     QT_BUILD_KEY_COMPAT="$CFG_USER_BUILD_KEY $UNAME_MACHINE $UNAME_SYSTEM $COMPILER $BUILD_OPTIONS"
7956     if [ -n "$QT_NAMESPACE" ]; then
7957         QT_BUILD_KEY_COMPAT="$QT_BUILD_KEY_COMPAT $QT_NAMESPACE"
7958     fi
7959 fi
7960
7961 # is this compiler compatible with some other "standard" build key
7962 QT_BUILD_KEY_COMPAT_COMPILER=
7963 if [ ! -z "$COMPAT_COMPILER" ]; then
7964     QT_BUILD_KEY_COMPAT_COMPILER="$CFG_USER_BUILD_KEY $CFG_ARCH $TARGET_OPERATING_SYSTEM $COMPAT_COMPILER $BUILD_OPTIONS"
7965     if [ -n "$QT_NAMESPACE" ]; then
7966         QT_BUILD_KEY_COMPAT_COMPILER="$QT_BUILD_KEY_COMPAT_COMPILER $QT_NAMESPACE"
7967     fi
7968 fi
7969
7970 # is this arch compatible with some other "standard" build key
7971 QT_BUILD_KEY_COMPAT_ARCH=
7972 if [ ! -z "$COMPAT_ARCH" ]; then
7973     QT_BUILD_KEY_COMPAT_ARCH="$CFG_USER_BUILD_KEY $COMPAT_ARCH $TARGET_OPERATING_SYSTEM $COMPILER $BUILD_OPTIONS"
7974     if [ -n "$QT_NAMESPACE" ]; then
7975         QT_BUILD_KEY_COMPAT_COMPILER="$QT_BUILD_KEY_COMPAT_ARCH $QT_NAMESPACE"
7976     fi
7977 fi
7978
7979 # strip out leading/trailing/extra whitespace
7980 QT_BUILD_KEY=`echo $QT_BUILD_KEY | sed -e "s,  *, ,g" -e "s,^  *,," -e "s,  *$,,"`
7981 QT_BUILD_KEY_COMPAT=`echo $QT_BUILD_KEY_COMPAT | sed -e "s,  *, ,g" -e "s,^  *,," -e "s,  *$,,"`
7982 QT_BUILD_KEY_COMPAT_COMPILER=`echo $QT_BUILD_KEY_COMPAT_COMPILER | sed -e "s,  *, ,g" -e "s,^  *,," -e "s,  *$,,"`
7983 QT_BUILD_KEY_COMPAT_ARCH=`echo $QT_BUILD_KEY_COMPAT_ARCH | sed -e "s,  *, ,g" -e "s,^  *,," -e "s,  *$,,"`
7984
7985 #-------------------------------------------------------------------------------
7986 # part of configuration information goes into qconfig.h
7987 #-------------------------------------------------------------------------------
7988
7989 case "$CFG_QCONFIG" in
7990 full)
7991     echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
7992     ;;
7993 *)
7994     tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
7995     echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
7996     if [ -f "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" ]; then
7997         cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
7998     elif [ -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
7999         cat `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` >>"$tmpconfig"
8000     fi
8001     echo "#endif" >>"$tmpconfig"
8002     ;;
8003 esac
8004
8005 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
8006
8007 /* Qt Edition */
8008 #ifndef QT_EDITION
8009 #  define QT_EDITION $QT_EDITION
8010 #endif
8011
8012 /* Machine byte-order */
8013 #define Q_BIG_ENDIAN 4321
8014 #define Q_LITTLE_ENDIAN 1234
8015 EOF
8016
8017 if [ "$MAC_NEED_TWO_BUILD_KEYS" = "no" ]; then
8018     echo "#define QT_BUILD_KEY \"$QT_BUILD_KEY\"" \
8019         >> "$outpath/src/corelib/global/qconfig.h.new"
8020 else
8021     cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
8022
8023 #define QT_BUILD_KEY_CARBON "$QT_BUILD_KEY_CARBON"
8024 #define QT_BUILD_KEY_COCOA "$QT_BUILD_KEY_COCOA"
8025 EOF
8026 fi
8027
8028 if [ -n "$QT_BUILD_KEY_COMPAT" ]; then
8029     echo "#define QT_BUILD_KEY_COMPAT \"$QT_BUILD_KEY_COMPAT\"" \
8030         >> "$outpath/src/corelib/global/qconfig.h.new"
8031 fi
8032 if [ -n "$QT_BUILD_KEY_COMPAT_COMPILER" ]; then
8033     echo "#define QT_BUILD_KEY_COMPAT2 \"$QT_BUILD_KEY_COMPAT_COMPILER\"" \
8034         >> "$outpath/src/corelib/global/qconfig.h.new"
8035 fi
8036 if [ -n "$QT_BUILD_KEY_COMPAT_ARCH" ]; then
8037     echo "#define QT_BUILD_KEY_COMPAT3 \"$QT_BUILD_KEY_COMPAT_ARCH\"" \
8038         >> "$outpath/src/corelib/global/qconfig.h.new"
8039 fi
8040
8041 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
8042
8043 echo "#ifdef QT_BOOTSTRAPPED" >>"$outpath/src/corelib/global/qconfig.h.new"
8044 if [ "$CFG_HOST_ENDIAN" = "auto" ]; then
8045     cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
8046 #if defined(__BIG_ENDIAN__)
8047 # define Q_BYTE_ORDER Q_BIG_ENDIAN
8048 #elif defined(__LITTLE_ENDIAN__)
8049 # define Q_BYTE_ORDER Q_LITTLE_ENDIAN
8050 #else
8051 # error "Unable to determine byte order!"
8052 #endif
8053 EOF
8054 else
8055     echo "#define Q_BYTE_ORDER $CFG_HOST_ENDIAN" >>"$outpath/src/corelib/global/qconfig.h.new"
8056 fi
8057 echo "#else" >>"$outpath/src/corelib/global/qconfig.h.new"
8058 if [ "$CFG_ENDIAN" = "auto" ]; then
8059     cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
8060 #if defined(__BIG_ENDIAN__)
8061 # define Q_BYTE_ORDER Q_BIG_ENDIAN
8062 #elif defined(__LITTLE_ENDIAN__)
8063 # define Q_BYTE_ORDER Q_LITTLE_ENDIAN
8064 #else
8065 # error "Unable to determine byte order!"
8066 #endif
8067 EOF
8068 else
8069     echo "#define Q_BYTE_ORDER $CFG_ENDIAN" >>"$outpath/src/corelib/global/qconfig.h.new"
8070 fi
8071 echo "#endif" >>"$outpath/src/corelib/global/qconfig.h.new"
8072
8073 if [ "$CFG_DOUBLEFORMAT" != "normal" ]; then
8074     cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
8075 /* Non-IEEE double format */
8076 #define Q_DOUBLE_LITTLE "01234567"
8077 #define Q_DOUBLE_BIG "76543210"
8078 #define Q_DOUBLE_LITTLE_SWAPPED "45670123"
8079 #define Q_DOUBLE_BIG_SWAPPED "32107654"
8080 #define Q_DOUBLE_FORMAT $CFG_DOUBLEFORMAT
8081 EOF
8082 fi
8083 if [ "$CFG_ARMFPA" = "yes" ]; then
8084     if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
8085         cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
8086 #ifndef QT_BOOTSTRAPPED
8087 # define QT_ARMFPA
8088 #endif
8089 EOF
8090     else
8091         echo "#define QT_ARMFPA" >>"$outpath/src/corelib/global/qconfig.h.new"
8092     fi
8093 fi
8094
8095 CFG_ARCH_STR=`echo $CFG_ARCH | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
8096 CFG_HOST_ARCH_STR=`echo $CFG_HOST_ARCH | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
8097 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
8098 /* Machine Architecture */
8099 #ifndef QT_BOOTSTRAPPED
8100 # define QT_ARCH_${CFG_ARCH_STR}
8101 #else
8102 # define QT_ARCH_${CFG_HOST_ARCH_STR}
8103 #endif
8104 EOF
8105
8106 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
8107 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
8108
8109 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
8110     echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
8111 fi
8112
8113 # if both carbon and cocoa are specified, enable the autodetection code.
8114 if [ "$PLATFORM_MAC" = "yes" -a "$CFG_MAC_COCOA" = "yes" -a "$CFG_MAC_CARBON" = "yes" ]; then
8115     echo "#define QT_AUTODETECT_COCOA 1" >>"$outpath/src/corelib/global/qconfig.h.new"
8116 elif [ "$PLATFORM_MAC" = "yes" -a "$CFG_MAC_COCOA" = "yes" ]; then
8117     echo "#define QT_MAC_USE_COCOA 1" >>"$outpath/src/corelib/global/qconfig.h.new"
8118 fi
8119
8120 if [ "$CFG_FRAMEWORK" = "yes" ]; then
8121     echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
8122 fi
8123
8124 if [ "$PLATFORM_MAC" = "yes" ]; then
8125     cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
8126 #if defined(__LP64__)
8127 # define QT_POINTER_SIZE 8
8128 #else
8129 # define QT_POINTER_SIZE 4
8130 #endif
8131 EOF
8132 else
8133     "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
8134     echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
8135 fi
8136
8137
8138 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
8139
8140 if [ "$CFG_DEV" = "yes" ]; then
8141     echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
8142 fi
8143
8144 # Embedded compile time options
8145 if [ "$PLATFORM_QWS" = "yes" ]; then
8146     # Add QWS to config.h
8147     QCONFIG_FLAGS="$QCONFIG_FLAGS Q_WS_QWS"
8148
8149     # Add excluded decorations to $QCONFIG_FLAGS
8150     decors=`grep '^decorations -= ' "$QMAKE_VARS_FILE" | ${AWK} '{print $3}'`
8151     for decor in $decors; do
8152         NODECORATION=`echo $decor | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
8153         QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_NO_QWS_DECORATION_${NODECORATION}"
8154     done
8155
8156     # Figure which embedded drivers which are turned off
8157     CFG_GFX_OFF="$CFG_GFX_AVAILABLE"
8158     for ADRIVER in $CFG_GFX_ON; do
8159         CFG_GFX_OFF=`echo "${CFG_GFX_OFF} " | sed "s,${ADRIVER} ,,g"`
8160     done
8161
8162     CFG_KBD_OFF="$CFG_KBD_AVAILABLE"
8163     # the um driver is currently not in the available list for external builds
8164     if [ "$CFG_DEV" = "no" ]; then
8165         CFG_KBD_OFF="$CFG_KBD_OFF um"
8166     fi
8167     for ADRIVER in $CFG_KBD_ON; do
8168         CFG_KBD_OFF=`echo "${CFG_KBD_OFF} " | sed "s,${ADRIVER} ,,g"`
8169     done
8170
8171     CFG_MOUSE_OFF="$CFG_MOUSE_AVAILABLE"
8172     for ADRIVER in $CFG_MOUSE_ON; do
8173         CFG_MOUSE_OFF=`echo "${CFG_MOUSE_OFF} " | sed "s,${ADRIVER} ,,g"`
8174     done
8175
8176     for DRIVER in $CFG_GFX_OFF; do
8177         NODRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
8178         QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_QWS_$NODRIVER"
8179     done
8180
8181     for DRIVER in $CFG_KBD_OFF; do
8182         NODRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
8183         QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_QWS_KBD_$NODRIVER"
8184     done
8185
8186     for DRIVER in $CFG_MOUSE_OFF; do
8187         NODRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
8188         QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_QWS_MOUSE_$NODRIVER"
8189     done
8190 fi # QWS
8191
8192 if [ "$PLATFORM_QPA" = "yes" ]; then
8193     # Add QPA to config.h
8194     QCONFIG_FLAGS="$QCONFIG_FLAGS Q_WS_QPA QT_NO_QWS_QPF QT_NO_QWS_QPF2"
8195 fi
8196
8197 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
8198     QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
8199 fi
8200
8201 # Add turned on SQL drivers
8202 for DRIVER in $CFG_SQL_AVAILABLE; do
8203     eval "VAL=\$CFG_SQL_$DRIVER"
8204     case "$VAL" in
8205     qt)
8206         ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
8207         QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
8208         SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
8209     ;;
8210     plugin)
8211         SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
8212     ;;
8213     esac
8214 done
8215
8216
8217 QMakeVar set sql-drivers "$SQL_DRIVERS"
8218 QMakeVar set sql-plugins "$SQL_PLUGINS"
8219
8220 # Add other configuration options to the qconfig.h file
8221 [ "$CFG_GIF" = "yes" ]       && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
8222 [ "$CFG_TIFF" != "yes" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_TIFF"
8223 [ "$CFG_PNG" != "yes" ]      && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
8224 [ "$CFG_JPEG" != "yes" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
8225 [ "$CFG_MNG" != "yes" ]      && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_MNG"
8226 [ "$CFG_ZLIB" != "yes" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
8227 [ "$CFG_S60" != "yes" ]      && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_S60"
8228 [ "$CFG_EXCEPTIONS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EXCEPTIONS"
8229 [ "$CFG_IPV6" = "no" ]       && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6"
8230 [ "$CFG_SXE" = "no" ]        && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SXE"
8231 [ "$CFG_DBUS" = "no" ]      && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
8232
8233 if [ "$PLATFORM_QWS" != "yes" -a "$PLATFORM_QPA" != "yes" ]; then
8234     [ "$CFG_GRAPHICS_SYSTEM" = "raster" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_GRAPHICSSYSTEM_RASTER"
8235     [ "$CFG_GRAPHICS_SYSTEM" = "opengl" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_GRAPHICSSYSTEM_OPENGL"
8236     [ "$CFG_GRAPHICS_SYSTEM" = "openvg" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_GRAPHICSSYSTEM_OPENVG"
8237     [ "$CFG_GRAPHICS_SYSTEM" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_GRAPHICSSYSTEM_RUNTIME"
8238 fi
8239
8240 # X11/Unix/Mac only configs
8241 [ "$CFG_CUPS" = "no" ]       && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
8242 [ "$CFG_ICONV" = "no" ]      && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
8243 [ "$CFG_GLIB" != "yes" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
8244 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
8245 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
8246 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
8247 [ "$CFG_MREMAP" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
8248 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
8249 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
8250 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
8251 [ "$CFG_INOTIFY" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
8252 [ "$CFG_NAS" = "no" ]        && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NAS"
8253 [ "$CFG_NIS" = "no" ]        && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
8254 [ "$CFG_OPENSSL" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL"
8255 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
8256
8257 [ "$CFG_SM" = "no" ]         && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
8258 [ "$CFG_XCURSOR" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
8259 [ "$CFG_XFIXES" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
8260 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
8261 [ "$CFG_XINERAMA" = "no" ]   && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
8262 [ "$CFG_XKB" = "no" ]        && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
8263 [ "$CFG_XRANDR" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
8264 [ "$CFG_XRENDER" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
8265 [ "$CFG_MITSHM" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
8266 [ "$CFG_XSHAPE" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
8267 [ "$CFG_XVIDEO" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XVIDEO"
8268 [ "$CFG_XSYNC" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
8269 [ "$CFG_XINPUT" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
8270
8271 [ "$CFG_XCURSOR" = "runtime" ]   && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
8272 [ "$CFG_XINERAMA" = "runtime" ]  && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
8273 [ "$CFG_XFIXES" = "runtime" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
8274 [ "$CFG_XRANDR" = "runtime" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
8275 [ "$CFG_XINPUT" = "runtime" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
8276 [ "$CFG_ALSA" = "no" ]           && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
8277 [ "$CFG_PULSEAUDIO" = "no" ]          && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PULSEAUDIO"
8278 [ "$CFG_COREWLAN" = "no" ]       && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_COREWLAN"
8279 [ "$CFG_ICD" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICD"
8280
8281 # sort QCONFIG_FLAGS for neatness if we can
8282 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
8283 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
8284
8285 if [ "$XPLATFORM_SYMBIAN" = "yes" ]; then
8286     # Enable Symbian DLLs and export rules.
8287     # We cannot use Linux's default export rules since they export everything.
8288     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_DLL"
8289     # Disable non-working features.
8290     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CRASHHANDLER QT_NO_PRINTER QT_NO_SYSTEMTRAYICON"
8291 fi
8292
8293 if [ -n "$QCONFIG_FLAGS" ]; then
8294 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
8295 #ifndef QT_BOOTSTRAPPED
8296
8297 EOF
8298     for cfg in $QCONFIG_FLAGS; do
8299         cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
8300         cfg=`echo $cfg | sed 's/=/ /'`    # turn first '=' into a space
8301         # figure out define logic, so we can output the correct
8302         # ifdefs to override the global defines in a project
8303         cfgdNeg=
8304         if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
8305             # QT_NO_option can be forcefully turned on by QT_option
8306             cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
8307         elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
8308             # QT_option can be forcefully turned off by QT_NO_option
8309             cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
8310         fi
8311
8312         if [ -z $cfgdNeg ]; then
8313 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
8314 #ifndef $cfgd
8315 # define $cfg
8316 #endif
8317
8318 EOF
8319         else
8320 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
8321 #if defined($cfgd) && defined($cfgdNeg)
8322 # undef $cfgd
8323 #elif !defined($cfgd) && !defined($cfgdNeg)
8324 # define $cfg
8325 #endif
8326
8327 EOF
8328         fi
8329     done
8330 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
8331 #endif // QT_BOOTSTRAPPED
8332
8333 EOF
8334 fi
8335
8336 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
8337 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
8338 #define QT_VISIBILITY_AVAILABLE
8339
8340 EOF
8341 fi
8342
8343 if [ -n "$QT_LIBINFIX" ]; then
8344 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
8345 #define QT_LIBINFIX "$QT_LIBINFIX"
8346
8347 EOF
8348 fi
8349
8350 if [ -n "$CFG_RUNTIME_SYSTEM" ]; then
8351 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
8352 #define QT_DEFAULT_RUNTIME_SYSTEM "$CFG_RUNTIME_SYSTEM"
8353
8354 EOF
8355 fi
8356
8357 # avoid unecessary rebuilds by copying only if qconfig.h has changed
8358 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
8359     rm -f "$outpath/src/corelib/global/qconfig.h.new"
8360 else
8361     [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
8362     mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
8363     chmod -w "$outpath/src/corelib/global/qconfig.h"
8364     for conf in "$outpath/include/QtCore/qconfig.h" "$outpath/include/Qt/qconfig.h"; do
8365         ln -s "$outpath/src/corelib/global/qconfig.h" "$conf"
8366     done
8367 fi
8368
8369 #-------------------------------------------------------------------------------
8370 # save configuration into qconfig.pri
8371 #-------------------------------------------------------------------------------
8372 QTCONFIG="$outpath/mkspecs/qconfig.pri"
8373 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
8374 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
8375 if [ "$CFG_DEBUG" = "yes" ]; then
8376     QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
8377     if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
8378         QT_CONFIG="$QT_CONFIG release"
8379     fi
8380     QT_CONFIG="$QT_CONFIG debug"
8381 elif [ "$CFG_DEBUG" = "no" ]; then
8382     QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
8383     if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
8384         QT_CONFIG="$QT_CONFIG debug"
8385     fi
8386     QT_CONFIG="$QT_CONFIG release"
8387 fi
8388 if [ "$CFG_STL" = "yes" ]; then
8389     QTCONFIG_CONFIG="$QTCONFIG_CONFIG stl"
8390 fi
8391 if [ "$CFG_FRAMEWORK" = "no" ]; then
8392     QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
8393 else
8394     QT_CONFIG="$QT_CONFIG qt_framework"
8395     QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
8396 fi
8397 if [ "$PLATFORM_MAC" = "yes" ]; then
8398     QT_CONFIG="$QT_CONFIG $CFG_MAC_ARCHS"
8399 fi
8400 if [ "$CFG_DEV" = "yes" ]; then
8401     QT_CONFIG="$QT_CONFIG private_tests"
8402 fi
8403
8404 if [ -z "$QT_CFLAGS_FPU" ]; then
8405     if echo "$XPLATFORM" | grep "symbian-sbsv2" > /dev/null 2>&1; then
8406         QT_CFLAGS_FPU=softvfp
8407     fi
8408 fi
8409
8410 # Make the application arch follow the Qt arch for single arch builds.
8411 # (for multiple-arch builds, set CONFIG manually in the application .pro file)
8412 if [ `echo "$CFG_MAC_ARCHS" | wc -w` -eq 1 ]; then
8413     QTCONFIG_CONFIG="$QTCONFIG_CONFIG $CFG_MAC_ARCHS"
8414 fi
8415
8416 cat >>"$QTCONFIG.tmp" <<EOF
8417 #configuration
8418 CONFIG += $QTCONFIG_CONFIG
8419 QT_ARCH = $CFG_ARCH
8420 QT_EDITION = $Edition
8421 QT_CONFIG += $QT_CONFIG
8422
8423 #versioning
8424 QT_VERSION = $QT_VERSION
8425 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
8426 QT_MINOR_VERSION = $QT_MINOR_VERSION
8427 QT_PATCH_VERSION = $QT_PATCH_VERSION
8428
8429 #namespaces
8430 QT_LIBINFIX = $QT_LIBINFIX
8431 QT_NAMESPACE = $QT_NAMESPACE
8432 QT_NAMESPACE_MAC_CRC = $QT_NAMESPACE_MAC_CRC
8433
8434 EOF
8435 if [ -n "$CFG_SYSROOT" ]; then
8436     echo "# sysroot" >>"$QTCONFIG.tmp"
8437     echo `basename "$XQMAKESPEC"` \{ >>"$QTCONFIG.tmp"
8438     echo "  QT_SYSROOT      += \$\$quote($CFG_SYSROOT)" >>"$QTCONFIG.tmp"
8439     echo "  QMAKE_CFLAGS    += --sysroot=\$\$QT_SYSROOT" >>"$QTCONFIG.tmp"
8440     echo "  QMAKE_CXXFLAGS  += --sysroot=\$\$QT_SYSROOT" >>"$QTCONFIG.tmp"
8441     echo "  QMAKE_LFLAGS    += --sysroot=\$\$QT_SYSROOT" >>"$QTCONFIG.tmp"
8442     echo "}" >> "$QTCONFIG.tmp"
8443     echo >> "$QTCONFIG.tmp"
8444 fi
8445 if [ "$CFG_RPATH" = "yes" ]; then
8446     echo "QMAKE_RPATHDIR += \"$QT_INSTALL_LIBS\"" >> "$QTCONFIG.tmp"
8447 fi
8448 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
8449     echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
8450     echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
8451     echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
8452 fi
8453 if [ -n "$QT_CFLAGS_FPU" ]; then
8454     echo "#Qt for symbian FPU settings" >> "$QTCONFIG.tmp"
8455     echo "MMP_RULES += \"ARMFPU $QT_CFLAGS_FPU\"" >> "$QTCONFIG.tmp"
8456 fi
8457
8458 if [ -n "$QMAKE_INCDIR_OPENGL_ES2" ]; then
8459     echo "#Qt opengl include path" >> "$QTCONFIG.tmp"
8460     echo "QMAKE_INCDIR_OPENGL_ES2 = \"$QMAKE_INCDIR_OPENGL_ES2\"" >> "$QTCONFIG.tmp"
8461 fi
8462
8463 # replace qconfig.pri if it differs from the newly created temp file
8464 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
8465     rm -f "$QTCONFIG.tmp"
8466 else
8467     mv -f "$QTCONFIG.tmp" "$QTCONFIG"
8468 fi
8469
8470 #-------------------------------------------------------------------------------
8471 # save configuration into qmodule.pri
8472 #-------------------------------------------------------------------------------
8473 QTMODULE="$outpath/mkspecs/qmodule.pri"
8474
8475 # Ensure we can link to uninistalled libraries
8476 if [ "$XPLATFORM_MINGW" != "yes" ] && [ "$CFG_EMBEDDED" != "nacl" ] && linkerSupportsFlag -rpath-link "$outpath/lib"; then
8477     echo "QMAKE_LFLAGS    = -Wl,-rpath-link,\$\$QT_BUILD_TREE/lib \$\$QMAKE_LFLAGS" >> "$QTMODULE.tmp"
8478 fi
8479 if [ -n "$QT_CFLAGS_PSQL" ]; then
8480     echo "QT_CFLAGS_PSQL   = $QT_CFLAGS_PSQL" >> "$QTMODULE.tmp"
8481 fi
8482 if [ -n "$QT_LFLAGS_PSQL" ]; then
8483     echo "QT_LFLAGS_PSQL   = $QT_LFLAGS_PSQL" >> "$QTMODULE.tmp"
8484 fi
8485 if [ -n "$QT_CFLAGS_MYSQL" ]; then
8486     echo "QT_CFLAGS_MYSQL   = $QT_CFLAGS_MYSQL" >> "$QTMODULE.tmp"
8487 fi
8488 if [ -n "$QT_LFLAGS_MYSQL" ]; then
8489     echo "QT_LFLAGS_MYSQL   = $QT_LFLAGS_MYSQL" >> "$QTMODULE.tmp"
8490 fi
8491 if [ -n "$QT_CFLAGS_SQLITE" ]; then
8492     echo "QT_CFLAGS_SQLITE   = $QT_CFLAGS_SQLITE" >> "$QTMODULE.tmp"
8493 fi
8494 if [ -n "$QT_LFLAGS_SQLITE" ]; then
8495     echo "QT_LFLAGS_SQLITE   = $QT_LFLAGS_SQLITE" >> "$QTMODULE.tmp"
8496 fi
8497 if [ -n "$QT_LFLAGS_ODBC" ]; then
8498     echo "QT_LFLAGS_ODBC   = $QT_LFLAGS_ODBC" >> "$QTMODULE.tmp"
8499 fi
8500 if [ -n "$QT_LFLAGS_TDS" ]; then
8501     echo "QT_LFLAGS_TDS   = $QT_LFLAGS_TDS" >> "$QTMODULE.tmp"
8502 fi
8503
8504 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
8505     echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$QTMODULE.tmp"
8506 fi
8507
8508 #dump in the OPENSSL_LIBS info
8509 if [ '!' -z "$OPENSSL_LIBS" ]; then
8510     echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$QTMODULE.tmp"
8511 elif [ "$CFG_OPENSSL" = "linked" ]; then
8512     echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$QTMODULE.tmp"
8513 fi
8514
8515 #dump in the SDK info
8516 if [ '!' -z "$CFG_SDK" ]; then
8517    echo "QMAKE_MAC_SDK = $CFG_SDK" >> "$QTMODULE.tmp"
8518 fi
8519
8520 # mac gcc -Xarch support
8521 if [ "$CFG_MAC_XARCH" = "no" ]; then
8522    echo "QMAKE_MAC_XARCH = no" >> "$QTMODULE.tmp"
8523 fi
8524
8525 # cmdline args
8526 cat "$QMAKE_VARS_FILE" >> "$QTMODULE.tmp"
8527 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
8528
8529 # replace qmodule.pri if it differs from the newly created temp file
8530 if cmp -s "$QTMODULE.tmp" "$QTMODULE"; then
8531     rm -f "$QTMODULE.tmp"
8532 else
8533     mv -f "$QTMODULE.tmp" "$QTMODULE"
8534 fi
8535
8536 #-------------------------------------------------------------------------------
8537 # save configuration into .qmake.cache
8538 #-------------------------------------------------------------------------------
8539
8540 CACHEFILE="$outpath/.qmake.cache"
8541 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
8542 cat >>"$CACHEFILE.tmp" <<EOF
8543 #paths
8544 QT_SOURCE_TREE = \$\$quote($relpath)
8545 QT_BUILD_TREE = \$\$quote($outpath)
8546 QT_BUILD_PARTS = $CFG_BUILD_PARTS
8547
8548 #local paths that cannot be queried from the QT_INSTALL_* properties while building QTDIR
8549 QMAKE_MOC        = \$\$QT_BUILD_TREE/bin/moc
8550 QMAKE_UIC        = \$\$QT_BUILD_TREE/bin/uic
8551 QMAKE_RCC        = \$\$QT_BUILD_TREE/bin/rcc
8552 QMAKE_QDBUSXML2CPP = \$\$QT_BUILD_TREE/bin/qdbusxml2cpp
8553 QMAKE_INCDIR_QT  = \$\$QT_BUILD_TREE/include
8554 QMAKE_LIBDIR_QT  = \$\$QT_BUILD_TREE/lib
8555
8556 include(\$\$PWD/mkspecs/qmodule.pri)
8557 CONFIG += $QMAKE_CONFIG dylib create_prl link_prl depend_includepath fix_output_dirs no_private_qt_headers_warning QTDIR_build
8558 QMAKE_ABSOLUTE_SOURCE_ROOT = \$\$QT_SOURCE_TREE
8559 QMAKE_MOC_SRC    = \$\$QT_BUILD_TREE/src/moc
8560
8561 EOF
8562
8563 #dump the qmake spec
8564 if [ -d "$outpath/mkspecs/$XPLATFORM" ]; then
8565    echo "QMAKESPEC = \$\$QT_BUILD_TREE/mkspecs/$XPLATFORM" >> "$CACHEFILE.tmp"
8566 else
8567    echo "QMAKESPEC = $XPLATFORM" >> "$CACHEFILE.tmp"
8568 fi
8569
8570 # incrementals
8571 INCREMENTAL=""
8572 [ "$CFG_INCREMENTAL" = "auto" ] && "$WHICH" p4 >/dev/null 2>&1 && [ "$CFG_DEV" = "yes" ] && CFG_INCREMENTAL="yes"
8573 if [ "$CFG_INCREMENTAL" = "yes" ]; then
8574     find "$relpath" -perm u+w -mtime -3 | grep 'cpp$' | while read f; do
8575         # don't need to worry about generated files
8576         [ -r `echo $f | sed "s,cpp$,ui,"` ] && continue
8577         basename "$f" | grep '^moc_' >/dev/null 2>&1 && continue
8578         # done
8579         INCREMENTAL="$INCREMENTAL `basename \"$f\" | sed 's,.cpp,.o,'`"
8580     done
8581     [ '!' -z "$INCREMENTAL" ] && echo "QMAKE_INCREMENTAL += $INCREMENTAL" >> "$CACHEFILE.tmp"
8582     [ -r "$outpath/.qmake.incremental" ] && echo "include($outpath/.qmake.incremental)" >> "$CACHEFILE.tmp"
8583 fi
8584
8585 # replace .qmake.cache if it differs from the newly created temp file
8586 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
8587     rm -f "$CACHEFILE.tmp"
8588 else
8589     mv -f "$CACHEFILE.tmp" "$CACHEFILE"
8590 fi
8591
8592 #-------------------------------------------------------------------------------
8593 # give feedback on configuration
8594 #-------------------------------------------------------------------------------
8595
8596 case "$COMPILER" in
8597 g++*)
8598     if [ "$CFG_EXCEPTIONS" != "no" ]; then
8599         cat <<EOF
8600
8601         This target is using the GNU C++ compiler ($PLATFORM).
8602
8603         Recent versions of this compiler automatically include code for
8604         exceptions, which increase both the size of the Qt libraries and
8605         the amount of memory taken by your applications.
8606
8607         You may choose to re-run `basename $0` with the -no-exceptions
8608         option to compile Qt without exceptions. This is completely binary
8609         compatible, and existing applications will continue to work.
8610
8611 EOF
8612     fi
8613     ;;
8614 cc*)
8615     case "$PLATFORM" in
8616     irix-cc*)
8617         if [ "$CFG_EXCEPTIONS" != "no" ]; then
8618             cat <<EOF
8619
8620         This target is using the MIPSpro C++ compiler ($PLATFORM).
8621
8622         You may choose to re-run `basename $0` with the -no-exceptions
8623         option to compile Qt without exceptions. This will make the
8624         size of the Qt library smaller and reduce the amount of memory
8625         taken by your applications.
8626
8627 EOF
8628         fi
8629         ;;
8630     *) ;;
8631     esac
8632     ;;
8633 *) ;;
8634 esac
8635
8636 if [ "$PLATFORM_MAC" = "yes" ] && [ "$CFG_MAC_DWARF2" = "no" ]  && [ "$CFG_WEBKIT" != "no" ] && [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
8637     cat <<EOF
8638         WARNING: DWARF2 debug symbols are not enabled. Linking webkit
8639         in debug mode will run out of memory on systems with 2GB or less.
8640         Install Xcode 2.4.1 or higher to enable DWARF2, or configure with
8641          -no-webkit or -release to skip webkit debug.
8642 EOF
8643 fi
8644
8645 echo
8646 if [ "$XPLATFORM" = "$PLATFORM" ]; then
8647     echo "Build type:    $PLATFORM"
8648 else
8649     echo "Building on:   $PLATFORM"
8650     echo "Building for:  $XPLATFORM"
8651 fi
8652
8653 if [ "$PLATFORM_MAC" = "yes" ]; then
8654     echo "Architecture:  $CFG_ARCH ($CFG_MAC_ARCHS )"
8655 else
8656     echo "Architecture:  $CFG_ARCH"
8657 fi
8658
8659 if [ "$PLATFORM_QWS" = "yes" -o "$PLATFORM_QPA" = "yes" ]; then
8660     echo "Host architecture: $CFG_HOST_ARCH"
8661 fi
8662
8663 if [ "$PLATFORM_MAC" = "yes" ]; then
8664     if [ "$CFG_MAC_COCOA" = "yes" ]; then
8665         if [ "$CFG_MAC_CARBON" = "yes" ]; then
8666             echo "Using framework: Carbon for 32-bit, Cocoa for 64-bit"
8667         else
8668             echo "Using framework: Cocoa"
8669         fi
8670     else
8671         echo "Using framework: Carbon"
8672     fi
8673 fi
8674
8675 if [ -n "$PLATFORM_NOTES" ]; then
8676     echo "Platform notes:"
8677     echo "$PLATFORM_NOTES"
8678 else
8679     echo
8680 fi
8681
8682 if [ "$OPT_VERBOSE" = "yes" ]; then
8683     echo $ECHO_N "qmake vars .......... $ECHO_C"
8684     cat "$QMAKE_VARS_FILE" | tr '\n' ' '
8685     echo "qmake switches ......... $QMAKE_SWITCHES"
8686 fi
8687
8688 [ "$CFG_INCREMENTAL" = "yes" ] && [ '!' -z "$INCREMENTAL" ] && echo "Incremental ............ $INCREMENTAL"
8689 echo "Build .................. $CFG_BUILD_PARTS"
8690 echo "Configuration .......... $QMAKE_CONFIG $QT_CONFIG"
8691 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
8692    echo "Debug .................. yes (combined)"
8693    if [ "$CFG_DEBUG" = "yes" ]; then
8694        echo "Default Link ........... debug"
8695    else
8696        echo "Default Link ........... release"
8697    fi
8698 else
8699    echo "Debug .................. $CFG_DEBUG"
8700 fi
8701 echo "Qt 3 compatibility ..... $CFG_QT3SUPPORT"
8702 [ "$CFG_DBUS" = "no" ]     && echo "QtDBus module .......... no"
8703 [ "$CFG_DBUS" = "yes" ]    && echo "QtDBus module .......... yes (run-time)"
8704 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)"
8705 echo "QtConcurrent code ...... $CFG_CONCURRENT"
8706 echo "QtGui module ........... $CFG_GUI"
8707 echo "QtScript module ........ $CFG_SCRIPT"
8708 echo "QtScriptTools module ... $CFG_SCRIPTTOOLS"
8709 echo "QtXmlPatterns module ... $CFG_XMLPATTERNS"
8710 echo "Phonon module .......... $CFG_PHONON"
8711 echo "Multimedia module ...... $CFG_MULTIMEDIA"
8712 echo "SVG module ............. $CFG_SVG"
8713 case "$CFG_WEBKIT" in
8714     yes)   echo "WebKit module .......... yes" ;;
8715     debug) echo "WebKit module .......... yes (debug)" ;;
8716     no)    echo "WebKit module .......... no" ;;
8717 esac
8718 if [ "$CFG_WEBKIT" != "no" ] || [ "$CFG_SCRIPT" != "no" ]; then
8719     if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
8720         echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore"
8721     else
8722         echo "JavaScriptCore JIT ..... $CFG_JAVASCRIPTCORE_JIT"
8723     fi
8724 fi
8725 echo "Declarative module ..... $CFG_DECLARATIVE"
8726 if [ "$CFG_DECLARATIVE" = "yes" ]; then
8727     echo "Declarative debugging ...$CFG_DECLARATIVE_DEBUG"
8728 fi
8729 echo "Location module ........ $CFG_LOCATION"
8730 echo "Support for S60 ........ $CFG_S60"
8731 echo "Symbian DEF files ...... $CFG_SYMBIAN_DEFFILES"
8732 echo "STL support ............ $CFG_STL"
8733 echo "PCH support ............ $CFG_PRECOMPILE"
8734 echo "MMX/3DNOW/SSE/SSE2/SSE3. ${CFG_MMX}/${CFG_3DNOW}/${CFG_SSE}/${CFG_SSE2}/${CFG_SSE3}"
8735 echo "SSSE3/SSE4.1/SSE4.2..... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
8736 echo "AVX..................... ${CFG_AVX}"
8737 if [ "$CFG_ARCH" = "arm" ] || [ "$CFG_ARCH" = "armv6" ]; then
8738     echo "iWMMXt support ......... ${CFG_IWMMXT}"
8739     echo "NEON support ........... ${CFG_NEON}"
8740 fi
8741 [ "${PLATFORM_QWS}" != "yes" -a "${PLATFORM_QPA}" != "yes" ] && echo "Graphics System ........ $CFG_GRAPHICS_SYSTEM"
8742 echo "IPv6 support ........... $CFG_IPV6"
8743 echo "IPv6 ifname support .... $CFG_IPV6IFNAME"
8744 echo "getaddrinfo support .... $CFG_GETADDRINFO"
8745 echo "getifaddrs support ..... $CFG_GETIFADDRS"
8746 echo "Accessibility .......... $CFG_ACCESSIBILITY"
8747 echo "NIS support ............ $CFG_NIS"
8748 echo "CUPS support ........... $CFG_CUPS"
8749 echo "Iconv support .......... $CFG_ICONV"
8750 echo "Glib support ........... $CFG_GLIB"
8751 echo "GStreamer support ...... $CFG_GSTREAMER"
8752 echo "PulseAudio support ..... $CFG_PULSEAUDIO"
8753 echo "Large File support ..... $CFG_LARGEFILE"
8754 echo "GIF support ............ $CFG_GIF"
8755 if [ "$CFG_TIFF" = "no" ]; then
8756     echo "TIFF support ........... $CFG_TIFF"
8757 else
8758     echo "TIFF support ........... $CFG_TIFF ($CFG_LIBTIFF)"
8759 fi
8760 if [ "$CFG_JPEG" = "no" ]; then
8761     echo "JPEG support ........... $CFG_JPEG"
8762 else
8763     echo "JPEG support ........... $CFG_JPEG ($CFG_LIBJPEG)"
8764 fi
8765 if [ "$CFG_PNG" = "no" ]; then
8766     echo "PNG support ............ $CFG_PNG"
8767 else
8768     echo "PNG support ............ $CFG_PNG ($CFG_LIBPNG)"
8769 fi
8770 if [ "$CFG_MNG" = "no" ]; then
8771     echo "MNG support ............ $CFG_MNG"
8772 else
8773     echo "MNG support ............ $CFG_MNG ($CFG_LIBMNG)"
8774 fi
8775 echo "zlib support ........... $CFG_ZLIB"
8776 echo "Session management ..... $CFG_SM"
8777 if [ "$PLATFORM_QWS" = "yes" ]; then
8778     echo "Embedded support ....... $CFG_EMBEDDED"
8779     if [ "$CFG_QWS_FREETYPE" = "auto" ]; then
8780         echo "Freetype2 support ...... $CFG_QWS_FREETYPE ($CFG_LIBFREETYPE)"
8781     else
8782         echo "Freetype2 support ...... $CFG_QWS_FREETYPE"
8783     fi
8784     # Normalize the decoration output first
8785     CFG_GFX_ON=`echo ${CFG_GFX_ON}`
8786     CFG_GFX_PLUGIN=`echo ${CFG_GFX_PLUGIN}`
8787     echo "Graphics (qt) .......... ${CFG_GFX_ON}"
8788     echo "Graphics (plugin) ...... ${CFG_GFX_PLUGIN}"
8789     CFG_DECORATION_ON=`echo ${CFG_DECORATION_ON}`
8790     CFG_DECORATION_PLUGIN=`echo ${CFG_DECORATION_PLUGIN}`
8791     echo "Decorations (qt) ....... $CFG_DECORATION_ON"
8792     echo "Decorations (plugin) ... $CFG_DECORATION_PLUGIN"
8793     CFG_KBD_ON=`echo ${CFG_KBD_ON}`
8794     CFG_KBD_PLUGIN=`echo ${CFG_KBD_PLUGIN}`
8795     echo "Keyboard driver (qt) ... ${CFG_KBD_ON}"
8796     echo "Keyboard driver (plugin) .. ${CFG_KBD_PLUGIN}"
8797     CFG_MOUSE_ON=`echo ${CFG_MOUSE_ON}`
8798     CFG_MOUSE_PLUGIN=`echo ${CFG_MOUSE_PLUGIN}`
8799     echo "Mouse driver (qt) ...... $CFG_MOUSE_ON"
8800     echo "Mouse driver (plugin) .. $CFG_MOUSE_PLUGIN"
8801 fi
8802 if [ "$CFG_OPENGL" = "desktop" ]; then
8803     echo "OpenGL support ......... yes (Desktop OpenGL)"
8804 elif [ "$CFG_OPENGL" = "es1" ]; then
8805     echo "OpenGL support ......... yes (OpenGL ES 1.x Common profile)"
8806 elif [ "$CFG_OPENGL" = "es2" ]; then
8807     echo "OpenGL support ......... yes (OpenGL ES 2.x)"
8808 else
8809     echo "OpenGL support ......... no"
8810 fi
8811 if [ "$CFG_EGL" != "no" ]; then
8812     if [ "$CFG_EGL_GLES_INCLUDES" = "yes" ]; then
8813         echo "EGL support ............ yes <GLES/egl.h>"
8814     else
8815         echo "EGL support ............ yes <EGL/egl.h>"
8816     fi
8817 fi
8818 if [ "$CFG_OPENVG" ]; then
8819     if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
8820         echo "OpenVG support ......... ShivaVG"
8821     else
8822         echo "OpenVG support ......... $CFG_OPENVG"
8823     fi
8824 fi
8825 if [ "$PLATFORM_X11" = "yes" ]; then
8826     echo "NAS sound support ...... $CFG_NAS"
8827     echo "XShape support ......... $CFG_XSHAPE"
8828     echo "XVideo support ......... $CFG_XVIDEO"
8829     echo "XSync support .......... $CFG_XSYNC"
8830     echo "Xinerama support ....... $CFG_XINERAMA"
8831     echo "Xcursor support ........ $CFG_XCURSOR"
8832     echo "Xfixes support ......... $CFG_XFIXES"
8833     echo "Xrandr support ......... $CFG_XRANDR"
8834     echo "Xrender support ........ $CFG_XRENDER"
8835     echo "Xi support ............. $CFG_XINPUT"
8836     echo "MIT-SHM support ........ $CFG_MITSHM"
8837     echo "FontConfig support ..... $CFG_FONTCONFIG"
8838     echo "XKB Support ............ $CFG_XKB"
8839     echo "immodule support ....... $CFG_IM"
8840     echo "GTK theme support ...... $CFG_QGTKSTYLE"
8841 fi
8842 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support .......... $CFG_SQL_mysql"
8843 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support ..... $CFG_SQL_psql"
8844 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........... $CFG_SQL_odbc"
8845 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ............ $CFG_SQL_oci"
8846 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ............ $CFG_SQL_tds"
8847 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ............ $CFG_SQL_db2"
8848 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ...... $CFG_SQL_ibase"
8849 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support ....... $CFG_SQL_sqlite2"
8850 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ......... $CFG_SQL_sqlite ($CFG_SQLITE)"
8851
8852 OPENSSL_LINKAGE=""
8853 if [ "$CFG_OPENSSL" = "yes" ]; then
8854     OPENSSL_LINKAGE="(run-time)"
8855 elif [ "$CFG_OPENSSL" = "linked" ]; then
8856     OPENSSL_LINKAGE="(linked)"
8857 fi
8858 echo "OpenSSL support ........ $CFG_OPENSSL $OPENSSL_LINKAGE"
8859 echo "Alsa support ........... $CFG_ALSA"
8860 if [ "$PLATFORM_MAC" = "yes" ]; then
8861     echo "CoreWlan support ....... $CFG_COREWLAN"
8862 fi
8863 echo "ICD support ............ $CFG_ICD"
8864 echo "libICU support ......... $CFG_ICU"
8865 echo "Xcb support ............ $CFG_XCB"
8866 echo
8867
8868 [ "$CFG_PTMALLOC" != "no" ] && echo "Use ptmalloc ........... $CFG_PTMALLOC"
8869
8870 # complain about not being able to use dynamic plugins if we are using a static build
8871 if [ "$CFG_SHARED" = "no" ]; then
8872     echo
8873     echo "WARNING: Using static linking will disable the use of dynamically"
8874     echo "loaded plugins. Make sure to import all needed static plugins,"
8875     echo "or compile needed modules into the library."
8876     echo
8877 fi
8878 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
8879     echo
8880     echo "NOTE: When linking against OpenSSL, you can override the default"
8881     echo "library names through OPENSSL_LIBS."
8882     echo "For example:"
8883     echo "    OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
8884     echo
8885 fi
8886 if [ "$PLATFORM_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
8887     echo
8888     echo "Error: debug-only framework builds are not supported. Configure with -no-framework"
8889     echo "if you want a pure debug build."
8890     echo
8891     exit 1
8892 fi
8893
8894 sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
8895 PROCS=1
8896 EXEC=""
8897
8898
8899 #-------------------------------------------------------------------------------
8900 # build makefiles based on the configuration
8901 #-------------------------------------------------------------------------------
8902
8903 echo "Finding project files. Please wait..."
8904 if [ "$CFG_NOPROCESS" != "yes" ]; then
8905     "$outpath/bin/qmake" -prl -r "${relpath}/qtbase.pro"
8906     if [ -f "${relpath}/qtbase.pro" ]; then
8907         mkfile="${outpath}/Makefile"
8908         [ -f "$mkfile" ] && chmod +w "$mkfile"
8909         QTDIR="$outpath" "$outpath/bin/qmake" -spec "$XQMAKESPEC" "${relpath}/qtbase.pro" -o "$mkfile"
8910     fi
8911 fi
8912
8913 # .projects      -> projects to process
8914 # .projects.1    -> qt and moc
8915 # .projects.2    -> subdirs and libs
8916 # .projects.3    -> the rest
8917 rm -f .projects .projects.1 .projects.2 .projects.3
8918
8919 QMAKE_PROJECTS=`find "$relpath/." -name '*.pro' -print | sed 's-/\./-/-'`
8920 if [ -z "$AWK" ]; then
8921     for p in `echo $QMAKE_PROJECTS`; do
8922         echo "$p" >> .projects
8923     done
8924 else
8925     cat >projects.awk <<EOF
8926 BEGIN {
8927     files = 0
8928     target_file = ""
8929     input_file = ""
8930
8931     first = "./.projects.1.tmp"
8932     second = "./.projects.2.tmp"
8933     third = "./.projects.3.tmp"
8934 }
8935
8936 FNR == 1 {
8937     if ( input_file ) {
8938         if ( ! target_file )
8939             target_file = third
8940         print input_file >target_file
8941     }
8942
8943     matched_target = 0
8944     template_lib = 0
8945     input_file = FILENAME
8946     target_file = ""
8947 }
8948
8949 /^(TARGET.*=)/ {
8950     if ( \$3 == "moc" || \$3 ~ /^Qt/ ) {
8951         target_file = first
8952         matched_target = 1
8953     } else if ( \$3 == "lrelease" || \$3 == "qm_phony_target" ) {
8954         target_file = second
8955         matched_target = 1
8956     }
8957 }
8958
8959 matched_target == 0 && /^(TEMPLATE.*=)/ {
8960     if ( \$3 == "subdirs" )
8961         target_file = second
8962     else if ( \$3 == "lib" )
8963         template_lib = 1
8964     else
8965         target_file = third
8966 }
8967
8968 matched_target == 0 && template_lib == 1 && /^(CONFIG.*=)/ {
8969     if ( \$0 ~ /plugin/ )
8970         target_file = third
8971     else
8972         target_file = second
8973 }
8974
8975 END {
8976     if ( input_file ) {
8977         if ( ! target_file )
8978             target_file = third
8979         print input_file >>target_file
8980     }
8981 }
8982
8983 EOF
8984
8985     rm -f .projects.all
8986     for p in `echo $QMAKE_PROJECTS`; do
8987        echo "$p" >> .projects.all
8988     done
8989
8990     # if you get errors about the length of the command line to awk, change the -l arg
8991     # to split below
8992     split -l 100 .projects.all .projects.all.
8993     for p in .projects.all.*; do
8994        "$AWK" -f projects.awk `cat $p`
8995        [ -f .projects.1.tmp ] && cat .projects.1.tmp >> .projects.1
8996        [ -f .projects.2.tmp ] && cat .projects.2.tmp >> .projects.2
8997        [ -f .projects.3.tmp ] && cat .projects.3.tmp >> .projects.3
8998        rm -f .projects.1.tmp .projects.2.tmp .projects.3.tmp $p
8999     done
9000     rm -f .projects.all* projects.awk
9001
9002     [ -f .projects.1 ] && cat .projects.1 >>.projects
9003     [ -f .projects.2 ] && cat .projects.2 >>.projects
9004     rm -f .projects.1 .projects.2
9005     if [ -f .projects.3 ] && [ "$OPT_FAST" = "no" ]; then
9006        cat .projects.3 >>.projects
9007        rm -f .projects.3
9008     fi
9009 fi
9010 # don't sort Qt and MOC in with the other project files
9011 # also work around a segfaulting uniq(1)
9012 if [ -f .sorted.projects.2 ]; then
9013     sort .sorted.projects.2 > .sorted.projects.2.new
9014     mv -f .sorted.projects.2.new .sorted.projects.2
9015     cat .sorted.projects.2 >> .sorted.projects.1
9016 fi
9017 [ -f .sorted.projects.1 ] && sort .sorted.projects.1 >> .sorted.projects
9018 rm -f .sorted.projects.2 .sorted.projects.1
9019
9020 NORM_PROJECTS=0
9021 FAST_PROJECTS=0
9022 if [ -f .projects ]; then
9023    uniq .projects >.tmp
9024    mv -f .tmp .projects
9025    NORM_PROJECTS=`cat .projects | wc -l | sed -e "s, ,,g"`
9026 fi
9027 if [ -f .projects.3 ]; then
9028    uniq .projects.3 >.tmp
9029    mv -f .tmp .projects.3
9030    FAST_PROJECTS=`cat .projects.3 | wc -l | sed -e "s, ,,g"`
9031 fi
9032 echo "  `expr $NORM_PROJECTS + $FAST_PROJECTS` projects found."
9033 echo
9034
9035 PART_ROOTS=
9036 for part in $CFG_BUILD_PARTS; do
9037     case "$part" in
9038     tools) PART_ROOTS="$PART_ROOTS tools" ;;
9039     libs) PART_ROOTS="$PART_ROOTS src tools/linguist/lrelease" ;;
9040     translations) PART_ROOTS="$PART_ROOTS translations" ;;
9041     examples) PART_ROOTS="$PART_ROOTS examples demos" ;;
9042     *) ;;
9043     esac
9044 done
9045
9046 if [ "$CFG_DEV" = "yes" ]; then
9047     PART_ROOTS="$PART_ROOTS tests"
9048 fi
9049
9050 echo "Creating makefiles. Please wait..."
9051 for file in .projects .projects.3; do
9052     [ '!' -f "$file" ] && continue
9053     for a in `cat $file`; do
9054         IN_ROOT=no
9055         for r in $PART_ROOTS; do
9056             if echo "$a" | grep "^$r" >/dev/null 2>&1 || echo "$a" | grep "^$relpath/$r" >/dev/null 2>&1; then
9057                 IN_ROOT=yes
9058                 break
9059             fi
9060         done
9061         [ "$IN_ROOT" = "no" ] && continue
9062
9063         case $a in
9064         *winmain/winmain.pro)
9065             if [ "$CFG_NOPROCESS" = "yes" ] || [ "$XPLATFORM_MINGW" != "yes" ]; then
9066                 continue
9067             fi
9068             SPEC=$XQMAKESPEC ;;
9069         *s60main/s60main.pro)
9070             if [ "$CFG_NOPROCESS" = "yes" ] || [ "$XPLATFORM_SYMBIAN" != "yes" ]; then
9071                 continue
9072             fi;;
9073         *examples/activeqt/*) continue ;;
9074         */qmake/qmake.pro) continue ;;
9075         *tools/bootstrap*|*tools/moc*|*tools/rcc*|*tools/uic*|*linguist/lrelease*) SPEC=$QMAKESPEC ;;
9076         *) if [ "$CFG_NOPROCESS" = "yes" ]; then
9077               continue
9078            else
9079               SPEC=$XQMAKESPEC
9080            fi;;
9081         esac
9082         dir=`dirname "$a" | sed -e "s;$sepath;.;g"`
9083         test -d "$dir" || mkdir -p "$dir"
9084         OUTDIR="$outpath/$dir"
9085         if [ -f "${OUTDIR}/Makefile" ] && [ "$OPT_FAST" = "yes" ]; then
9086             # fast configure - the makefile exists, skip it
9087             # since the makefile exists, it was generated by qmake, which means we
9088             # can skip it, since qmake has a rule to regenerate the makefile if the .pro
9089             # file changes...
9090             [ "$OPT_VERBOSE" = "yes" ] && echo "  skipping $a"
9091             continue;
9092         fi
9093         QMAKE_SPEC_ARGS="-spec $SPEC"
9094         echo $ECHO_N "  for $a$ECHO_C"
9095
9096         QMAKE="$outpath/bin/qmake"
9097         QMAKE_ARGS="$QMAKE_SWITCHES $QMAKE_SPEC_ARGS"
9098         if [ "$file" = ".projects.3" ]; then
9099             echo " (fast)"
9100
9101             cat >"${OUTDIR}/Makefile" <<EOF
9102 # ${OUTDIR}/Makefile: generated by configure
9103 #
9104 # WARNING: This makefile will be replaced with a real makefile.
9105 # All changes made to this file will be lost.
9106 EOF
9107             [ "$CFG_DEBUG_RELEASE" = "no" ] && echo "first_target: first" >>${OUTDIR}/Makefile
9108
9109             cat >>"${OUTDIR}/Makefile" <<EOF
9110 QMAKE = "$QMAKE"
9111 all clean install qmake first Makefile: FORCE
9112         \$(QMAKE) $QMAKE_ARGS -o "$OUTDIR" "$a"
9113         cd "$OUTDIR"
9114         \$(MAKE) \$@
9115
9116 FORCE:
9117
9118 EOF
9119         else
9120             if [ "$OPT_VERBOSE" = "yes" ]; then
9121                 echo " (`basename $SPEC`)"
9122                 echo "$QMAKE" $QMAKE_ARGS -o "$OUTDIR" "$a"
9123             else
9124                 echo
9125             fi
9126
9127             [ -f "${OUTDIR}/Makefile" ] && chmod +w "${OUTDIR}/Makefile"
9128             QTDIR="$outpath" "$QMAKE" $QMAKE_ARGS -o "$OUTDIR" "$a"
9129        fi
9130     done
9131 done
9132 rm -f .projects .projects.3
9133
9134 #-------------------------------------------------------------------------------
9135 # check for platforms that we don't yet know about
9136 #-------------------------------------------------------------------------------
9137 if [ "$CFG_ARCH" = "generic" ]; then
9138 cat <<EOF
9139
9140         NOTICE: Atomic operations are not yet supported for this
9141         architecture.
9142
9143         Qt will use the 'generic' architecture instead, which uses a
9144         single pthread_mutex_t to protect all atomic operations. This
9145         implementation is the slow (but safe) fallback implementation
9146         for architectures Qt does not yet support.
9147 EOF
9148 fi
9149
9150 #-------------------------------------------------------------------------------
9151 # check if the user passed the -no-zlib option, which is no longer supported
9152 #-------------------------------------------------------------------------------
9153 if [ -n "$ZLIB_FORCED" ]; then
9154     which_zlib="supplied"
9155     if [ "$CFG_ZLIB" = "system" ]; then
9156         which_zlib="system"
9157     fi
9158
9159 cat <<EOF
9160
9161         NOTICE: The -no-zlib option was supplied but is no longer
9162         supported.
9163
9164         Qt now requires zlib support in all builds, so the -no-zlib
9165         option was ignored. Qt will be built using the $which_zlib
9166         zlib.
9167 EOF
9168 fi
9169
9170 #-------------------------------------------------------------------------------
9171 # finally save the executed command to another script
9172 #-------------------------------------------------------------------------------
9173 if [ `basename $0` != "config.status" ]; then
9174     CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
9175
9176     # add the system variables
9177     for varname in $SYSTEM_VARIABLES; do
9178         cmd=`echo \
9179 'if [ -n "\$'${varname}'" ]; then
9180     CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
9181 fi'`
9182         eval "$cmd"
9183     done
9184
9185     echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
9186
9187     [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
9188     echo "#!/bin/sh" > "$outpath/config.status"
9189     echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
9190     echo "  $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
9191     echo "else" >> "$outpath/config.status"
9192     echo "  $CONFIG_STATUS" >> "$outpath/config.status"
9193     echo "fi" >> "$outpath/config.status"
9194     chmod +x "$outpath/config.status"
9195 fi
9196
9197 if [ -n "$RPATH_MESSAGE" ]; then
9198     echo
9199     echo "$RPATH_MESSAGE"
9200 fi
9201
9202 MAKE=`basename "$MAKE"`
9203 echo
9204 echo Qt is now configured for building. Just run \'$MAKE\'.
9205 if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
9206     echo Once everything is built, Qt is installed.
9207     echo You should not run \'$MAKE install\'.
9208 else
9209     echo Once everything is built, you must run \'$MAKE install\'.
9210     echo Qt will be installed into $QT_INSTALL_PREFIX
9211 fi
9212 echo
9213 echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.
9214 echo