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