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