clean up syncqt invocation
[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     if [ "$OPT_SHADOW" = "yes" ]; then
3545         "$outpath/bin/syncqt" $SYNCQT_OPTS "$relpath" || exit 1
3546     elif [ "$CFG_DEV" = "yes" ] || [ ! -d $relpath/include ] || [ -d $relpath/.git ]; then
3547         "$outpath/bin/syncqt" $SYNCQT_OPTS || exit 1
3548     fi
3549 fi
3550
3551 # $1: input variable name (awk regexp)
3552 # $2: optional output variable name
3553 # $3: optional value transformation (sed command)
3554 # relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
3555 # is where the resulting variable is written to
3556 setBootstrapVariable()
3557 {
3558     getQMakeConf "$1" | echo ${2-$1} = `if [ -n "$3" ]; then sed "$3"; else cat; fi` >> "$mkfile"
3559 }
3560
3561 # build qmake
3562 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
3563     echo "Creating qmake. Please wait..."
3564
3565     OLD_QCONFIG_H=
3566     QCONFIG_H="$outpath/src/corelib/global/qconfig.h"
3567     QMAKE_QCONFIG_H="${QCONFIG_H}.qmake"
3568     if [ -f "$QCONFIG_H" ]; then
3569          OLD_QCONFIG_H=$QCONFIG_H
3570          mv -f "$OLD_QCONFIG_H" "${OLD_QCONFIG_H}.old"
3571     fi
3572
3573     # create temporary qconfig.h for compiling qmake, if it doesn't exist
3574     # when building qmake, we use #defines for the install paths,
3575     # however they are real functions in the library
3576     if [ '!' -f "$QMAKE_QCONFIG_H" ]; then
3577         mkdir -p "$outpath/src/corelib/global"
3578         [ -f "$QCONFIG_H" ] && chmod +w "$QCONFIG_H"
3579         echo "/* All features enabled while building qmake */" >"$QMAKE_QCONFIG_H"
3580     fi
3581
3582     mv -f "$QMAKE_QCONFIG_H" "$QCONFIG_H"
3583
3584     #mkspecs/default is used as a (gasp!) default mkspec so QMAKESPEC needn't be set once configured
3585     rm -rf mkspecs/default mkspecs/default-host
3586     ln -s `echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default
3587     ln -s `echo $QMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default-host
3588     mkdir -p "$outpath/qmake" || exit
3589     # fix makefiles
3590     for mkfile in GNUmakefile Makefile; do
3591         EXTRA_LFLAGS=
3592         EXTRA_CFLAGS=
3593         in_mkfile="${mkfile}.in"
3594         if [ "$mkfile" = "Makefile" ]; then
3595 #           if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
3596 #               (cd qmake && qmake) >/dev/null 2>&1 && continue
3597 #           fi
3598             in_mkfile="${mkfile}.unix"
3599         fi
3600         in_mkfile="$relpath/qmake/$in_mkfile"
3601         mkfile="$outpath/qmake/$mkfile"
3602         if [ -f "$mkfile" ]; then
3603             [ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
3604             rm -f "$mkfile"
3605         fi
3606         [ -f "$in_mkfile" ] || continue
3607
3608         echo "########################################################################" > "$mkfile"
3609         echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
3610         echo "########################################################################" >> "$mkfile"
3611         EXTRA_OBJS=
3612         EXTRA_SRCS=
3613         EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
3614         EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
3615         EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
3616
3617         if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then
3618             EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
3619         fi
3620
3621         [ "$CFG_SILENT" = "yes" ] && CC_TRANSFORM='s,^,\@,' || CC_TRANSFORM=
3622         setBootstrapVariable QMAKE_CC CC "$CC_TRANSFORM"
3623         setBootstrapVariable QMAKE_CXX CXX "$CC_TRANSFORM"
3624         setBootstrapVariable QMAKE_CFLAGS
3625         setBootstrapVariable QMAKE_CXXFLAGS
3626         setBootstrapVariable QMAKE_LFLAGS
3627
3628         if [ $QT_EDITION = "QT_EDITION_OPENSOURCE" ]; then
3629             EXTRA_CFLAGS="$EXTRA_CFLAGS -DQMAKE_OPENSOURCE_EDITION"
3630             EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DQMAKE_OPENSOURCE_EDITION"
3631         fi
3632         if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
3633             setBootstrapVariable QMAKE_CFLAGS_RELEASE
3634             setBootstrapVariable QMAKE_CXXFLAGS_RELEASE
3635             EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
3636             EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
3637         elif [ "$CFG_DEBUG" = "yes" ]; then
3638             setBootstrapVariable QMAKE_CFLAGS_DEBUG
3639             setBootstrapVariable QMAKE_CXXFLAGS_DEBUG
3640             EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
3641             EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
3642         fi
3643
3644         if [ -n "$RPATH_FLAGS" ] && [ -n "`getQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
3645             setBootstrapVariable "QMAKE_(LFLAGS_)?RPATH" QMAKE_LFLAGS_RPATH
3646             for rpath in $RPATH_FLAGS; do
3647                 EXTRA_LFLAGS="\$(QMAKE_LFLAGS_RPATH)\"$rpath\" $EXTRA_LFLAGS"
3648             done
3649         fi
3650         if [ "$BUILD_ON_MAC" = "yes" ]; then
3651             echo "export MACOSX_DEPLOYMENT_TARGET = 10.6" >> "$mkfile"
3652             echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
3653             echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
3654             EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
3655             EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
3656             EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
3657             EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
3658             EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
3659             if [ '!' -z "$CFG_SDK" ]; then
3660                 echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
3661                 echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
3662                 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(SDK_CFLAGS)"
3663                 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(SDK_CFLAGS)"
3664                 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(SDK_LFLAGS)"
3665             fi
3666         fi
3667         if [ '!' -z "$D_FLAGS" ]; then
3668             EXTRA_CFLAGS="$EXTRA_CFLAGS $D_FLAGS"
3669         fi
3670         QMAKE_BIN_DIR="$QT_INSTALL_BINS"
3671         [ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
3672         QMAKE_DATA_DIR="$QT_INSTALL_DATA"
3673         [ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
3674         echo >>"$mkfile"
3675         adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
3676         adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
3677         adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
3678         sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
3679             -e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
3680             -e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
3681             -e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
3682             -e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
3683             -e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
3684             -e "s,@QMAKESPEC@,$adjqmakespec,g" -e "s,@QT_VERSION@,$QT_VERSION,g" "$in_mkfile" >>"$mkfile"
3685
3686         if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
3687             (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
3688             sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
3689             sed "s,$outpath,$adjoutpath,g" "$mkfile.tmp" >"$mkfile"
3690             rm "$mkfile.tmp"
3691         fi
3692     done
3693
3694     QMAKE_BUILD_ERROR=no
3695     (cd "$outpath/qmake"; "$MAKE") || QMAKE_BUILD_ERROR=yes
3696     [ '!' -z "$QCONFIG_H" ] && mv -f "$QCONFIG_H" "$QMAKE_QCONFIG_H" #move qmake's qconfig.h to qconfig.h.qmake
3697     [ '!' -z "$OLD_QCONFIG_H" ] && mv -f "${OLD_QCONFIG_H}.old" "$OLD_QCONFIG_H" #put back qconfig.h
3698     [ "$QMAKE_BUILD_ERROR" = "yes" ] && exit 2
3699 fi # Build qmake
3700
3701 #-------------------------------------------------------------------------------
3702 # create a qt.conf for the Qt build tree itself
3703 #-------------------------------------------------------------------------------
3704
3705 QTCONFFILE="$outpath/bin/qt.conf"
3706 cat > "$QTCONFFILE" <<EOF
3707 [EffectivePaths]
3708 Prefix=..
3709 EOF
3710
3711 #-------------------------------------------------------------------------------
3712 # Detect pkg-config
3713 #-------------------------------------------------------------------------------
3714 if [ -z "$PKG_CONFIG" ]; then
3715     # See if PKG_CONFIG is set in the mkspec:
3716     PKG_CONFIG=`getXQMakeConf PKG_CONFIG`
3717 fi
3718 if [ -z "$PKG_CONFIG" ]; then
3719     PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
3720 fi
3721
3722 if [ "$CFG_PKGCONFIG" = "no" ]; then
3723     PKG_CONFIG=
3724 elif [ "$CFG_PKGCONFIG" = "force" ]; then
3725     echo >&2 ""
3726     echo >&2 "You have asked to use pkg-config. Please make sure you have"
3727     echo >&2 "a correctly setup pkg-config environment!"
3728     echo >&2 ""
3729 elif [ -n "$PKG_CONFIG" ]; then
3730     # found a pkg-config
3731     if [ "$QT_CROSS_COMPILE" = "yes" ]; then
3732         # when xcompiling, check environment to see if it's actually usable
3733         if [ -z "$PKG_CONFIG_LIBDIR" ]; then
3734             if [ -n "$CFG_SYSROOT" ] && [ -d "$CFG_SYSROOT/usr/lib/pkgconfig" ]; then
3735                 PKG_CONFIG_LIBDIR=$CFG_SYSROOT/usr/lib/pkgconfig:$CFG_SYSROOT/usr/share/pkgconfig
3736                 if [ -n "$GCC_MACHINE_DUMP" ]; then
3737                     PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:$CFG_SYSROOT/usr/lib/$GCC_MACHINE_DUMP/pkgconfig
3738                 fi
3739                 export PKG_CONFIG_LIBDIR
3740                 echo >&2 "Note: PKG_CONFIG_LIBDIR automatically set to $PKG_CONFIG_LIBDIR"
3741             elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3742                 echo >&2 "Error: PKG_CONFIG_LIBDIR has not been set. This could mean"
3743                 echo >&2 "the host's .pc files will be used (even if you set PKG_CONFIG_PATH)."
3744                 echo >&2 "Set this variable to the directory that contains target .pc files"
3745                 echo >&2 "for pkg-config to function correctly when cross-compiling or"
3746                 echo >&2 "use -force-pkg-config to override this test."
3747                 exit 101
3748             else
3749                 PKG_CONFIG=
3750                 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_LIBDIR is not set."
3751             fi
3752         fi
3753         if [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
3754             if [ -n "$CFG_SYSROOT" ]; then
3755                 PKG_CONFIG_SYSROOT_DIR=$CFG_SYSROOT
3756                 export PKG_CONFIG_SYSROOT_DIR
3757                 echo >&2 "Note: PKG_CONFIG_SYSROOT_DIR automatically set to $PKG_CONFIG_SYSROOT_DIR"
3758             elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3759                 echo >&2 "Error: PKG_CONFIG_SYSROOT_DIR has not been set. Set this variable"
3760                 echo >&2 "to your sysroot for pkg-config to function correctly when cross-compiling"
3761                 echo >&2 "or use -force-pkg-config to override this test."
3762                 exit 101
3763             else
3764                 PKG_CONFIG=
3765                 echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_SYSROOT_DIR is not set."
3766             fi
3767         fi
3768     fi
3769 elif [ "$CFG_PKGCONFIG" = "yes" ]; then
3770     echo >&2 "Could not detect pkg-config from mkspec or PATH."
3771     exit 101
3772 fi
3773
3774 if [ -z "$PKG_CONFIG" ]; then
3775     QT_CONFIG="$QT_CONFIG no-pkg-config"
3776 fi
3777
3778 #-------------------------------------------------------------------------------
3779 # write out device config before we run the test.
3780 #-------------------------------------------------------------------------------
3781 DEVICE_VARS_OUTFILE="$outpath/mkspecs/qdevice.pri"
3782 if cmp -s "$DEVICE_VARS_FILE" "$DEVICE_VARS_OUTFILE"; then
3783     rm -f "$DEVICE_VARS_FILE"
3784 else
3785     mv -f $DEVICE_VARS_FILE "$DEVICE_VARS_OUTFILE"
3786     DEVICE_VARS_FILE="$DEVICE_VARS_OUTFILE"
3787 fi
3788
3789 #-------------------------------------------------------------------------------
3790 # tests that need qmake
3791 #-------------------------------------------------------------------------------
3792
3793 # parameters: path, name, extra args
3794 compileTest()
3795 {
3796     path=config.tests/$1
3797     name=$2
3798     shift 2
3799     "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "$path" "$name" $I_FLAGS $D_FLAGS $L_FLAGS $MAC_SDK_FLAG "$@"
3800 }
3801
3802 #-------------------------------------------------------------------------------
3803 # determine the target and host architectures
3804 #-------------------------------------------------------------------------------
3805
3806 # Use config.tests/arch/arch.pro to have the compiler tell us what the target architecture is
3807 OUTFILE=$outpath/arch.result
3808 "$unixtests/arch.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG" $MAC_SDK_FLAG
3809 if [ $? -eq 0 ]; then
3810     eval `cat "$OUTFILE"`
3811 else
3812     echo
3813     echo "Could not determine the target architecture!"
3814     echo "Turn on verbose messaging (-v) to see the final report."
3815 fi
3816 rm -f "$OUTFILE" 2>/dev/null
3817 [ -z "$CFG_ARCH" ] && CFG_ARCH="unknown"
3818
3819 if [ "$QMAKESPEC" != "$XQMAKESPEC" ]; then
3820     # Do the same test again, using the host compiler
3821     SYSROOT_FLAG= "$unixtests/arch.test" "$QMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "CFG_HOST" $MAC_SDK_FLAG
3822     if [ $? -eq 0 ]; then
3823         eval `cat "$OUTFILE"`
3824     else
3825         echo
3826         echo "Could not determine the host architecture!"
3827         echo "Turn on verbose messaging (-v) to see the final report."
3828     fi
3829     rm -f "$OUTFILE" 2>/dev/null
3830     [ -z "$CFG_HOST_ARCH" ] && CFG_HOST_ARCH="unknown"
3831 else
3832     # not cross compiling, host == target
3833     CFG_HOST_ARCH="$CFG_ARCH"
3834     CFG_HOST_CPUFEATURES="$CFG_CPUFEATURES"
3835 fi
3836 unset OUTFILE
3837
3838 if [ "$OPT_VERBOSE" = "yes" ]; then
3839     echo "System architecture: '$CFG_ARCH'"
3840     echo "Host architecture: '$CFG_HOST_ARCH'"
3841 fi
3842
3843 #-------------------------------------------------------------------------------
3844 # functionality tests
3845 #-------------------------------------------------------------------------------
3846
3847 # Detect C++11 support
3848 if [ "$CFG_CXX11" != "no" ]; then
3849     if compileTest unix/c++11 "C++11"; then
3850         CFG_CXX11="yes"
3851     elif [ "$CFG_CXX11" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
3852         echo "C++11 support cannot be enabled due to functionality tests!"
3853         echo " Turn on verbose messaging (-v) to $0 to see the final report."
3854         echo " If you believe this message is in error you may use the continue"
3855         echo " switch (-continue) to $0 to continue."
3856         exit 101
3857     else
3858         CFG_CXX11="no"
3859     fi
3860 fi
3861
3862 # detect availability of float math.h functions
3863 if compileTest unix/floatmath "floatmath"; then
3864     CFG_USE_FLOATMATH=yes
3865 else
3866     CFG_USE_FLOATMATH=no
3867 fi
3868
3869 # detect sse2 support
3870 if [ "${CFG_SSE2}" = "auto" ]; then
3871     if compileTest common/sse2 "sse2"; then
3872        CFG_SSE2=yes
3873     else
3874        CFG_SSE2=no
3875     fi
3876 fi
3877
3878 # detect sse3 support
3879 if [ "${CFG_SSE3}" = "auto" ]; then
3880     if compileTest common/sse3 "sse3"; then
3881        CFG_SSE3=yes
3882     else
3883        CFG_SSE3=no
3884     fi
3885 fi
3886
3887 # detect ssse3 support
3888 if [ "${CFG_SSSE3}" = "auto" ]; then
3889     if compileTest common/ssse3 "ssse3"; then
3890        CFG_SSSE3=yes
3891     else
3892        CFG_SSSE3=no
3893     fi
3894 fi
3895
3896 # detect sse4.1 support
3897 if [ "${CFG_SSE4_1}" = "auto" ]; then
3898     if compileTest common/sse4_1 "sse4_1"; then
3899        CFG_SSE4_1=yes
3900     else
3901        CFG_SSE4_1=no
3902     fi
3903 fi
3904
3905 # detect sse4.2 support
3906 if [ "${CFG_SSE4_2}" = "auto" ]; then
3907     if compileTest common/sse4_2 "sse4_2"; then
3908        CFG_SSE4_2=yes
3909     else
3910        CFG_SSE4_2=no
3911     fi
3912 fi
3913
3914 # detect avx support
3915 if [ "${CFG_AVX}" = "auto" ]; then
3916     if compileTest common/avx "avx"; then
3917        case "$XQMAKESPEC" in
3918            *g++*|*-clang*)
3919                # Some clang versions produce internal compiler errors compiling Qt AVX code
3920                case `$TEST_COMPILER --version` in
3921                    Apple\ clang\ version\ 2*|Apple\ clang\ version\ 3.0*)
3922                        CFG_AVX=no
3923                        if [ "$OPT_VERBOSE" = "yes" ]; then
3924                            echo 'AVX support disabled for blacklisted clang compiler'
3925                        fi
3926                        ;;
3927                    *)
3928                        CFG_AVX=yes
3929                        ;;
3930                esac
3931                ;;
3932            *)
3933                CFG_AVX=yes
3934                ;;
3935        esac
3936     else
3937        CFG_AVX=no
3938     fi
3939 fi
3940
3941 # detect avx2 support
3942 if [ "${CFG_AVX}" = "no" ]; then
3943     CFG_AVX2=no
3944 fi
3945 if [ "${CFG_AVX2}" = "auto" ]; then
3946     if compileTest common/avx2 "avx2"; then
3947        CFG_AVX2=yes
3948     else
3949        CFG_AVX2=no
3950     fi
3951 fi
3952
3953 # check iWMMXt support
3954 if [ "$CFG_IWMMXT" = "yes" ]; then
3955     compileTest unix/iwmmxt "iwmmxt"
3956     if [ $? != "0" ]; then
3957         echo "The iWMMXt functionality test failed!"
3958         echo " Please make sure your compiler supports iWMMXt intrinsics!"
3959         exit 1
3960     fi
3961 fi
3962
3963 # detect neon support
3964 if [ "$CFG_ARCH" = "arm" ] && [ "${CFG_NEON}" = "auto" ]; then
3965     if compileTest unix/neon "neon"; then
3966         CFG_NEON=yes
3967     else
3968         CFG_NEON=no
3969     fi
3970 elif [ "$CFG_ARCH" != "arm" ]; then
3971     CFG_NEON=no
3972 fi
3973
3974 # detect mips_dsp support
3975 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSP}" = "auto" ]; then
3976     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
3977         CFG_MIPS_DSP=yes
3978     else
3979         CFG_MIPS_DSP=no
3980     fi
3981 elif [ "$CFG_ARCH" != "mips" ]; then
3982     CFG_MIPS_DSP=no
3983 fi
3984
3985 # detect mips_dspr2 support
3986 if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSPR2}" = "auto" ]; then
3987     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
3988         CFG_MIPS_DSPR2=yes
3989     else
3990         CFG_MIPS_DSPR2=no
3991     fi
3992 elif [ "$CFG_ARCH" != "mips" ]; then
3993     CFG_MIPS_DSPR2=no
3994 fi
3995
3996 [ "$XPLATFORM_MINGW" = "yes" ] && QMakeVar add styles "windowsxp windowsvista"
3997
3998 # detect zlib
3999 if [ "$CFG_ZLIB" = "no" ]; then
4000     # Note: Qt no longer support builds without zlib
4001     # So we force a "no" to be "auto" here.
4002     # If you REALLY really need no zlib support, you can still disable
4003     # it by doing the following:
4004     #   add "no-zlib" to mkspecs/qconfig.pri
4005     #   #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
4006     #
4007     # There's no guarantee that Qt will build under those conditions
4008
4009     CFG_ZLIB=auto
4010     ZLIB_FORCED=yes
4011 fi
4012 if [ "$CFG_ZLIB" = "auto" ]; then
4013     if compileTest unix/zlib "zlib"; then
4014        CFG_ZLIB=system
4015     else
4016        CFG_ZLIB=yes
4017     fi
4018 fi
4019
4020 if [ "$CFG_LARGEFILE" = "auto" ]; then
4021     #Large files should be enabled for all Linux systems
4022     CFG_LARGEFILE=yes
4023 fi
4024
4025 if [ "$CFG_GUI" = "no" ]; then
4026     QPA_PLATFORM_GUARD=no
4027 fi
4028
4029 # detect how jpeg should be built
4030 if [ "$CFG_JPEG" = "auto" ]; then
4031     if [ "$CFG_SHARED" = "yes" ]; then
4032         CFG_JPEG=plugin
4033     else
4034         CFG_JPEG=yes
4035     fi
4036 fi
4037 # detect jpeg
4038 if [ "$CFG_LIBJPEG" = "auto" ]; then
4039     if compileTest unix/libjpeg "libjpeg"; then
4040        CFG_LIBJPEG=system
4041     else
4042        CFG_LIBJPEG=qt
4043     fi
4044 fi
4045
4046 # detect how gif should be built
4047 if [ "$CFG_GIF" = "auto" ]; then
4048     if [ "$CFG_SHARED" = "yes" ]; then
4049         CFG_GIF=plugin
4050     else
4051         CFG_GIF=yes
4052     fi
4053 fi
4054
4055 # detect png
4056 if [ "$CFG_LIBPNG" = "auto" ]; then
4057     if compileTest unix/libpng "libpng"; then
4058        CFG_LIBPNG=system
4059     else
4060        CFG_LIBPNG=qt
4061     fi
4062 fi
4063
4064 if [ "$CFG_EGLFS" = "yes" ]; then
4065     if [ "$CFG_EGL" = "no" ]; then
4066         echo "The EGLFS plugin requires EGL support and cannot be built"
4067         exit 101
4068     fi
4069     if [ "$CFG_OPENGL" != "es2" ]; then
4070         echo "The EGLFS plugin requires OpenGL ES 2 support and cannot be built"
4071         exit 101
4072     fi
4073     CFG_OPENGL="es2"
4074     CFG_EGL=yes
4075 fi
4076
4077 if [ "$CFG_KMS" = "yes" ]; then
4078     if [ "$CFG_EGL" = "no" ]; then
4079         echo "The KMS plugin requires EGL support and cannot be built"
4080         exit 101
4081     fi
4082     if [ "$CFG_OPENGL" != "es2" ]; then
4083         echo "The KMS plugin requires OpenGL ES 2 support and cannot be built"
4084         exit 101
4085     fi
4086 fi
4087
4088 # auto-detect SQL-modules support
4089 for _SQLDR in $CFG_SQL_AVAILABLE; do
4090         case $_SQLDR in
4091         mysql)
4092             if [ "$CFG_SQL_mysql" != "no" ]; then
4093                 [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
4094                 if [ -x "$CFG_MYSQL_CONFIG" ]; then
4095                     QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null | filterIncludeOptions`
4096                     QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null | filterLibraryOptions`
4097                     QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null | filterLibraryOptions`
4098                     QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
4099                     QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
4100                 fi
4101                 if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
4102                     if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4103                         echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
4104                         echo " You need MySql 4 or higher."
4105                         echo " If you believe this message is in error you may use the continue"
4106                         echo " switch (-continue) to $0 to continue."
4107                         exit 101
4108                     else
4109                         CFG_SQL_mysql="no"
4110                         QT_LFLAGS_MYSQL=""
4111                         QT_LFLAGS_MYSQL_R=""
4112                         QT_CFLAGS_MYSQL=""
4113                     fi
4114                 else
4115                     if compileTest unix/mysql_r "MySQL (thread-safe)" $QT_LFLAGS_MYSQL_R $QT_CFLAGS_MYSQL; then
4116                         QMakeVar add CONFIG use_libmysqlclient_r
4117                         if [ "$CFG_SQL_mysql" = "auto" ]; then
4118                             CFG_SQL_mysql=plugin
4119                         fi
4120                         QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
4121                     elif compileTest unix/mysql "MySQL (thread-unsafe)" $QT_LFLAGS_MYSQL $QT_CFLAGS_MYSQL; then
4122                         if [ "$CFG_SQL_mysql" = "auto" ]; then
4123                             CFG_SQL_mysql=plugin
4124                         fi
4125                     else
4126                         if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4127                             echo "MySQL support cannot be enabled due to functionality tests!"
4128                             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4129                             echo " If you believe this message is in error you may use the continue"
4130                             echo " switch (-continue) to $0 to continue."
4131                             exit 101
4132                         else
4133                             CFG_SQL_mysql=no
4134                             QT_LFLAGS_MYSQL=""
4135                             QT_LFLAGS_MYSQL_R=""
4136                             QT_CFLAGS_MYSQL=""
4137                         fi
4138                     fi
4139                 fi
4140             fi
4141             ;;
4142         psql)
4143             if [ "$CFG_SQL_psql" != "no" ]; then
4144                 # Be careful not to use native pg_config when cross building.
4145                 if [ "$XPLATFORM_MINGW" != "yes" ] && "$WHICH" pg_config >/dev/null 2>&1; then
4146                     QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null | filterIncludePath`
4147                     QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null | filterLibraryPath`
4148                 fi
4149                 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
4150                 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
4151                 # But, respect PSQL_LIBS if set
4152                 [ -z "$PSQL_LIBS" ] || QT_LFLAGS_PSQL="$PSQL_LIBS"
4153                 if compileTest unix/psql "PostgreSQL" $QT_LFLAGS_PSQL $QT_CFLAGS_PSQL; then
4154                     if [ "$CFG_SQL_psql" = "auto" ]; then
4155                         CFG_SQL_psql=plugin
4156                     fi
4157                 else
4158                     if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4159                         echo "PostgreSQL support cannot be enabled due to functionality tests!"
4160                         echo " Turn on verbose messaging (-v) to $0 to see the final report."
4161                         echo " If you believe this message is in error you may use the continue"
4162                         echo " switch (-continue) to $0 to continue."
4163                         exit 101
4164                     else
4165                         CFG_SQL_psql=no
4166                         QT_CFLAGS_PSQL=""
4167                         QT_LFLAGS_PSQL=""
4168                     fi
4169                 fi
4170             fi
4171         ;;
4172         odbc)
4173             if [ "$CFG_SQL_odbc" != "no" ]; then
4174                 if ( [ "$BUILD_ON_MAC" != "yes" ] || [ "$XPLATFORM_MINGW" = "yes" ] ) && compileTest unix/odbc "ODBC"; then
4175                     if [ "$CFG_SQL_odbc" = "auto" ]; then
4176                         CFG_SQL_odbc=plugin
4177                     fi
4178                 else
4179                     if compileTest unix/iodbc "iODBC"; then
4180                         QT_LFLAGS_ODBC="-liodbc"
4181                         if [ "$CFG_SQL_odbc" = "auto" ]; then
4182                             CFG_SQL_odbc=plugin
4183                         fi
4184                     else
4185                         if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4186                             echo "ODBC support cannot be enabled due to functionality tests!"
4187                             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4188                             echo " If you believe this message is in error you may use the continue"
4189                             echo " switch (-continue) to $0 to continue."
4190                             exit 101
4191                         else
4192                             CFG_SQL_odbc=no
4193                         fi
4194                     fi
4195                 fi
4196             fi
4197             ;;
4198         oci)
4199             if [ "$CFG_SQL_oci" != "no" ]; then
4200                 if compileTest unix/oci "OCI"; then
4201                     if [ "$CFG_SQL_oci" = "auto" ]; then
4202                         CFG_SQL_oci=plugin
4203                     fi
4204                 else
4205                     if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4206                         echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
4207                         echo " Turn on verbose messaging (-v) to $0 to see the final report."
4208                         echo " If you believe this message is in error you may use the continue"
4209                         echo " switch (-continue) to $0 to continue."
4210                         exit 101
4211                     else
4212                         CFG_SQL_oci=no
4213                     fi
4214                 fi
4215             fi
4216             ;;
4217         tds)
4218             if [ "$CFG_SQL_tds" != "no" ]; then
4219                 [ -z "$SYBASE" ] || QT_LFLAGS_TDS="-L$SYBASE/lib"
4220                 [ -z "$SYBASE_LIBS" ] || QT_LFLAGS_TDS="$QT_LFLAGS_TDS $SYBASE_LIBS"
4221                 if compileTest unix/tds "TDS" $QT_LFLAGS_TDS; then
4222                     if [ "$CFG_SQL_tds" = "auto" ]; then
4223                         CFG_SQL_tds=plugin
4224                     fi
4225                 else
4226                     if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4227                         echo "TDS support cannot be enabled due to functionality tests!"
4228                         echo " Turn on verbose messaging (-v) to $0 to see the final report."
4229                         echo " If you believe this message is in error you may use the continue"
4230                         echo " switch (-continue) to $0 to continue."
4231                         exit 101
4232                     else
4233                         CFG_SQL_tds=no
4234                     fi
4235                 fi
4236             fi
4237             ;;
4238         db2)
4239             if [ "$CFG_SQL_db2" != "no" ]; then
4240                 if compileTest unix/db2 "DB2"; then
4241                     if [ "$CFG_SQL_db2" = "auto" ]; then
4242                         CFG_SQL_db2=plugin
4243                     fi
4244                 else
4245                     if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4246                         echo "ODBC support cannot be enabled due to functionality tests!"
4247                         echo " Turn on verbose messaging (-v) to $0 to see the final report."
4248                         echo " If you believe this message is in error you may use the continue"
4249                         echo " switch (-continue) to $0 to continue."
4250                         exit 101
4251                     else
4252                         CFG_SQL_db2=no
4253                     fi
4254                 fi
4255             fi
4256             ;;
4257         ibase)
4258             if [ "$CFG_SQL_ibase" != "no" ]; then
4259                 if compileTest unix/ibase "InterBase"; then
4260                     if [ "$CFG_SQL_ibase" = "auto" ]; then
4261                         CFG_SQL_ibase=plugin
4262                     fi
4263                 else
4264                     if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4265                         echo "InterBase support cannot be enabled due to functionality tests!"
4266                         echo " Turn on verbose messaging (-v) to $0 to see the final report."
4267                         echo " If you believe this message is in error you may use the continue"
4268                         echo " switch (-continue) to $0 to continue."
4269                         exit 101
4270                     else
4271                         CFG_SQL_ibase=no
4272                     fi
4273                 fi
4274             fi
4275             ;;
4276         sqlite2)
4277             if [ "$CFG_SQL_sqlite2" != "no" ]; then
4278                 if compileTest unix/sqlite2 "SQLite2"; then
4279                     if [ "$CFG_SQL_sqlite2" = "auto" ]; then
4280                         CFG_SQL_sqlite2=plugin
4281                     fi
4282                 else
4283                     if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4284                         echo "SQLite2 support cannot be enabled due to functionality tests!"
4285                         echo " Turn on verbose messaging (-v) to $0 to see the final report."
4286                         echo " If you believe this message is in error you may use the continue"
4287                         echo " switch (-continue) to $0 to continue."
4288                         exit 101
4289                     else
4290                         CFG_SQL_sqlite2=no
4291                     fi
4292                 fi
4293             fi
4294             ;;
4295         sqlite)
4296             if [ "$CFG_SQL_sqlite" != "no" ]; then
4297                 SQLITE_AUTODETECT_FAILED="no"
4298                 if [ "$CFG_SQLITE" = "system" ]; then
4299                     if [ -n "$PKG_CONFIG" ]; then
4300                         QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
4301                         QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
4302                     else
4303                         QT_CFLAGS_SQLITE=
4304                         QT_LFLAGS_SQLITE="-lsqlite3 -lz"
4305                     fi
4306                     if compileTest unix/sqlite "SQLite" $QT_LFLAGS_SQLITE $QT_CFLAGS_SQLITE; then
4307                         if [ "$CFG_SQL_sqlite" = "auto" ]; then
4308                             CFG_SQL_sqlite=plugin
4309                         fi
4310                         QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
4311                     else
4312                         SQLITE_AUTODETECT_FAILED="yes"
4313                         CFG_SQL_sqlite=no
4314                     fi
4315                 elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
4316                     if [ "$CFG_SQL_sqlite" = "auto" ]; then
4317                             CFG_SQL_sqlite=plugin
4318                     fi
4319                 else
4320                     SQLITE_AUTODETECT_FAILED="yes"
4321                     CFG_SQL_sqlite=no
4322                 fi
4323
4324                 if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4325                     echo "SQLite support cannot be enabled due to functionality tests!"
4326                     echo " Turn on verbose messaging (-v) to $0 to see the final report."
4327                     echo " If you believe this message is in error you may use the continue"
4328                     echo " switch (-continue) to $0 to continue."
4329                     exit 101
4330                 fi
4331             fi
4332             ;;
4333         *)
4334             if [ "$OPT_VERBOSE" = "yes" ]; then
4335                 echo "unknown SQL driver: $_SQLDR"
4336             fi
4337             ;;
4338         esac
4339 done
4340
4341 # auto-detect NIS support
4342 if [ "$CFG_NIS" != "no" ]; then
4343     if compileTest unix/nis "NIS"; then
4344         CFG_NIS=yes
4345     else
4346         if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4347             echo "NIS support cannot be enabled due to functionality tests!"
4348             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4349             echo " If you believe this message is in error you may use the continue"
4350             echo " switch (-continue) to $0 to continue."
4351             exit 101
4352         else
4353             CFG_NIS=no
4354         fi
4355     fi
4356 fi
4357
4358 # auto-detect CUPS support
4359 if [ "$CFG_CUPS" != "no" ]; then
4360     if compileTest unix/cups "Cups"; then
4361         CFG_CUPS=yes
4362     else
4363         if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4364             echo "Cups support cannot be enabled due to functionality tests!"
4365             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4366             echo " If you believe this message is in error you may use the continue"
4367             echo " switch (-continue) to $0 to continue."
4368             exit 101
4369         else
4370             CFG_CUPS=no
4371         fi
4372     fi
4373 fi
4374
4375 # auto-detect iconv(3) support
4376 if [ "$CFG_ICONV" != "no" ]; then
4377     if [ "$XPLATFORM_MINGW" = "yes" ]; then
4378         CFG_ICONV=no
4379     elif compileTest unix/iconv "POSIX iconv"; then
4380         CFG_ICONV=yes
4381     elif compileTest unix/sun-libiconv "SUN libiconv"; then
4382         CFG_ICONV=sun
4383     elif compileTest unix/gnu-libiconv "GNU libiconv"; then
4384         CFG_ICONV=gnu
4385     else
4386         if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4387             echo "Iconv support cannot be enabled due to functionality tests!"
4388             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4389             echo " If you believe this message is in error you may use the continue"
4390             echo " switch (-continue) to $0 to continue."
4391             exit 101
4392         else
4393             CFG_ICONV=no
4394         fi
4395     fi
4396 fi
4397
4398 # auto-detect libdbus-1 support
4399 if [ "$CFG_DBUS" != "no" ]; then
4400     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
4401         QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
4402         QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
4403     fi
4404     if compileTest unix/dbus "D-Bus" $QT_CFLAGS_DBUS $QT_LIBS_DBUS; then
4405         [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
4406         QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
4407         QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
4408     else
4409         if [ "$CFG_DBUS" = "auto" ]; then
4410             CFG_DBUS=no
4411         elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4412             # CFG_DBUS is "yes" or "linked" here
4413
4414             echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
4415             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4416             echo " If you believe this message is in error you may use the continue"
4417             echo " switch (-continue) to $0 to continue."
4418             exit 101
4419         fi
4420     fi
4421 fi
4422
4423 # auto-detect Glib support
4424 if [ "$CFG_GLIB" != "no" ]; then
4425     if [ -n "$PKG_CONFIG" ]; then
4426         QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
4427         QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
4428     fi
4429     if compileTest unix/glib "Glib" $QT_CFLAGS_GLIB $QT_LIBS_GLIB; then
4430         CFG_GLIB=yes
4431         QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
4432         QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
4433     else
4434         if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4435             echo "Glib support cannot be enabled due to functionality tests!"
4436             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4437             echo " If you believe this message is in error you may use the continue"
4438             echo " switch (-continue) to $0 to continue."
4439             exit 101
4440         else
4441             CFG_GLIB=no
4442         fi
4443     fi
4444 fi
4445
4446 # auto-detect GTK style support
4447 if [ "$CFG_GLIB" = "yes" -a "$CFG_QGTKSTYLE" != "no" ]; then
4448     if [ -n "$PKG_CONFIG" ]; then
4449         QT_CFLAGS_QGTKSTYLE=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.10 atk 2>/dev/null`
4450         QT_LIBS_QGTKSTYLE=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null`
4451     fi
4452     if [ -n "$QT_CFLAGS_QGTKSTYLE" ] ; then
4453         CFG_QGTKSTYLE=yes
4454         QT_CONFIG="$QT_CONFIG gtkstyle"
4455         QMakeVar set QT_CFLAGS_QGTKSTYLE "$QT_CFLAGS_QGTKSTYLE"
4456         QMakeVar set QT_LIBS_QGTKSTYLE "$QT_LIBS_QGTKSTYLE"
4457     else
4458         if [ "$CFG_QGTKSTYLE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4459             echo "Gtk theme support cannot be enabled due to functionality tests!"
4460             echo " Turn on verbose messaging (-v) to $0 to see the fin  al report."
4461             echo " If you believe this message is in error you may use the continue"
4462             echo " switch (-continue) to $0 to continue."
4463             exit 101
4464         else
4465             CFG_QGTKSTYLE=no
4466         fi
4467     fi
4468 elif [ "$CFG_GLIB" = "no" ]; then
4469     CFG_QGTKSTYLE=no
4470 fi
4471
4472 # ### Vestige
4473 if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
4474     if [ -n "$PKG_CONFIG" ]; then
4475         QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4476         QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4477     fi
4478     if compileTest unix/gstreamer "GStreamer" $QT_CFLAGS_GSTREAMER $QT_LIBS_GSTREAMER; then
4479         CFG_GSTREAMER=yes
4480         QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
4481         QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
4482     else
4483         if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4484             echo "Gstreamer support cannot be enabled due to functionality tests!"
4485             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4486             echo " If you believe this message is in error you may use the continue"
4487             echo " switch (-continue) to $0 to continue."
4488             exit 101
4489         else
4490             CFG_GSTREAMER=no
4491         fi
4492     fi
4493 elif [ "$CFG_GLIB" = "no" ]; then
4494     CFG_GSTREAMER=no
4495 fi
4496
4497 # auto-detect libicu support
4498 if [ "$CFG_ICU" != "no" ]; then
4499     if compileTest unix/icu "ICU"; then
4500         [ "$CFG_ICU" = "auto" ] && CFG_ICU=yes
4501     else
4502         if [ "$CFG_ICU" = "auto" ]; then
4503             CFG_ICU=no
4504         elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4505             # CFG_ICU is "yes"
4506
4507             echo "The ICU library support cannot be enabled."
4508             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4509             echo " If you believe this message is in error you may use the continue"
4510             echo " switch (-continue) to $0 to continue."
4511             exit 101
4512         fi
4513     fi
4514 fi
4515
4516 # Auto-detect PulseAudio support
4517 if [ "$CFG_PULSEAUDIO" != "no" ]; then
4518     if [ -n "$PKG_CONFIG" ]; then
4519         QT_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4520         QT_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null`
4521     fi
4522     if compileTest unix/pulseaudio "PulseAudio" $QT_CFLAGS_PULSEAUDIO $QT_LIBS_PULSEAUDIO; then
4523         CFG_PULSEAUDIO=yes
4524         QMakeVar set QT_CFLAGS_PULSEAUDIO "$QT_CFLAGS_PULSEAUDIO"
4525         QMakeVar set QT_LIBS_PULSEAUDIO "$QT_LIBS_PULSEAUDIO"
4526     else
4527         if [ "$CFG_PULSEAUDIO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4528             echo "PulseAudio support cannot be enabled due to functionality tests!"
4529             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4530             echo " If you believe this message is in error you may use the continue"
4531             echo " switch (-continue) to $0 to continue."
4532             exit 101
4533         else
4534             CFG_PULSEAUDIO=no
4535         fi
4536     fi
4537 fi
4538
4539 # X11/MINGW OpenGL
4540 if [ "$XPLATFORM_MINGW" = "yes" ]; then
4541     # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4542     if [ "$CFG_GUI" = "no" ]; then
4543         if [ "$CFG_OPENGL" = "auto" ]; then
4544             CFG_OPENGL=no
4545         fi
4546         if [ "$CFG_OPENGL" != "no" ]; then
4547             echo "OpenGL enabled, but GUI disabled."
4548             echo " You might need to either enable the GUI or disable OpenGL"
4549             exit 1
4550         fi
4551     fi
4552     if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4553         if compileTest x11/opengl "OpenGL"; then
4554             CFG_OPENGL=desktop
4555         elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4556             CFG_OPENGL=es2
4557         else
4558             if [ "$CFG_OPENGL" = "yes" ]; then
4559                 echo "All the OpenGL functionality tests failed!"
4560                 echo " You might need to modify the include and library search paths by editing"
4561                 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4562                 echo " ${XQMAKESPEC}."
4563                 exit 1
4564             fi
4565             CFG_OPENGL=no
4566         fi
4567         case "$PLATFORM" in
4568         hpux*)
4569             # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4570             if [ "$CFG_OPENGL" = "desktop" ]; then
4571                 compileTest x11/glxfbconfig "OpenGL"
4572                 if [ $? != "0" ]; then
4573                     QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4574                 fi
4575             fi
4576             ;;
4577         *)
4578             ;;
4579         esac
4580     elif [ "$CFG_OPENGL" = "es2" ]; then
4581         #OpenGL ES 2.x
4582         compileTest unix/opengles2 "OpenGL ES 2.x"
4583         if [ $? != "0" ]; then
4584             echo "The OpenGL ES 2.0 functionality test failed!"
4585             echo " You might need to modify the include and library search paths by editing"
4586             echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4587             echo " ${XQMAKESPEC}."
4588             exit 1
4589         fi
4590     elif [ "$CFG_OPENGL" = "desktop" ]; then
4591         # Desktop OpenGL support
4592         compileTest x11/opengl "OpenGL"
4593         if [ $? != "0" ]; then
4594             echo "The OpenGL functionality test failed!"
4595             echo " You might need to modify the include and library search paths by editing"
4596             echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4597             echo " ${XQMAKESPEC}."
4598             exit 1
4599         fi
4600         case "$PLATFORM" in
4601         hpux*)
4602             # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4603             compileTest x11/glxfbconfig "OpenGL"
4604             if [ $? != "0" ]; then
4605                 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4606             fi
4607             ;;
4608         *)
4609             ;;
4610         esac
4611     fi
4612 fi # X11/MINGW OpenGL
4613
4614 if [ "$BUILD_ON_MAC" = "yes" ]; then
4615     if [ "$CFG_COREWLAN" = "auto" ]; then
4616         if compileTest mac/corewlan "CoreWlan"; then
4617             CFG_COREWLAN=yes
4618         else
4619             CFG_COREWLAN=no
4620         fi
4621     fi
4622 fi
4623
4624 # auto-detect OpenGL support (es2 = OpenGL ES 2.x)
4625 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4626     if compileTest unix/opengldesktop "OpenGL"; then
4627         CFG_OPENGL=desktop
4628     elif compileTest unix/opengles2 "OpenGL ES 2.x"; then
4629         CFG_OPENGL=es2
4630     else
4631         if [ "$CFG_OPENGL" = "yes" ]; then
4632             echo "All the OpenGL functionality tests failed!"
4633             echo " You might need to modify the include and library search paths by editing"
4634             echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4635             echo " ${XQMAKESPEC}."
4636             exit 1
4637         fi
4638         CFG_OPENGL=no
4639     fi
4640 elif [ "$CFG_OPENGL" = "es2" ]; then
4641     #OpenGL ES 2.x
4642     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists glesv2 2>/dev/null; then
4643         QMAKE_INCDIR_OPENGL_ES2=`$PKG_CONFIG --cflags-only-I glesv2 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4644         QMAKE_LIBDIR_OPENGL_ES2=`$PKG_CONFIG --libs-only-L glesv2 2>/dev/null | sed -e 's,^-L,,g' -e 's, -L, ,g'`
4645         QMAKE_LIBS_OPENGL_ES2=`$PKG_CONFIG --libs glesv2 2>/dev/null`
4646         QMAKE_CFLAGS_OPENGL_ES2=`$PKG_CONFIG --cflags glesv2 2>/dev/null`
4647         QMakeVar set QMAKE_INCDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`"
4648         QMakeVar set QMAKE_LIBDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBDIR_OPENGL_ES2"`"
4649         QMakeVar set QMAKE_LIBS_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBS_OPENGL_ES2"`"
4650     fi
4651
4652     compileTest unix/opengles2 "OpenGL ES 2.x" $QMAKE_LIBS_OPENGL_ES2 $QMAKE_CFLAGS_OPENGL_ES2
4653     if [ $? != "0" ]; then
4654         echo "The OpenGL ES 2.0 functionality test failed!"
4655         echo " You might need to modify the include and library search paths by editing"
4656         echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in"
4657         echo " ${XQMAKESPEC}."
4658         exit 1
4659     fi
4660 elif [ "$CFG_OPENGL" = "desktop" ]; then
4661     # Desktop OpenGL support
4662     compileTest unix/opengldesktop "OpenGL"
4663     if [ $? != "0" ]; then
4664         echo "The OpenGL functionality test failed!"
4665         echo " You might need to modify the include and library search paths by editing"
4666         echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4667         echo " ${XQMAKESPEC}."
4668         exit 1
4669     fi
4670 fi
4671
4672 # auto-detect FontConfig support
4673 if [ "$CFG_FONTCONFIG" != "no" ]; then
4674     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then
4675         QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null`
4676         QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null`
4677     else
4678         QT_CFLAGS_FONTCONFIG=
4679         QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
4680     fi
4681     if compileTest unix/fontconfig "FontConfig" $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then
4682         QT_CONFIG="$QT_CONFIG fontconfig"
4683         QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG"
4684         QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG"
4685         CFG_FONTCONFIG=yes
4686         CFG_LIBFREETYPE=system
4687     else
4688         CFG_FONTCONFIG=no
4689     fi
4690
4691 fi
4692
4693 # Save these for a check later
4694 ORIG_CFG_XCB="$CFG_XCB"
4695 ORIG_CFG_EGLFS="$CFG_EGLFS"
4696 ORIG_CFG_DIRECTFB="$CFG_DIRECTFB"
4697 ORIG_CFG_LINUXFB="$CFG_LINUXFB"
4698 ORIG_CFG_KMS="$CFG_KMS"
4699
4700 if [ "$CFG_LIBUDEV" != "no" ]; then
4701     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then
4702         QMAKE_INCDIR_LIBUDEV=`$PKG_CONFIG --cflags-only-I libudev 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4703         QMAKE_LIBS_LIBUDEV=`$PKG_CONFIG --libs libudev 2>/dev/null`
4704         QMakeVar set QMAKE_INCDIR_LIBUDEV "$QMAKE_INCDIR_LIBUDEV"
4705         QMakeVar set QMAKE_LIBS_LIBUDEV "$QMAKE_LIBS_LIBUDEV"
4706     fi
4707     if compileTest unix/libudev "libudev" $QMAKE_INCDIR_LIBUDEV $QMAKE_LIBS_LIBUDEV; then
4708         CFG_LIBUDEV=yes
4709         QT_CONFIG="$QT_CONFIG libudev"
4710     elif [ "$CFG_LIBUDEV" = "yes" ]; then
4711         echo "The libudev functionality test failed!"
4712         exit 1
4713     else
4714         CFG_LIBUDEV=no
4715     fi
4716 fi
4717 if [ "$CFG_LIBUDEV" = "no" ]; then
4718     QMakeVar add DEFINES QT_NO_LIBUDEV
4719 fi
4720
4721 if [ "$CFG_EVDEV" != "no" ]; then
4722     if compileTest unix/evdev "evdev"; then
4723         CFG_EVDEV=yes
4724         QT_CONFIG="$QT_CONFIG evdev"
4725     elif [ "$CFG_EVDEV" = "yes" ]; then
4726         echo "The evdev functionality test failed!"
4727         exit 1
4728     else
4729         CFG_EVDEV=no
4730     fi
4731 fi
4732 if [ "$CFG_EVDEV" = "no" ]; then
4733     QMakeVar add DEFINES QT_NO_EVDEV
4734 fi
4735
4736 # Check we actually have X11 :-)
4737 if compileTest x11/xlib "XLib"; then
4738     QT_CONFIG="$QT_CONFIG xlib"
4739 fi
4740
4741 # auto-detect Xrender support
4742 if [ "$CFG_XRENDER" != "no" ]; then
4743     if compileTest x11/xrender "Xrender"; then
4744         CFG_XRENDER=yes
4745         QT_CONFIG="$QT_CONFIG xrender"
4746     else
4747         if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4748             echo "Xrender support cannot be enabled due to functionality tests!"
4749             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4750             echo " If you believe this message is in error you may use the continue"
4751             echo " switch (-continue) to $0 to continue."
4752             exit 101
4753         else
4754             CFG_XRENDER=no
4755         fi
4756     fi
4757 fi
4758
4759 if [ "$CFG_XCB" != "no" ]; then
4760     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then
4761         QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb xcb-image xcb-keysyms xcb-icccm xcb-sync xcb-xfixes xcb-randr 2>/dev/null`"
4762         QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb xcb-image xcb-keysyms xcb-icccm xcb-sync xcb-xfixes xcb-randr 2>/dev/null`"
4763     fi
4764     if compileTest qpa/xcb "xcb" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4765         CFG_XCB=yes
4766         if compileTest qpa/xcb-render "xcb-render" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4767             QT_CONFIG="$QT_CONFIG xcb-render"
4768         fi
4769
4770         if compileTest qpa/xcb-poll-for-queued-event "xcb-poll-for-queued-event" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4771             CFG_XCB_LIMITED=no
4772             QT_CONFIG="$QT_CONFIG xcb-poll-for-queued-event"
4773         fi
4774
4775         if compileTest qpa/xcb-xlib "xcb-xlib" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then
4776             QT_CONFIG="$QT_CONFIG xcb-xlib"
4777         fi
4778
4779         # auto-detect XInput2 support. Needed by xcb too.
4780         if [ "$CFG_XINPUT2" != "no" ]; then
4781             if compileTest x11/xinput2 "XInput2"; then
4782                 CFG_XINPUT2=yes
4783                 CFG_XINPUT=no
4784             else
4785                 if [ "$CFG_XINPUT2" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4786                     echo "XInput2 support cannot be enabled due to functionality tests!"
4787                     echo " Turn on verbose messaging (-v) to $0 to see the final report."
4788                     echo " If you believe this message is in error you may use the continue"
4789                     echo " switch (-continue) to $0 to continue."
4790                     exit 101
4791                 else
4792                     CFG_XINPUT2=no
4793                 fi
4794             fi
4795         fi
4796     else
4797         if [ "$CFG_XCB" = "yes" ]; then
4798             echo "The XCB test failed!"
4799             echo " You might need to install dependency packages."
4800             echo " See src/plugins/platforms/xcb/README."
4801             exit 1
4802         fi
4803         CFG_XCB=no
4804     fi
4805 fi
4806 if [ "$CFG_XCB" = "no" ]; then
4807     QMakeVar add DEFINES QT_NO_XCB
4808 fi
4809
4810 if [ "$CFG_DIRECTFB" != "no" ]; then
4811     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists directfb 2>/dev/null; then
4812         QMAKE_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
4813         QMAKE_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
4814         if compileTest qpa/directfb "DirectFB" $QMAKE_CFLAGS_DIRECTFB $QMAKE_LIBS_DIRECTFB; then
4815             CFG_DIRECTFB=yes
4816         elif [ "$CFG_DIRECTFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4817             echo " DirectFB support cannot be enabled due to functionality tests!"
4818             echo " Turn on verbose messaging (-v) to $0 to see the final report."
4819             echo " If you believe this message is in error you may use the continue"
4820             echo " switch (-continue) to $0 to continue."
4821             exit 101
4822         else
4823             CFG_DIRECTFB=no
4824         fi
4825     else
4826         CFG_DIRECTFB=no
4827     fi
4828 fi
4829
4830 if [ "$CFG_LINUXFB" != "no" ]; then
4831     if compileTest qpa/linuxfb "LinuxFB"; then
4832         CFG_LINUXFB=yes
4833     elif [ "$CFG_LINUXFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4834         echo " Linux Framebuffer support cannot be enabled due to functionality tests!"
4835         echo " Turn on verbose messaging (-v) to $0 to see the final report."
4836         echo " If you believe this message is in error you may use the continue"
4837         echo " switch (-continue) to $0 to continue."
4838         exit 101
4839     else
4840         CFG_LINUXFB=no
4841     fi
4842 fi
4843
4844 if [ "$CFG_KMS" != "no" ]; then
4845     if compileTest qpa/kms "KMS"; then
4846         CFG_KMS=yes
4847     elif [ "$CFG_KMS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4848         echo " KMS support cannot be enabled due to functionality tests!"
4849         echo " Turn on verbose messaging (-v) to $0 to see the final report."
4850         echo " If you believe this message is in error you may use the continue"
4851         echo " switch (-continue) to $0 to continue."
4852         exit 101
4853     else
4854         CFG_KMS=no
4855     fi
4856 fi
4857
4858 # Detect libxkbcommon
4859 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then
4860     QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon 2>/dev/null`"
4861     QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon 2>/dev/null`"
4862     QMAKE_CFLAGS_XCB="$QMAKE_CFLAGS_XCB $QMAKE_CFLAGS_XKBCOMMON"
4863     QMAKE_LIBS_XCB="$QMAKE_LIBS_XCB $QMAKE_LIBS_XKBCOMMON"
4864 else
4865     QMAKE_DEFINES_XCB=QT_NO_XCB_XKB
4866 fi
4867
4868 # EGL Support
4869 if [ "$CFG_EGL" != "no" ]; then
4870     if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then
4871         QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
4872         QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null`
4873         QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null`
4874         QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL"
4875         QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL"
4876     fi       # detect EGL support
4877     if compileTest qpa/egl "EGL" $QMAKE_CFLAGS_EGL $QMAKE_LIBS_EGL; then
4878         CFG_EGL=yes
4879     elif [ "$CFG_EGL" = "yes" ]; then
4880         echo " The EGL functionality test failed; EGL is required by some QPA plugins to manage contexts & surfaces."
4881         echo " You might need to modify the include and library search paths by editing"
4882         echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in ${XQMAKESPEC}."
4883         exit 1
4884     else
4885         CFG_EGL=no
4886     fi
4887 elif [ "$CFG_OPENGL" = "desktop" ]; then
4888     if [ "$CFG_EGL" = "yes" ]; then
4889         echo "EGL support was requested but Qt is being configured for desktop OpenGL."
4890         echo "Either disable EGL support or enable OpenGL ES support."
4891         exit 101
4892     fi
4893     CFG_EGL=no
4894 fi
4895
4896 if [ "$CFG_EGLFS" != "no" ]; then
4897     if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EVDEV" = "yes" ]; then
4898         CFG_EGLFS="$CFG_EGL"
4899     else
4900         CFG_EGLFS="no"
4901     fi
4902 fi
4903
4904 if [ "$CFG_KMS" = "yes" ]; then
4905     if [ "$CFG_OPENGL" = "es2" ] && [ "$CFG_EGL" = "yes" ]; then
4906         CFG_KMS="yes"
4907     else
4908         CFG_KMS="no"
4909     fi
4910 fi
4911
4912 # Detect accessibility support
4913 if [ "$CFG_ACCESSIBILITY" != "no" ]; then
4914     if [ "$CFG_XCB" = "no" ]; then
4915         CFG_ACCESSIBILITY=yes
4916     else
4917         # linux/xcb accessibility needs dbus and atspi-2
4918         if [ "$CFG_DBUS" != "no" ] && [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "atspi-2" 2>/dev/null; then
4919             CFG_ACCESSIBILITY=yes
4920         else
4921             if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
4922                 CFG_ACCESSIBILITY=no
4923             else
4924                 echo "Accessibility support needs pkg-config and libatspi2."
4925                 exit 101
4926             fi
4927         fi
4928     fi
4929 fi
4930
4931 # Determine the default QPA platform
4932 if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4933     # check the mkspec
4934     QT_QPA_DEFAULT_PLATFORM=`getXQMakeConf QT_QPA_DEFAULT_PLATFORM`
4935     if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then
4936         if [ "$XPLATFORM_MINGW" = "yes" ]; then
4937             QT_QPA_DEFAULT_PLATFORM="windows"
4938         elif [ "$BUILD_ON_MAC" = "yes" ]; then
4939             QT_QPA_DEFAULT_PLATFORM="cocoa"
4940         elif [ "$UNAME_SYSTEM" = "QNX" ]; then
4941             QT_QPA_DEFAULT_PLATFORM="qnx"
4942         else
4943             QT_QPA_DEFAULT_PLATFORM="xcb"
4944         fi
4945     fi
4946 fi
4947
4948 if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then
4949     QMakeVar set QMAKE_CFLAGS_XCB "$QMAKE_CFLAGS_XCB"
4950     QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB"
4951     QMakeVar set QMAKE_DEFINES_XCB "$QMAKE_DEFINES_XCB"
4952 fi
4953 if [ "$CFG_DIRECTFB" = "yes" ]; then
4954     QT_CONFIG="$QT_CONFIG directfb"
4955     QMakeVar set QMAKE_CFLAGS_DIRECTFB "$QMAKE_CFLAGS_DIRECTFB"
4956     QMakeVar set QMAKE_LIBS_DIRECTFB "$QMAKE_LIBS_DIRECTFB"
4957 fi
4958 if [ "$CFG_LINUXFB" = "yes" ]; then
4959     QT_CONFIG="$QT_CONFIG linuxfb"
4960 fi
4961 if [ "$CFG_KMS" = "yes" ]; then
4962     QT_CONFIG="$QT_CONFIG kms"
4963 fi
4964
4965 if [ "$BUILD_ON_MAC" = "yes" ]; then
4966     if compileTest mac/coreservices "CoreServices"; then
4967         QT_CONFIG="$QT_CONFIG coreservices"
4968     else
4969         QMakeVar add DEFINES QT_NO_CORESERVICES
4970     fi
4971 fi
4972
4973 if [ "$BUILD_ON_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ] && [ "$XPLATFORM_QNX" = "no" ]; then
4974     if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ] && [ "$CFG_DIRECTFB" = "no" ] && [ "$CFG_LINUXFB" = "no" ] && [ "$CFG_KMS" = "no" ]; then
4975         if [ "$QPA_PLATFORM_GUARD" = "yes" ] &&
4976             ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] || [ "$ORIG_CFG_DIRECTFB" = "auto" ] || [ "$ORIG_CFG_LINUXFB" = "auto" ] || [ "$ORIG_CFG_KMS" = "auto" ] ); then
4977         echo "No QPA platform plugin enabled!"
4978         echo " If you really want to build without a QPA platform plugin you must pass"
4979         echo " -no-qpa-platform-guard to configure. Doing this will"
4980         echo " produce a Qt that can not run GUI applications."
4981         echo " The dependencies needed for xcb to build are listed in"
4982         echo " src/plugins/platforms/xcb/README"
4983         exit 1
4984     fi
4985 fi
4986     fi
4987
4988 # freetype support
4989 [ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_LIBFREETYPE" = "auto" ] && CFG_LIBFREETYPE=no
4990 if [ "$CFG_LIBFREETYPE" = "auto" ]; then
4991     if compileTest unix/freetype "FreeType"; then
4992         CFG_LIBFREETYPE=system
4993     else
4994         CFG_LIBFREETYPE=yes
4995     fi
4996 fi
4997
4998 if ! compileTest unix/stl "STL" &&
4999     [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5000     echo "STL functionality check failed! Cannot build Qt with this STL library."
5001     echo " Turn on verbose messaging (-v) to $0 to see the final report."
5002     exit 101
5003 fi
5004
5005
5006 # detect POSIX clock_gettime()
5007 if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
5008     if compileTest unix/clock-gettime "POSIX clock_gettime()"; then
5009         CFG_CLOCK_GETTIME=yes
5010     else
5011         CFG_CLOCK_GETTIME=no
5012     fi
5013 fi
5014
5015 # detect POSIX monotonic clocks
5016 if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
5017     if compileTest unix/clock-monotonic "POSIX Monotonic Clock"; then
5018         CFG_CLOCK_MONOTONIC=yes
5019     else
5020         CFG_CLOCK_MONOTONIC=no
5021     fi
5022 elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
5023     CFG_CLOCK_MONOTONIC=no
5024 fi
5025
5026 # detect mremap
5027 if [ "$CFG_MREMAP" = "auto" ]; then
5028     if compileTest unix/mremap "mremap"; then
5029         CFG_MREMAP=yes
5030     else
5031         CFG_MREMAP=no
5032     fi
5033 fi
5034
5035 # find if the platform provides getaddrinfo (ipv6 dns lookups)
5036 if [ "$CFG_GETADDRINFO" != "no" ]; then
5037     if compileTest unix/getaddrinfo "getaddrinfo"; then
5038         CFG_GETADDRINFO=yes
5039     else
5040         if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5041             echo "getaddrinfo support cannot be enabled due to functionality tests!"
5042             echo " Turn on verbose messaging (-v) to $0 to see the final report."
5043             echo " If you believe this message is in error you may use the continue"
5044             echo " switch (-continue) to $0 to continue."
5045             exit 101
5046         else
5047             CFG_GETADDRINFO=no
5048         fi
5049     fi
5050 fi
5051
5052 # find if the platform provides inotify
5053 if [ "$CFG_INOTIFY" != "no" ]; then
5054     if compileTest unix/inotify "inotify"; then
5055         CFG_INOTIFY=yes
5056     else
5057         if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5058             echo "inotify support cannot be enabled due to functionality tests!"
5059             echo " Turn on verbose messaging (-v) to $0 to see the final report."
5060             echo " If you believe this message is in error you may use the continue"
5061             echo " switch (-continue) to $0 to continue."
5062             exit 101
5063         else
5064             CFG_INOTIFY=no
5065         fi
5066     fi
5067 fi
5068
5069 # find if the platform provides if_nametoindex (ipv6 interface name support)
5070 if [ "$CFG_IPV6IFNAME" != "no" ]; then
5071     if compileTest unix/ipv6ifname "IPv6 interface name"; then
5072         CFG_IPV6IFNAME=yes
5073     else
5074         if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5075             echo "IPv6 interface name support cannot be enabled due to functionality tests!"
5076             echo " Turn on verbose messaging (-v) to $0 to see the final report."
5077             echo " If you believe this message is in error you may use the continue"
5078             echo " switch (-continue) to $0 to continue."
5079             exit 101
5080         else
5081             CFG_IPV6IFNAME=no
5082         fi
5083     fi
5084 fi
5085
5086 # find if the platform provides getifaddrs (network interface enumeration)
5087 if [ "$CFG_GETIFADDRS" != "no" ]; then
5088     if compileTest unix/getifaddrs "getifaddrs"; then
5089         CFG_GETIFADDRS=yes
5090     else
5091         if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5092             echo "getifaddrs support cannot be enabled due to functionality tests!"
5093             echo " Turn on verbose messaging (-v) to $0 to see the final report."
5094             echo " If you believe this message is in error you may use the continue"
5095             echo " switch (-continue) to $0 to continue."
5096             exit 101
5097         else
5098             CFG_GETIFADDRS=no
5099         fi
5100     fi
5101 fi
5102
5103 # detect OpenSSL
5104 if [ "$CFG_OPENSSL" != "no" ]; then
5105     if compileTest unix/openssl "OpenSSL"; then
5106         if [ "$CFG_OPENSSL" = "auto" ]; then
5107             CFG_OPENSSL=yes
5108         fi
5109     else
5110         if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5111             echo "OpenSSL support cannot be enabled due to functionality tests!"
5112             echo " Turn on verbose messaging (-v) to $0 to see the final report."
5113             echo " If you believe this message is in error you may use the continue"
5114             echo " switch (-continue) to $0 to continue."
5115             exit 101
5116         else
5117             CFG_OPENSSL=no
5118         fi
5119     fi
5120 fi
5121
5122 # detect PCRE
5123 if [ "$CFG_PCRE" != "qt" ]; then
5124     if compileTest unix/pcre "PCRE"; then
5125         CFG_PCRE=system
5126     else
5127         if [ "$CFG_PCRE" = "system" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5128             echo "PCRE support cannot be enabled due to functionality tests!"
5129             echo " Turn on verbose messaging (-v) to $0 to see the final report."
5130             echo " If you believe this message is in error you may use the continue"
5131             echo " switch (-continue) to $0 to continue."
5132             exit 101
5133         else
5134             CFG_PCRE=qt
5135         fi
5136     fi
5137 fi
5138
5139 # detect OpenVG support
5140 if [ "$CFG_OPENVG" != "no" ]; then
5141     if compileTest unix/openvg "OpenVG"; then
5142         if [ "$CFG_OPENVG" = "auto" ]; then
5143             CFG_OPENVG=yes
5144         fi
5145     elif compileTest unix/openvg "OpenVG" -config openvg_on_opengl; then
5146         if [ "$CFG_OPENVG" = "auto" ]; then
5147             CFG_OPENVG=yes
5148         fi
5149         CFG_OPENVG_ON_OPENGL=yes
5150     elif compileTest unix/openvg "OpenVG (lc includes)" -config lower_case_includes; then
5151         if [ "$CFG_OPENVG" = "auto" ]; then
5152             CFG_OPENVG=yes
5153         fi
5154         CFG_OPENVG_LC_INCLUDES=yes
5155     elif compileTest unix/openvg "OpenVG (lc includes)" -config "openvg_on_opengl lower_case_includes"; then
5156         if [ "$CFG_OPENVG" = "auto" ]; then
5157             CFG_OPENVG=yes
5158         fi
5159         CFG_OPENVG_LC_INCLUDES=yes
5160         CFG_OPENVG_ON_OPENGL=yes
5161     else
5162         if [ "$CFG_OPENVG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5163             echo "$CFG_OPENVG was specified for OpenVG but cannot be enabled due to functionality tests!"
5164             echo " Turn on verbose messaging (-v) to $0 to see the final report."
5165             echo " If you believe this message is in error you may use the continue"
5166             echo " switch (-continue) to $0 to continue."
5167             exit 101
5168         else
5169             CFG_OPENVG=no
5170         fi
5171     fi
5172     if [ "$CFG_OPENVG" = "yes" ] && compileTest unix/shivavg "ShivaVG"; then
5173         CFG_OPENVG_SHIVA=yes
5174     fi
5175 fi
5176
5177 if [ "$CFG_ALSA" = "auto" ]; then
5178     if compileTest unix/alsa "alsa"; then
5179         CFG_ALSA=yes
5180     else
5181         CFG_ALSA=no
5182     fi
5183 fi
5184
5185 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ] || [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then 
5186     if [ "$CFG_ARCH" = "arm" ]; then
5187        compileTest unix/javascriptcore-jit "javascriptcore-jit"
5188         if [ $? != "0" ]; then
5189            CFG_JAVASCRIPTCORE_JIT=no
5190         fi
5191     else
5192         case "$XPLATFORM" in
5193             linux-icc*)
5194                 CFG_JAVASCRIPTCORE_JIT=no
5195                 ;;
5196         esac
5197     fi
5198 fi
5199
5200 if [ "$CFG_JAVASCRIPTCORE_JIT" = "yes" ]; then
5201     QMakeVar set JAVASCRIPTCORE_JIT yes
5202 elif [ "$CFG_JAVASCRIPTCORE_JIT" = "no" ]; then
5203     QMakeVar set JAVASCRIPTCORE_JIT no
5204 fi
5205
5206 if [ "$CFG_AUDIO_BACKEND" = "auto" ]; then
5207     CFG_AUDIO_BACKEND=yes
5208 fi
5209
5210 if [ "$CFG_LARGEFILE" != "yes" ] && [ "$XPLATFORM_MINGW" = "yes" ]; then
5211     echo "Warning: largefile support cannot be disabled for win32."
5212     CFG_LARGEFILE="yes"
5213 fi
5214
5215 #-------------------------------------------------------------------------------
5216 # ask for all that hasn't been auto-detected or specified in the arguments
5217 #-------------------------------------------------------------------------------
5218
5219 [ "$CFG_CXX11" = "yes" ] && QT_CONFIG="$QT_CONFIG c++11"
5220
5221 # disable accessibility
5222 if [ "$CFG_ACCESSIBILITY" = "no" ]; then
5223     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
5224 else
5225     QT_CONFIG="$QT_CONFIG accessibility"
5226 fi
5227
5228 # enable egl
5229 if [ "$CFG_EGL" = "yes" ]; then
5230     QT_CONFIG="$QT_CONFIG egl"
5231 else
5232     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL"
5233 fi
5234
5235 # enable eglfs
5236 if [ "$CFG_EGLFS" = "yes" ]; then
5237     QT_CONFIG="$QT_CONFIG eglfs"
5238 else
5239     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGLFS"
5240 fi
5241
5242 # enable openvg
5243 if [ "$CFG_OPENVG" = "no" ]; then
5244     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENVG"
5245 else
5246     QT_CONFIG="$QT_CONFIG openvg"
5247     if [ "$CFG_OPENVG_LC_INCLUDES" = "yes" ]; then
5248         QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LOWER_CASE_VG_INCLUDES"
5249     fi
5250     if [ "$CFG_OPENVG_ON_OPENGL" = "yes" ]; then
5251         QT_CONFIG="$QT_CONFIG openvg_on_opengl"
5252     fi
5253     if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
5254         QT_CONFIG="$QT_CONFIG shivavg"
5255         QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SHIVAVG"
5256     fi
5257 fi
5258
5259 # enable opengl
5260 if [ "$CFG_OPENGL" = "no" ]; then
5261     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
5262 else
5263     QT_CONFIG="$QT_CONFIG opengl"
5264 fi
5265
5266 if [ "$CFG_OPENGL" = "es2" ]; then
5267     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
5268 fi
5269
5270 if [ "$CFG_OPENGL" = "es2" ]; then
5271     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
5272     QT_CONFIG="$QT_CONFIG opengles2"
5273 fi
5274
5275 # build up the variables for output
5276 if [ "$CFG_DEBUG" = "yes" ]; then
5277     QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
5278 elif [ "$CFG_DEBUG" = "no" ]; then
5279     QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
5280 fi
5281 if [ "$CFG_SHARED" = "yes" ]; then
5282     QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
5283     QT_CONFIG="$QT_CONFIG shared"
5284 elif [ "$CFG_SHARED" = "no" ]; then
5285     QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
5286     QT_CONFIG="$QT_CONFIG static"
5287 fi
5288
5289 #FIXME: qpa is implicit this should all be removed
5290 QMAKE_CONFIG="$QMAKE_CONFIG qpa"
5291 QT_CONFIG="$QT_CONFIG qpa"
5292 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qpa"
5293 rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
5294
5295 if [ "$XPLATFORM_MINGW" != "yes" ]; then
5296     # Do not set this here for Windows. Let qmake do it so
5297     # debug and release precompiled headers are kept separate.
5298     QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
5299 fi
5300 QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
5301 QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
5302 QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
5303 QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
5304 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5305     QMAKE_CONFIG="$QMAKE_CONFIG largefile"
5306 fi
5307 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
5308     QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
5309 fi
5310 [ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
5311 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
5312 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
5313 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
5314     QMakeVar add QMAKE_CFLAGS -g
5315     QMakeVar add QMAKE_CXXFLAGS -g
5316     QT_CONFIG="$QT_CONFIG separate_debug_info"
5317 fi
5318 if [ "$CFG_SEPARATE_DEBUG_INFO_NOCOPY" = "yes" ] ; then
5319     QT_CONFIG="$QT_CONFIG separate_debug_info_nocopy"
5320 fi
5321 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
5322 [ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3"
5323 [ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3"
5324 [ "$CFG_SSE4_1" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_1"
5325 [ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2"
5326 [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx"
5327 [ "$CFG_AVX2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx2"
5328 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
5329 [ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
5330 if [ "$CFG_ARCH" = "mips" ]; then
5331     [ "$CFG_MIPS_DSP" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dsp"
5332     [ "$CFG_MIPS_DSPR2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dspr2"
5333 fi
5334 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
5335     QT_CONFIG="$QT_CONFIG clock-gettime"
5336 fi
5337 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
5338     QT_CONFIG="$QT_CONFIG clock-monotonic"
5339 fi
5340 if [ "$CFG_MREMAP" = "yes" ]; then
5341     QT_CONFIG="$QT_CONFIG mremap"
5342 fi
5343 if [ "$CFG_GETADDRINFO" = "yes" ]; then
5344     QT_CONFIG="$QT_CONFIG getaddrinfo"
5345 fi
5346 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
5347     QT_CONFIG="$QT_CONFIG ipv6ifname"
5348 fi
5349 if [ "$CFG_GETIFADDRS" = "yes" ]; then
5350     QT_CONFIG="$QT_CONFIG getifaddrs"
5351 fi
5352 if [ "$CFG_INOTIFY" = "yes" ]; then
5353     QT_CONFIG="$QT_CONFIG inotify"
5354 fi
5355 if [ "$CFG_LIBJPEG" = "no" ]; then
5356     CFG_JPEG="no"
5357 elif [ "$CFG_LIBJPEG" = "system" ]; then
5358     QT_CONFIG="$QT_CONFIG system-jpeg"
5359 fi
5360 if [ "$CFG_JPEG" = "no" ]; then
5361     QT_CONFIG="$QT_CONFIG no-jpeg"
5362 elif [ "$CFG_JPEG" = "yes" ]; then
5363     QT_CONFIG="$QT_CONFIG jpeg"
5364 fi
5365 if [ "$CFG_LIBPNG" = "no" ]; then
5366     CFG_PNG="no"
5367 fi
5368 if [ "$CFG_LIBPNG" = "system" ]; then
5369     QT_CONFIG="$QT_CONFIG system-png"
5370 fi
5371 if [ "$CFG_PNG" = "no" ]; then
5372     QT_CONFIG="$QT_CONFIG no-png"
5373 elif [ "$CFG_PNG" = "yes" ]; then
5374     QT_CONFIG="$QT_CONFIG png"
5375 fi
5376 if [ "$CFG_GIF" = "no" ]; then
5377     QT_CONFIG="$QT_CONFIG no-gif"
5378 elif [ "$CFG_GIF" = "yes" ]; then
5379     QT_CONFIG="$QT_CONFIG gif"
5380 fi
5381 if [ "$CFG_LIBFREETYPE" = "no" ]; then
5382     QT_CONFIG="$QT_CONFIG no-freetype"
5383     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FREETYPE"
5384 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
5385     QT_CONFIG="$QT_CONFIG system-freetype"
5386 else
5387     QT_CONFIG="$QT_CONFIG freetype"
5388 fi
5389 if [ "$CFG_GUI" = "auto" ]; then
5390     CFG_GUI="yes"
5391 fi
5392 if [ "$CFG_GUI" = "no" ]; then
5393     QT_CONFIG="$QT_CONFIG no-gui"
5394     CFG_WIDGETS="no"
5395 fi
5396 if [ "$CFG_WIDGETS" = "no" ]; then
5397     QT_CONFIG="$QT_CONFIG no-widgets"
5398     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WIDGETS"
5399 fi
5400
5401 if [ "x$BUILD_ON_MAC" = "xyes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5402     #On Mac we implicitly link against libz, so we
5403     #never use the 3rdparty stuff.
5404     [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
5405 fi
5406 if [ "$CFG_ZLIB" = "yes" ]; then
5407     QT_CONFIG="$QT_CONFIG zlib"
5408 elif [ "$CFG_ZLIB" = "system" ]; then
5409     QT_CONFIG="$QT_CONFIG system-zlib"
5410 fi
5411
5412 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
5413 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
5414 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
5415 [ "$CFG_ICONV" = "sun" ] && QT_CONFIG="$QT_CONFIG sun-libiconv"
5416 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
5417 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
5418 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
5419 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
5420 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
5421 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
5422 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
5423 [ "$CFG_MAC_HARFBUZZ" = "yes" ] && QT_CONFIG="$QT_CONFIG harfbuzz"
5424 [ "$CFG_XCB" = "yes" ] && QT_CONFIG="$QT_CONFIG xcb"
5425 [ "$CFG_XINPUT2" = "yes" ] && QT_CONFIG="$QT_CONFIG xinput2"
5426
5427 [ '!' -z "$DEFINES" ] && QMakeVar add DEFINES "$DEFINES"
5428 [ '!' -z "$L_FLAGS" ] && QMakeVar add LIBS "$L_FLAGS"
5429
5430 if [ "$PLATFORM_MAC" = "yes" ] && [ "$QT_CROSS_COMPILE" = "no" ]; then
5431     if [ "$CFG_RPATH" = "yes" ]; then
5432        QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
5433     fi
5434 elif [ -z "`getXQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then
5435     if [ -n "$RPATH_FLAGS" ]; then
5436         echo
5437         echo "ERROR: -R cannot be used on this platform as \$QMAKE_LFLAGS_RPATH is"
5438         echo "       undefined."
5439         echo
5440         exit 1
5441     elif [ "$CFG_RPATH" = "yes" ]; then
5442         RPATH_MESSAGE="        NOTE: This platform does not support runtime library paths, using -no-rpath."
5443         CFG_RPATH=no
5444     fi
5445 else
5446     if [ -n "$RPATH_FLAGS" ]; then
5447         # add the user defined rpaths
5448         QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
5449     fi
5450 fi
5451 if [ "$CFG_RPATH" = "yes" ]; then
5452     QT_CONFIG="$QT_CONFIG rpath"
5453 fi
5454
5455 if [ '!' -z "$I_FLAGS" ]; then
5456     # add the user define include paths
5457     QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
5458     QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
5459 fi
5460
5461 if [ '!' -z "$W_FLAGS" ]; then
5462     # add the user defined warning flags
5463     QMakeVar add QMAKE_CFLAGS_WARN_ON "$W_FLAGS"
5464     QMakeVar add QMAKE_CXXFLAGS_WARN_ON "$W_FLAGS"
5465     QMakeVar add QMAKE_OBJECTIVE_CFLAGS_WARN_ON "$W_FLAGS"
5466 fi
5467
5468 if [ "$XPLATFORM_MINGW" = "yes" ]; then
5469     # mkspecs/features/win32/default_pre.prf sets "no-rtti".
5470     # Follow default behavior of configure.exe by overriding with "rtti".
5471     QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti"
5472 fi
5473
5474 if [ "$CFG_ALSA" = "yes" ]; then
5475     QT_CONFIG="$QT_CONFIG alsa"
5476 fi
5477
5478 if [ "$CFG_PULSEAUDIO" = "yes" ]; then
5479     QT_CONFIG="$QT_CONFIG pulseaudio"
5480 fi
5481
5482 if [ "$CFG_COREWLAN" = "yes" ]; then
5483     QT_CONFIG="$QT_CONFIG corewlan"
5484 fi
5485
5486 if [ "$CFG_ICU" = "yes" ]; then
5487     QT_CONFIG="$QT_CONFIG icu"
5488 fi
5489
5490 if [ "$CFG_FORCE_ASSERTS" = "yes" ]; then
5491     QT_CONFIG="$QT_CONFIG force_asserts"
5492 fi
5493
5494 if [ "$CFG_PCRE" = "qt" ]; then
5495     QMAKE_CONFIG="$QMAKE_CONFIG pcre"
5496 fi
5497
5498 #
5499 # Some Qt modules are too advanced in C++ for some old compilers
5500 # Detect here the platforms where they are known to work.
5501 #
5502 # See Qt documentation for more information on which features are
5503 # supported and on which compilers.
5504 #
5505 canBuildQtConcurrent="yes"
5506 canUseV8Snapshot="yes"
5507
5508 case "$XPLATFORM" in
5509     hpux-g++*)
5510         # PA-RISC's assembly is too limited
5511         # gcc 3.4 on that platform can't build QtXmlPatterns
5512         # the assembly it generates cannot be compiled
5513
5514         # Check gcc's version
5515         case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5516             4*)
5517                 ;;
5518             3.4*)
5519                 canBuildQtXmlPatterns="no"
5520                 ;;
5521             *)
5522                 canBuildWebKit="no"
5523                 canBuildQtXmlPatterns="no"
5524                 ;;
5525         esac
5526         ;;
5527     unsupported/vxworks-*-g++*)
5528         canBuildWebKit="no"
5529         ;;
5530     unsupported/vxworks-*-dcc*)
5531         canBuildWebKit="no"
5532         canBuildQtXmlPatterns="no"
5533         ;;
5534     *-g++*)
5535         # Check gcc's version
5536         case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5537             4*|3.4*)
5538                 ;;
5539             3.3*)
5540                 canBuildWebKit="no"
5541                 ;;
5542             *)
5543                 canBuildWebKit="no"
5544                 canBuildQtXmlPatterns="no"
5545                 ;;
5546         esac
5547         ;;
5548     solaris-cc*)
5549         # Check the compiler version
5550         case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
5551             5.[012345678])
5552                 canBuildWebKit="no"
5553                 canBuildQtXmlPatterns="no"
5554                 canBuildQtConcurrent="no"
5555                 ;;
5556             5.*)
5557                 canBuildWebKit="no"
5558                 canBuildQtConcurrent="no"
5559                 ;;
5560         esac
5561         ;;
5562     hpux-acc*)
5563         canBuildWebKit="no"
5564         canBuildQtXmlPatterns="no"
5565         canBuildQtConcurrent="no"
5566         ;;
5567     hpuxi-acc*)
5568         canBuildWebKit="no"
5569         ;;
5570     aix-xlc*)
5571         # Get the xlC version
5572         cat > xlcver.c <<EOF
5573 #include <stdio.h>
5574 int main()
5575 {
5576     printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
5577     return 0;
5578 }
5579 EOF
5580         xlcver=
5581         if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
5582             xlcver=`./xlcver 2>/dev/null`
5583             rm -f ./xlcver
5584         fi
5585         if [ "$OPT_VERBOSE" = "yes" ]; then
5586             if [ -n "$xlcver" ]; then
5587                 echo Found IBM xlC version: $xlcver.
5588             else
5589                 echo Could not determine IBM xlC version, assuming oldest supported.
5590             fi
5591         fi
5592
5593         case "$xlcver" in
5594             [123456].*)
5595                 canBuildWebKit="no"
5596                 canBuildQtXmlPatterns="no"
5597                 canBuildQtConcurrent="no"
5598                 ;;
5599             *)
5600                 canBuildWebKit="no"
5601                 canBuildQtConcurrent="no"
5602                 ;;
5603         esac
5604         ;;
5605     irix-cc*)
5606         canBuildWebKit="no"
5607         canBuildQtConcurrent="no"
5608         ;;
5609 esac
5610
5611 if [ "$CFG_GUI" = "no" ]; then
5612     # WebKit requires QtGui
5613     canBuildWebKit="no"
5614 fi
5615
5616 if [ "$CFG_SHARED" = "no" ]; then
5617     echo
5618     echo "WARNING: Using static linking will disable the WebKit module."
5619     echo
5620     canBuildWebKit="no"
5621 fi
5622
5623 CFG_CONCURRENT="yes"
5624 if [ "$canBuildQtConcurrent" = "no" ]; then
5625     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
5626     CFG_CONCURRENT="no"
5627 else
5628     QT_CONFIG="$QT_CONFIG concurrent"
5629 fi
5630
5631 # ### Vestige
5632 if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then
5633     QT_CONFIG="$QT_CONFIG audio-backend"
5634 fi
5635
5636 # ### Vestige
5637 if [ "$CFG_WEBKIT" = "debug" ]; then
5638     QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug"
5639 fi
5640
5641 # ### Vestige
5642 QT_CONFIG="$QT_CONFIG v8"
5643 # Detect snapshot support
5644 if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
5645     case "$CFG_HOST_ARCH,$CFG_ARCH" in
5646         i386,arm)
5647         ;;
5648     *) canUseV8Snapshot="no"
5649         ;;
5650     esac
5651 else
5652     if [ -n "$_SBOX_DIR" -a "$CFG_ARCH" = "arm" ]; then
5653         # QEMU crashes when building inside Scratchbox with an ARM target
5654         canUseV8Snapshot="no"
5655     fi
5656 fi
5657 if [ "$CFG_V8SNAPSHOT" = "auto" ]; then
5658     CFG_V8SNAPSHOT="$canUseV8Snapshot"
5659 fi
5660 if [ "$CFG_V8SNAPSHOT" = "yes" -a "$canUseV8Snapshot" = "no" ]; then
5661     echo "Error: V8 snapshot was requested, but is not supported on this platform."
5662     exit 1
5663 fi
5664 if [ "$CFG_V8SNAPSHOT" = "yes" ]; then
5665     QT_CONFIG="$QT_CONFIG v8snapshot"
5666 fi
5667
5668 # ### Vestige
5669 if [ "$CFG_QML_DEBUG" = "no" ]; then
5670     QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QML_NO_DEBUGGER"
5671 fi
5672
5673 case "$QMAKE_CONF_COMPILER" in
5674 *g++*)
5675     # GNU C++
5676     COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
5677
5678     case "$COMPILER_VERSION" in
5679     *.*.*)
5680         QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
5681         QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
5682         QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
5683         ;;
5684     *.*)
5685         QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
5686         QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
5687         QT_GCC_PATCH_VERSION=0
5688         ;;
5689     esac
5690
5691     ;;
5692 *)
5693     #
5694     ;;
5695 esac
5696
5697 #-------------------------------------------------------------------------------
5698 # part of configuration information goes into qconfig.h
5699 #-------------------------------------------------------------------------------
5700
5701 case "$CFG_QCONFIG" in
5702 full)
5703     echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
5704     ;;
5705 *)
5706     tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
5707     echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
5708     if [ -f "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" ]; then
5709         cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
5710     elif [ -f `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` ]; then
5711         cat `"$relpath/config.tests/unix/makeabs" "${CFG_QCONFIG}"` >>"$tmpconfig"
5712     fi
5713     echo "#endif" >>"$tmpconfig"
5714     ;;
5715 esac
5716
5717 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5718
5719 /* Qt Edition */
5720 #ifndef QT_EDITION
5721 #  define QT_EDITION $QT_EDITION
5722 #endif
5723 EOF
5724
5725 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
5726 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5727
5728 if [ "$CFG_SHARED" = "no" ]; then
5729     cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5730 /* Qt was configured for a static build */
5731 #if !defined(QT_SHARED) && !defined(QT_STATIC)
5732 # define QT_STATIC
5733 #endif
5734
5735 EOF
5736 fi
5737
5738 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then
5739     echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
5740 fi
5741
5742 if [ "$CFG_FRAMEWORK" = "yes" ]; then
5743     echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
5744 fi
5745
5746 if [ "$BUILD_ON_MAC" = "yes" ]; then
5747     cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
5748 #if defined(__LP64__)
5749 # define QT_POINTER_SIZE 8
5750 #else
5751 # define QT_POINTER_SIZE 4
5752 #endif
5753 EOF
5754 else
5755     "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5756     echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
5757 fi
5758
5759 #REDUCE_RELOCATIONS is a elf/unix only thing, so not in windows configure.exe
5760 if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then
5761     echo "#define QT_REDUCE_RELOCATIONS" >>"$outpath/src/corelib/global/qconfig.h.new"
5762 fi
5763
5764 # Add compiler sub-architecture support
5765 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5766 echo "// Compiler sub-arch support" >>"$outpath/src/corelib/global/qconfig.h.new"
5767 for SUBARCH in SSE2 SSE3 SSSE3 SSE4_1 SSE4_2 AVX AVX2 \
5768     IWMMXT NEON \
5769     MIPS_DSP MIPS_DSPR2; do
5770     eval "VAL=\$CFG_$SUBARCH"
5771     case "$VAL" in
5772         yes)
5773             echo "#define QT_COMPILER_SUPPORTS_$SUBARCH" \
5774                 >>"$outpath/src/corelib/global/qconfig.h.new"
5775             ;;
5776     esac
5777 done
5778
5779 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
5780
5781 if [ "$CFG_DEV" = "yes" ]; then
5782     echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
5783 fi
5784
5785 # Add QPA to config.h
5786 QCONFIG_FLAGS="$QCONFIG_FLAGS"
5787
5788 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
5789     QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
5790 fi
5791
5792 # Add turned on SQL drivers
5793 for DRIVER in $CFG_SQL_AVAILABLE; do
5794     eval "VAL=\$CFG_SQL_$DRIVER"
5795     case "$VAL" in
5796     qt)
5797         ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
5798         QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
5799         SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
5800     ;;
5801     plugin)
5802         SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
5803     ;;
5804     esac
5805 done
5806
5807 QMakeVar set sql-drivers "$SQL_DRIVERS"
5808 QMakeVar set sql-plugins "$SQL_PLUGINS"
5809
5810 # Add other configuration options to the qconfig.h file
5811 [ "$CFG_GIF" = "yes" ]       && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
5812 [ "$CFG_PNG" != "yes" ]      && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
5813 [ "$CFG_JPEG" != "yes" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
5814 [ "$CFG_ZLIB" != "yes" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
5815 [ "$CFG_DBUS" = "no" ]      && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
5816
5817 # X11/Unix/Mac only configs
5818 [ "$CFG_CUPS" = "no" ]       && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
5819 [ "$CFG_ICONV" = "no" ]      && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
5820 [ "$CFG_GLIB" != "yes" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
5821 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
5822 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
5823 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
5824 [ "$CFG_MREMAP" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
5825 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
5826 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
5827 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
5828 [ "$CFG_INOTIFY" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
5829 [ "$CFG_NIS" = "no" ]        && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
5830 [ "$CFG_OPENSSL" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL QT_NO_SSL"
5831 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
5832
5833 [ "$CFG_SM" = "no" ]         && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
5834 [ "$CFG_XCURSOR" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
5835 [ "$CFG_XFIXES" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
5836 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
5837 [ "$CFG_XINERAMA" = "no" ]   && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
5838 [ "$CFG_XKB" = "no" ]        && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
5839 [ "$CFG_XRANDR" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
5840 [ "$CFG_XRENDER" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
5841 [ "$CFG_MITSHM" = "no" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
5842 [ "$CFG_XSHAPE" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
5843 [ "$CFG_XVIDEO" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XVIDEO"
5844 [ "$CFG_XSYNC" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
5845 [ "$CFG_XINPUT" = "no" ]     && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
5846
5847 [ "$CFG_XCURSOR" = "runtime" ]   && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
5848 [ "$CFG_XINERAMA" = "runtime" ]  && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
5849 [ "$CFG_XFIXES" = "runtime" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
5850 [ "$CFG_XRANDR" = "runtime" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
5851 [ "$CFG_XINPUT" = "runtime" ]    && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
5852 [ "$CFG_ALSA" = "no" ]           && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
5853 [ "$CFG_PULSEAUDIO" = "no" ]          && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PULSEAUDIO"
5854 [ "$CFG_COREWLAN" = "no" ]       && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_COREWLAN"
5855
5856 # sort QCONFIG_FLAGS for neatness if we can
5857 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
5858 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
5859
5860 if [ -n "$QCONFIG_FLAGS" ]; then
5861 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5862 #ifndef QT_BOOTSTRAPPED
5863
5864 EOF
5865     for cfg in $QCONFIG_FLAGS; do
5866         cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
5867         cfg=`echo $cfg | sed 's/=/ /'`    # turn first '=' into a space
5868         # figure out define logic, so we can output the correct
5869         # ifdefs to override the global defines in a project
5870         cfgdNeg=
5871         if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
5872             # QT_NO_option can be forcefully turned on by QT_option
5873             cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
5874         elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
5875             # QT_option can be forcefully turned off by QT_NO_option
5876             cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
5877         fi
5878
5879         if [ -z $cfgdNeg ]; then
5880 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5881 #ifndef $cfgd
5882 # define $cfg
5883 #endif
5884
5885 EOF
5886         else
5887 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5888 #if defined($cfgd) && defined($cfgdNeg)
5889 # undef $cfgd
5890 #elif !defined($cfgd) && !defined($cfgdNeg)
5891 # define $cfg
5892 #endif
5893
5894 EOF
5895         fi
5896     done
5897 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5898 #endif // QT_BOOTSTRAPPED
5899
5900 EOF
5901 fi
5902
5903 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
5904 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5905 #define QT_VISIBILITY_AVAILABLE
5906
5907 EOF
5908 fi
5909
5910 if [ -n "$QT_LIBINFIX" ]; then
5911 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
5912 #define QT_LIBINFIX "$QT_LIBINFIX"
5913
5914 EOF
5915 fi
5916
5917 echo "#define QT_QPA_DEFAULT_PLATFORM_NAME \"$QT_QPA_DEFAULT_PLATFORM\"" >>"$outpath/src/corelib/global/qconfig.h.new"
5918
5919 # avoid unecessary rebuilds by copying only if qconfig.h has changed
5920 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
5921     rm -f "$outpath/src/corelib/global/qconfig.h.new"
5922 else
5923     [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
5924     mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
5925     chmod -w "$outpath/src/corelib/global/qconfig.h"
5926     if [ ! -f "$outpath/include/QtCore/qconfig.h" ]; then
5927         ln -s "$outpath/src/corelib/global/qconfig.h" "$outpath/include/QtCore/qconfig.h"
5928     fi
5929 fi
5930
5931 #-------------------------------------------------------------------------------
5932 # save configuration into qconfig.pri
5933 #-------------------------------------------------------------------------------
5934 QTCONFIG="$outpath/mkspecs/qconfig.pri"
5935 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
5936 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
5937 if [ "$CFG_DEBUG" = "yes" ]; then
5938     QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
5939     if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5940         QT_CONFIG="$QT_CONFIG release"
5941     fi
5942     QT_CONFIG="$QT_CONFIG debug"
5943 elif [ "$CFG_DEBUG" = "no" ]; then
5944     QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
5945     if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
5946         QT_CONFIG="$QT_CONFIG debug"
5947     fi
5948     QT_CONFIG="$QT_CONFIG release"
5949 fi
5950 if [ "$CFG_FRAMEWORK" = "no" ]; then
5951     QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
5952 else
5953     QT_CONFIG="$QT_CONFIG qt_framework"
5954     QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
5955 fi
5956 if [ "$CFG_DEV" = "yes" ]; then
5957     QT_CONFIG="$QT_CONFIG private_tests"
5958 fi
5959
5960 cat >>"$QTCONFIG.tmp" <<EOF
5961 #configuration
5962 CONFIG += $QTCONFIG_CONFIG
5963 QT_ARCH = $CFG_ARCH
5964 QT_HOST_ARCH = $CFG_HOST_ARCH
5965 QT_CPU_FEATURES = $CFG_CPUFEATURES
5966 QT_HOST_CPU_FEATURES = $CFG_HOST_CPUFEATURES
5967 QMAKE_DEFAULT_LIBDIRS = `echo "$DEFAULT_LIBDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
5968 QMAKE_DEFAULT_INCDIRS = `echo "$DEFAULT_INCDIRS" | sed 's,^,",;s,$,",' | tr '\n' ' '`
5969 QT_EDITION = $Edition
5970 QT_CONFIG += $QT_CONFIG
5971
5972 #versioning
5973 QT_VERSION = $QT_VERSION
5974 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
5975 QT_MINOR_VERSION = $QT_MINOR_VERSION
5976 QT_PATCH_VERSION = $QT_PATCH_VERSION
5977
5978 #namespaces
5979 QT_LIBINFIX = $QT_LIBINFIX
5980 QT_NAMESPACE = $QT_NAMESPACE
5981
5982 EOF
5983
5984 if [ -n "$PKG_CONFIG_SYSROOT_DIR" ] || [ -n "$PKG_CONFIG_LIBDIR" ]; then
5985     echo "# pkgconfig" >> "$QTCONFIG.tmp"
5986     echo "PKG_CONFIG_SYSROOT_DIR = $PKG_CONFIG_SYSROOT_DIR" >> "$QTCONFIG.tmp"
5987     echo "PKG_CONFIG_LIBDIR = $PKG_CONFIG_LIBDIR" >> "$QTCONFIG.tmp"
5988     echo >> "$QTCONFIG.tmp"
5989 fi
5990
5991 if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then
5992     echo "# sysroot" >>"$QTCONFIG.tmp"
5993     echo "!host_build {" >>"$QTCONFIG.tmp"
5994     echo "    QMAKE_CFLAGS    += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5995     echo "    QMAKE_CXXFLAGS  += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5996     echo "    QMAKE_LFLAGS    += --sysroot=\$\$[QT_SYSROOT]" >>"$QTCONFIG.tmp"
5997     echo "}" >> "$QTCONFIG.tmp"
5998     echo >> "$QTCONFIG.tmp"
5999 fi
6000 if [ -n "$RPATH_FLAGS" ]; then
6001     echo "QMAKE_RPATHDIR += $RPATH_FLAGS" >> "$QTCONFIG.tmp"
6002 fi
6003 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
6004     echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
6005     echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
6006     echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
6007 fi
6008
6009 if [ -n "$QMAKE_INCDIR_OPENGL_ES2" ]; then
6010     echo "#Qt opengl include path" >> "$QTCONFIG.tmp"
6011     echo "QMAKE_INCDIR_OPENGL_ES2 = `shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`" >> "$QTCONFIG.tmp"
6012 fi
6013
6014 # replace qconfig.pri if it differs from the newly created temp file
6015 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
6016     rm -f "$QTCONFIG.tmp"
6017 else
6018     mv -f "$QTCONFIG.tmp" "$QTCONFIG"
6019 fi
6020
6021 #-------------------------------------------------------------------------------
6022 # save configuration into qmodule.pri
6023 #-------------------------------------------------------------------------------
6024 QTMODULE="$outpath/mkspecs/qmodule.pri"
6025
6026 echo "CONFIG += $QMAKE_CONFIG create_prl link_prl" >> "$QTMODULE.tmp"
6027 echo "QT_BUILD_PARTS += $CFG_BUILD_PARTS" >> "$QTMODULE.tmp"
6028
6029 if [ -n "$QT_CFLAGS_PSQL" ]; then
6030     echo "QT_CFLAGS_PSQL   = $QT_CFLAGS_PSQL" >> "$QTMODULE.tmp"
6031 fi
6032 if [ -n "$QT_LFLAGS_PSQL" ]; then
6033     echo "QT_LFLAGS_PSQL   = $QT_LFLAGS_PSQL" >> "$QTMODULE.tmp"
6034 fi
6035 if [ -n "$QT_CFLAGS_MYSQL" ]; then
6036     echo "QT_CFLAGS_MYSQL   = $QT_CFLAGS_MYSQL" >> "$QTMODULE.tmp"
6037 fi
6038 if [ -n "$QT_LFLAGS_MYSQL" ]; then
6039     echo "QT_LFLAGS_MYSQL   = $QT_LFLAGS_MYSQL" >> "$QTMODULE.tmp"
6040 fi
6041 if [ -n "$QT_CFLAGS_SQLITE" ]; then
6042     echo "QT_CFLAGS_SQLITE   = $QT_CFLAGS_SQLITE" >> "$QTMODULE.tmp"
6043 fi
6044 if [ -n "$QT_LFLAGS_SQLITE" ]; then
6045     echo "QT_LFLAGS_SQLITE   = $QT_LFLAGS_SQLITE" >> "$QTMODULE.tmp"
6046 fi
6047 if [ -n "$QT_LFLAGS_ODBC" ]; then
6048     echo "QT_LFLAGS_ODBC   = $QT_LFLAGS_ODBC" >> "$QTMODULE.tmp"
6049 fi
6050 if [ -n "$QT_LFLAGS_TDS" ]; then
6051     echo "QT_LFLAGS_TDS   = $QT_LFLAGS_TDS" >> "$QTMODULE.tmp"
6052 fi
6053
6054 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
6055     echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$QTMODULE.tmp"
6056 fi
6057
6058 #dump in the OPENSSL_LIBS info
6059 if [ '!' -z "$OPENSSL_LIBS" ]; then
6060     echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$QTMODULE.tmp"
6061 elif [ "$CFG_OPENSSL" = "linked" ]; then
6062     echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$QTMODULE.tmp"
6063 fi
6064
6065 #dump in the SDK info
6066 if [ '!' -z "$CFG_SDK" ]; then
6067    echo "QMAKE_MAC_SDK = $CFG_SDK" >> "$QTMODULE.tmp"
6068 fi
6069
6070 # cmdline args
6071 cat "$QMAKE_VARS_FILE" >> "$QTMODULE.tmp"
6072 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
6073
6074 # replace qmodule.pri if it differs from the newly created temp file
6075 if cmp -s "$QTMODULE.tmp" "$QTMODULE"; then
6076     rm -f "$QTMODULE.tmp"
6077 else
6078     mv -f "$QTMODULE.tmp" "$QTMODULE"
6079 fi
6080
6081 #-------------------------------------------------------------------------------
6082 # save configuration into .qmake.cache
6083 #-------------------------------------------------------------------------------
6084
6085 CACHEFILE="$outpath/.qmake.cache"
6086 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
6087 cat >>"$CACHEFILE.tmp" <<EOF
6088 #paths
6089 QT_SOURCE_TREE = \$\$quote($relpath)
6090 QT_BUILD_TREE = \$\$quote($outpath)
6091
6092 include(\$\$PWD/mkspecs/qmodule.pri)
6093 CONFIG += dylib fix_output_dirs no_private_qt_headers_warning QTDIR_build
6094
6095 EOF
6096
6097 # replace .qmake.cache if it differs from the newly created temp file
6098 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
6099     rm -f "$CACHEFILE.tmp"
6100 else
6101     mv -f "$CACHEFILE.tmp" "$CACHEFILE"
6102 fi
6103
6104 #-------------------------------------------------------------------------------
6105 # give feedback on configuration
6106 #-------------------------------------------------------------------------------
6107 exec 3>&1 1>$outpath/config.summary # redirect output temporarily to config.summary
6108
6109 echo
6110 if [ "$XPLATFORM" = "$PLATFORM" ]; then
6111     echo "Build type:    $PLATFORM"
6112 else
6113     echo "Building on:   $PLATFORM"
6114     echo "Building for:  $XPLATFORM"
6115 fi
6116
6117 # the missing space before $CFG_FEATURES is intentional
6118 echo "Architecture:  $CFG_ARCH, features:$CFG_CPUFEATURES"
6119 echo "Host architecture: $CFG_HOST_ARCH, features:$CFG_HOST_CPUFEATURES"
6120
6121 if [ -n "$PLATFORM_NOTES" ]; then
6122     echo "Platform notes:"
6123     echo "$PLATFORM_NOTES"
6124 else
6125     echo
6126 fi
6127
6128 if [ "$OPT_VERBOSE" = "yes" ]; then
6129     echo $ECHO_N "qmake vars .......... $ECHO_C"
6130     cat "$QMAKE_VARS_FILE" | tr '\n' ' '
6131     echo "qmake switches ......... $QMAKE_SWITCHES"
6132 fi
6133
6134 echo "Build .................. $CFG_BUILD_PARTS"
6135 echo "Configuration .......... $QMAKE_CONFIG $QT_CONFIG"
6136 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6137    echo "Debug .................. yes (combined)"
6138    if [ "$CFG_DEBUG" = "yes" ]; then
6139        echo "Default Link ........... debug"
6140    else
6141        echo "Default Link ........... release"
6142    fi
6143 else
6144    echo "Debug .................. $CFG_DEBUG"
6145 fi
6146 if [ "$CFG_RELEASE" = "yes" ] || [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6147     echo "Force debug info ....... $CFG_FORCEDEBUGINFO"
6148 fi
6149 echo "C++11 support .......... $CFG_CXX11"
6150 if [ -n "$PKG_CONFIG" ]; then
6151     echo "pkg-config ............. yes"
6152 else
6153     echo "pkg-config ............. no"
6154 fi
6155 [ "$CFG_DBUS" = "no" ]     && echo "QtDBus module .......... no"
6156 [ "$CFG_DBUS" = "yes" ]    && echo "QtDBus module .......... yes (run-time)"
6157 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module .......... yes (linked)"
6158 echo "QtConcurrent code ...... $CFG_CONCURRENT"
6159 echo "QtGui module ........... $CFG_GUI"
6160 echo "QtWidgets module ....... $CFG_WIDGETS"
6161 if [ "$CFG_JAVASCRIPTCORE_JIT" = "auto" ]; then
6162     echo "JavaScriptCore JIT ..... To be decided by JavaScriptCore"
6163 else
6164     echo "JavaScriptCore JIT ..... $CFG_JAVASCRIPTCORE_JIT"
6165 fi
6166 echo "QML debugging .......... $CFG_QML_DEBUG"
6167 echo "PCH support ............ $CFG_PRECOMPILE"
6168 if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
6169     echo "SSE2/SSE3/SSSE3......... ${CFG_SSE2}/${CFG_SSE3}/${CFG_SSSE3}"
6170     echo "SSE4.1/SSE4.2........... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
6171     echo "AVX/AVX2................ ${CFG_AVX}/${CFG_AVX2}"
6172 elif [ "$CFG_ARCH" = "arm" ]; then
6173     echo "iWMMXt support ......... ${CFG_IWMMXT}"
6174     echo "NEON support ........... ${CFG_NEON}"
6175 fi
6176 if [ "$CFG_ARCH" = "mips" ]; then
6177     echo "MIPS_DSP/MIPS_DSPR2..... ${CFG_MIPS_DSP}/${CFG_MIPS_DSPR2}"
6178 fi
6179 echo "IPv6 ifname support .... $CFG_IPV6IFNAME"
6180 echo "getaddrinfo support .... $CFG_GETADDRINFO"
6181 echo "getifaddrs support ..... $CFG_GETIFADDRS"
6182 echo "Accessibility .......... $CFG_ACCESSIBILITY"
6183 echo "NIS support ............ $CFG_NIS"
6184 echo "CUPS support ........... $CFG_CUPS"
6185 echo "Iconv support .......... $CFG_ICONV"
6186 echo "Glib support ........... $CFG_GLIB"
6187 echo "GStreamer support ...... $CFG_GSTREAMER"
6188 echo "PulseAudio support ..... $CFG_PULSEAUDIO"
6189 echo "Large File support ..... $CFG_LARGEFILE"
6190 echo "GIF support ............ $CFG_GIF"
6191 if [ "$CFG_JPEG" = "no" ]; then
6192     echo "JPEG support ........... $CFG_JPEG"
6193 else
6194     echo "JPEG support ........... $CFG_JPEG ($CFG_LIBJPEG)"
6195 fi
6196 if [ "$CFG_PNG" = "no" ]; then
6197     echo "PNG support ............ $CFG_PNG"
6198 else
6199     echo "PNG support ............ $CFG_PNG ($CFG_LIBPNG)"
6200 fi
6201 echo "zlib support ........... $CFG_ZLIB"
6202 echo "Session management ..... $CFG_SM"
6203 echo "libudev support ........ $CFG_LIBUDEV"
6204
6205 if [ "$CFG_OPENGL" = "desktop" ]; then
6206     echo "OpenGL support ......... yes (Desktop OpenGL)"
6207 elif [ "$CFG_OPENGL" = "es2" ]; then
6208     echo "OpenGL support ......... yes (OpenGL ES 2.x)"
6209 else
6210     echo "OpenGL support ......... no"
6211 fi
6212
6213 if [ "$CFG_OPENVG" ]; then
6214     if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
6215         echo "OpenVG support ......... ShivaVG"
6216     else
6217         echo "OpenVG support ......... $CFG_OPENVG"
6218     fi
6219 fi
6220
6221 echo "XShape support ......... $CFG_XSHAPE"
6222 echo "XVideo support ......... $CFG_XVIDEO"
6223 echo "XSync support .......... $CFG_XSYNC"
6224 echo "Xinerama support ....... $CFG_XINERAMA"
6225 echo "Xcursor support ........ $CFG_XCURSOR"
6226 echo "Xfixes support ......... $CFG_XFIXES"
6227 echo "Xrandr support ......... $CFG_XRANDR"
6228 echo "Xi support ............. $CFG_XINPUT"
6229 echo "Xi2 support ............ $CFG_XINPUT2"
6230 echo "MIT-SHM support ........ $CFG_MITSHM"
6231 echo "FontConfig support ..... $CFG_FONTCONFIG"
6232 echo "XKB Support ............ $CFG_XKB"
6233 echo "immodule support ....... $CFG_IM"
6234 echo "GTK theme support ...... $CFG_QGTKSTYLE"
6235
6236 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support .......... $CFG_SQL_mysql"
6237 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support ..... $CFG_SQL_psql"
6238 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........... $CFG_SQL_odbc"
6239 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ............ $CFG_SQL_oci"
6240 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ............ $CFG_SQL_tds"
6241 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ............ $CFG_SQL_db2"
6242 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ...... $CFG_SQL_ibase"
6243 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support ....... $CFG_SQL_sqlite2"
6244 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ......... $CFG_SQL_sqlite ($CFG_SQLITE)"
6245
6246 OPENSSL_LINKAGE=""
6247 if [ "$CFG_OPENSSL" = "yes" ]; then
6248     OPENSSL_LINKAGE="(run-time)"
6249 elif [ "$CFG_OPENSSL" = "linked" ]; then
6250     OPENSSL_LINKAGE="(linked)"
6251 fi
6252 echo "OpenSSL support ........ $CFG_OPENSSL $OPENSSL_LINKAGE"
6253 echo "Alsa support ........... $CFG_ALSA"
6254 if [ "$BUILD_ON_MAC" = "yes" ]; then
6255     echo "CoreWlan support ....... $CFG_COREWLAN"
6256 fi
6257 echo "libICU support ......... $CFG_ICU"
6258 echo "PCRE support ........... $CFG_PCRE"
6259 if [ "$CFG_XCB_LIMITED" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6260     echo "Xcb support ............ limited (old version)"
6261 else
6262     echo "Xcb support ............ $CFG_XCB"
6263 fi
6264 echo "Xrender support ........ $CFG_XRENDER"
6265 if [ "$XPLATFORM_MAEMO" = "yes" ] && [ "$CFG_XCB" = "yes" ]; then
6266     echo "XInput2 support ........ $CFG_XINPUT2"
6267 fi
6268 echo "EGLFS support .......... $CFG_EGLFS"
6269 echo "DirectFB support ....... $CFG_DIRECTFB"
6270 echo "LinuxFB support ........ $CFG_LINUXFB"
6271 echo "KMS support ............ $CFG_KMS"
6272 echo
6273
6274 # complain about not being able to use dynamic plugins if we are using a static build
6275 if [ "$CFG_SHARED" = "no" ]; then
6276     echo
6277     echo "WARNING: Using static linking will disable the use of dynamically"
6278     echo "loaded plugins. Make sure to import all needed static plugins,"
6279     echo "or compile needed modules into the library."
6280     echo
6281 fi
6282 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
6283     echo
6284     echo "NOTE: When linking against OpenSSL, you can override the default"
6285     echo "library names through OPENSSL_LIBS."
6286     echo "For example:"
6287     echo "    OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked"
6288     echo
6289 fi
6290
6291 exec 1>&3 3>&- # restore stdout
6292 cat $outpath/config.summary # display config feedback to user
6293
6294 if [ "$BUILD_ON_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
6295     echo
6296     echo "Error: debug-only framework builds are not supported. Configure with -no-framework"
6297     echo "if you want a pure debug build."
6298     echo
6299     exit 1
6300 fi
6301
6302 sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
6303 PROCS=1
6304 EXEC=""
6305
6306
6307 #-------------------------------------------------------------------------------
6308 # build makefiles based on the configuration
6309 #-------------------------------------------------------------------------------
6310
6311 if [ "$CFG_PROCESS" != "no" ]; then
6312
6313     if [ "$CFG_PROCESS" = "full" ]; then
6314         echo "Creating makefiles. Please wait..."
6315         "$outpath/bin/qmake" -r "$relpath"
6316         echo "Done"
6317     else
6318         "$outpath/bin/qmake" "$relpath"
6319     fi
6320
6321     if [ "$OPT_FAST" = "yes" ]; then
6322         PART_ROOTS=
6323         for part in $CFG_BUILD_PARTS; do
6324             case "$part" in
6325             examples|tests) PART_ROOTS="$PART_ROOTS $part" ;;
6326             esac
6327         done
6328         if [ "x$PART_ROOTS" != "x" ]; then
6329             echo
6330             echo "Creating stub makefiles. Please wait..."
6331             QMAKE="$outpath/bin/qmake"
6332             [ "$CFG_DEBUG_RELEASE" = "no" ] && first_tgt="first_target: first" || first_tgt=
6333             (cd "$relpath" && find $PART_ROOTS -name '*.pro') | grep -v /testdata/ | while read p; do
6334                 d=${p%/*}
6335                 test -f "$outpath/$d/Makefile" && continue
6336                 echo "  for $relpath/$p"
6337
6338                 mkdir -p "$outpath/$d" || exit
6339                 cat > "$outpath/$d/Makefile" <<EOF || exit
6340 # $outpath/$d/Makefile: generated by configure
6341 #
6342 # WARNING: This makefile will be replaced with a real makefile.
6343 # All changes made to this file will be lost.
6344
6345 QMAKE = "$QMAKE"
6346
6347 $first_tgt
6348 all clean install qmake first Makefile: FORCE
6349         \$(QMAKE) $QMAKE_SWITCHES "$relpath/$p"
6350         \$(MAKE) \$@
6351 FORCE:
6352 EOF
6353             done || exit
6354             echo "Done"
6355         fi
6356     fi
6357 fi
6358
6359 #-------------------------------------------------------------------------------
6360 # check for platforms that we don't yet know about
6361 #-------------------------------------------------------------------------------
6362 if [ "$CFG_ARCH" = "unknown" ]; then
6363 cat <<EOF
6364
6365         NOTICE: configure was unable to determine the architecture
6366         for the $XQMAKESPEC target.
6367
6368         Qt will not use a specialized implementation for any atomic
6369         operations. Instead a generic implemention based on either GCC
6370         intrinsics or C++11 std::atomic<T> will be used (when
6371         available). The generic implementations are generally as fast
6372         as and always as safe as a specialized implementation.
6373
6374         If no generic implementation is available, Qt will use a
6375         fallback UNIX implementation which uses a single
6376         pthread_mutex_t to protect all atomic operations. This
6377         implementation is the slow (but safe) fallback implementation
6378         for architectures Qt does not yet support.
6379 EOF
6380 fi
6381
6382 #-------------------------------------------------------------------------------
6383 # check if the user passed the -no-zlib option, which is no longer supported
6384 #-------------------------------------------------------------------------------
6385 if [ -n "$ZLIB_FORCED" ]; then
6386     which_zlib="supplied"
6387     if [ "$CFG_ZLIB" = "system" ]; then
6388         which_zlib="system"
6389     fi
6390
6391 cat <<EOF
6392
6393         NOTICE: The -no-zlib option was supplied but is no longer
6394         supported.
6395
6396         Qt now requires zlib support in all builds, so the -no-zlib
6397         option was ignored. Qt will be built using the $which_zlib
6398         zlib.
6399 EOF
6400 fi
6401
6402 #-------------------------------------------------------------------------------
6403 # check if the user passed the obsoleted -wayland or -no-wayland flag
6404 #-------------------------------------------------------------------------------
6405 if [ "$CFG_OBSOLETE_WAYLAND" = "yes" ]; then
6406 cat <<EOF
6407
6408         NOTICE: The -wayland and -no-wayland flags are now obsolete
6409
6410         All configuring of QtWayland plugin and QtCompositor happens in the module
6411 EOF
6412 fi
6413
6414 #-------------------------------------------------------------------------------
6415 # check if the user passed the obsoleted -arch or -host-arch options
6416 #-------------------------------------------------------------------------------
6417 if [ "$OPT_OBSOLETE_HOST_ARG" = "yes" ]; then
6418 cat <<EOF
6419
6420         NOTICE: The -arch and -host-arch options are obsolete.
6421
6422         Qt now detects the target and host architectures based on compiler
6423         output. Qt will be built using $CFG_ARCH for the target architecture
6424         and $CFG_HOST_ARCH for the host architecture (note that these two
6425         will be the same unless you are cross-compiling).
6426 EOF
6427 fi
6428
6429 #-------------------------------------------------------------------------------
6430 # finally save the executed command to another script
6431 #-------------------------------------------------------------------------------
6432 if [ `basename $0` != "config.status" ]; then
6433     CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
6434
6435     # add the system variables
6436     for varname in $SYSTEM_VARIABLES; do
6437         cmd=`echo \
6438 'if [ -n "\$'${varname}'" ]; then
6439     CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
6440 fi'`
6441         eval "$cmd"
6442     done
6443
6444     echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
6445
6446     [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
6447     echo "#!/bin/sh" > "$outpath/config.status"
6448     [ -n "$PKG_CONFIG_SYSROOT_DIR" ] && \
6449         echo "export PKG_CONFIG_SYSROOT_DIR=$PKG_CONFIG_SYSROOT_DIR" >> "$outpath/config.status"
6450     [ -n "$PKG_CONFIG_LIBDIR" ] && \
6451         echo "export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR" >> "$outpath/config.status"
6452     echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
6453     echo "  $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
6454     echo "else" >> "$outpath/config.status"
6455     echo "  $CONFIG_STATUS" >> "$outpath/config.status"
6456     echo "fi" >> "$outpath/config.status"
6457     chmod +x "$outpath/config.status"
6458 fi
6459
6460 if [ -n "$RPATH_MESSAGE" ]; then
6461     echo
6462     echo "$RPATH_MESSAGE"
6463 fi
6464
6465 MAKE=`basename "$MAKE"`
6466 echo
6467 echo Qt is now configured for building. Just run \'$MAKE\'.
6468 if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
6469     echo Once everything is built, Qt is installed.
6470     echo You should not run \'$MAKE install\'.
6471 else
6472     echo Once everything is built, you must run \'$MAKE install\'.
6473     echo Qt will be installed into $QT_INSTALL_PREFIX
6474 fi
6475 echo
6476 echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.
6477 echo