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