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