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