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