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