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