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