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