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