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