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