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