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