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