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