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