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