Cocoa: bugfix for autocads plugin project
[qt-netbsd.git] / configure
blob3f3e55a3c4629b35a6cd8c254eaab8269c7a971b
1 #!/bin/sh
3 # Configures to build the Qt library
5 # Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
6 # Contact: Nokia Corporation (qt-info@nokia.com)
8 # This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
9 # WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
12 #-------------------------------------------------------------------------------
13 # script initialization
14 #-------------------------------------------------------------------------------
16 # the name of this script
17 relconf=`basename $0`
18 # the directory of this script is the "source tree"
19 relpath=`dirname $0`
20 relpath=`(cd "$relpath"; /bin/pwd)`
21 # the current directory is the "build tree" or "object tree"
22 outpath=`/bin/pwd`
24 #license file location
25 LICENSE_FILE="$QT_LICENSE_FILE"
26 [ -z "$LICENSE_FILE" ] && LICENSE_FILE="$HOME/.qt-license"
27 if [ -f "$LICENSE_FILE" ]; then
28 tr -d '\r' <"$LICENSE_FILE" >"${LICENSE_FILE}.tmp"
29 diff "${LICENSE_FILE}.tmp" "${LICENSE_FILE}" >/dev/null 2>&1 || LICENSE_FILE="${LICENSE_FILE}.tmp"
32 # later cache the command line in config.status
33 OPT_CMDLINE=`echo $@ | sed "s,-v ,,g; s,-v$,,g"`
35 # initialize global variables
36 QMAKE_SWITCHES=
37 QMAKE_VARS=
38 QMAKE_CONFIG=
39 QTCONFIG_CONFIG=
40 QT_CONFIG=
41 SUPPORTED=
42 QMAKE_VARS_FILE=.qmake.vars
44 :> "$QMAKE_VARS_FILE"
46 #-------------------------------------------------------------------------------
47 # utility functions
48 #-------------------------------------------------------------------------------
50 shellEscape()
52 echo "$@" | sed 's/ /\ /g'
55 # Adds a new qmake variable to the cache
56 # Usage: QMakeVar mode varname contents
57 # where mode is one of: set, add, del
58 QMakeVar()
60 case "$1" in
61 set)
62 eq="="
64 add)
65 eq="+="
67 del)
68 eq="-="
71 echo >&2 "BUG: wrong command to QMakeVar: $1"
73 esac
75 echo "$2" "$eq" "$3" >> "$QMAKE_VARS_FILE"
78 # relies on $QMAKESPEC being set correctly. parses include statements in
79 # qmake.conf and prints out the expanded file
80 getQMakeConf()
82 tmpSPEC="$QMAKESPEC"
83 if [ -n "$1" ]; then
84 tmpSPEC="$1"
86 $AWK -v "QMAKESPEC=$tmpSPEC" '
87 /^include\(.+\)$/{
88 fname = QMAKESPEC "/" substr($0, 9, length($0) - 9)
89 while ((getline line < fname) > 0)
90 print line
91 close(fname)
92 next
94 { print }' "$tmpSPEC/qmake.conf"
97 # relies on $TEST_COMPILER being set correctly
98 compilerSupportsFlag()
100 cat >conftest.cpp <<EOF
101 int main() { return 0; }
103 "$TEST_COMPILER" "$@" -o /dev/null conftest.cpp
104 ret=$?
105 rm -f conftest.cpp conftest.o
106 return $ret
109 # relies on $TEST_COMPILER being set correctly
110 linkerSupportsFlag()
112 lflags=-Wl
113 for flag
115 safe_flag=`shellEscape "$flag"`
116 lflags=$lflags,$safe_flag
117 done
118 compilerSupportsFlag "$lflags" >/dev/null 2>&1
121 #-------------------------------------------------------------------------------
122 # operating system detection
123 #-------------------------------------------------------------------------------
125 # need that throughout the script
126 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
127 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
128 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
129 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
132 #-------------------------------------------------------------------------------
133 # window system detection
134 #-------------------------------------------------------------------------------
136 PLATFORM_X11=no
137 PLATFORM_MAC=no
138 PLATFORM_QWS=no
140 if [ -f "$relpath"/src/gui/kernel/qapplication_mac.mm ] && [ -d /System/Library/Frameworks/Carbon.framework ]; then
141 # Qt/Mac
142 # ~ the Carbon SDK exists
143 # ~ src/gui/base/qapplication_mac.cpp is present
144 # ~ this is the internal edition and Qt/Mac sources exist
145 PLATFORM_MAC=maybe
146 elif [ -f "$relpath"/src/gui/kernel/qapplication_qws.cpp ]; then
147 # Qt Embedded
148 # ~ src/gui/base/qapplication_qws.cpp is present
149 # ~ this is the free or commercial edition
150 # ~ this is the internal edition and Qt Embedded is explicitly enabled
151 if [ -f "$relpath"/src/gui/kernel/qapplication_mac.mm ]; then
152 # This is a depot build, or an all-platforms package
153 PLATFORM_QWS=maybe
154 else
155 # This must be the embedded package, since the Qt/Mac source files are not present
156 PLATFORM_QWS=yes
160 #-----------------------------------------------------------------------------
161 # Qt version detection
162 #-----------------------------------------------------------------------------
163 QT_VERSION=`grep '^# *define *QT_VERSION_STR' "$relpath"/src/corelib/global/qglobal.h`
164 QT_MAJOR_VERSION=
165 QT_MINOR_VERSION=0
166 QT_PATCH_VERSION=0
167 if [ -n "$QT_VERSION" ]; then
168 QT_VERSION=`echo $QT_VERSION | sed 's,^# *define *QT_VERSION_STR *"*\([^ ]*\)"$,\1,'`
169 MAJOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
170 if [ -n "$MAJOR" ]; then
171 MINOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
172 PATCH=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
173 QT_MAJOR_VERSION="$MAJOR"
174 [ -z "$MINOR" ] || QT_MINOR_VERSION="$MINOR"
175 [ -z "$PATCH" ] || QT_PATCH_VERSION="$PATCH"
178 if [ -z "$QT_MAJOR_VERSION" ]; then
179 echo "Cannot process version from qglobal.h: $QT_VERSION"
180 echo "Cannot proceed."
181 exit 1
184 QT_PACKAGEDATE=`grep '^# *define *QT_PACKAGEDATE_STR' "$relpath"/src/corelib/global/qglobal.h | sed -e 's,^# *define *QT_PACKAGEDATE_STR *"\([^ ]*\)"$,\1,' -e s,-,,g`
185 if [ -z "$QT_PACKAGEDATE" ]; then
186 echo "Unable to determine package date from qglobal.h: '$QT_PACKAGEDATE'"
187 echo "Cannot proceed"
188 exit 1
191 #-------------------------------------------------------------------------------
192 # check the license
193 #-------------------------------------------------------------------------------
194 COMMERCIAL_USER=ask
195 CFG_DEV=no
196 CFG_NOKIA=no
197 CFG_EMBEDDED=no
198 EditionString=Commercial
200 earlyArgParse()
202 # parse the arguments, setting things to "yes" or "no"
203 while [ "$#" -gt 0 ]; do
204 CURRENT_OPT="$1"
205 UNKNOWN_ARG=no
206 case "$1" in
207 #Autoconf style options
208 --enable-*)
209 VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
210 VAL=yes
212 --disable-*)
213 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
214 VAL=no
216 --*=*)
217 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
218 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
220 --no-*)
221 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
222 VAL=no
224 -embedded)
225 VAR=embedded
226 # this option may or may not be followed by an argument
227 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
228 VAL=auto
229 else
230 shift;
231 VAL=$1
234 -h|help|--help|-help)
235 if [ "$VAL" = "yes" ]; then
236 OPT_HELP="$VAL"
237 COMMERCIAL_USER="no" #doesn't matter we will display the help
238 else
239 UNKNOWN_OPT=yes
240 COMMERCIAL_USER="no" #doesn't matter we will display the help
243 --*)
244 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
245 VAL=yes
248 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
249 VAL="unknown"
252 UNKNOWN_ARG=yes
254 esac
255 if [ "$UNKNOWN_ARG" = "yes" ]; then
256 shift
257 continue
259 shift
261 UNKNOWN_OPT=no
262 case "$VAR" in
263 embedded)
264 CFG_EMBEDDED="$VAL"
265 if [ "$PLATFORM_QWS" != "no" ]; then
266 if [ "$PLATFORM_QWS" = "maybe" ]; then
267 PLATFORM_X11=no
268 PLATFORM_MAC=no
269 PLATFORM_QWS=yes
271 else
272 echo "No license exists to enable Qt for Embedded Linux. Disabling."
273 CFG_EMBEDDED=no
276 developer-build)
277 CFG_DEV="yes"
279 nokia-developer)
280 CFG_DEV="yes"
281 CFG_NOKIA="yes"
282 COMMERCIAL_USER="no"
284 commercial)
285 COMMERCIAL_USER="yes"
287 opensource)
288 COMMERCIAL_USER="no"
291 UNKNOWN_OPT=yes
293 esac
294 done
297 earlyArgParse "$@"
299 if [ "$COMMERCIAL_USER" = "ask" ]; then
300 while true; do
301 echo "Which edition of Qt do you want to use ?"
302 echo
303 echo "Type 'c' if you want to use the Commercial Edition."
304 echo "Type 'o' if you want to use the Open Source Edition."
305 echo
306 read commercial
307 echo
308 if [ "$commercial" = "c" ]; then
309 COMMERCIAL_USER="yes"
310 break
311 elif [ "$commercial" = "o" ]; then
312 COMMERCIAL_USER="no"
313 break
315 done
318 if [ "$CFG_NOKIA" = "yes" ]; then
319 Licensee="Nokia"
320 Edition="NokiaInternalBuild"
321 EditionString="Nokia Internal Build"
322 QT_EDITION="QT_EDITION_OPENSOURCE"
323 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
324 elif [ -f "$relpath"/LICENSE.PREVIEW.COMMERCIAL ] && [ $COMMERCIAL_USER = "yes" ]; then
325 # Commercial preview release
326 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
327 Licensee="Preview"
328 Edition="Preview"
329 QT_EDITION="QT_EDITION_DESKTOP"
330 LicenseType="Technology Preview"
331 elif [ $COMMERCIAL_USER = "yes" ]; then
332 # one of commercial editions
333 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
334 [ "$PLATFORM_QWS" = "maybe" ] && PLATFORM_QWS=yes
336 # read in the license file
337 if [ -f "$LICENSE_FILE" ]; then
338 . "$LICENSE_FILE" >/dev/null 2>&1
339 if [ -z "$LicenseKeyExt" ]; then
340 echo
341 echo "You are using an old license file."
342 echo
343 echo "Please install the license file supplied by Nokia,"
344 echo "or install the Qt Open Source Edition if you intend to"
345 echo "develop free software."
346 exit 1
348 if [ -z "$Licensee" ]; then
349 echo
350 echo "Invalid license key. Please check the license key."
351 exit 1
353 else
354 if [ -z "$LicenseKeyExt" ]; then
355 echo
356 if echo '\c' | grep '\c' >/dev/null; then
357 echo -n "Please enter your license key: "
358 else
359 echo "Please enter your license key: \c"
361 read LicenseKeyExt
362 Licensee="Unknown user"
366 # Key verification
367 echo "$LicenseKeyExt" | grep ".....*-....*-....*-....*-.....*-.....*-...." >/dev/null 2>&1 \
368 && LicenseValid="yes" \
369 || LicenseValid="no"
370 if [ "$LicenseValid" != "yes" ]; then
371 echo
372 echo "Invalid license key. Please check the license key."
373 exit 1
375 ProductCode=`echo $LicenseKeyExt | cut -f 1 -d - | cut -b 1`
376 PlatformCode=`echo $LicenseKeyExt | cut -f 2 -d - | cut -b 1`
377 LicenseTypeCode=`echo $LicenseKeyExt | cut -f 3 -d -`
378 LicenseFeatureCode=`echo $LicenseKeyExt | cut -f 4 -d - | cut -b 1`
380 # determine which edition we are licensed to use
381 case "$LicenseTypeCode" in
382 F4M)
383 LicenseType="Commercial"
384 case $ProductCode in
386 Edition="Universal"
387 QT_EDITION="QT_EDITION_UNIVERSAL"
390 Edition="FullFramework"
391 EditionString="Full Framework"
392 QT_EDITION="QT_EDITION_DESKTOP"
395 Edition="GUIFramework"
396 EditionString="GUI Framework"
397 QT_EDITION="QT_EDITION_DESKTOPLIGHT"
399 esac
401 Z4M|R4M|Q4M)
402 LicenseType="Evaluation"
403 case $ProductCode in
405 Edition="Evaluation"
406 QT_EDITION="QT_EDITION_EVALUATION"
408 esac
410 esac
411 if [ -z "$LicenseType" -o -z "$Edition" -o -z "$QT_EDITION" ]; then
412 echo
413 echo "Invalid license key. Please check the license key."
414 exit 1
417 # verify that we are licensed to use Qt on this platform
418 LICENSE_EXTENSION=
419 if [ "$PlatformCode" = "X" ]; then
420 # Qt All-OS
421 LICENSE_EXTENSION="-ALLOS"
422 elif [ "$PLATFORM_QWS" = "yes" ]; then
423 case $PlatformCode in
424 2|4|8|A|B|E|G|J|K|P|Q|S|U|V|W)
425 # Qt for Embedded Linux
426 LICENSE_EXTENSION="-EMBEDDED"
429 echo
430 echo "You are not licensed for Qt for Embedded Linux."
431 echo
432 echo "Please contact qt-info@nokia.com to upgrade your license"
433 echo "to include Qt for Embedded Linux, or install the"
434 echo "Qt Open Source Edition if you intend to develop free software."
435 exit 1
437 esac
438 elif [ "$PLATFORM_MAC" = "yes" ]; then
439 case $PlatformCode in
440 2|4|5|7|9|B|C|E|F|G|L|M|U|W|Y)
441 # Qt/Mac
442 LICENSE_EXTENSION="-DESKTOP"
444 3|6|8|A|D|H|J|K|P|Q|S|V)
445 # Embedded no-deploy
446 LICENSE_EXTENSION="-EMBEDDED"
449 echo
450 echo "You are not licensed for the Qt/Mac platform."
451 echo
452 echo "Please contact qt-info@nokia.com to upgrade your license"
453 echo "to include the Qt/Mac platform."
454 exit 1
456 esac
457 else
458 case $PlatformCode in
459 2|3|4|5|7|D|E|F|J|M|Q|S|T|V|Z)
460 # Qt/X11
461 LICENSE_EXTENSION="-DESKTOP"
463 6|8|9|A|B|C|G|H|K|P|U|W)
464 # Embedded no-deploy
465 LICENSE_EXTENSION="-EMBEDDED"
468 echo
469 echo "You are not licensed for the Qt/X11 platform."
470 echo
471 echo "Please contact qt-info@nokia.com to upgrade your license to"
472 echo "include the Qt/X11 platform, or install the Qt Open Source Edition"
473 echo "if you intend to develop free software."
474 exit 1
476 esac
479 if test -r "$relpath/.LICENSE"; then
480 # Generic, non-final license
481 LICENSE_EXTENSION=""
482 line=`sed 'y/a-z/A-Z/;q' "$relpath"/.LICENSE`
483 case "$line" in
484 *BETA*)
485 Edition=Beta
487 *TECHNOLOGY?PREVIEW*)
488 Edition=Preview
490 *EVALUATION*)
491 Edition=Evaluation
494 echo >&2 "Invalid license files; cannot continue"
495 exit 1
497 esac
498 Licensee="$Edition"
499 EditionString="$Edition"
500 QT_EDITION="QT_EDITION_DESKTOP"
503 case "$LicenseFeatureCode" in
504 G|L)
505 # US
506 case "$LicenseType" in
507 Commercial)
508 cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}-US" "$outpath/LICENSE"
510 Evaluation)
511 cp -f "$relpath/.LICENSE-EVALUATION-US" "$outpath/LICENSE"
513 esac
515 2|5)
516 # non-US
517 case "$LicenseType" in
518 Commercial)
519 cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}" "$outpath/LICENSE"
521 Evaluation)
522 cp -f "$relpath/.LICENSE-EVALUATION" "$outpath/LICENSE"
524 esac
527 echo
528 echo "Invalid license key. Please check the license key."
529 exit 1
531 esac
532 if [ '!' -f "$outpath/LICENSE" ]; then
533 echo "The LICENSE, LICENSE.GPL3 LICENSE.LGPL file shipped with"
534 echo "this software has disappeared."
535 echo
536 echo "Sorry, you are not licensed to use this software."
537 echo "Try re-installing."
538 echo
539 exit 1
541 elif [ $COMMERCIAL_USER = "no" ]; then
542 # Open Source edition - may only be used under the terms of the GPL or LGPL.
543 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
544 Licensee="Open Source"
545 Edition="OpenSource"
546 EditionString="Open Source"
547 QT_EDITION="QT_EDITION_OPENSOURCE"
550 #-------------------------------------------------------------------------------
551 # initalize variables
552 #-------------------------------------------------------------------------------
554 SYSTEM_VARIABLES="CC CXX CFLAGS CXXFLAGS LDFLAGS"
555 for varname in $SYSTEM_VARIABLES; do
556 qmakevarname="${varname}"
557 # use LDFLAGS for autoconf compat, but qmake uses QMAKE_LFLAGS
558 if [ "${varname}" = "LDFLAGS" ]; then
559 qmakevarname="LFLAGS"
561 cmd=`echo \
562 'if [ -n "\$'${varname}'" ]; then
563 QMakeVar set QMAKE_'${qmakevarname}' "\$'${varname}'"
564 fi'`
565 eval "$cmd"
566 done
567 # Use CC/CXX to run config.tests
568 mkdir -p "$outpath/config.tests"
569 rm -f "$outpath/config.tests/.qmake.cache"
570 cp "$QMAKE_VARS_FILE" "$outpath/config.tests/.qmake.cache"
572 QMakeVar add styles "cde mac motif plastique cleanlooks windows"
573 QMakeVar add decorations "default windows styled"
574 QMakeVar add mouse-drivers "pc"
575 if [ "$UNAME_SYSTEM" = "Linux" ] ; then
576 QMakeVar add gfx-drivers "linuxfb"
577 QMakeVar add mouse-drivers "linuxtp"
579 QMakeVar add kbd-drivers "tty"
581 if [ "$CFG_DEV" = "yes" ]; then
582 QMakeVar add kbd-drivers "um"
585 # QTDIR may be set and point to an old or system-wide Qt installation
586 unset QTDIR
588 # the minimum version of libdbus-1 that we require:
589 MIN_DBUS_1_VERSION=0.62
591 # initalize internal variables
592 CFG_CONFIGURE_EXIT_ON_ERROR=yes
593 CFG_PROFILE=no
594 CFG_EXCEPTIONS=unspecified
595 CFG_SCRIPT=auto # (yes|no|auto)
596 CFG_SCRIPTTOOLS=auto # (yes|no|auto)
597 CFG_XMLPATTERNS=auto # (yes|no|auto)
598 CFG_INCREMENTAL=auto
599 CFG_QCONFIG=full
600 CFG_DEBUG=auto
601 CFG_MYSQL_CONFIG=
602 CFG_DEBUG_RELEASE=no
603 CFG_SHARED=yes
604 CFG_SM=auto
605 CFG_XSHAPE=auto
606 CFG_XSYNC=auto
607 CFG_XINERAMA=runtime
608 CFG_XFIXES=runtime
609 CFG_ZLIB=auto
610 CFG_SQLITE=qt
611 CFG_GIF=auto
612 CFG_TIFF=auto
613 CFG_LIBTIFF=auto
614 CFG_PNG=yes
615 CFG_LIBPNG=auto
616 CFG_JPEG=auto
617 CFG_LIBJPEG=auto
618 CFG_MNG=auto
619 CFG_LIBMNG=auto
620 CFG_XCURSOR=runtime
621 CFG_XRANDR=runtime
622 CFG_XRENDER=auto
623 CFG_MITSHM=auto
624 CFG_OPENGL=auto
625 CFG_OPENVG=no
626 CFG_OPENVG_LC_INCLUDES=no
627 CFG_OPENVG_SHIVA=no
628 CFG_OPENVG_ON_OPENGL=no
629 CFG_EGL=no
630 CFG_EGL_GLES_INCLUDES=no
631 CFG_SSE=auto
632 CFG_FONTCONFIG=auto
633 CFG_QWS_FREETYPE=auto
634 CFG_LIBFREETYPE=auto
635 CFG_SQL_AVAILABLE=
636 QT_DEFAULT_BUILD_PARTS="libs tools examples demos docs translations"
637 CFG_BUILD_PARTS=""
638 CFG_NOBUILD_PARTS=""
639 CFG_RELEASE_QMAKE=no
640 CFG_PHONON=auto
641 CFG_PHONON_BACKEND=yes
642 CFG_MULTIMEDIA=yes
643 CFG_SVG=yes
644 CFG_WEBKIT=auto # (yes|no|auto)
646 CFG_GFX_AVAILABLE="linuxfb transformed qvfb vnc multiscreen"
647 CFG_GFX_ON="linuxfb multiscreen"
648 CFG_GFX_PLUGIN_AVAILABLE=
649 CFG_GFX_PLUGIN=
650 CFG_GFX_OFF=
651 CFG_KBD_AVAILABLE="tty linuxinput qvfb"
652 CFG_KBD_ON="tty" #default, see QMakeVar above
653 CFG_MOUSE_AVAILABLE="pc linuxtp linuxinput tslib qvfb"
654 CFG_MOUSE_ON="pc linuxtp" #default, see QMakeVar above
656 if [ -f "$relpath/src/gui/embedded/qscreenqnx_qws.cpp" ]; then
657 CFG_KBD_AVAILABLE="${CFG_KBD_AVAILABLE} qnx"
658 CFG_MOUSE_AVAILABLE="${CFG_MOUSE_AVAILABLE} qnx"
659 CFG_GFX_AVAILABLE="${CFG_GFX_AVAILABLE} qnx"
662 CFG_ARCH=
663 CFG_HOST_ARCH=
664 CFG_KBD_PLUGIN_AVAILABLE=
665 CFG_KBD_PLUGIN=
666 CFG_KBD_OFF=
667 CFG_MOUSE_PLUGIN_AVAILABLE=
668 CFG_MOUSE_PLUGIN=
669 CFG_MOUSE_OFF=
670 CFG_USE_GNUMAKE=no
671 CFG_IM=yes
672 CFG_DECORATION_AVAILABLE="styled windows default"
673 CFG_DECORATION_ON="${CFG_DECORATION_AVAILABLE}" # all on by default
674 CFG_DECORATION_PLUGIN_AVAILABLE=
675 CFG_DECORATION_PLUGIN=
676 CFG_XINPUT=runtime
677 CFG_XKB=auto
678 CFG_NIS=auto
679 CFG_CUPS=auto
680 CFG_ICONV=auto
681 CFG_DBUS=auto
682 CFG_GLIB=auto
683 CFG_GSTREAMER=auto
684 CFG_QGTKSTYLE=auto
685 CFG_LARGEFILE=auto
686 CFG_OPENSSL=auto
687 CFG_PTMALLOC=no
688 CFG_STL=auto
689 CFG_PRECOMPILE=auto
690 CFG_SEPARATE_DEBUG_INFO=auto
691 CFG_REDUCE_EXPORTS=auto
692 CFG_MMX=auto
693 CFG_3DNOW=auto
694 CFG_SSE=auto
695 CFG_SSE2=auto
696 CFG_REDUCE_RELOCATIONS=no
697 CFG_IPV6=auto
698 CFG_NAS=no
699 CFG_QWS_DEPTHS=all
700 CFG_USER_BUILD_KEY=
701 CFG_ACCESSIBILITY=auto
702 CFG_QT3SUPPORT=yes
703 CFG_ENDIAN=auto
704 CFG_HOST_ENDIAN=auto
705 CFG_DOUBLEFORMAT=auto
706 CFG_ARMFPA=auto
707 CFG_IWMMXT=no
708 CFG_CLOCK_GETTIME=auto
709 CFG_CLOCK_MONOTONIC=auto
710 CFG_MREMAP=auto
711 CFG_GETADDRINFO=auto
712 CFG_IPV6IFNAME=auto
713 CFG_GETIFADDRS=auto
714 CFG_INOTIFY=auto
715 CFG_RPATH=yes
716 CFG_FRAMEWORK=auto
717 CFG_MAC_ARCHS=
718 MAC_CONFIG_TEST_COMMANDLINE= # used to make the configure tests run with the correct arch's and SDK settings
719 CFG_MAC_DWARF2=auto
720 CFG_MAC_XARCH=auto
721 CFG_MAC_CARBON=yes
722 CFG_MAC_COCOA=auto
723 COMMANDLINE_MAC_COCOA=no
724 CFG_SXE=no
725 CFG_PREFIX_INSTALL=yes
726 CFG_SDK=
727 D_FLAGS=
728 I_FLAGS=
729 L_FLAGS=
730 RPATH_FLAGS=
731 l_FLAGS=
732 QCONFIG_FLAGS=
733 XPLATFORM= # This seems to be the QMAKESPEC, like "linux-g++"
734 PLATFORM=$QMAKESPEC
735 QT_CROSS_COMPILE=no
736 OPT_CONFIRM_LICENSE=no
737 OPT_SHADOW=maybe
738 OPT_FAST=auto
739 OPT_VERBOSE=no
740 OPT_HELP=
741 CFG_SILENT=no
742 CFG_GRAPHICS_SYSTEM=default
743 CFG_ALSA=auto
745 # initalize variables used for installation
746 QT_INSTALL_PREFIX=
747 QT_INSTALL_DOCS=
748 QT_INSTALL_HEADERS=
749 QT_INSTALL_LIBS=
750 QT_INSTALL_BINS=
751 QT_INSTALL_PLUGINS=
752 QT_INSTALL_DATA=
753 QT_INSTALL_TRANSLATIONS=
754 QT_INSTALL_SETTINGS=
755 QT_INSTALL_EXAMPLES=
756 QT_INSTALL_DEMOS=
757 QT_HOST_PREFIX=
759 #flags for SQL drivers
760 QT_CFLAGS_PSQL=
761 QT_LFLAGS_PSQL=
762 QT_CFLAGS_MYSQL=
763 QT_LFLAGS_MYSQL=
764 QT_LFLAGS_MYSQL_R=
765 QT_CFLAGS_SQLITE=
766 QT_LFLAGS_SQLITE=
767 QT_LFLAGS_ODBC="-lodbc"
769 # flags for libdbus-1
770 QT_CFLAGS_DBUS=
771 QT_LIBS_DBUS=
773 # flags for Glib (X11 only)
774 QT_CFLAGS_GLIB=
775 QT_LIBS_GLIB=
777 # flags for GStreamer (X11 only)
778 QT_CFLAGS_GSTREAMER=
779 QT_LIBS_GSTREAMER=
781 #-------------------------------------------------------------------------------
782 # check SQL drivers, mouse drivers and decorations available in this package
783 #-------------------------------------------------------------------------------
785 # opensource version removes some drivers, so force them to be off
786 CFG_SQL_tds=no
787 CFG_SQL_oci=no
788 CFG_SQL_db2=no
790 CFG_SQL_AVAILABLE=
791 if [ -d "$relpath/src/plugins/sqldrivers" ]; then
792 for a in "$relpath/src/plugins/sqldrivers/"*; do
793 if [ -d "$a" ]; then
794 base_a=`basename "$a"`
795 CFG_SQL_AVAILABLE="${CFG_SQL_AVAILABLE} ${base_a}"
796 eval "CFG_SQL_${base_a}=auto"
798 done
801 CFG_DECORATION_PLUGIN_AVAILABLE=
802 if [ -d "$relpath/src/plugins/decorations" ]; then
803 for a in "$relpath/src/plugins/decorations/"*; do
804 if [ -d "$a" ]; then
805 base_a=`basename "$a"`
806 CFG_DECORATION_PLUGIN_AVAILABLE="${CFG_DECORATION_PLUGIN_AVAILABLE} ${base_a}"
808 done
811 CFG_KBD_PLUGIN_AVAILABLE=
812 if [ -d "$relpath/src/plugins/kbddrivers" ]; then
813 for a in "$relpath/src/plugins/kbddrivers/"*; do
814 if [ -d "$a" ]; then
815 base_a=`basename "$a"`
816 CFG_KBD_PLUGIN_AVAILABLE="${CFG_KBD_PLUGIN_AVAILABLE} ${base_a}"
818 done
821 CFG_MOUSE_PLUGIN_AVAILABLE=
822 if [ -d "$relpath/src/plugins/mousedrivers" ]; then
823 for a in "$relpath/src/plugins/mousedrivers/"*; do
824 if [ -d "$a" ]; then
825 base_a=`basename "$a"`
826 CFG_MOUSE_PLUGIN_AVAILABLE="${CFG_MOUSE_PLUGIN_AVAILABLE} ${base_a}"
828 done
831 CFG_GFX_PLUGIN_AVAILABLE=
832 if [ -d "$relpath/src/plugins/gfxdrivers" ]; then
833 for a in "$relpath/src/plugins/gfxdrivers/"*; do
834 if [ -d "$a" ]; then
835 base_a=`basename "$a"`
836 CFG_GFX_PLUGIN_AVAILABLE="${CFG_GFX_PLUGIN_AVAILABLE} ${base_a}"
838 done
839 CFG_GFX_OFF="$CFG_GFX_AVAILABLE" # assume all off
842 #-------------------------------------------------------------------------------
843 # parse command line arguments
844 #-------------------------------------------------------------------------------
846 # parse the arguments, setting things to "yes" or "no"
847 while [ "$#" -gt 0 ]; do
848 CURRENT_OPT="$1"
849 UNKNOWN_ARG=no
850 case "$1" in
851 #Autoconf style options
852 --enable-*)
853 VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
854 VAL=yes
856 --disable-*)
857 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
858 VAL=no
860 --*=*)
861 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
862 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
864 --no-*)
865 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
866 VAL=no
868 --*)
869 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
870 VAL=yes
872 #Qt plugin options
873 -no-*-*|-plugin-*-*|-qt-*-*)
874 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
875 VAL=`echo $1 | sed "s,^-\([^-]*\).*,\1,"`
877 #Qt style no options
878 -no-*)
879 VAR=`echo $1 | sed "s,^-no-\(.*\),\1,"`
880 VAL=no
882 #Qt style yes options
883 -incremental|-qvfb|-profile|-shared|-static|-sm|-xinerama|-xshape|-xinput|-reduce-exports|-pch|-separate-debug-info|-stl|-freetype|-xcursor|-xfixes|-xrandr|-xrender|-mitshm|-fontconfig|-xkb|-nis|-qdbus|-dbus|-dbus-linked|-glib|-gstreamer|-gtkstyle|-cups|-iconv|-largefile|-h|-help|-v|-verbose|-debug|-release|-fast|-accessibility|-confirm-license|-gnumake|-framework|-qt3support|-debug-and-release|-exceptions|-cocoa|-universal|-prefix-install|-silent|-armfpa|-optimized-qmake|-dwarf2|-reduce-relocations|-sse|-openssl|-openssl-linked|-ptmalloc|-xmlpatterns|-phonon|-phonon-backend|-multimedia|-svg|-webkit|-script|-scripttools|-rpath|-force-pkg-config)
884 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
885 VAL=yes
887 #Qt style options that pass an argument
888 -qconfig)
889 if [ "$PLATFORM_QWS" != "yes" ]; then
890 echo
891 echo "WARNING: -qconfig is only tested and supported on Qt for Embedded Linux."
892 echo
894 CFG_QCONFIG="$VAL"
895 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
896 shift
897 VAL=$1
899 -prefix|-docdir|-headerdir|-plugindir|-datadir|-libdir|-bindir|-translationdir|-sysconfdir|-examplesdir|-demosdir|-depths|-make|-nomake|-platform|-xplatform|-buildkey|-sdk|-arch|-host-arch|-mysql_config)
900 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
901 shift
902 VAL="$1"
904 #Qt style complex options in one command
905 -enable-*|-disable-*)
906 VAR=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
907 VAL=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
909 #Qt Builtin/System style options
910 -no-*|-system-*|-qt-*)
911 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
912 VAL=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
914 #Options that cannot be generalized
915 -k|-continue)
916 VAR=fatal_error
917 VAL=no
919 -embedded)
920 VAR=embedded
921 # this option may or may not be followed by an argument
922 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
923 VAL=auto
924 else
925 shift;
926 VAL=$1
929 -opengl)
930 VAR=opengl
931 # this option may or may not be followed by an argument
932 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
933 VAL=yes
934 else
935 shift;
936 VAL=$1
939 -openvg)
940 VAR=openvg
941 # this option may or may not be followed by an argument
942 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
943 VAL=yes
944 else
945 shift;
946 VAL=$1
949 -hostprefix)
950 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
951 # this option may or may not be followed by an argument
952 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
953 VAL=$outpath
954 else
955 shift;
956 VAL=$1
959 -host-*-endian)
960 VAR=host_endian
961 VAL=`echo $1 | sed "s,^-.*-\(.*\)-.*,\1,"`
963 -*-endian)
964 VAR=endian
965 VAL=`echo $1 | sed "s,^-\(.*\)-.*,\1,"`
967 -qtnamespace)
968 VAR="qtnamespace"
969 shift
970 VAL="$1"
972 -graphicssystem)
973 VAR="graphicssystem"
974 shift
975 VAL=$1
977 -qtlibinfix)
978 VAR="qtlibinfix"
979 shift
980 VAL="$1"
982 -D?*|-D)
983 VAR="add_define"
984 if [ "$1" = "-D" ]; then
985 shift
986 VAL="$1"
987 else
988 VAL=`echo $1 | sed 's,-D,,'`
991 -I?*|-I)
992 VAR="add_ipath"
993 if [ "$1" = "-I" ]; then
994 shift
995 VAL="$1"
996 else
997 VAL=`echo $1 | sed 's,-I,,'`
1000 -L?*|-L)
1001 VAR="add_lpath"
1002 if [ "$1" = "-L" ]; then
1003 shift
1004 VAL="$1"
1005 else
1006 VAL=`echo $1 | sed 's,-L,,'`
1009 -R?*|-R)
1010 VAR="add_rpath"
1011 if [ "$1" = "-R" ]; then
1012 shift
1013 VAL="$1"
1014 else
1015 VAL=`echo $1 | sed 's,-R,,'`
1018 -l?*)
1019 VAR="add_link"
1020 VAL=`echo $1 | sed 's,-l,,'`
1022 -F?*|-F)
1023 VAR="add_fpath"
1024 if [ "$1" = "-F" ]; then
1025 shift
1026 VAL="$1"
1027 else
1028 VAL=`echo $1 | sed 's,-F,,'`
1031 -fw?*|-fw)
1032 VAR="add_framework"
1033 if [ "$1" = "-fw" ]; then
1034 shift
1035 VAL="$1"
1036 else
1037 VAL=`echo $1 | sed 's,-fw,,'`
1041 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
1042 VAL="unknown"
1045 UNKNOWN_ARG=yes
1047 esac
1048 if [ "$UNKNOWN_ARG" = "yes" ]; then
1049 echo "$1: unknown argument"
1050 OPT_HELP=yes
1051 ERROR=yes
1052 shift
1053 continue
1055 shift
1057 UNKNOWN_OPT=no
1058 case "$VAR" in
1059 qt3support)
1060 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1061 CFG_QT3SUPPORT="$VAL"
1062 else
1063 UNKNOWN_OPT=yes
1066 accessibility)
1067 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1068 CFG_ACCESSIBILITY="$VAL"
1069 else
1070 UNKNOWN_OPT=yes
1073 license)
1074 LICENSE_FILE="$VAL"
1076 gnumake)
1077 CFG_USE_GNUMAKE="$VAL"
1079 mysql_config)
1080 CFG_MYSQL_CONFIG="$VAL"
1082 prefix)
1083 QT_INSTALL_PREFIX="$VAL"
1085 hostprefix)
1086 QT_HOST_PREFIX="$VAL"
1088 force-pkg-config)
1089 QT_FORCE_PKGCONFIG=yes
1091 docdir)
1092 QT_INSTALL_DOCS="$VAL"
1094 headerdir)
1095 QT_INSTALL_HEADERS="$VAL"
1097 plugindir)
1098 QT_INSTALL_PLUGINS="$VAL"
1100 datadir)
1101 QT_INSTALL_DATA="$VAL"
1103 libdir)
1104 QT_INSTALL_LIBS="$VAL"
1106 qtnamespace)
1107 QT_NAMESPACE="$VAL"
1109 qtlibinfix)
1110 QT_LIBINFIX="$VAL"
1112 translationdir)
1113 QT_INSTALL_TRANSLATIONS="$VAL"
1115 sysconfdir|settingsdir)
1116 QT_INSTALL_SETTINGS="$VAL"
1118 examplesdir)
1119 QT_INSTALL_EXAMPLES="$VAL"
1121 demosdir)
1122 QT_INSTALL_DEMOS="$VAL"
1124 qconfig)
1125 CFG_QCONFIG="$VAL"
1127 bindir)
1128 QT_INSTALL_BINS="$VAL"
1130 buildkey)
1131 CFG_USER_BUILD_KEY="$VAL"
1133 sxe)
1134 CFG_SXE="$VAL"
1136 embedded)
1137 CFG_EMBEDDED="$VAL"
1138 if [ "$PLATFORM_QWS" != "no" ]; then
1139 if [ "$PLATFORM_QWS" = "maybe" ]; then
1140 PLATFORM_X11=no
1141 PLATFORM_MAC=no
1142 PLATFORM_QWS=yes
1144 else
1145 echo "No license exists to enable Qt for Embedded Linux. Disabling."
1146 CFG_EMBEDDED=no
1149 sse)
1150 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1151 CFG_SSE="$VAL"
1152 else
1153 UNKNOWN_OPT=yes
1156 endian)
1157 if [ "$VAL" = "little" ]; then
1158 CFG_ENDIAN="Q_LITTLE_ENDIAN"
1159 elif [ "$VAL" = "big" ]; then
1160 CFG_ENDIAN="Q_BIG_ENDIAN"
1161 else
1162 UNKNOWN_OPT=yes
1165 host_endian)
1166 if [ "$VAL" = "little" ]; then
1167 CFG_HOST_ENDIAN="Q_LITTLE_ENDIAN"
1168 elif [ "$VAL" = "big" ]; then
1169 CFG_HOST_ENDIAN="Q_BIG_ENDIAN"
1170 else
1171 UNKNOWN_OPT=yes
1174 armfpa)
1175 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1176 CFG_ARMFPA="$VAL"
1177 else
1178 UNKNOWN_OPT=yes
1181 depths)
1182 CFG_QWS_DEPTHS="$VAL"
1184 opengl)
1185 if [ "$VAL" = "auto" ] || [ "$VAL" = "desktop" ] ||
1186 [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] ||
1187 [ "$VAL" = "es1cl" ] || [ "$VAL" = "es1" ] || [ "$VAL" = "es2" ]; then
1188 CFG_OPENGL="$VAL"
1189 else
1190 UNKNOWN_OPT=yes
1193 openvg)
1194 if [ "$VAL" = "auto" ] || [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1195 CFG_OPENVG="$VAL"
1196 else
1197 UNKNOWN_OPT=yes
1200 graphicssystem)
1201 if [ "$PLATFORM_QWS" = "yes" ]; then
1202 echo "Error: Graphics System plugins are not supported on QWS."
1203 echo " On QWS, the graphics system API is part of the QScreen plugin architecture "
1204 echo " rather than existing as a separate plugin."
1205 echo ""
1206 UNKNOWN_OPT=yes
1207 else
1208 if [ "$VAL" = "opengl" ]; then
1209 CFG_GRAPHICS_SYSTEM="opengl"
1210 elif [ "$VAL" = "openvg" ]; then
1211 CFG_GRAPHICS_SYSTEM="openvg"
1212 elif [ "$VAL" = "raster" ]; then
1213 CFG_GRAPHICS_SYSTEM="raster"
1214 else
1215 UNKNOWN_OPT=yes
1220 qvfb) # left for commandline compatibility, not documented
1221 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1222 if [ "$VAL" = "yes" ]; then
1223 QMakeVar add gfx-drivers qvfb
1224 QMakeVar add kbd-drivers qvfb
1225 QMakeVar add mouse-drivers qvfb
1226 CFG_GFX_ON="$CFG_GFX_ON qvfb"
1227 CFG_KBD_ON="$CFG_KBD_ON qvfb"
1228 CFG_MOUSE_ON="$CFG_MOUSE_ON qvfb"
1230 else
1231 UNKNOWN_OPT=yes
1234 nomake)
1235 CFG_NOBUILD_PARTS="$CFG_NOBUILD_PARTS $VAL"
1237 make)
1238 CFG_BUILD_PARTS="$CFG_BUILD_PARTS $VAL"
1240 x11)
1241 if [ "$PLATFORM_MAC" = "yes" ]; then
1242 PLATFORM_MAC=no
1243 elif [ "$PLATFORM_QWS" = "yes" ]; then
1244 PLATFORM_QWS=no
1246 if [ "$CFG_FRAMEWORK" = "auto" ]; then
1247 CFG_FRAMEWORK=no
1249 PLATFORM_X11=yes
1251 sdk)
1252 if [ "$PLATFORM_MAC" = "yes" ]; then
1253 CFG_SDK="$VAL"
1254 else
1255 UNKNOWN_OPT=yes
1258 dwarf2)
1259 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1260 CFG_MAC_DWARF2="$VAL"
1261 else
1262 UNKNOWN_OPT=yes
1265 arch)
1266 if [ "$PLATFORM_MAC" = "yes" ]; then
1267 CFG_MAC_ARCHS="$CFG_MAC_ARCHS $VAL"
1268 else
1269 CFG_ARCH=$VAL
1272 host-arch)
1273 CFG_HOST_ARCH=$VAL
1275 universal)
1276 if [ "$PLATFORM_MAC" = "yes" ] && [ "$VAL" = "yes" ]; then
1277 CFG_MAC_ARCHS="$CFG_MAC_ARCHS x86 ppc"
1278 else
1279 UNKNOWN_OPT=yes
1282 cocoa)
1283 if [ "$PLATFORM_MAC" = "yes" ] && [ "$VAL" = "yes" ]; then
1284 CFG_MAC_COCOA="$VAL"
1285 COMMANDLINE_MAC_COCOA="$VAL"
1286 else
1287 UNKNOWN_OPT=yes
1290 framework)
1291 if [ "$PLATFORM_MAC" = "yes" ]; then
1292 CFG_FRAMEWORK="$VAL"
1293 else
1294 UNKNOWN_OPT=yes
1297 profile)
1298 if [ "$VAL" = "yes" ]; then
1299 CFG_PROFILE=yes
1300 QMakeVar add QMAKE_CFLAGS -pg
1301 QMakeVar add QMAKE_CXXFLAGS -pg
1302 QMakeVar add QMAKE_LFLAGS -pg
1303 QMAKE_VARS="$QMAKE_VARS CONFIG+=nostrip"
1304 else
1305 UNKNOWN_OPT=yes
1308 exceptions|g++-exceptions)
1309 if [ "$VAL" = "no" ]; then
1310 CFG_EXCEPTIONS=no
1311 elif [ "$VAL" = "yes" ]; then
1312 CFG_EXCEPTIONS=yes
1313 else
1314 UNKNOWN_OPT=yes
1317 platform)
1318 PLATFORM="$VAL"
1319 # keep compatibility with old platform names
1320 case $PLATFORM in
1321 aix-64)
1322 PLATFORM=aix-xlc-64
1324 hpux-o64)
1325 PLATFORM=hpux-acc-o64
1327 hpux-n64)
1328 PLATFORM=hpux-acc-64
1330 hpux-acc-n64)
1331 PLATFORM=hpux-acc-64
1333 irix-n32)
1334 PLATFORM=irix-cc
1336 irix-64)
1337 PLATFORM=irix-cc-64
1339 irix-cc-n64)
1340 PLATFORM=irix-cc-64
1342 reliant-64)
1343 PLATFORM=reliant-cds-64
1345 solaris-64)
1346 PLATFORM=solaris-cc-64
1348 solaris-64)
1349 PLATFORM=solaris-cc-64
1351 openunix-cc)
1352 PLATFORM=unixware-cc
1354 openunix-g++)
1355 PLATFORM=unixware-g++
1357 unixware7-cc)
1358 PLATFORM=unixware-cc
1360 unixware7-g++)
1361 PLATFORM=unixware-g++
1363 macx-g++-64)
1364 PLATFORM=macx-g++
1365 NATIVE_64_ARCH=
1366 case `uname -p` in
1367 i386) NATIVE_64_ARCH="x86_64" ;;
1368 powerpc) NATIVE_64_ARCH="ppc64" ;;
1369 *) echo "WARNING: Can't detect CPU architecture for macx-g++-64" ;;
1370 esac
1371 if [ ! -z "$NATIVE_64_ARCH" ]; then
1372 QTCONFIG_CONFIG="$QTCONFIG_CONFIG $NATIVE_64_ARCH"
1373 CFG_MAC_ARCHS="$CFG_MAC_ARCHS $NATIVE_64_ARCH"
1376 esac
1378 xplatform)
1379 XPLATFORM="$VAL"
1381 debug-and-release)
1382 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1383 CFG_DEBUG_RELEASE="$VAL"
1384 else
1385 UNKNOWN_OPT=yes
1388 optimized-qmake)
1389 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1390 CFG_RELEASE_QMAKE="$VAL"
1391 else
1392 UNKNOWN_OPT=yes
1395 release)
1396 if [ "$VAL" = "yes" ]; then
1397 CFG_DEBUG=no
1398 elif [ "$VAL" = "no" ]; then
1399 CFG_DEBUG=yes
1400 else
1401 UNKNOWN_OPT=yes
1404 prefix-install)
1405 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1406 CFG_PREFIX_INSTALL="$VAL"
1407 else
1408 UNKNOWN_OPT=yes
1411 debug)
1412 CFG_DEBUG="$VAL"
1414 developer-build|commercial|opensource|nokia-developer)
1415 # These switches have been dealt with already
1417 static)
1418 if [ "$VAL" = "yes" ]; then
1419 CFG_SHARED=no
1420 elif [ "$VAL" = "no" ]; then
1421 CFG_SHARED=yes
1422 else
1423 UNKNOWN_OPT=yes
1426 incremental)
1427 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1428 CFG_INCREMENTAL="$VAL"
1429 else
1430 UNKNOWN_OPT=yes
1433 fatal_error)
1434 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1435 CFG_CONFIGURE_EXIT_ON_ERROR="$VAL"
1436 else
1437 UNKNOWN_OPT=yes
1440 feature-*)
1441 if [ "$PLATFORM_QWS" = "yes" ]; then
1442 FEATURE=`echo $VAR | sed "s,^[^-]*-\([^-]*\),\1," | tr 'abcdefghijklmnopqrstuvwxyz-' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
1443 if [ "$VAL" = "no" ]; then
1444 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_$FEATURE"
1445 elif [ "$VAL" = "yes" ] || [ "$VAL" = "unknown" ]; then
1446 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_$FEATURE"
1447 else
1448 UNKNOWN_OPT=yes
1450 else
1451 UNKNOWN_OPT=yes
1454 shared)
1455 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1456 CFG_SHARED="$VAL"
1457 else
1458 UNKNOWN_OPT=yes
1461 gif)
1462 [ "$VAL" = "qt" ] && VAL=yes
1463 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1464 CFG_GIF="$VAL"
1465 else
1466 UNKNOWN_OPT=yes
1470 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1471 CFG_SM="$VAL"
1472 else
1473 UNKNOWN_OPT=yes
1477 xinerama)
1478 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1479 CFG_XINERAMA="$VAL"
1480 else
1481 UNKNOWN_OPT=yes
1484 xshape)
1485 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1486 CFG_XSHAPE="$VAL"
1487 else
1488 UNKNOWN_OPT=yes
1491 xsync)
1492 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1493 CFG_XSYNC="$VAL"
1494 else
1495 UNKNOWN_OPT=yes
1498 xinput)
1499 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1500 CFG_XINPUT="$VAL"
1501 else
1502 UNKNOWN_OPT=yes
1505 stl)
1506 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1507 CFG_STL="$VAL"
1508 else
1509 UNKNOWN_OPT=yes
1512 pch)
1513 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1514 CFG_PRECOMPILE="$VAL"
1515 else
1516 UNKNOWN_OPT=yes
1519 separate-debug-info)
1520 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1521 CFG_SEPARATE_DEBUG_INFO="$VAL"
1522 else
1523 UNKNOWN_OPT=yes
1526 reduce-exports)
1527 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1528 CFG_REDUCE_EXPORTS="$VAL"
1529 else
1530 UNKNOWN_OPT=yes
1533 mmx)
1534 if [ "$VAL" = "no" ]; then
1535 CFG_MMX="$VAL"
1536 else
1537 UNKNOWN_OPT=yes
1540 3dnow)
1541 if [ "$VAL" = "no" ]; then
1542 CFG_3DNOW="$VAL"
1543 else
1544 UNKNOWN_OPT=yes
1547 sse)
1548 if [ "$VAL" = "no" ]; then
1549 CFG_SSE="$VAL"
1550 else
1551 UNKNOWN_OPT=yes
1554 sse2)
1555 if [ "$VAL" = "no" ]; then
1556 CFG_SSE2="$VAL"
1557 else
1558 UNKNOWN_OPT=yes
1561 iwmmxt)
1562 CFG_IWMMXT="yes"
1564 reduce-relocations)
1565 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1566 CFG_REDUCE_RELOCATIONS="$VAL"
1567 else
1568 UNKNOWN_OPT=yes
1571 freetype)
1572 [ "$VAL" = "qt" ] && VAL=yes
1573 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1574 CFG_QWS_FREETYPE="$VAL"
1575 else
1576 UNKNOWN_OPT=yes
1579 zlib)
1580 [ "$VAL" = "qt" ] && VAL=yes
1581 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1582 CFG_ZLIB="$VAL"
1583 else
1584 UNKNOWN_OPT=yes
1586 # No longer supported:
1587 #[ "$VAL" = "no" ] && CFG_LIBPNG=no
1589 sqlite)
1590 if [ "$VAL" = "system" ]; then
1591 CFG_SQLITE=system
1592 else
1593 UNKNOWN_OPT=yes
1596 libpng)
1597 [ "$VAL" = "yes" ] && VAL=qt
1598 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1599 CFG_LIBPNG="$VAL"
1600 else
1601 UNKNOWN_OPT=yes
1604 libjpeg)
1605 [ "$VAL" = "yes" ] && VAL=qt
1606 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1607 CFG_LIBJPEG="$VAL"
1608 else
1609 UNKNOWN_OPT=yes
1612 libmng)
1613 [ "$VAL" = "yes" ] && VAL=qt
1614 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1615 CFG_LIBMNG="$VAL"
1616 else
1617 UNKNOWN_OPT=yes
1620 libtiff)
1621 [ "$VAL" = "yes" ] && VAL=qt
1622 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1623 CFG_LIBTIFF="$VAL"
1624 else
1625 UNKNOWN_OPT=yes
1628 nas-sound)
1629 if [ "$VAL" = "system" ] || [ "$VAL" = "no" ]; then
1630 CFG_NAS="$VAL"
1631 else
1632 UNKNOWN_OPT=yes
1635 xcursor)
1636 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1637 CFG_XCURSOR="$VAL"
1638 else
1639 UNKNOWN_OPT=yes
1642 xfixes)
1643 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1644 CFG_XFIXES="$VAL"
1645 else
1646 UNKNOWN_OPT=yes
1649 xrandr)
1650 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1651 CFG_XRANDR="$VAL"
1652 else
1653 UNKNOWN_OPT=yes
1656 xrender)
1657 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1658 CFG_XRENDER="$VAL"
1659 else
1660 UNKNOWN_OPT=yes
1663 mitshm)
1664 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1665 CFG_MITSHM="$VAL"
1666 else
1667 UNKNOWN_OPT=yes
1670 fontconfig)
1671 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1672 CFG_FONTCONFIG="$VAL"
1673 else
1674 UNKNOWN_OPT=yes
1677 xkb)
1678 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1679 CFG_XKB="$VAL"
1680 else
1681 UNKNOWN_OPT=yes
1684 cups)
1685 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1686 CFG_CUPS="$VAL"
1687 else
1688 UNKNOWN_OPT=yes
1691 iconv)
1692 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1693 CFG_ICONV="$VAL"
1694 else
1695 UNKNOWN_OPT=yes
1698 glib)
1699 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1700 CFG_GLIB="$VAL"
1701 else
1702 UNKNOWN_OPT=yes
1705 gstreamer)
1706 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1707 CFG_GSTREAMER="$VAL"
1708 else
1709 UNKNOWN_OPT=yes
1712 gtkstyle)
1713 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1714 CFG_QGTKSTYLE="$VAL"
1715 else
1716 UNKNOWN_OPT=yes
1719 qdbus|dbus)
1720 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "linked" ]; then
1721 CFG_DBUS="$VAL"
1722 elif [ "$VAL" = "runtime" ]; then
1723 CFG_DBUS="yes"
1724 else
1725 UNKNOWN_OPT=yes
1728 dbus-linked)
1729 if [ "$VAL" = "yes" ]; then
1730 CFG_DBUS="linked"
1731 else
1732 UNKNOWN_OPT=yes
1735 nis)
1736 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1737 CFG_NIS="$VAL"
1738 else
1739 UNKNOWN_OPT=yes
1742 largefile)
1743 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1744 CFG_LARGEFILE="$VAL"
1745 else
1746 UNKNOWN_OPT=yes
1749 openssl)
1750 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1751 CFG_OPENSSL="$VAL"
1752 else
1753 UNKNOWN_OPT=yes
1756 openssl-linked)
1757 if [ "$VAL" = "yes" ]; then
1758 CFG_OPENSSL="linked"
1759 else
1760 UNKNOWN_OPT=yes
1763 ptmalloc)
1764 if [ "$VAL" = "yes" ]; then
1765 CFG_PTMALLOC="yes"
1766 else
1767 UNKNOWN_OPT=yes
1771 xmlpatterns)
1772 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1773 CFG_XMLPATTERNS="yes"
1774 else
1775 if [ "$VAL" = "no" ]; then
1776 CFG_XMLPATTERNS="no"
1777 else
1778 UNKNOWN_OPT=yes
1782 script)
1783 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1784 CFG_SCRIPT="yes"
1785 else
1786 if [ "$VAL" = "no" ]; then
1787 CFG_SCRIPT="no"
1788 else
1789 UNKNOWN_OPT=yes
1793 scripttools)
1794 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1795 CFG_SCRIPTTOOLS="yes"
1796 else
1797 if [ "$VAL" = "no" ]; then
1798 CFG_SCRIPTTOOLS="no"
1799 else
1800 UNKNOWN_OPT=yes
1804 svg)
1805 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1806 CFG_SVG="yes"
1807 else
1808 if [ "$VAL" = "no" ]; then
1809 CFG_SVG="no"
1810 else
1811 UNKNOWN_OPT=yes
1815 webkit)
1816 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1817 CFG_WEBKIT="yes"
1818 else
1819 if [ "$VAL" = "no" ]; then
1820 CFG_WEBKIT="no"
1821 else
1822 UNKNOWN_OPT=yes
1826 confirm-license)
1827 if [ "$VAL" = "yes" ]; then
1828 OPT_CONFIRM_LICENSE="$VAL"
1829 else
1830 UNKNOWN_OPT=yes
1833 h|help)
1834 if [ "$VAL" = "yes" ]; then
1835 OPT_HELP="$VAL"
1836 else
1837 UNKNOWN_OPT=yes
1840 sql-*|gfx-*|decoration-*|kbd-*|mouse-*)
1841 # if Qt style options were used, $VAL can be "no", "qt", or "plugin"
1842 # if autoconf style options were used, $VAL can be "yes" or "no"
1843 [ "$VAL" = "yes" ] && VAL=qt
1844 # now $VAL should be "no", "qt", or "plugin"... double-check
1845 if [ "$VAL" != "no" ] && [ "$VAL" != "qt" ] && [ "$VAL" != "plugin" ]; then
1846 UNKNOWN_OPT=yes
1848 # now $VAL is "no", "qt", or "plugin"
1849 OPT="$VAL"
1850 VAL=`echo $VAR | sed "s,^[^-]*-\([^-]*\).*,\1,"`
1851 VAR=`echo $VAR | sed "s,^\([^-]*\).*,\1,"`
1853 # Grab the available values
1854 case "$VAR" in
1855 sql)
1856 avail="$CFG_SQL_AVAILABLE"
1858 gfx)
1859 avail="$CFG_GFX_AVAILABLE"
1860 if [ "$OPT" = "plugin" ]; then
1861 avail="$CFG_GFX_PLUGIN_AVAILABLE"
1864 decoration)
1865 avail="$CFG_DECORATION_AVAILABLE"
1866 if [ "$OPT" = "plugin" ]; then
1867 avail="$CFG_DECORATION_PLUGIN_AVAILABLE"
1870 kbd)
1871 avail="$CFG_KBD_AVAILABLE"
1872 if [ "$OPT" = "plugin" ]; then
1873 avail="$CFG_KBD_PLUGIN_AVAILABLE"
1876 mouse)
1877 avail="$CFG_MOUSE_AVAILABLE"
1878 if [ "$OPT" = "plugin" ]; then
1879 avail="$CFG_MOUSE_PLUGIN_AVAILABLE"
1883 avail=""
1884 echo "BUG: Unhandled type $VAR used in $CURRENT_OPT"
1886 esac
1888 # Check that that user's value is available.
1889 found=no
1890 for d in $avail; do
1891 if [ "$VAL" = "$d" ]; then
1892 found=yes
1893 break
1895 done
1896 [ "$found" = yes ] || ERROR=yes
1898 if [ "$VAR" = "sql" ]; then
1899 # set the CFG_SQL_driver
1900 eval "CFG_SQL_$VAL=\$OPT"
1901 continue
1904 if [ "$OPT" = "plugin" ] || [ "$OPT" = "qt" ]; then
1905 if [ "$OPT" = "plugin" ]; then
1906 [ "$VAR" = "decoration" ] && QMakeVar del "${VAR}s" "$VAL"
1907 [ "$VAR" = "decoration" ] && CFG_DECORATION_ON=`echo "${CFG_DECORATION_ON} " | sed "s,${VAL} ,,g"` && CFG_DECORATION_PLUGIN="$CFG_DECORATION_PLUGIN ${VAL}"
1908 [ "$VAR" = "kbd" ] && QMakeVar del "${VAR}s" "$VAL"
1909 [ "$VAR" = "kbd" ] && CFG_KBD_ON=`echo "${CFG_MOUSE_ON} " | sed "s,${VAL} ,,g"` && CFG_KBD_PLUGIN="$CFG_KBD_PLUGIN ${VAL}"
1910 [ "$VAR" = "mouse" ] && QMakeVar del "${VAR}s" "$VAL"
1911 [ "$VAR" = "mouse" ] && CFG_MOUSE_ON=`echo "${CFG_MOUSE_ON} " | sed "s,${VAL} ,,g"` && CFG_MOUSE_PLUGIN="$CFG_MOUSE_PLUGIN ${VAL}"
1912 [ "$VAR" = "gfx" ] && QMakeVar del "${VAR}s" "$VAL"
1913 [ "$VAR" = "gfx" ] && CFG_GFX_ON=`echo "${CFG_GFX_ON} " | sed "s,${VAL} ,,g"` && CFG_GFX_PLUGIN="${CFG_GFX_PLUGIN} ${VAL}"
1914 VAR="${VAR}-${OPT}"
1915 else
1916 if [ "$VAR" = "gfx" ] || [ "$VAR" = "kbd" ] || [ "$VAR" = "decoration" ] || [ "$VAR" = "mouse" ]; then
1917 [ "$VAR" = "gfx" ] && CFG_GFX_ON="$CFG_GFX_ON $VAL"
1918 [ "$VAR" = "kbd" ] && CFG_KBD_ON="$CFG_KBD_ON $VAL"
1919 [ "$VAR" = "decoration" ] && CFG_DECORATION_ON="$CFG_DECORATION_ON $VAL"
1920 [ "$VAR" = "mouse" ] && CFG_MOUSE_ON="$CFG_MOUSE_ON $VAL"
1921 VAR="${VAR}-driver"
1924 QMakeVar add "${VAR}s" "${VAL}"
1925 elif [ "$OPT" = "no" ]; then
1926 PLUG_VAR="${VAR}-plugin"
1927 if [ "$VAR" = "gfx" ] || [ "$VAR" = "kbd" ] || [ "$VAR" = "mouse" ]; then
1928 IN_VAR="${VAR}-driver"
1929 else
1930 IN_VAR="${VAR}"
1932 [ "$VAR" = "decoration" ] && CFG_DECORATION_ON=`echo "${CFG_DECORATION_ON} " | sed "s,${VAL} ,,g"`
1933 [ "$VAR" = "gfx" ] && CFG_GFX_ON=`echo "${CFG_GFX_ON} " | sed "s,${VAL} ,,g"`
1934 [ "$VAR" = "kbd" ] && CFG_KBD_ON=`echo "${CFG_KBD_ON} " | sed "s,${VAL} ,,g"`
1935 [ "$VAR" = "mouse" ] && CFG_MOUSE_ON=`echo "${CFG_MOUSE_ON} " | sed "s,${VAL} ,,g"`
1936 QMakeVar del "${IN_VAR}s" "$VAL"
1937 QMakeVar del "${PLUG_VAR}s" "$VAL"
1939 if [ "$ERROR" = "yes" ]; then
1940 echo "$CURRENT_OPT: unknown argument"
1941 OPT_HELP=yes
1944 v|verbose)
1945 if [ "$VAL" = "yes" ]; then
1946 if [ "$OPT_VERBOSE" = "$VAL" ]; then # takes two verboses to turn on qmake debugs
1947 QMAKE_SWITCHES="$QMAKE_SWITCHES -d"
1948 else
1949 OPT_VERBOSE=yes
1951 elif [ "$VAL" = "no" ]; then
1952 if [ "$OPT_VERBOSE" = "$VAL" ] && echo "$QMAKE_SWITCHES" | grep ' -d' >/dev/null 2>&1; then
1953 QMAKE_SWITCHES=`echo $QMAKE_SWITCHES | sed "s, -d,,"`
1954 else
1955 OPT_VERBOSE=no
1957 else
1958 UNKNOWN_OPT=yes
1961 fast)
1962 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1963 OPT_FAST="$VAL"
1964 else
1965 UNKNOWN_OPT=yes
1968 rpath)
1969 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1970 CFG_RPATH="$VAL"
1971 else
1972 UNKNOWN_OPT=yes
1975 add_define)
1976 D_FLAGS="$D_FLAGS \"$VAL\""
1978 add_ipath)
1979 I_FLAGS="$I_FLAGS -I\"${VAL}\""
1981 add_lpath)
1982 L_FLAGS="$L_FLAGS -L\"${VAL}\""
1984 add_rpath)
1985 RPATH_FLAGS="$RPATH_FLAGS \"${VAL}\""
1987 add_link)
1988 l_FLAGS="$l_FLAGS -l\"${VAL}\""
1990 add_fpath)
1991 if [ "$PLATFORM_MAC" = "yes" ]; then
1992 L_FLAGS="$L_FLAGS -F\"${VAL}\""
1993 I_FLAGS="$I_FLAGS -F\"${VAL}\""
1994 else
1995 UNKNOWN_OPT=yes
1998 add_framework)
1999 if [ "$PLATFORM_MAC" = "yes" ]; then
2000 l_FLAGS="$l_FLAGS -framework \"${VAL}\""
2001 else
2002 UNKNOWN_OPT=yes
2005 silent)
2006 CFG_SILENT="$VAL"
2008 phonon)
2009 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2010 CFG_PHONON="$VAL"
2011 else
2012 UNKNOWN_OPT=yes
2015 phonon-backend)
2016 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2017 CFG_PHONON_BACKEND="$VAL"
2018 else
2019 UNKNOWN_OPT=yes
2022 multimedia)
2023 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
2024 CFG_MULTIMEDIA="$VAL"
2025 else
2026 UNKNOWN_OPT=yes
2030 UNKNOWN_OPT=yes
2032 esac
2033 if [ "$UNKNOWN_OPT" = "yes" ]; then
2034 echo "${CURRENT_OPT}: invalid command-line switch"
2035 OPT_HELP=yes
2036 ERROR=yes
2038 done
2040 if [ "$CFG_QCONFIG" != "full" ] && [ "$CFG_QT3SUPPORT" = "yes" ]; then
2041 echo "Warning: '-qconfig $CFG_QCONFIG' will disable the qt3support library."
2042 CFG_QT3SUPPORT="no"
2045 # update QT_CONFIG to show our current predefined configuration
2046 case "$CFG_QCONFIG" in
2047 minimal|small|medium|large|full)
2048 # these are a sequence of increasing functionality
2049 for c in minimal small medium large full; do
2050 QT_CONFIG="$QT_CONFIG $c-config"
2051 [ "$CFG_QCONFIG" = $c ] && break
2052 done
2055 # not known to be sufficient for anything
2056 if [ '!' -f "$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h" ]; then
2057 echo >&2 "Error: configuration file not found:"
2058 echo >&2 " $relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h"
2059 OPT_HELP=yes
2061 esac
2063 #-------------------------------------------------------------------------------
2064 # build tree initialization
2065 #-------------------------------------------------------------------------------
2067 # where to find which..
2068 unixtests="$relpath/config.tests/unix"
2069 mactests="$relpath/config.tests/mac"
2070 WHICH="$unixtests/which.test"
2072 PERL=`$WHICH perl 2>/dev/null`
2074 # find out which awk we want to use, prefer gawk, then nawk, then regular awk
2075 AWK=
2076 for e in gawk nawk awk; do
2077 if "$WHICH" $e >/dev/null 2>&1 && ( $e -f /dev/null /dev/null ) >/dev/null 2>&1; then
2078 AWK=$e
2079 break
2081 done
2083 # find perl
2084 PERL="/usr/bin/perl"
2085 if "$WHICH" perl >/dev/null 2>&1 && ( perl /dev/null ) >/dev/null 2>&1; then
2086 PERL=`$WHICH perl`
2089 ### skip this if the user just needs help...
2090 if [ "$OPT_HELP" != "yes" ]; then
2092 # is this a shadow build?
2093 if [ "$OPT_SHADOW" = "maybe" ]; then
2094 OPT_SHADOW=no
2095 if [ "$relpath" != "$outpath" ] && [ '!' -f "$outpath/configure" ]; then
2096 if [ -h "$outpath" ]; then
2097 [ "$relpath" -ef "$outpath" ] || OPT_SHADOW=yes
2098 else
2099 OPT_SHADOW=yes
2103 if [ "$OPT_SHADOW" = "yes" ]; then
2104 if [ -f "$relpath/.qmake.cache" -o -f "$relpath/src/corelib/global/qconfig.h" ]; then
2105 echo >&2 "You cannot make a shadow build from a source tree containing a previous build."
2106 echo >&2 "Cannot proceed."
2107 exit 1
2109 [ "$OPT_VERBOSE" = "yes" ] && echo "Performing shadow build..."
2112 if [ "$PLATFORM_X11" = "yes" -o "$PLATFORM_QWS" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2113 echo
2114 echo "WARNING: -debug-and-release is not supported anymore on Qt/X11 and Qt for Embedded Linux"
2115 echo "By default, Qt is built in release mode with separate debug information, so"
2116 echo "-debug-and-release is not necessary anymore"
2117 echo
2120 # detect build style
2121 if [ "$CFG_DEBUG" = "auto" ]; then
2122 if [ "$PLATFORM_MAC" = "yes" ]; then
2123 CFG_DEBUG_RELEASE=yes
2124 CFG_DEBUG=yes
2125 elif [ "$CFG_DEV" = "yes" ]; then
2126 CFG_DEBUG_RELEASE=no
2127 CFG_DEBUG=yes
2128 else
2129 CFG_DEBUG_RELEASE=no
2130 CFG_DEBUG=no
2133 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2134 QMAKE_CONFIG="$QMAKE_CONFIG build_all"
2137 if [ "$CFG_SILENT" = "yes" ]; then
2138 QMAKE_CONFIG="$QMAKE_CONFIG silent"
2141 # if the source tree is different from the build tree,
2142 # symlink or copy part of the sources
2143 if [ "$OPT_SHADOW" = "yes" ]; then
2144 echo "Preparing build tree..."
2146 if [ -z "$PERL" ]; then
2147 echo
2148 echo "You need perl in your PATH to make a shadow build."
2149 echo "Cannot proceed."
2150 exit 1
2153 [ -d "$outpath/bin" ] || mkdir -p "$outpath/bin"
2155 # symlink the qmake directory
2156 find "$relpath/qmake" | while read a; do
2157 my_a=`echo "$a" | sed "s,^${relpath}/,${outpath}/,"`
2158 if [ '!' -f "$my_a" ]; then
2159 if [ -d "$a" ]; then
2160 # directories are created...
2161 mkdir -p "$my_a"
2162 else
2163 a_dir=`dirname "$my_a"`
2164 [ -d "$a_dir" ] || mkdir -p "$a_dir"
2165 # ... and files are symlinked
2166 case `basename "$a"` in
2167 *.o|*.d|GNUmakefile*|qmake)
2170 rm -f "$my_a"
2171 ln -s "$a" "$my_a"
2173 esac
2176 done
2178 # make a syncqt script that can be used in the shadow
2179 rm -f "$outpath/bin/syncqt"
2180 if [ -x "$relpath/bin/syncqt" ]; then
2181 mkdir -p "$outpath/bin"
2182 echo "#!/bin/sh" >"$outpath/bin/syncqt"
2183 echo "QTDIR=\"$relpath\"; export QTDIR" >>"$outpath/bin/syncqt"
2184 echo "perl \"$relpath/bin/syncqt\" -outdir \"$outpath\" $*" >>"$outpath/bin/syncqt"
2185 chmod 755 "$outpath/bin/syncqt"
2188 # symlink the mkspecs directory
2189 mkdir -p "$outpath/mkspecs"
2190 rm -f "$outpath"/mkspecs/*
2191 ln -s "$relpath"/mkspecs/* "$outpath/mkspecs"
2192 rm -f "$outpath/mkspecs/default"
2194 # symlink the doc directory
2195 rm -rf "$outpath/doc"
2196 ln -s "$relpath/doc" "$outpath/doc"
2198 # make sure q3porting.xml can be found
2199 mkdir -p "$outpath/tools/porting/src"
2200 rm -f "$outpath/tools/porting/src/q3porting.xml"
2201 ln -s "$relpath/tools/porting/src/q3porting.xml" "$outpath/tools/porting/src"
2204 # symlink files from src/gui/embedded neccessary to build qvfb
2205 if [ "$CFG_DEV" = "yes" ]; then
2206 mkdir -p "$outpath/tools/qvfb"
2207 for f in qvfbhdr.h qlock_p.h qlock.cpp qwssignalhandler_p.h qwssignalhandler.cpp; do
2208 dest="${outpath}/tools/qvfb/${f}"
2209 rm -f "$dest"
2210 ln -s "${relpath}/src/gui/embedded/${f}" "${dest}"
2211 done
2214 # symlink fonts to be able to run application from build directory
2215 if [ "$PLATFORM_QWS" = "yes" ] && [ ! -e "${outpath}/lib/fonts" ]; then
2216 if [ "$PLATFORM" = "$XPLATFORM" ]; then
2217 mkdir -p "${outpath}/lib"
2218 ln -s "${relpath}/lib/fonts" "${outpath}/lib/fonts"
2222 if [ "$OPT_FAST" = "auto" ]; then
2223 if [ '!' -z "$AWK" ] && [ "$CFG_DEV" = "yes" ]; then
2224 OPT_FAST=yes
2225 else
2226 OPT_FAST=no
2230 # find a make command
2231 if [ -z "$MAKE" ]; then
2232 MAKE=
2233 for mk in gmake make; do
2234 if "$WHICH" $mk >/dev/null 2>&1; then
2235 MAKE=`"$WHICH" $mk`
2236 break
2238 done
2239 if [ -z "$MAKE" ]; then
2240 echo >&2 "You don't seem to have 'make' or 'gmake' in your PATH."
2241 echo >&2 "Cannot proceed."
2242 exit 1
2244 # export MAKE, we need it later in the config.tests
2245 export MAKE
2248 fi ### help
2250 #-------------------------------------------------------------------------------
2251 # auto-detect all that hasn't been specified in the arguments
2252 #-------------------------------------------------------------------------------
2254 [ "$PLATFORM_QWS" = "yes" -a "$CFG_EMBEDDED" = "no" ] && CFG_EMBEDDED=auto
2255 if [ "$CFG_EMBEDDED" != "no" ]; then
2256 case "$UNAME_SYSTEM:$UNAME_RELEASE" in
2257 Darwin:*)
2258 [ -z "$PLATFORM" ] && PLATFORM=qws/macx-generic-g++
2259 if [ -z "$XPLATFORM" ]; then
2260 [ "$CFG_EMBEDDED" = "auto" ] && CFG_EMBEDDED=generic
2261 XPLATFORM="qws/macx-$CFG_EMBEDDED-g++"
2264 FreeBSD:*)
2265 [ -z "$PLATFORM" ] && PLATFORM=qws/freebsd-generic-g++
2266 if [ -z "$XPLATFORM" ]; then
2267 [ "$CFG_EMBEDDED" = "auto" ] && CFG_EMBEDDED=generic
2268 XPLATFORM="qws/freebsd-$CFG_EMBEDDED-g++"
2271 SunOS:5*)
2272 [ -z "$PLATFORM" ] && PLATFORM=qws/solaris-generic-g++
2273 if [ -z "$XPLATFORM" ]; then
2274 [ "$CFG_EMBEDDED" = "auto" ] && CFG_EMBEDDED=generic
2275 XPLATFORM="qws/solaris-$CFG_EMBEDDED-g++"
2278 Linux:*)
2279 if [ -z "$PLATFORM" ]; then
2280 case "$UNAME_MACHINE" in
2281 *86)
2282 PLATFORM=qws/linux-x86-g++
2284 *86_64)
2285 PLATFORM=qws/linux-x86_64-g++
2287 *ppc)
2288 PLATFORM=qws/linux-ppc-g++
2291 PLATFORM=qws/linux-generic-g++
2293 esac
2295 if [ -z "$XPLATFORM" ]; then
2296 if [ "$CFG_EMBEDDED" = "auto" ]; then
2297 if [ -n "$CFG_ARCH" ]; then
2298 CFG_EMBEDDED=$CFG_ARCH
2299 else
2300 case "$UNAME_MACHINE" in
2301 *86)
2302 CFG_EMBEDDED=x86
2304 *86_64)
2305 CFG_EMBEDDED=x86_64
2307 *ppc)
2308 CFG_EMBEDDED=ppc
2311 CFG_EMBEDDED=generic
2313 esac
2316 XPLATFORM="qws/linux-$CFG_EMBEDDED-g++"
2319 QNX:*)
2320 [ -z "$PLATFORM" ] && PLATFORM=unsupported/qws/qnx-generic-g++
2321 if [ -z "$XPLATFORM" ]; then
2322 [ "$CFG_EMBEDDED" = "auto" ] && CFG_EMBEDDED=generic
2323 XPLATFORM="unsupported/qws/qnx-$CFG_EMBEDDED-g++"
2326 CYGWIN*:*)
2327 CFG_EMBEDDED=x86
2330 echo "Qt for Embedded Linux is not supported on this platform. Disabling."
2331 CFG_EMBEDDED=no
2332 PLATFORM_QWS=no
2334 esac
2336 if [ -z "$PLATFORM" ]; then
2337 PLATFORM_NOTES=
2338 case "$UNAME_SYSTEM:$UNAME_RELEASE" in
2339 Darwin:*)
2340 if [ "$PLATFORM_MAC" = "yes" ]; then
2341 PLATFORM=macx-g++
2342 # PLATFORM=macx-xcode
2343 else
2344 PLATFORM=darwin-g++
2347 AIX:*)
2348 #PLATFORM=aix-g++
2349 #PLATFORM=aix-g++-64
2350 PLATFORM=aix-xlc
2351 #PLATFORM=aix-xlc-64
2352 PLATFORM_NOTES="
2353 - Also available for AIX: aix-g++ aix-g++-64 aix-xlc-64
2356 GNU:*)
2357 PLATFORM=hurd-g++
2359 dgux:*)
2360 PLATFORM=dgux-g++
2362 # DYNIX/ptx:4*)
2363 # PLATFORM=dynix-g++
2364 # ;;
2365 ULTRIX:*)
2366 PLATFORM=ultrix-g++
2368 FreeBSD:*)
2369 PLATFORM=freebsd-g++
2370 PLATFORM_NOTES="
2371 - Also available for FreeBSD: freebsd-icc
2374 OpenBSD:*)
2375 PLATFORM=openbsd-g++
2377 NetBSD:*)
2378 PLATFORM=netbsd-g++
2380 BSD/OS:*|BSD/386:*)
2381 PLATFORM=bsdi-g++
2383 IRIX*:*)
2384 #PLATFORM=irix-g++
2385 PLATFORM=irix-cc
2386 #PLATFORM=irix-cc-64
2387 PLATFORM_NOTES="
2388 - Also available for IRIX: irix-g++ irix-cc-64
2391 HP-UX:*)
2392 case "$UNAME_MACHINE" in
2393 ia64)
2394 #PLATFORM=hpuxi-acc-32
2395 PLATFORM=hpuxi-acc-64
2396 PLATFORM_NOTES="
2397 - Also available for HP-UXi: hpuxi-acc-32
2401 #PLATFORM=hpux-g++
2402 PLATFORM=hpux-acc
2403 #PLATFORM=hpux-acc-64
2404 #PLATFORM=hpux-cc
2405 #PLATFORM=hpux-acc-o64
2406 PLATFORM_NOTES="
2407 - Also available for HP-UX: hpux-g++ hpux-acc-64 hpux-acc-o64
2410 esac
2412 OSF1:*)
2413 #PLATFORM=tru64-g++
2414 PLATFORM=tru64-cxx
2415 PLATFORM_NOTES="
2416 - Also available for Tru64: tru64-g++
2419 Linux:*)
2420 case "$UNAME_MACHINE" in
2421 x86_64|s390x|ppc64)
2422 PLATFORM=linux-g++-64
2425 PLATFORM=linux-g++
2427 esac
2428 PLATFORM_NOTES="
2429 - Also available for Linux: linux-kcc linux-icc linux-cxx
2432 SunOS:5*)
2433 #PLATFORM=solaris-g++
2434 PLATFORM=solaris-cc
2435 #PLATFORM=solaris-cc64
2436 PLATFORM_NOTES="
2437 - Also available for Solaris: solaris-g++ solaris-cc-64
2440 ReliantUNIX-*:*|SINIX-*:*)
2441 PLATFORM=reliant-cds
2442 #PLATFORM=reliant-cds-64
2443 PLATFORM_NOTES="
2444 - Also available for Reliant UNIX: reliant-cds-64
2447 CYGWIN*:*)
2448 PLATFORM=cygwin-g++
2450 LynxOS*:*)
2451 PLATFORM=lynxos-g++
2453 OpenUNIX:*)
2454 #PLATFORM=unixware-g++
2455 PLATFORM=unixware-cc
2456 PLATFORM_NOTES="
2457 - Also available for OpenUNIX: unixware-g++
2460 UnixWare:*)
2461 #PLATFORM=unixware-g++
2462 PLATFORM=unixware-cc
2463 PLATFORM_NOTES="
2464 - Also available for UnixWare: unixware-g++
2467 SCO_SV:*)
2468 #PLATFORM=sco-g++
2469 PLATFORM=sco-cc
2470 PLATFORM_NOTES="
2471 - Also available for SCO OpenServer: sco-g++
2474 UNIX_SV:*)
2475 PLATFORM=unixware-g++
2477 QNX:*)
2478 PLATFORM=unsupported/qnx-g++
2481 if [ "$OPT_HELP" != "yes" ]; then
2482 echo
2483 for p in $PLATFORMS; do
2484 echo " $relconf $* -platform $p"
2485 done
2486 echo >&2
2487 echo " The build script does not currently recognize all" >&2
2488 echo " platforms supported by Qt." >&2
2489 echo " Rerun this script with a -platform option listed to" >&2
2490 echo " set the system/compiler combination you use." >&2
2491 echo >&2
2492 exit 2
2494 esac
2497 if [ "$PLATFORM_QWS" = "yes" ]; then
2498 CFG_SM=no
2499 PLATFORMS=`find "$relpath/mkspecs/qws" | sed "s,$relpath/mkspecs/qws/,,"`
2500 else
2501 PLATFORMS=`find "$relpath/mkspecs/" -type f | grep -v qws | sed "s,$relpath/mkspecs/qws/,,"`
2504 [ -z "$XPLATFORM" ] && XPLATFORM="$PLATFORM"
2505 if [ -d "$PLATFORM" ]; then
2506 QMAKESPEC="$PLATFORM"
2507 else
2508 QMAKESPEC="$relpath/mkspecs/${PLATFORM}"
2510 if [ -d "$XPLATFORM" ]; then
2511 XQMAKESPEC="$XPLATFORM"
2512 else
2513 XQMAKESPEC="$relpath/mkspecs/${XPLATFORM}"
2515 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2516 QT_CROSS_COMPILE=yes
2517 QMAKE_CONFIG="$QMAKE_CONFIG cross_compile"
2520 if [ "$PLATFORM_MAC" = "yes" ]; then
2521 if [ `basename $QMAKESPEC` = "macx-xcode" ] || [ `basename $XQMAKESPEC` = "macx-xcode" ]; then
2522 echo >&2
2523 echo " Platform 'macx-xcode' should not be used when building Qt/Mac." >&2
2524 echo " Please build Qt/Mac with 'macx-g++', then if you would like to" >&2
2525 echo " use mac-xcode on your application code it can link to a Qt/Mac" >&2
2526 echo " built with 'macx-g++'" >&2
2527 echo >&2
2528 exit 2
2532 # check specified platforms are supported
2533 if [ '!' -d "$QMAKESPEC" ]; then
2534 echo
2535 echo " The specified system/compiler is not supported:"
2536 echo
2537 echo " $QMAKESPEC"
2538 echo
2539 echo " Please see the README file for a complete list."
2540 echo
2541 exit 2
2543 if [ '!' -d "$XQMAKESPEC" ]; then
2544 echo
2545 echo " The specified system/compiler is not supported:"
2546 echo
2547 echo " $XQMAKESPEC"
2548 echo
2549 echo " Please see the README file for a complete list."
2550 echo
2551 exit 2
2553 if [ '!' -f "${XQMAKESPEC}/qplatformdefs.h" ]; then
2554 echo
2555 echo " The specified system/compiler port is not complete:"
2556 echo
2557 echo " $XQMAKESPEC/qplatformdefs.h"
2558 echo
2559 echo " Please contact qt-bugs@trolltech.com."
2560 echo
2561 exit 2
2564 # now look at the configs and figure out what platform we are config'd for
2565 [ "$CFG_EMBEDDED" = "no" ] \
2566 && [ '!' -z "`getQMakeConf \"$XQMAKESPEC\" | grep QMAKE_LIBS_X11 | awk '{print $3;}'`" ] \
2567 && PLATFORM_X11=yes
2568 ### echo "$XQMAKESPEC" | grep mkspecs/qws >/dev/null 2>&1 && PLATFORM_QWS=yes
2570 if [ "$UNAME_SYSTEM" = "SunOS" ]; then
2571 # Solaris 2.5 and 2.6 have libposix4, which was renamed to librt for Solaris 7 and up
2572 if echo $UNAME_RELEASE | grep "^5\.[5|6]" >/dev/null 2>&1; then
2573 sed -e "s,-lrt,-lposix4," "$XQMAKESPEC/qmake.conf" > "$XQMAKESPEC/qmake.conf.new"
2574 mv "$XQMAKESPEC/qmake.conf.new" "$XQMAKESPEC/qmake.conf"
2578 #-------------------------------------------------------------------------------
2579 # determine the system architecture
2580 #-------------------------------------------------------------------------------
2581 if [ "$OPT_VERBOSE" = "yes" ]; then
2582 echo "Determining system architecture... ($UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_MACHINE)"
2585 if [ "$CFG_EMBEDDED" != "no" -a "$CFG_EMBEDDED" != "auto" ] && [ -n "$CFG_ARCH" ]; then
2586 if [ "$CFG_ARCH" != "$CFG_EMBEDDED" ]; then
2587 echo ""
2588 echo "You have specified a target architecture with -embedded and -arch."
2589 echo "The two architectures you have specified are different, so we can"
2590 echo "not proceed. Either set both to be the same, or only use -embedded."
2591 echo ""
2592 exit 1
2596 if [ -z "${CFG_HOST_ARCH}" ]; then
2597 case "$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_MACHINE" in
2598 IRIX*:*:*)
2599 CFG_HOST_ARCH=`uname -p`
2600 if [ "$OPT_VERBOSE" = "yes" ]; then
2601 echo " SGI ($CFG_HOST_ARCH)"
2604 SunOS:5*:*)
2605 case "$UNAME_MACHINE" in
2606 sun4u*|sun4v*)
2607 if [ "$OPT_VERBOSE" = "yes" ]; then
2608 echo " Sun SPARC (sparc)"
2610 CFG_HOST_ARCH=sparc
2612 i86pc)
2613 case "$PLATFORM" in
2614 *-64)
2615 if [ "$OPT_VERBOSE" = "yes" ]; then
2616 echo " 64-bit AMD 80x86 (x86_64)"
2618 CFG_HOST_ARCH=x86_64
2621 if [ "$OPT_VERBOSE" = "yes" ]; then
2622 echo " 32-bit Intel 80x86 (i386)"
2624 CFG_HOST_ARCH=i386
2626 esac
2627 esac
2629 Darwin:*:*)
2630 case "$UNAME_MACHINE" in
2631 Power?Macintosh)
2632 if [ "$OPT_VERBOSE" = "yes" ]; then
2633 echo " 32-bit Apple PowerPC (powerpc)"
2636 x86)
2637 if [ "$OPT_VERBOSE" = "yes" ]; then
2638 echo " 32-bit Intel 80x86 (i386)"
2641 esac
2642 CFG_HOST_ARCH=macosx
2644 AIX:*:00????????00)
2645 if [ "$OPT_VERBOSE" = "yes" ]; then
2646 echo " 64-bit IBM PowerPC (powerpc)"
2648 CFG_HOST_ARCH=powerpc
2650 HP-UX:*:9000*)
2651 if [ "$OPT_VERBOSE" = "yes" ]; then
2652 echo " HP PA-RISC (parisc)"
2654 CFG_HOST_ARCH=parisc
2656 *:*:i?86)
2657 if [ "$OPT_VERBOSE" = "yes" ]; then
2658 echo " 32-bit Intel 80x86 (i386)"
2660 CFG_HOST_ARCH=i386
2662 *:*:x86_64|*:*:amd64)
2663 if [ "$PLATFORM" = "linux-g++-32" -o "$PLATFORM" = "linux-icc-32" ]; then
2664 if [ "$OPT_VERBOSE" = "yes" ]; then
2665 echo " 32 bit on 64-bit AMD 80x86 (i386)"
2667 CFG_HOST_ARCH=i386
2668 else
2669 if [ "$OPT_VERBOSE" = "yes" ]; then
2670 echo " 64-bit AMD 80x86 (x86_64)"
2672 CFG_HOST_ARCH=x86_64
2675 *:*:ppc)
2676 if [ "$OPT_VERBOSE" = "yes" ]; then
2677 echo " 32-bit PowerPC (powerpc)"
2679 CFG_HOST_ARCH=powerpc
2681 *:*:ppc64)
2682 if [ "$OPT_VERBOSE" = "yes" ]; then
2683 echo " 64-bit PowerPC (powerpc)"
2685 CFG_HOST_ARCH=powerpc
2687 *:*:s390*)
2688 if [ "$OPT_VERBOSE" = "yes" ]; then
2689 echo " IBM S/390 (s390)"
2691 CFG_HOST_ARCH=s390
2693 *:*:arm*)
2694 if [ "$OPT_VERBOSE" = "yes" ]; then
2695 echo " ARM (arm)"
2697 CFG_HOST_ARCH=arm
2699 Linux:*:sparc*)
2700 if [ "$OPT_VERBOSE" = "yes" ]; then
2701 echo " Linux on SPARC"
2703 CFG_HOST_ARCH=sparc
2705 QNX:*:*)
2706 case "$UNAME_MACHINE" in
2707 x86pc)
2708 if [ "$OPT_VERBOSE" = "yes" ]; then
2709 echo " QNX on Intel 80x86 (i386)"
2711 CFG_HOST_ARCH=i386
2713 esac
2715 *:*:*)
2716 if [ "$OPT_VERBOSE" = "yes" ]; then
2717 echo " Trying '$UNAME_MACHINE'..."
2719 CFG_HOST_ARCH="$UNAME_MACHINE"
2721 esac
2724 if [ "$PLATFORM" != "$XPLATFORM" -a "$CFG_EMBEDDED" != "no" ]; then
2725 if [ -n "$CFG_ARCH" ]; then
2726 CFG_EMBEDDED=$CFG_ARCH
2729 case "$CFG_EMBEDDED" in
2730 x86)
2731 CFG_ARCH=i386
2733 x86_64)
2734 CFG_ARCH=x86_64
2736 ipaq|sharp)
2737 CFG_ARCH=arm
2739 dm7000)
2740 CFG_ARCH=powerpc
2742 dm800)
2743 CFG_ARCH=mips
2745 sh4al)
2746 CFG_ARCH=sh4a
2749 CFG_ARCH="$CFG_EMBEDDED"
2751 esac
2752 elif [ "$PLATFORM_MAC" = "yes" ] || [ -z "$CFG_ARCH" ]; then
2753 CFG_ARCH=$CFG_HOST_ARCH
2756 if [ -d "$relpath/src/corelib/arch/$CFG_ARCH" ]; then
2757 if [ "$OPT_VERBOSE" = "yes" ]; then
2758 echo " '$CFG_ARCH' is supported"
2760 else
2761 if [ "$OPT_VERBOSE" = "yes" ]; then
2762 echo " '$CFG_ARCH' is unsupported, using 'generic'"
2764 CFG_ARCH=generic
2766 if [ "$CFG_HOST_ARCH" != "$CFG_ARCH" ]; then
2767 if [ -d "$relpath/src/corelib/arch/$CFG_HOST_ARCH" ]; then
2768 if [ "$OPT_VERBOSE" = "yes" ]; then
2769 echo " '$CFG_HOST_ARCH' is supported"
2771 else
2772 if [ "$OPT_VERBOSE" = "yes" ]; then
2773 echo " '$CFG_HOST_ARCH' is unsupported, using 'generic'"
2775 CFG_HOST_ARCH=generic
2779 if [ "$OPT_VERBOSE" = "yes" ]; then
2780 echo "System architecture: '$CFG_ARCH'"
2781 if [ "$PLATFORM_QWS" = "yes" ]; then
2782 echo "Host architecture: '$CFG_HOST_ARCH'"
2786 #-------------------------------------------------------------------------------
2787 # tests that don't need qmake (must be run before displaying help)
2788 #-------------------------------------------------------------------------------
2790 if [ -z "$PKG_CONFIG" ]; then
2791 # See if PKG_CONFIG is set in the mkspec:
2792 PKG_CONFIG=`getQMakeConf "$XQMAKESPEC" | sed -n -e 's%PKG_CONFIG[^_].*=%%p' | tr '\n' ' '`
2794 if [ -z "$PKG_CONFIG" ]; then
2795 PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null`
2798 # Work out if we can use pkg-config
2799 if [ "$QT_CROSS_COMPILE" = "yes" ]; then
2800 if [ "$QT_FORCE_PKGCONFIG" = "yes" ]; then
2801 echo >&2 ""
2802 echo >&2 "You have asked to use pkg-config and are cross-compiling."
2803 echo >&2 "Please make sure you have a correctly set-up pkg-config"
2804 echo >&2 "environment!"
2805 echo >&2 ""
2806 if [ -z "$PKG_CONFIG_PATH" ]; then
2807 echo >&2 ""
2808 echo >&2 "Warning: PKG_CONFIG_PATH has not been set. This could mean"
2809 echo >&2 "the host compiler's .pc files will be used. This is probably"
2810 echo >&2 "not what you want."
2811 echo >&2 ""
2812 elif [ -z "$PKG_CONFIG_SYSROOT" ] && [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
2813 echo >&2 ""
2814 echo >&2 "Warning: PKG_CONFIG_SYSROOT/PKG_CONFIG_SYSROOT_DIR has not"
2815 echo >&2 "been set. This means your toolchain's .pc files must contain"
2816 echo >&2 "the paths to the toolchain's libraries & headers. If configure"
2817 echo >&2 "tests are failing, please check these files."
2818 echo >&2 ""
2820 else
2821 PKG_CONFIG=""
2825 # process CFG_MAC_ARCHS
2826 if [ "$PLATFORM_MAC" = "yes" ]; then
2827 # check -arch arguments for validity.
2828 ALLOWED="x86 ppc x86_64 ppc64 i386"
2829 # Save the list so we can re-write it using only valid values
2830 CFG_MAC_ARCHS_IN="$CFG_MAC_ARCHS"
2831 CFG_MAC_ARCHS=
2832 for i in $CFG_MAC_ARCHS_IN
2834 if echo "$ALLOWED" | grep -w -v "$i" > /dev/null 2>&1; then
2835 echo "Unknown architecture: \"$i\". Supported architectures: x86[i386] ppc x86_64 ppc64";
2836 exit 2;
2838 if [ "$i" = "i386" -o "$i" = "x86" ]; then
2839 # These are synonymous values
2840 # CFG_MAC_ARCHS requires x86 while GCC requires i386
2841 CFG_MAC_ARCHS="$CFG_MAC_ARCHS x86"
2842 MAC_CONFIG_TEST_COMMANDLINE="$MAC_CONFIG_TEST_COMMANDLINE -arch i386"
2843 else
2844 CFG_MAC_ARCHS="$CFG_MAC_ARCHS $i"
2845 MAC_CONFIG_TEST_COMMANDLINE="$MAC_CONFIG_TEST_COMMANDLINE -arch $i"
2847 done
2850 # pass on $CFG_SDK to the configure tests.
2851 if [ '!' -z "$CFG_SDK" ]; then
2852 MAC_CONFIG_TEST_COMMANDLINE="-sdk $CFG_SDK"
2853 echo "tests command line: $MAC_CONFIG_TEST_COMMANDLINE"
2856 # find the default framework value
2857 if [ "$PLATFORM_MAC" = "yes" ] && [ "$PLATFORM" != "macx-xlc" ]; then
2858 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2859 CFG_FRAMEWORK="$CFG_SHARED"
2860 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2861 echo
2862 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2863 echo
2864 CFG_FRAMEWORK="no"
2866 else
2867 CFG_FRAMEWORK=no
2870 QMAKE_CONF_COMPILER=`getQMakeConf "$XQMAKESPEC" | grep "^QMAKE_CXX[^_A-Z0-9]" | sed "s,.* *= *\(.*\)$,\1," | tail -1`
2871 TEST_COMPILER="$CC"
2872 [ -z "$TEST_COMPILER" ] && TEST_COMPILER=$QMAKE_CONF_COMPILER
2874 # auto-detect precompiled header support
2875 if [ "$CFG_PRECOMPILE" = "auto" ]; then
2876 if [ `echo "$CFG_MAC_ARCHS" | wc -w` -gt 1 ]; then
2877 CFG_PRECOMPILE=no
2878 elif "$unixtests/precomp.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2879 CFG_PRECOMPILE=no
2880 else
2881 CFG_PRECOMPILE=yes
2883 elif [ "$CFG_PRECOMPILE" = "yes" ] && [ `echo "$CFG_MAC_ARCHS" | wc -w` -gt 1 ]; then
2884 echo
2885 echo "WARNING: Using universal binaries disables precompiled headers."
2886 echo
2887 CFG_PRECOMPILE=no
2890 #auto-detect DWARF2 on the mac
2891 if [ "$PLATFORM_MAC" = "yes" ] && [ "$CFG_MAC_DWARF2" == "auto" ]; then
2892 if "$mactests/dwarf2.test" "$TEST_COMPILER" "$OPT_VERBOSE" "$mactests" ; then
2893 CFG_MAC_DWARF2=no
2894 else
2895 CFG_MAC_DWARF2=yes
2899 # auto-detect support for -Xarch on the mac
2900 if [ "$PLATFORM_MAC" = "yes" ] && [ "$CFG_MAC_XARCH" == "auto" ]; then
2901 if "$mactests/xarch.test" "$TEST_COMPILER" "$OPT_VERBOSE" "$mactests" ; then
2902 CFG_MAC_XARCH=no
2903 else
2904 CFG_MAC_XARCH=yes
2908 # don't autodetect support for separate debug info on objcopy when
2909 # cross-compiling as lots of toolchains seems to have problems with this
2910 if [ "$QT_CROSS_COMPILE" = "yes" ] && [ "$CFG_SEPARATE_DEBUG_INFO" = "auto" ]; then
2911 CFG_SEPARATE_DEBUG_INFO="no"
2914 # auto-detect support for separate debug info in objcopy
2915 if [ "$CFG_SEPARATE_DEBUG_INFO" != "no" ] && [ "$CFG_SHARED" = "yes" ]; then
2916 TEST_COMPILER_CFLAGS=`getQMakeConf "$XQMAKESPEC" | sed -n -e 's%QMAKE_CFLAGS[^_].*=%%p' | tr '\n' ' '`
2917 TEST_COMPILER_CXXFLAGS=`getQMakeConf "$XQMAKESPEC" | sed -n -e 's%QMAKE_CXXFLAGS[^_].*=%%p' | tr '\n' ' '`
2918 TEST_OBJCOPY=`getQMakeConf "$XQMAKESPEC" | grep "^QMAKE_OBJCOPY" | sed "s%.* *= *\(.*\)$%\1%" | tail -1`
2919 COMPILER_WITH_FLAGS="$TEST_COMPILER $TEST_COMPILER_CXXFLAGS"
2920 COMPILER_WITH_FLAGS=`echo "$COMPILER_WITH_FLAGS" | sed -e "s%\\$\\$QMAKE_CFLAGS%$TEST_COMPILER_CFLAGS%g"`
2921 if "$unixtests/objcopy.test" "$COMPILER_WITH_FLAGS" "$TEST_OBJCOPY" "$OPT_VERBOSE"; then
2922 CFG_SEPARATE_DEBUG_INFO=no
2923 else
2924 case "$PLATFORM" in
2925 hpux-*)
2926 # binutils on HP-UX is buggy; default to no.
2927 CFG_SEPARATE_DEBUG_INFO=no
2930 CFG_SEPARATE_DEBUG_INFO=yes
2932 esac
2936 # auto-detect -fvisibility support
2937 if [ "$CFG_REDUCE_EXPORTS" = "auto" ]; then
2938 if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2939 CFG_REDUCE_EXPORTS=no
2940 else
2941 CFG_REDUCE_EXPORTS=yes
2945 # detect the availability of the -Bsymbolic-functions linker optimization
2946 if [ "$CFG_REDUCE_RELOCATIONS" != "no" ]; then
2947 if "$unixtests/bsymbolic_functions.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2948 CFG_REDUCE_RELOCATIONS=no
2949 else
2950 CFG_REDUCE_RELOCATIONS=yes
2954 # auto-detect GNU make support
2955 if [ "$CFG_USE_GNUMAKE" = "auto" ] && "$MAKE" -v | grep "GNU Make" >/dev/null 2>&1; then
2956 CFG_USE_GNUMAKE=yes
2959 # If -opengl wasn't specified, don't try to auto-detect
2960 if [ "$PLATFORM_QWS" = "yes" ] && [ "$CFG_OPENGL" = "auto" ]; then
2961 CFG_OPENGL=no
2964 # mac
2965 if [ "$PLATFORM_MAC" = "yes" ]; then
2966 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
2967 CFG_OPENGL=desktop
2971 # find the default framework value
2972 if [ "$PLATFORM_MAC" = "yes" ] && [ "$PLATFORM" != "macx-xlc" ]; then
2973 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2974 CFG_FRAMEWORK="$CFG_SHARED"
2975 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2976 echo
2977 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2978 echo
2979 CFG_FRAMEWORK="no"
2981 else
2982 CFG_FRAMEWORK=no
2985 # x11 tests are done after qmake is built
2988 #setup the build parts
2989 if [ -z "$CFG_BUILD_PARTS" ]; then
2990 CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS"
2992 # don't build tools by default when cross-compiling
2993 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2994 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
2997 for nobuild in $CFG_NOBUILD_PARTS; do
2998 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
2999 done
3000 if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then
3001 # echo
3002 # echo "WARNING: libs is a required part of the build."
3003 # echo
3004 CFG_BUILD_PARTS="$CFG_BUILD_PARTS libs"
3007 #-------------------------------------------------------------------------------
3008 # post process QT_INSTALL_* variables
3009 #-------------------------------------------------------------------------------
3011 #prefix
3012 if [ -z "$QT_INSTALL_PREFIX" ]; then
3013 if [ "$CFG_DEV" = "yes" ]; then
3014 QT_INSTALL_PREFIX="$outpath" # In Development, we use sandboxed builds by default
3015 elif [ "$PLATFORM_QWS" = "yes" ]; then
3016 QT_INSTALL_PREFIX="/usr/local/Trolltech/QtEmbedded-${QT_VERSION}"
3017 if [ "$PLATFORM" != "$XPLATFORM" ]; then
3018 QT_INSTALL_PREFIX="${QT_INSTALL_PREFIX}-${CFG_ARCH}"
3020 else
3021 QT_INSTALL_PREFIX="/usr/local/Trolltech/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Trolltech/Qt-$QT_VERSION
3024 QT_INSTALL_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PREFIX"`
3026 #docs
3027 if [ -z "$QT_INSTALL_DOCS" ]; then #default
3028 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
3029 if [ "$PLATFORM_MAC" = "yes" ]; then
3030 QT_INSTALL_DOCS="/Developer/Documentation/Qt"
3033 [ -z "$QT_INSTALL_DOCS" ] && QT_INSTALL_DOCS="$QT_INSTALL_PREFIX/doc" #fallback
3036 QT_INSTALL_DOCS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DOCS"`
3038 #headers
3039 if [ -z "$QT_INSTALL_HEADERS" ]; then #default
3040 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
3041 if [ "$PLATFORM_MAC" = "yes" ]; then
3042 if [ "$CFG_FRAMEWORK" = "yes" ]; then
3043 QT_INSTALL_HEADERS=
3047 [ -z "$QT_INSTALL_HEADERS" ] && QT_INSTALL_HEADERS="$QT_INSTALL_PREFIX/include"
3050 QT_INSTALL_HEADERS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_HEADERS"`
3052 #libs
3053 if [ -z "$QT_INSTALL_LIBS" ]; then #default
3054 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
3055 if [ "$PLATFORM_MAC" = "yes" ]; then
3056 if [ "$CFG_FRAMEWORK" = "yes" ]; then
3057 QT_INSTALL_LIBS="/Libraries/Frameworks"
3061 [ -z "$QT_INSTALL_LIBS" ] && QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib" #fallback
3063 QT_INSTALL_LIBS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBS"`
3065 #bins
3066 if [ -z "$QT_INSTALL_BINS" ]; then #default
3067 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
3068 if [ "$PLATFORM_MAC" = "yes" ]; then
3069 QT_INSTALL_BINS="/Developer/Applications/Qt"
3072 [ -z "$QT_INSTALL_BINS" ] && QT_INSTALL_BINS="$QT_INSTALL_PREFIX/bin" #fallback
3075 QT_INSTALL_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_BINS"`
3077 #plugins
3078 if [ -z "$QT_INSTALL_PLUGINS" ]; then #default
3079 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
3080 if [ "$PLATFORM_MAC" = "yes" ]; then
3081 QT_INSTALL_PLUGINS="/Developer/Applications/Qt/plugins"
3084 [ -z "$QT_INSTALL_PLUGINS" ] && QT_INSTALL_PLUGINS="$QT_INSTALL_PREFIX/plugins" #fallback
3086 QT_INSTALL_PLUGINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PLUGINS"`
3088 #data
3089 if [ -z "$QT_INSTALL_DATA" ]; then #default
3090 QT_INSTALL_DATA="$QT_INSTALL_PREFIX"
3092 QT_INSTALL_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DATA"`
3094 #translations
3095 if [ -z "$QT_INSTALL_TRANSLATIONS" ]; then #default
3096 QT_INSTALL_TRANSLATIONS="$QT_INSTALL_PREFIX/translations"
3098 QT_INSTALL_TRANSLATIONS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TRANSLATIONS"`
3100 #settings
3101 if [ -z "$QT_INSTALL_SETTINGS" ]; then #default
3102 if [ "$PLATFORM_MAC" = "yes" ]; then
3103 QT_INSTALL_SETTINGS=/Library/Preferences/Qt
3104 else
3105 QT_INSTALL_SETTINGS=/etc/xdg
3108 QT_INSTALL_SETTINGS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_SETTINGS"`
3110 #examples
3111 if [ -z "$QT_INSTALL_EXAMPLES" ]; then #default
3112 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
3113 if [ "$PLATFORM_MAC" = "yes" ]; then
3114 QT_INSTALL_EXAMPLES="/Developer/Examples/Qt"
3117 [ -z "$QT_INSTALL_EXAMPLES" ] && QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples" #fallback
3119 QT_INSTALL_EXAMPLES=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_EXAMPLES"`
3121 #demos
3122 if [ -z "$QT_INSTALL_DEMOS" ]; then #default
3123 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
3124 if [ "$PLATFORM_MAC" = "yes" ]; then
3125 QT_INSTALL_DEMOS="/Developer/Examples/Qt/Demos"
3128 [ -z "$QT_INSTALL_DEMOS" ] && QT_INSTALL_DEMOS="$QT_INSTALL_PREFIX/demos"
3130 QT_INSTALL_DEMOS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DEMOS"`
3132 #-------------------------------------------------------------------------------
3133 # help - interactive parts of the script _after_ this section please
3134 #-------------------------------------------------------------------------------
3136 # next, emit a usage message if something failed.
3137 if [ "$OPT_HELP" = "yes" ]; then
3138 [ "x$ERROR" = "xyes" ] && echo
3139 if [ "$CFG_NIS" = "no" ]; then
3140 NSY=" "
3141 NSN="*"
3142 else
3143 NSY="*"
3144 NSN=" "
3146 if [ "$CFG_CUPS" = "no" ]; then
3147 CUY=" "
3148 CUN="*"
3149 else
3150 CUY="*"
3151 CUN=" "
3153 if [ "$CFG_ICONV" = "no" ]; then
3154 CIY=" "
3155 CIN="*"
3156 else
3157 CIY="*"
3158 CIN=" "
3160 if [ "$CFG_LARGEFILE" = "no" ]; then
3161 LFSY=" "
3162 LFSN="*"
3163 else
3164 LFSY="*"
3165 LFSN=" "
3167 if [ "$CFG_STL" = "auto" ] || [ "$CFG_STL" = "yes" ]; then
3168 SHY="*"
3169 SHN=" "
3170 else
3171 SHY=" "
3172 SHN="*"
3174 if [ "$CFG_IPV6" = "auto" ]; then
3175 I6Y="*"
3176 I6N=" "
3178 if [ "$CFG_PRECOMPILE" = "auto" ] || [ "$CFG_PRECOMPILE" = "no" ]; then
3179 PHY=" "
3180 PHN="*"
3181 else
3182 PHY="*"
3183 PHN=" "
3186 cat <<EOF
3187 Usage: $relconf [-h] [-prefix <dir>] [-prefix-install] [-bindir <dir>] [-libdir <dir>]
3188 [-docdir <dir>] [-headerdir <dir>] [-plugindir <dir> ] [-datadir <dir>]
3189 [-translationdir <dir>] [-sysconfdir <dir>] [-examplesdir <dir>]
3190 [-demosdir <dir>] [-buildkey <key>] [-release] [-debug]
3191 [-debug-and-release] [-developer-build] [-shared] [-static] [-no-fast] [-fast] [-no-largefile]
3192 [-largefile] [-no-exceptions] [-exceptions] [-no-accessibility]
3193 [-accessibility] [-no-stl] [-stl] [-no-sql-<driver>] [-sql-<driver>]
3194 [-plugin-sql-<driver>] [-system-sqlite] [-no-qt3support] [-qt3support]
3195 [-platform] [-D <string>] [-I <string>] [-L <string>] [-help]
3196 [-qt-zlib] [-system-zlib] [-no-gif] [-qt-gif] [-no-libtiff] [-qt-libtiff] [-system-libtiff]
3197 [-no-libpng] [-qt-libpng] [-system-libpng] [-no-libmng] [-qt-libmng]
3198 [-system-libmng] [-no-libjpeg] [-qt-libjpeg] [-system-libjpeg] [-make <part>]
3199 [-no-make <part>] [-R <string>] [-l <string>] [-no-rpath] [-rpath] [-continue]
3200 [-verbose] [-v] [-silent] [-no-nis] [-nis] [-no-cups] [-cups] [-no-iconv]
3201 [-iconv] [-no-pch] [-pch] [-no-dbus] [-dbus] [-dbus-linked]
3202 [-no-separate-debug-info] [-no-mmx] [-no-3dnow] [-no-sse] [-no-sse2]
3203 [-qtnamespace <namespace>] [-qtlibinfix <infix>] [-separate-debug-info] [-armfpa]
3204 [-no-optimized-qmake] [-optimized-qmake] [-no-xmlpatterns] [-xmlpatterns]
3205 [-no-multimedia] [-multimedia] [-no-phonon] [-phonon] [-no-phonon-backend] [-phonon-backend]
3206 [-no-openssl] [-openssl] [-openssl-linked]
3207 [-no-gtkstyle] [-gtkstyle] [-no-svg] [-svg] [-no-webkit] [-webkit]
3208 [-no-script] [-script] [-no-scripttools] [-scripttools]
3210 [additional platform specific options (see below)]
3213 Installation options:
3215 These are optional, but you may specify install directories.
3217 -prefix <dir> ...... This will install everything relative to <dir>
3218 (default $QT_INSTALL_PREFIX)
3220 if [ "$PLATFORM_QWS" = "yes" ]; then
3221 cat <<EOF
3223 -hostprefix [dir] .. Tools and libraries needed when developing
3224 applications are installed in [dir]. If [dir] is
3225 not given, the current build directory will be used.
3228 cat <<EOF
3230 * -prefix-install .... Force a sandboxed "local" installation of
3231 Qt. This will install into
3232 $QT_INSTALL_PREFIX, if this option is
3233 disabled then some platforms will attempt a
3234 "system" install by placing default values to
3235 be placed in a system location other than
3236 PREFIX.
3238 You may use these to separate different parts of the install:
3240 -bindir <dir> ......... Executables will be installed to <dir>
3241 (default PREFIX/bin)
3242 -libdir <dir> ......... Libraries will be installed to <dir>
3243 (default PREFIX/lib)
3244 -docdir <dir> ......... Documentation will be installed to <dir>
3245 (default PREFIX/doc)
3246 -headerdir <dir> ...... Headers will be installed to <dir>
3247 (default PREFIX/include)
3248 -plugindir <dir> ...... Plugins will be installed to <dir>
3249 (default PREFIX/plugins)
3250 -datadir <dir> ........ Data used by Qt programs will be installed to <dir>
3251 (default PREFIX)
3252 -translationdir <dir> . Translations of Qt programs will be installed to <dir>
3253 (default PREFIX/translations)
3254 -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
3255 (default PREFIX/etc/settings)
3256 -examplesdir <dir> .... Examples will be installed to <dir>
3257 (default PREFIX/examples)
3258 -demosdir <dir> ....... Demos will be installed to <dir>
3259 (default PREFIX/demos)
3261 You may use these options to turn on strict plugin loading.
3263 -buildkey <key> .... Build the Qt library and plugins using the specified
3264 <key>. When the library loads plugins, it will only
3265 load those that have a matching key.
3267 Configure options:
3269 The defaults (*) are usually acceptable. A plus (+) denotes a default value
3270 that needs to be evaluated. If the evaluation succeeds, the feature is
3271 included. Here is a short explanation of each option:
3273 * -release ........... Compile and link Qt with debugging turned off.
3274 -debug ............. Compile and link Qt with debugging turned on.
3275 -debug-and-release . Compile and link two versions of Qt, with and without
3276 debugging turned on (Mac only).
3278 -developer-build.... Compile and link Qt with Qt developer options (including auto-tests exporting)
3280 -opensource......... Compile and link the Open-Source Edition of Qt.
3281 -commercial......... Compile and link the Commercial Edition of Qt.
3284 * -shared ............ Create and use shared Qt libraries.
3285 -static ............ Create and use static Qt libraries.
3287 * -no-fast ........... Configure Qt normally by generating Makefiles for all
3288 project files.
3289 -fast .............. Configure Qt quickly by generating Makefiles only for
3290 library and subdirectory targets. All other Makefiles
3291 are created as wrappers, which will in turn run qmake.
3293 -no-largefile ...... Disables large file support.
3294 + -largefile ......... Enables Qt to access files larger than 4 GB.
3297 if [ "$PLATFORM_QWS" = "yes" ]; then
3298 EXCN="*"
3299 EXCY=" "
3300 else
3301 EXCN=" "
3302 EXCY="*"
3304 if [ "$CFG_DBUS" = "no" ]; then
3305 DBY=" "
3306 DBN="+"
3307 else
3308 DBY="+"
3309 DBN=" "
3312 cat << EOF
3313 $EXCN -no-exceptions ..... Disable exceptions on compilers that support it.
3314 $EXCY -exceptions ........ Enable exceptions on compilers that support it.
3316 -no-accessibility .. Do not compile Accessibility support.
3317 * -accessibility ..... Compile Accessibility support.
3319 $SHN -no-stl ............ Do not compile STL support.
3320 $SHY -stl ............... Compile STL support.
3322 -no-sql-<driver> ... Disable SQL <driver> entirely.
3323 -qt-sql-<driver> ... Enable a SQL <driver> in the QtSql library, by default
3324 none are turned on.
3325 -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
3326 at run time.
3328 Possible values for <driver>:
3329 [ $CFG_SQL_AVAILABLE ]
3331 -system-sqlite ..... Use sqlite from the operating system.
3333 -no-qt3support ..... Disables the Qt 3 support functionality.
3334 * -qt3support ........ Enables the Qt 3 support functionality.
3336 -no-xmlpatterns .... Do not build the QtXmlPatterns module.
3337 + -xmlpatterns ....... Build the QtXmlPatterns module.
3338 QtXmlPatterns is built if a decent C++ compiler
3339 is used and exceptions are enabled.
3341 -no-multimedia ..... Do not build the QtMultimedia module.
3342 + -multimedia ........ Build the QtMultimedia module.
3344 -no-phonon ......... Do not build the Phonon module.
3345 + -phonon ............ Build the Phonon module.
3346 Phonon is built if a decent C++ compiler is used.
3347 -no-phonon-backend.. Do not build the platform phonon plugin.
3348 + -phonon-backend..... Build the platform phonon plugin.
3350 -no-svg ............ Do not build the SVG module.
3351 + -svg ............... Build the SVG module.
3353 -no-webkit ......... Do not build the WebKit module.
3354 + -webkit ............ Build the WebKit module.
3355 WebKit is built if a decent C++ compiler is used.
3357 -no-script ......... Do not build the QtScript module.
3358 + -script ............ Build the QtScript module.
3360 -no-scripttools .... Do not build the QtScriptTools module.
3361 + -scripttools ....... Build the QtScriptTools module.
3363 -platform target ... The operating system and compiler you are building
3364 on ($PLATFORM).
3366 See the README file for a list of supported
3367 operating systems and compilers.
3369 if [ "${PLATFORM_QWS}" != "yes" ]; then
3370 cat << EOF
3371 -graphicssystem <sys> Sets an alternate graphics system. Available options are:
3372 raster - Software rasterizer
3373 opengl - Rendering via OpenGL, Experimental!
3376 cat << EOF
3378 -no-mmx ............ Do not compile with use of MMX instructions.
3379 -no-3dnow .......... Do not compile with use of 3DNOW instructions.
3380 -no-sse ............ Do not compile with use of SSE instructions.
3381 -no-sse2 ........... Do not compile with use of SSE2 instructions.
3383 -qtnamespace <name> Wraps all Qt library code in 'namespace <name> {...}'.
3384 -qtlibinfix <infix> Renames all libQt*.so to libQt*<infix>.so.
3386 -D <string> ........ Add an explicit define to the preprocessor.
3387 -I <string> ........ Add an explicit include path.
3388 -L <string> ........ Add an explicit library path.
3390 -help, -h .......... Display this information.
3392 Third Party Libraries:
3394 -qt-zlib ........... Use the zlib bundled with Qt.
3395 + -system-zlib ....... Use zlib from the operating system.
3396 See http://www.gzip.org/zlib
3398 -no-gif ............ Do not compile the plugin for GIF reading support.
3399 * -qt-gif ............ Compile the plugin for GIF reading support.
3400 See also src/plugins/imageformats/gif/qgifhandler.h
3402 -no-libtiff ........ Do not compile the plugin for TIFF support.
3403 -qt-libtiff ........ Use the libtiff bundled with Qt.
3404 + -system-libtiff .... Use libtiff from the operating system.
3405 See http://www.libtiff.org
3407 -no-libpng ......... Do not compile in PNG support.
3408 -qt-libpng ......... Use the libpng bundled with Qt.
3409 + -system-libpng ..... Use libpng from the operating system.
3410 See http://www.libpng.org/pub/png
3412 -no-libmng ......... Do not compile the plugin for MNG support.
3413 -qt-libmng ......... Use the libmng bundled with Qt.
3414 + -system-libmng ..... Use libmng from the operating system.
3415 See http://www.libmng.com
3417 -no-libjpeg ........ Do not compile the plugin for JPEG support.
3418 -qt-libjpeg ........ Use the libjpeg bundled with Qt.
3419 + -system-libjpeg .... Use libjpeg from the operating system.
3420 See http://www.ijg.org
3422 -no-openssl ........ Do not compile support for OpenSSL.
3423 + -openssl ........... Enable run-time OpenSSL support.
3424 -openssl-linked .... Enabled linked OpenSSL support.
3426 -ptmalloc .......... Override the system memory allocator with ptmalloc.
3427 (Experimental.)
3429 Additional options:
3431 -make <part> ....... Add part to the list of parts to be built at make time.
3432 ($QT_DEFAULT_BUILD_PARTS)
3433 -nomake <part> ..... Exclude part from the list of parts to be built.
3435 -R <string> ........ Add an explicit runtime library path to the Qt
3436 libraries.
3437 -l <string> ........ Add an explicit library.
3439 -no-rpath .......... Do not use the library install path as a runtime
3440 library path.
3441 + -rpath ............. Link Qt libraries and executables using the library
3442 install path as a runtime library path. Equivalent
3443 to -R install_libpath
3445 -continue .......... Continue as far as possible if an error occurs.
3447 -verbose, -v ....... Print verbose information about each step of the
3448 configure process.
3450 -silent ............ Reduce the build output so that warnings and errors
3451 can be seen more easily.
3453 * -no-optimized-qmake ... Do not build qmake optimized.
3454 -optimized-qmake ...... Build qmake optimized.
3456 $NSN -no-nis ............ Do not compile NIS support.
3457 $NSY -nis ............... Compile NIS support.
3459 $CUN -no-cups ........... Do not compile CUPS support.
3460 $CUY -cups .............. Compile CUPS support.
3461 Requires cups/cups.h and libcups.so.2.
3463 $CIN -no-iconv .......... Do not compile support for iconv(3).
3464 $CIY -iconv ............. Compile support for iconv(3).
3466 $PHN -no-pch ............ Do not use precompiled header support.
3467 $PHY -pch ............... Use precompiled header support.
3469 $DBN -no-dbus ........... Do not compile the QtDBus module.
3470 $DBY -dbus .............. Compile the QtDBus module and dynamically load libdbus-1.
3471 -dbus-linked ....... Compile the QtDBus module and link to libdbus-1.
3473 -reduce-relocations ..... Reduce relocations in the libraries through extra
3474 linker optimizations (Qt/X11 and Qt for Embedded Linux only;
3475 experimental; needs GNU ld >= 2.18).
3478 if [ "$CFG_SEPARATE_DEBUG_INFO" = "auto" ]; then
3479 if [ "$QT_CROSS_COMPILE" = "yes" ]; then
3480 SBY=""
3481 SBN="*"
3482 else
3483 SBY="*"
3484 SBN=" "
3486 elif [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
3487 SBY="*"
3488 SBN=" "
3489 else
3490 SBY=" "
3491 SBN="*"
3494 if [ "$PLATFORM_X11" = "yes" -o "$PLATFORM_QWS" = "yes" ]; then
3496 cat << EOF
3498 $SBN -no-separate-debug-info . Do not store debug information in a separate file.
3499 $SBY -separate-debug-info .... Strip debug information into a separate .debug file.
3503 fi # X11/QWS
3505 if [ "$PLATFORM_X11" = "yes" ]; then
3506 if [ "$CFG_SM" = "no" ]; then
3507 SMY=" "
3508 SMN="*"
3509 else
3510 SMY="*"
3511 SMN=" "
3513 if [ "$CFG_XSHAPE" = "no" ]; then
3514 SHY=" "
3515 SHN="*"
3516 else
3517 SHY="*"
3518 SHN=" "
3520 if [ "$CFG_XINERAMA" = "no" ]; then
3521 XAY=" "
3522 XAN="*"
3523 else
3524 XAY="*"
3525 XAN=" "
3527 if [ "$CFG_FONTCONFIG" = "no" ]; then
3528 FCGY=" "
3529 FCGN="*"
3530 else
3531 FCGY="*"
3532 FCGN=" "
3534 if [ "$CFG_XCURSOR" = "no" ]; then
3535 XCY=" "
3536 XCN="*"
3537 else
3538 XCY="*"
3539 XCN=" "
3541 if [ "$CFG_XFIXES" = "no" ]; then
3542 XFY=" "
3543 XFN="*"
3544 else
3545 XFY="*"
3546 XFN=" "
3548 if [ "$CFG_XRANDR" = "no" ]; then
3549 XZY=" "
3550 XZN="*"
3551 else
3552 XZY="*"
3553 XZN=" "
3555 if [ "$CFG_XRENDER" = "no" ]; then
3556 XRY=" "
3557 XRN="*"
3558 else
3559 XRY="*"
3560 XRN=" "
3562 if [ "$CFG_MITSHM" = "no" ]; then
3563 XMY=" "
3564 XMN="*"
3565 else
3566 XMY="*"
3567 XMN=" "
3569 if [ "$CFG_XINPUT" = "no" ]; then
3570 XIY=" "
3571 XIN="*"
3572 else
3573 XIY="*"
3574 XIN=" "
3576 if [ "$CFG_XKB" = "no" ]; then
3577 XKY=" "
3578 XKN="*"
3579 else
3580 XKY="*"
3581 XKN=" "
3583 if [ "$CFG_IM" = "no" ]; then
3584 IMY=" "
3585 IMN="*"
3586 else
3587 IMY="*"
3588 IMN=" "
3590 cat << EOF
3592 Qt/X11 only:
3594 -no-gtkstyle ....... Do not build the GTK theme integration.
3595 + -gtkstyle .......... Build the GTK theme integration.
3597 * -no-nas-sound ...... Do not compile in NAS sound support.
3598 -system-nas-sound .. Use NAS libaudio from the operating system.
3599 See http://radscan.com/nas.html
3601 -no-opengl ......... Do not support OpenGL.
3602 + -opengl <api> ...... Enable OpenGL support.
3603 With no parameter, this will auto-detect the "best"
3604 OpenGL API to use. If desktop OpenGL is avaliable, it
3605 will be used. Use desktop, es1, es1cl or es2 for <api>
3606 to force the use of the Desktop (OpenGL 1.x or 2.x),
3607 OpenGL ES 1.x Common profile, 1.x Common Lite profile
3608 or 2.x APIs instead. On X11, the EGL API will be used
3609 to manage GL contexts in the case of OpenGL ES
3611 -no-openvg ........ Do not support OpenVG.
3612 + -openvg ........... Enable OpenVG support.
3613 Requires EGL support, typically supplied by an OpenGL
3614 or other graphics implementation.
3616 $SMN -no-sm ............. Do not support X Session Management.
3617 $SMY -sm ................ Support X Session Management, links in -lSM -lICE.
3619 $SHN -no-xshape ......... Do not compile XShape support.
3620 $SHY -xshape ............ Compile XShape support.
3621 Requires X11/extensions/shape.h.
3623 $SHN -no-xsync .......... Do not compile XSync support.
3624 $SHY -xsync ............. Compile XSync support.
3625 Requires X11/extensions/sync.h.
3627 $XAN -no-xinerama ....... Do not compile Xinerama (multihead) support.
3628 $XAY -xinerama .......... Compile Xinerama support.
3629 Requires X11/extensions/Xinerama.h and libXinerama.
3630 By default, Xinerama support will be compiled if
3631 available and the shared libraries are dynamically
3632 loaded at runtime.
3634 $XCN -no-xcursor ........ Do not compile Xcursor support.
3635 $XCY -xcursor ........... Compile Xcursor support.
3636 Requires X11/Xcursor/Xcursor.h and libXcursor.
3637 By default, Xcursor support will be compiled if
3638 available and the shared libraries are dynamically
3639 loaded at runtime.
3641 $XFN -no-xfixes ......... Do not compile Xfixes support.
3642 $XFY -xfixes ............ Compile Xfixes support.
3643 Requires X11/extensions/Xfixes.h and libXfixes.
3644 By default, Xfixes support will be compiled if
3645 available and the shared libraries are dynamically
3646 loaded at runtime.
3648 $XZN -no-xrandr ......... Do not compile Xrandr (resize and rotate) support.
3649 $XZY -xrandr ............ Compile Xrandr support.
3650 Requires X11/extensions/Xrandr.h and libXrandr.
3652 $XRN -no-xrender ........ Do not compile Xrender support.
3653 $XRY -xrender ........... Compile Xrender support.
3654 Requires X11/extensions/Xrender.h and libXrender.
3656 $XMN -no-mitshm ......... Do not compile MIT-SHM support.
3657 $XMY -mitshm ............ Compile MIT-SHM support.
3658 Requires sys/ipc.h, sys/shm.h and X11/extensions/XShm.h
3660 $FCGN -no-fontconfig ..... Do not compile FontConfig (anti-aliased font) support.
3661 $FCGY -fontconfig ........ Compile FontConfig support.
3662 Requires fontconfig/fontconfig.h, libfontconfig,
3663 freetype.h and libfreetype.
3665 $XIN -no-xinput.......... Do not compile Xinput support.
3666 $XIY -xinput ............ Compile Xinput support. This also enabled tablet support
3667 which requires IRIX with wacom.h and libXi or
3668 XFree86 with X11/extensions/XInput.h and libXi.
3670 $XKN -no-xkb ............ Do not compile XKB (X KeyBoard extension) support.
3671 $XKY -xkb ............... Compile XKB support.
3676 if [ "$PLATFORM_MAC" = "yes" ]; then
3677 cat << EOF
3679 Qt/Mac only:
3681 -Fstring ........... Add an explicit framework path.
3682 -fw string ......... Add an explicit framework.
3684 -cocoa ............. Build the Cocoa version of Qt. Note that -no-framework
3685 and -static is not supported with -cocoa. Specifying
3686 this option creates Qt binaries that requires Mac OS X
3687 10.5 or higher.
3689 * -framework ......... Build Qt as a series of frameworks and
3690 link tools against those frameworks.
3691 -no-framework ...... Do not build Qt as a series of frameworks.
3693 * -dwarf2 ............ Enable dwarf2 debugging symbols.
3694 -no-dwarf2 ......... Disable dwarf2 debugging symbols.
3696 -universal ......... Equivalent to -arch "ppc x86"
3698 -arch <arch> ....... Build Qt for <arch>
3699 Example values for <arch>: x86 ppc x86_64 ppc64
3700 Multiple -arch arguments can be specified, 64-bit archs
3701 will be built with the Cocoa framework.
3703 -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
3704 To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
3709 if [ "$PLATFORM_QWS" = "yes" ]; then
3710 cat << EOF
3712 Qt for Embedded Linux only:
3714 -xplatform target ... The target platform when cross-compiling.
3716 -no-feature-<feature> Do not compile in <feature>.
3717 -feature-<feature> .. Compile in <feature>. The available features
3718 are described in src/corelib/global/qfeatures.txt
3720 -embedded <arch> .... This will enable the embedded build, you must have a
3721 proper license for this switch to work.
3722 Example values for <arch>: arm mips x86 generic
3724 -armfpa ............. Target platform is uses the ARM-FPA floating point format.
3725 -no-armfpa .......... Target platform does not use the ARM-FPA floating point format.
3727 The floating point format is usually autodetected by configure. Use this
3728 to override the detected value.
3730 -little-endian ...... Target platform is little endian (LSB first).
3731 -big-endian ......... Target platform is big endian (MSB first).
3733 -host-little-endian . Host platform is little endian (LSB first).
3734 -host-big-endian .... Host platform is big endian (MSB first).
3736 You only need to specify the endianness when
3737 cross-compiling, otherwise the host
3738 endianness will be used.
3740 -no-freetype ........ Do not compile in Freetype2 support.
3741 -qt-freetype ........ Use the libfreetype bundled with Qt.
3742 * -system-freetype .... Use libfreetype from the operating system.
3743 See http://www.freetype.org/
3745 -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
3746 default ($CFG_QCONFIG).
3748 -depths <list> ...... Comma-separated list of supported bit-per-pixel
3749 depths, from: 1, 4, 8, 12, 15, 16, 18, 24, 32 and 'all'.
3751 -qt-decoration-<style> ....Enable a decoration <style> in the QtGui library,
3752 by default all available decorations are on.
3753 Possible values for <style>: [ $CFG_DECORATION_AVAILABLE ]
3754 -plugin-decoration-<style> Enable decoration <style> as a plugin to be
3755 linked to at run time.
3756 Possible values for <style>: [ $CFG_DECORATION_PLUGIN_AVAILABLE ]
3757 -no-decoration-<style> ....Disable decoration <style> entirely.
3758 Possible values for <style>: [ $CFG_DECORATION_AVAILABLE ]
3760 -no-opengl .......... Do not support OpenGL.
3761 -opengl <api> ....... Enable OpenGL ES support
3762 With no parameter, this will attempt to auto-detect OpenGL ES 1.x
3763 or 2.x. Use es1, es1cl or es2 for <api> to override auto-detection.
3765 NOTE: A QGLScreen driver for the hardware is required to support
3766 OpenGL ES on Qt for Embedded Linux.
3768 -qt-gfx-<driver> ... Enable a graphics <driver> in the QtGui library.
3769 Possible values for <driver>: [ $CFG_GFX_AVAILABLE ]
3770 -plugin-gfx-<driver> Enable graphics <driver> as a plugin to be
3771 linked to at run time.
3772 Possible values for <driver>: [ $CFG_GFX_PLUGIN_AVAILABLE ]
3773 -no-gfx-<driver> ... Disable graphics <driver> entirely.
3774 Possible values for <driver>: [ $CFG_GFX_AVAILABLE ]
3776 -qt-kbd-<driver> ... Enable a keyboard <driver> in the QtGui library.
3777 Possible values for <driver>: [ $CFG_KBD_AVAILABLE ]
3779 -plugin-kbd-<driver> Enable keyboard <driver> as a plugin to be linked to
3780 at runtime.
3781 Possible values for <driver>: [ $CFG_KBD_PLUGIN_AVAILABLE ]
3783 -no-kbd-<driver> ... Disable keyboard <driver> entirely.
3784 Possible values for <driver>: [ $CFG_KBD_AVAILABLE ]
3786 -qt-mouse-<driver> ... Enable a mouse <driver> in the QtGui library.
3787 Possible values for <driver>: [ $CFG_MOUSE_AVAILABLE ]
3788 -plugin-mouse-<driver> Enable mouse <driver> as a plugin to be linked to
3789 at runtime.
3790 Possible values for <driver>: [ $CFG_MOUSE_PLUGIN_AVAILABLE ]
3791 -no-mouse-<driver> ... Disable mouse <driver> entirely.
3792 Possible values for <driver>: [ $CFG_MOUSE_AVAILABLE ]
3794 -iwmmxt ............ Compile using the iWMMXt instruction set
3795 (available on some XScale CPUs).
3801 if [ "$PLATFORM_QWS" = "yes" -o "$PLATFORM_X11" = "yes" ]; then
3802 if [ "$CFG_GLIB" = "no" ]; then
3803 GBY=" "
3804 GBN="+"
3805 else
3806 GBY="+"
3807 GBN=" "
3809 cat << EOF
3810 $GBN -no-glib ........... Do not compile Glib support.
3811 $GBY -glib .............. Compile Glib support.
3816 [ "x$ERROR" = "xyes" ] && exit 1
3817 exit 0
3818 fi # Help
3821 # -----------------------------------------------------------------------------
3822 # LICENSING, INTERACTIVE PART
3823 # -----------------------------------------------------------------------------
3825 if [ "$PLATFORM_QWS" = "yes" ]; then
3826 Platform="Qt for Embedded Linux"
3827 elif [ "$PLATFORM_MAC" = "yes" ]; then
3828 Platform="Qt/Mac"
3829 else
3830 PLATFORM_X11=yes
3831 Platform="Qt/X11"
3834 echo
3835 echo "This is the $Platform ${EditionString} Edition."
3836 echo
3838 if [ "$Edition" = "NokiaInternalBuild" ]; then
3839 echo "Detected -nokia-developer option"
3840 echo "Nokia employees and agents are allowed to use this software under"
3841 echo "the authority of Nokia Corporation and/or its subsidiary(-ies)"
3842 elif [ "$Edition" = "OpenSource" ]; then
3843 while true; do
3844 echo "You are licensed to use this software under the terms of"
3845 echo "the GNU General Public License (GPL) versions 3."
3846 echo "You are also licensed to use this software under the terms of"
3847 echo "the Lesser GNU General Public License (LGPL) versions 2.1."
3848 echo
3849 affix="either"
3850 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3851 echo "You have already accepted the terms of the $LicenseType license."
3852 acceptance=yes
3853 else
3854 echo "Type '3' to view the GNU General Public License version 3."
3855 echo "Type 'L' to view the Lesser GNU General Public License version 2.1."
3856 echo "Type 'yes' to accept this license offer."
3857 echo "Type 'no' to decline this license offer."
3858 echo
3859 if echo '\c' | grep '\c' >/dev/null; then
3860 echo -n "Do you accept the terms of $affix license? "
3861 else
3862 echo "Do you accept the terms of $affix license? \c"
3864 read acceptance
3866 echo
3867 if [ "$acceptance" = "yes" ] || [ "$acceptance" = "y" ]; then
3868 break
3869 elif [ "$acceptance" = "no" ]; then
3870 echo "You are not licensed to use this software."
3871 echo
3872 exit 1
3873 elif [ "$acceptance" = "3" ]; then
3874 more "$relpath/LICENSE.GPL3"
3875 elif [ "$acceptance" = "L" ]; then
3876 more "$relpath/LICENSE.LGPL"
3878 done
3879 elif [ "$Edition" = "Preview" ]; then
3880 TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
3881 while true; do
3883 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3884 echo "You have already accepted the terms of the $LicenseType license."
3885 acceptance=yes
3886 else
3887 echo "You are licensed to use this software under the terms of"
3888 echo "the $TheLicense"
3889 echo
3890 echo "Type '?' to read the Preview License."
3891 echo "Type 'yes' to accept this license offer."
3892 echo "Type 'no' to decline this license offer."
3893 echo
3894 if echo '\c' | grep '\c' >/dev/null; then
3895 echo -n "Do you accept the terms of the license? "
3896 else
3897 echo "Do you accept the terms of the license? \c"
3899 read acceptance
3901 echo
3902 if [ "$acceptance" = "yes" ]; then
3903 break
3904 elif [ "$acceptance" = "no" ] ;then
3905 echo "You are not licensed to use this software."
3906 echo
3907 exit 0
3908 elif [ "$acceptance" = "?" ]; then
3909 more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
3911 done
3912 elif [ "$Edition" != "OpenSource" ]; then
3913 if [ -n "$ExpiryDate" ]; then
3914 ExpiryDate=`echo $ExpiryDate | sed -e "s,-,,g" | tr -d "\n\r"`
3915 [ -z "$ExpiryDate" ] && ExpiryDate="0"
3916 Today=`date +%Y%m%d`
3917 if [ "$Today" -gt "$ExpiryDate" ]; then
3918 case "$LicenseType" in
3919 Commercial|Academic|Educational)
3920 if [ "$QT_PACKAGEDATE" -gt "$ExpiryDate" ]; then
3921 echo
3922 echo "NOTICE NOTICE NOTICE NOTICE"
3923 echo
3924 echo " Your support and upgrade period has expired."
3925 echo
3926 echo " You are no longer licensed to use this version of Qt."
3927 echo " Please contact qt-info@nokia.com to renew your support"
3928 echo " and upgrades for this license."
3929 echo
3930 echo "NOTICE NOTICE NOTICE NOTICE"
3931 echo
3932 exit 1
3933 else
3934 echo
3935 echo "WARNING WARNING WARNING WARNING"
3936 echo
3937 echo " Your support and upgrade period has expired."
3938 echo
3939 echo " You may continue to use your last licensed release"
3940 echo " of Qt under the terms of your existing license"
3941 echo " agreement. But you are not entitled to technical"
3942 echo " support, nor are you entitled to use any more recent"
3943 echo " Qt releases."
3944 echo
3945 echo " Please contact qt-info@nokia.com to renew your"
3946 echo " support and upgrades for this license."
3947 echo
3948 echo "WARNING WARNING WARNING WARNING"
3949 echo
3950 sleep 3
3953 Evaluation|*)
3954 echo
3955 echo "NOTICE NOTICE NOTICE NOTICE"
3956 echo
3957 echo " Your Evaluation license has expired."
3958 echo
3959 echo " You are no longer licensed to use this software. Please"
3960 echo " contact qt-info@nokia.com to purchase license, or install"
3961 echo " the Qt Open Source Edition if you intend to develop free"
3962 echo " software."
3963 echo
3964 echo "NOTICE NOTICE NOTICE NOTICE"
3965 echo
3966 exit 1
3968 esac
3971 TheLicense=`head -n 1 "$outpath/LICENSE"`
3972 while true; do
3973 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3974 echo "You have already accepted the terms of the $TheLicense."
3975 acceptance=yes
3976 else
3977 echo "You are licensed to use this software under the terms of"
3978 echo "the $TheLicense."
3979 echo
3980 echo "Type '?' to view the $TheLicense."
3981 echo "Type 'yes' to accept this license offer."
3982 echo "Type 'no' to decline this license offer."
3983 echo
3984 if echo '\c' | grep '\c' >/dev/null; then
3985 echo -n "Do you accept the terms of the $TheLicense? "
3986 else
3987 echo "Do you accept the terms of the $TheLicense? \c"
3989 read acceptance
3991 echo
3992 if [ "$acceptance" = "yes" ]; then
3993 break
3994 elif [ "$acceptance" = "no" ]; then
3995 echo "You are not licensed to use this software."
3996 echo
3997 exit 1
3998 else [ "$acceptance" = "?" ]
3999 more "$outpath/LICENSE"
4001 done
4004 # this should be moved somewhere else
4005 case "$PLATFORM" in
4006 aix-*)
4007 AIX_VERSION=`uname -v`
4008 if [ "$AIX_VERSION" -lt "5" ]; then
4009 QMakeVar add QMAKE_LIBS_X11 -lbind
4014 esac
4016 #-------------------------------------------------------------------------------
4017 # generate qconfig.cpp
4018 #-------------------------------------------------------------------------------
4019 [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
4021 LICENSE_USER_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_lcnsuser=$Licensee"`
4022 LICENSE_PRODUCTS_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_lcnsprod=$Edition"`
4023 PREFIX_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_prfxpath=$QT_INSTALL_PREFIX"`
4024 DOCUMENTATION_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_docspath=$QT_INSTALL_DOCS"`
4025 HEADERS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_hdrspath=$QT_INSTALL_HEADERS"`
4026 LIBRARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_libspath=$QT_INSTALL_LIBS"`
4027 BINARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_binspath=$QT_INSTALL_BINS"`
4028 PLUGINS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_plugpath=$QT_INSTALL_PLUGINS"`
4029 DATA_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_datapath=$QT_INSTALL_DATA"`
4030 TRANSLATIONS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_trnspath=$QT_INSTALL_TRANSLATIONS"`
4031 SETTINGS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_stngpath=$QT_INSTALL_SETTINGS"`
4032 EXAMPLES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_xmplpath=$QT_INSTALL_EXAMPLES"`
4033 DEMOS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_demopath=$QT_INSTALL_DEMOS"`
4035 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
4036 /* License Info */
4037 static const char qt_configure_licensee_str [256 + 12] = "$LICENSE_USER_STR";
4038 static const char qt_configure_licensed_products_str [256 + 12] = "$LICENSE_PRODUCTS_STR";
4041 if [ ! -z "$QT_HOST_PREFIX" ]; then
4042 HOSTPREFIX_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_prfxpath=$QT_HOST_PREFIX"`
4043 HOSTDOCUMENTATION_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_docspath=$QT_HOST_PREFIX/doc"`
4044 HOSTHEADERS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_hdrspath=$QT_HOST_PREFIX/include"`
4045 HOSTLIBRARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_libspath=$QT_HOST_PREFIX/lib"`
4046 HOSTBINARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_binspath=$QT_HOST_PREFIX/bin"`
4047 HOSTPLUGINS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_plugpath=$QT_HOST_PREFIX/plugins"`
4048 HOSTDATA_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_datapath=$QT_HOST_PREFIX"`
4049 HOSTTRANSLATIONS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_trnspath=$QT_HOST_PREFIX/translations"`
4050 HOSTSETTINGS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_stngpath=$QT_INSTALL_SETTINGS"`
4051 HOSTEXAMPLES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_xmplpath=$QT_INSTALL_EXAMPLES"`
4052 HOSTDEMOS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_demopath=$QT_INSTALL_DEMOS"`
4054 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
4056 #if defined(QT_BOOTSTRAPPED) || defined(QT_BUILD_QMAKE)
4057 /* Installation Info */
4058 static const char qt_configure_prefix_path_str [256 + 12] = "$HOSTPREFIX_PATH_STR";
4059 static const char qt_configure_documentation_path_str[256 + 12] = "$HOSTDOCUMENTATION_PATH_STR";
4060 static const char qt_configure_headers_path_str [256 + 12] = "$HOSTHEADERS_PATH_STR";
4061 static const char qt_configure_libraries_path_str [256 + 12] = "$HOSTLIBRARIES_PATH_STR";
4062 static const char qt_configure_binaries_path_str [256 + 12] = "$HOSTBINARIES_PATH_STR";
4063 static const char qt_configure_plugins_path_str [256 + 12] = "$HOSTPLUGINS_PATH_STR";
4064 static const char qt_configure_data_path_str [256 + 12] = "$HOSTDATA_PATH_STR";
4065 static const char qt_configure_translations_path_str [256 + 12] = "$HOSTTRANSLATIONS_PATH_STR";
4066 static const char qt_configure_settings_path_str [256 + 12] = "$HOSTSETTINGS_PATH_STR";
4067 static const char qt_configure_examples_path_str [256 + 12] = "$HOSTEXAMPLES_PATH_STR";
4068 static const char qt_configure_demos_path_str [256 + 12] = "$HOSTDEMOS_PATH_STR";
4069 #else // QT_BOOTSTRAPPED
4073 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
4074 /* Installation Info */
4075 static const char qt_configure_prefix_path_str [256 + 12] = "$PREFIX_PATH_STR";
4076 static const char qt_configure_documentation_path_str[256 + 12] = "$DOCUMENTATION_PATH_STR";
4077 static const char qt_configure_headers_path_str [256 + 12] = "$HEADERS_PATH_STR";
4078 static const char qt_configure_libraries_path_str [256 + 12] = "$LIBRARIES_PATH_STR";
4079 static const char qt_configure_binaries_path_str [256 + 12] = "$BINARIES_PATH_STR";
4080 static const char qt_configure_plugins_path_str [256 + 12] = "$PLUGINS_PATH_STR";
4081 static const char qt_configure_data_path_str [256 + 12] = "$DATA_PATH_STR";
4082 static const char qt_configure_translations_path_str [256 + 12] = "$TRANSLATIONS_PATH_STR";
4083 static const char qt_configure_settings_path_str [256 + 12] = "$SETTINGS_PATH_STR";
4084 static const char qt_configure_examples_path_str [256 + 12] = "$EXAMPLES_PATH_STR";
4085 static const char qt_configure_demos_path_str [256 + 12] = "$DEMOS_PATH_STR";
4088 if [ ! -z "$QT_HOST_PREFIX" ]; then
4089 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
4090 #endif // QT_BOOTSTRAPPED
4095 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
4096 /* strlen( "qt_lcnsxxxx" ) == 12 */
4097 #define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;
4098 #define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;
4099 #define QT_CONFIGURE_PREFIX_PATH qt_configure_prefix_path_str + 12;
4100 #define QT_CONFIGURE_DOCUMENTATION_PATH qt_configure_documentation_path_str + 12;
4101 #define QT_CONFIGURE_HEADERS_PATH qt_configure_headers_path_str + 12;
4102 #define QT_CONFIGURE_LIBRARIES_PATH qt_configure_libraries_path_str + 12;
4103 #define QT_CONFIGURE_BINARIES_PATH qt_configure_binaries_path_str + 12;
4104 #define QT_CONFIGURE_PLUGINS_PATH qt_configure_plugins_path_str + 12;
4105 #define QT_CONFIGURE_DATA_PATH qt_configure_data_path_str + 12;
4106 #define QT_CONFIGURE_TRANSLATIONS_PATH qt_configure_translations_path_str + 12;
4107 #define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12;
4108 #define QT_CONFIGURE_EXAMPLES_PATH qt_configure_examples_path_str + 12;
4109 #define QT_CONFIGURE_DEMOS_PATH qt_configure_demos_path_str + 12;
4112 # avoid unecessary rebuilds by copying only if qconfig.cpp has changed
4113 if cmp -s "$outpath/src/corelib/global/qconfig.cpp" "$outpath/src/corelib/global/qconfig.cpp.new"; then
4114 rm -f "$outpath/src/corelib/global/qconfig.cpp.new"
4115 else
4116 [ -f "$outpath/src/corelib/global/qconfig.cpp" ] && chmod +w "$outpath/src/corelib/global/qconfig.cpp"
4117 mv "$outpath/src/corelib/global/qconfig.cpp.new" "$outpath/src/corelib/global/qconfig.cpp"
4118 chmod -w "$outpath/src/corelib/global/qconfig.cpp"
4121 # -----------------------------------------------------------------------------
4122 # build qmake
4123 # -----------------------------------------------------------------------------
4125 # symlink includes
4126 if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
4127 SYNCQT_OPTS=
4128 [ "$CFG_DEV" = "yes" ] && SYNCQT_OPTS="$SYNCQT_OPTS -check-includes"
4129 if [ "$OPT_SHADOW" = "yes" ]; then
4130 "$outpath/bin/syncqt" $SYNCQT_OPTS
4131 elif [ "$CFG_DEV" = "yes" ] || [ ! -d $relpath/include ]; then
4132 QTDIR="$relpath" perl "$outpath/bin/syncqt" $SYNCQT_OPTS
4136 # $1: variable name
4137 # $2: optional transformation
4138 # relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
4139 # is where the resulting variable is written to
4140 setBootstrapVariable()
4142 variableRegExp="^$1[^_A-Z0-9]"
4143 getQMakeConf | grep "$variableRegExp" | ( [ -n "$2" ] && sed "$2" ; [ -z "$2" ] && cat ) | $AWK '
4145 varLength = index($0, "=") - 1
4146 valStart = varLength + 2
4147 if (substr($0, varLength, 1) == "+") {
4148 varLength = varLength - 1
4149 valStart = valStart + 1
4151 var = substr($0, 0, varLength)
4152 gsub("[ \t]+", "", var)
4153 val = substr($0, valStart)
4154 printf "%s_%s = %s\n", var, NR, val
4156 END {
4157 if (length(var) > 0) {
4158 printf "%s =", var
4159 for (i = 1; i <= NR; ++i)
4160 printf " $(%s_%s)", var, i
4161 printf "\n"
4163 }' >> "$mkfile"
4166 # build qmake
4167 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
4168 echo "Creating qmake. Please wait..."
4170 OLD_QCONFIG_H=
4171 QCONFIG_H="$outpath/src/corelib/global/qconfig.h"
4172 QMAKE_QCONFIG_H="${QCONFIG_H}.qmake"
4173 if [ -f "$QCONFIG_H" ]; then
4174 OLD_QCONFIG_H=$QCONFIG_H
4175 mv -f "$OLD_QCONFIG_H" "${OLD_QCONFIG_H}.old"
4178 # create temporary qconfig.h for compiling qmake, if it doesn't exist
4179 # when building qmake, we use #defines for the install paths,
4180 # however they are real functions in the library
4181 if [ '!' -f "$QMAKE_QCONFIG_H" ]; then
4182 mkdir -p "$outpath/src/corelib/global"
4183 [ -f "$QCONFIG_H" ] && chmod +w "$QCONFIG_H"
4184 echo "/* All features enabled while building qmake */" >"$QMAKE_QCONFIG_H"
4187 mv -f "$QMAKE_QCONFIG_H" "$QCONFIG_H"
4188 for conf in "$outpath/include/QtCore/qconfig.h" "$outpath/include/Qt/qconfig.h"; do
4189 if [ '!' -f "$conf" ]; then
4190 ln -s "$QCONFIG_H" "$conf"
4192 done
4194 #mkspecs/default is used as a (gasp!) default mkspec so QMAKESPEC needn't be set once configured
4195 rm -f mkspecs/default
4196 ln -s `echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default
4197 # fix makefiles
4198 for mkfile in GNUmakefile Makefile; do
4199 EXTRA_LFLAGS=
4200 EXTRA_CFLAGS=
4201 in_mkfile="${mkfile}.in"
4202 if [ "$mkfile" = "Makefile" ]; then
4203 # if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
4204 # (cd qmake && qmake) >/dev/null 2>&1 && continue
4205 # fi
4206 in_mkfile="${mkfile}.unix"
4208 in_mkfile="$relpath/qmake/$in_mkfile"
4209 mkfile="$outpath/qmake/$mkfile"
4210 if [ -f "$mkfile" ]; then
4211 [ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
4212 rm -f "$mkfile"
4214 [ -f "$in_mkfile" ] || continue
4216 echo "########################################################################" > "$mkfile"
4217 echo "## This file was autogenerated by configure, all changes will be lost ##" >> "$mkfile"
4218 echo "########################################################################" >> "$mkfile"
4219 EXTRA_OBJS=
4220 EXTRA_SRCS=
4221 EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
4222 EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
4223 EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
4225 if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then
4226 EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
4229 [ -n "$CC" ] && echo "CC = $CC" >> "$mkfile"
4230 [ -n "$CXX" ] && echo "CXX = $CXX" >> "$mkfile"
4231 if [ "$CFG_SILENT" = "yes" ]; then
4232 [ -z "$CC" ] && setBootstrapVariable QMAKE_CC 's,QMAKE_CC.*=,CC=\@,'
4233 [ -z "$CXX" ] && setBootstrapVariable QMAKE_CXX 's,QMAKE_CXX.*=,CXX=\@,'
4234 else
4235 [ -z "$CC" ] && setBootstrapVariable QMAKE_CC 's,QMAKE_CC,CC,'
4236 [ -z "$CXX" ] && setBootstrapVariable QMAKE_CXX 's,QMAKE_CXX,CXX,'
4238 setBootstrapVariable QMAKE_CFLAGS
4239 setBootstrapVariable QMAKE_CXXFLAGS 's,\$\$QMAKE_CFLAGS,\$(QMAKE_CFLAGS),'
4240 setBootstrapVariable QMAKE_LFLAGS
4242 if [ $QT_EDITION = "QT_EDITION_OPENSOURCE" ]; then
4243 EXTRA_CFLAGS="$EXTRA_CFLAGS -DQMAKE_OPENSOURCE_EDITION"
4244 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DQMAKE_OPENSOURCE_EDITION"
4246 if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
4247 setBootstrapVariable QMAKE_CFLAGS_RELEASE
4248 setBootstrapVariable QMAKE_CXXFLAGS_RELEASE 's,\$\$QMAKE_CFLAGS_RELEASE,\$(QMAKE_CFLAGS_RELEASE),'
4249 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
4250 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
4251 elif [ "$CFG_DEBUG" = "yes" ]; then
4252 setBootstrapVariable QMAKE_CFLAGS_DEBUG
4253 setBootstrapVariable QMAKE_CXXFLAGS_DEBUG 's,\$\$QMAKE_CFLAGS_DEBUG,\$(QMAKE_CFLAGS_DEBUG),'
4254 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
4255 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
4258 if [ '!' -z "$RPATH_FLAGS" ] && [ '!' -z "`getQMakeConf \"$QMAKESPEC\" | grep QMAKE_RPATH | awk '{print $3;}'`" ]; then
4259 setBootstrapVariable QMAKE_RPATH 's,\$\$LITERAL_WHITESPACE, ,'
4260 for rpath in $RPATH_FLAGS; do
4261 EXTRA_LFLAGS="\$(QMAKE_RPATH)\"$rpath\" $EXTRA_LFLAGS"
4262 done
4264 if [ "$PLATFORM_MAC" = "yes" ]; then
4265 echo "export MACOSX_DEPLOYMENT_TARGET = 10.4" >> "$mkfile"
4266 echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
4267 echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
4268 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
4269 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
4270 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
4271 EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
4272 EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
4273 if echo "$CFG_MAC_ARCHS" | grep x86 > /dev/null 2>&1; then # matches both x86 and x86_64
4274 X86_CFLAGS="-arch i386"
4275 X86_LFLAGS="-arch i386"
4276 EXTRA_CFLAGS="$X86_CFLAGS $EXTRA_CFLAGS"
4277 EXTRA_CXXFLAGS="$X86_CFLAGS $EXTRA_CXXFLAGS"
4278 EXTRA_LFLAGS="$EXTRA_LFLAGS $X86_LFLAGS"
4280 if echo "$CFG_MAC_ARCHS" | grep ppc > /dev/null 2>&1; then # matches both ppc and ppc64
4281 PPC_CFLAGS="-arch ppc"
4282 PPC_LFLAGS="-arch ppc"
4283 EXTRA_CFLAGS="$PPC_CFLAGS $EXTRA_CFLAGS"
4284 EXTRA_CXXFLAGS="$PPC_CFLAGS $EXTRA_CXXFLAGS"
4285 EXTRA_LFLAGS="$EXTRA_LFLAGS $PPC_LFLAGS"
4287 if [ '!' -z "$CFG_SDK" ]; then
4288 echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
4289 echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
4290 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(SDK_CFLAGS)"
4291 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(SDK_CFLAGS)"
4292 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(SDK_LFLAGS)"
4295 [ "$CFG_EMBEDDED" != "no" ] && EXTRA_CFLAGS="$EXTRA_CFLAGS -DQWS"
4296 if [ '!' -z "$D_FLAGS" ]; then
4297 for DEF in $D_FLAGS; do
4298 EXTRA_CFLAGS="$EXTRA_CFLAGS \"-D${DEF}\""
4299 done
4301 QMAKE_BIN_DIR="$QT_INSTALL_BINS"
4302 [ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
4303 QMAKE_DATA_DIR="$QT_INSTALL_DATA"
4304 [ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
4305 echo >>"$mkfile"
4306 adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
4307 adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
4308 adjqmakespec=`echo "$QMAKESPEC" | sed 's/ /\\\\\\\\ /g'`
4309 sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
4310 -e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
4311 -e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
4312 -e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
4313 -e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
4314 -e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
4315 -e "s,@QMAKESPEC@,$adjqmakespec,g" "$in_mkfile" >>"$mkfile"
4317 if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
4318 (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
4319 sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"$mkfile.tmp"
4320 sed "s,$outpath,$adjoutpath,g" "$mkfile.tmp" >"$mkfile"
4321 rm "$mkfile.tmp"
4323 done
4325 QMAKE_BUILD_ERROR=no
4326 (cd "$outpath/qmake"; "$MAKE") || QMAKE_BUILD_ERROR=yes
4327 [ '!' -z "$QCONFIG_H" ] && mv -f "$QCONFIG_H" "$QMAKE_QCONFIG_H" #move qmake's qconfig.h to qconfig.h.qmake
4328 [ '!' -z "$OLD_QCONFIG_H" ] && mv -f "${OLD_QCONFIG_H}.old" "$OLD_QCONFIG_H" #put back qconfig.h
4329 [ "$QMAKE_BUILD_ERROR" = "yes" ] && exit 2
4330 fi # Build qmake
4332 #-------------------------------------------------------------------------------
4333 # tests that need qmake
4334 #-------------------------------------------------------------------------------
4336 # detect availability of float math.h functions
4337 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/floatmath "floatmath" $L_FLAGS $I_FLAGS $l_FLAGS; then
4338 CFG_USE_FLOATMATH=yes
4339 else
4340 CFG_USE_FLOATMATH=no
4343 # detect mmx support
4344 if [ "${CFG_MMX}" = "auto" ]; then
4345 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mmx "mmx" $L_FLAGS $I_FLAGS $l_FLAGS "-mmmx"; then
4346 CFG_MMX=yes
4347 else
4348 CFG_MMX=no
4352 # detect 3dnow support
4353 if [ "${CFG_3DNOW}" = "auto" ]; then
4354 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/3dnow "3dnow" $L_FLAGS $I_FLAGS $l_FLAGS "-m3dnow"; then
4355 CFG_3DNOW=yes
4356 else
4357 CFG_3DNOW=no
4361 # detect sse support
4362 if [ "${CFG_SSE}" = "auto" ]; then
4363 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sse "sse" $L_FLAGS $I_FLAGS $l_FLAGS "-msse"; then
4364 CFG_SSE=yes
4365 else
4366 CFG_SSE=no
4370 # detect sse2 support
4371 if [ "${CFG_SSE2}" = "auto" ]; then
4372 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sse2 "sse2" $L_FLAGS $I_FLAGS $l_FLAGS "-msse2"; then
4373 CFG_SSE2=yes
4374 else
4375 CFG_SSE2=no
4379 # check iWMMXt support
4380 if [ "$CFG_IWMMXT" = "yes" ]; then
4381 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/iwmmxt "iwmmxt" $L_FLAGS $I_FLAGS $l_FLAGS "-mcpu=iwmmxt"
4382 if [ $? != "0" ]; then
4383 echo "The iWMMXt functionality test failed!"
4384 echo " Please make sure your compiler supports iWMMXt intrinsics!"
4385 exit 1
4389 # detect zlib
4390 if [ "$CFG_ZLIB" = "no" ]; then
4391 # Note: Qt no longer support builds without zlib
4392 # So we force a "no" to be "auto" here.
4393 # If you REALLY really need no zlib support, you can still disable
4394 # it by doing the following:
4395 # add "no-zlib" to mkspecs/qconfig.pri
4396 # #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
4398 # There's no guarantee that Qt will build under those conditions
4400 CFG_ZLIB=auto
4401 ZLIB_FORCED=yes
4403 if [ "$CFG_ZLIB" = "auto" ]; then
4404 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/zlib "zlib" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4405 CFG_ZLIB=system
4406 else
4407 CFG_ZLIB=yes
4411 # detect how jpeg should be built
4412 if [ "$CFG_JPEG" = "auto" ]; then
4413 if [ "$CFG_SHARED" = "yes" ]; then
4414 CFG_JPEG=plugin
4415 else
4416 CFG_JPEG=yes
4419 # detect jpeg
4420 if [ "$CFG_LIBJPEG" = "auto" ]; then
4421 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/libjpeg "libjpeg" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4422 CFG_LIBJPEG=system
4423 else
4424 CFG_LIBJPEG=qt
4428 # detect how gif should be built
4429 if [ "$CFG_GIF" = "auto" ]; then
4430 if [ "$CFG_SHARED" = "yes" ]; then
4431 CFG_GIF=plugin
4432 else
4433 CFG_GIF=yes
4437 # detect how tiff should be built
4438 if [ "$CFG_TIFF" = "auto" ]; then
4439 if [ "$CFG_SHARED" = "yes" ]; then
4440 CFG_TIFF=plugin
4441 else
4442 CFG_TIFF=yes
4446 # detect tiff
4447 if [ "$CFG_LIBTIFF" = "auto" ]; then
4448 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/libtiff "libtiff" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4449 CFG_LIBTIFF=system
4450 else
4451 CFG_LIBTIFF=qt
4455 # detect how mng should be built
4456 if [ "$CFG_MNG" = "auto" ]; then
4457 if [ "$CFG_SHARED" = "yes" ]; then
4458 CFG_MNG=plugin
4459 else
4460 CFG_MNG=yes
4463 # detect mng
4464 if [ "$CFG_LIBMNG" = "auto" ]; then
4465 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/libmng "libmng" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4466 CFG_LIBMNG=system
4467 else
4468 CFG_LIBMNG=qt
4472 # detect png
4473 if [ "$CFG_LIBPNG" = "auto" ]; then
4474 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/libpng "libpng" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4475 CFG_LIBPNG=system
4476 else
4477 CFG_LIBPNG=qt
4481 # detect accessibility
4482 if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
4483 CFG_ACCESSIBILITY=yes
4486 # auto-detect SQL-modules support
4487 for _SQLDR in $CFG_SQL_AVAILABLE; do
4488 case $_SQLDR in
4489 mysql)
4490 if [ "$CFG_SQL_mysql" != "no" ]; then
4491 [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config`
4492 if [ -x "$CFG_MYSQL_CONFIG" ]; then
4493 QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null`
4494 QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null`
4495 QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null`
4496 QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
4497 QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
4499 if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
4500 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4501 echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
4502 echo " You need MySql 4 or higher."
4503 echo " If you believe this message is in error you may use the continue"
4504 echo " switch (-continue) to $0 to continue."
4505 exit 101
4506 else
4507 CFG_SQL_mysql="no"
4508 QT_LFLAGS_MYSQL=""
4509 QT_LFLAGS_MYSQL_R=""
4510 QT_CFLAGS_MYSQL=""
4512 else
4513 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mysql_r "MySQL (thread-safe)" $QT_LFLAGS_MYSQL_R $L_FLAGS $QT_CFLAGS_MYSQL $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4514 QMakeVar add CONFIG use_libmysqlclient_r
4515 if [ "$CFG_SQL_mysql" = "auto" ]; then
4516 CFG_SQL_mysql=plugin
4518 QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
4519 elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mysql "MySQL (thread-unsafe)" $QT_LFLAGS_MYSQL $L_FLAGS $QT_CFLAGS_MYSQL $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4520 if [ "$CFG_SQL_mysql" = "auto" ]; then
4521 CFG_SQL_mysql=plugin
4523 else
4524 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4525 echo "MySQL support cannot be enabled due to functionality tests!"
4526 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4527 echo " If you believe this message is in error you may use the continue"
4528 echo " switch (-continue) to $0 to continue."
4529 exit 101
4530 else
4531 CFG_SQL_mysql=no
4532 QT_LFLAGS_MYSQL=""
4533 QT_LFLAGS_MYSQL_R=""
4534 QT_CFLAGS_MYSQL=""
4540 psql)
4541 if [ "$CFG_SQL_psql" != "no" ]; then
4542 if "$WHICH" pg_config >/dev/null 2>&1; then
4543 QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null`
4544 QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null`
4546 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
4547 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
4548 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/psql "PostgreSQL" $QT_LFLAGS_PSQL $L_FLAGS $QT_CFLAGS_PSQL $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4549 if [ "$CFG_SQL_psql" = "auto" ]; then
4550 CFG_SQL_psql=plugin
4552 else
4553 if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4554 echo "PostgreSQL support cannot be enabled due to functionality tests!"
4555 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4556 echo " If you believe this message is in error you may use the continue"
4557 echo " switch (-continue) to $0 to continue."
4558 exit 101
4559 else
4560 CFG_SQL_psql=no
4561 QT_CFLAGS_PSQL=""
4562 QT_LFLAGS_PSQL=""
4567 odbc)
4568 if [ "$CFG_SQL_odbc" != "no" ]; then
4569 if [ "$PLATFORM_MAC" != "yes" ] && "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/odbc "ODBC" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4570 if [ "$CFG_SQL_odbc" = "auto" ]; then
4571 CFG_SQL_odbc=plugin
4573 else
4574 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/iodbc "iODBC" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4575 QT_LFLAGS_ODBC="-liodbc"
4576 if [ "$CFG_SQL_odbc" = "auto" ]; then
4577 CFG_SQL_odbc=plugin
4579 else
4580 if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4581 echo "ODBC support cannot be enabled due to functionality tests!"
4582 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4583 echo " If you believe this message is in error you may use the continue"
4584 echo " switch (-continue) to $0 to continue."
4585 exit 101
4586 else
4587 CFG_SQL_odbc=no
4593 oci)
4594 if [ "$CFG_SQL_oci" != "no" ]; then
4595 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/oci "OCI" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4596 if [ "$CFG_SQL_oci" = "auto" ]; then
4597 CFG_SQL_oci=plugin
4599 else
4600 if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4601 echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
4602 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4603 echo " If you believe this message is in error you may use the continue"
4604 echo " switch (-continue) to $0 to continue."
4605 exit 101
4606 else
4607 CFG_SQL_oci=no
4612 tds)
4613 if [ "$CFG_SQL_tds" != "no" ]; then
4614 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/tds "TDS" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4615 if [ "$CFG_SQL_tds" = "auto" ]; then
4616 CFG_SQL_tds=plugin
4618 else
4619 if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4620 echo "TDS support cannot be enabled due to functionality tests!"
4621 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4622 echo " If you believe this message is in error you may use the continue"
4623 echo " switch (-continue) to $0 to continue."
4624 exit 101
4625 else
4626 CFG_SQL_tds=no
4631 db2)
4632 if [ "$CFG_SQL_db2" != "no" ]; then
4633 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/db2 "DB2" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4634 if [ "$CFG_SQL_db2" = "auto" ]; then
4635 CFG_SQL_db2=plugin
4637 else
4638 if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4639 echo "ODBC support cannot be enabled due to functionality tests!"
4640 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4641 echo " If you believe this message is in error you may use the continue"
4642 echo " switch (-continue) to $0 to continue."
4643 exit 101
4644 else
4645 CFG_SQL_db2=no
4650 ibase)
4651 if [ "$CFG_SQL_ibase" != "no" ]; then
4652 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/ibase "InterBase" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4653 if [ "$CFG_SQL_ibase" = "auto" ]; then
4654 CFG_SQL_ibase=plugin
4656 else
4657 if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4658 echo "InterBase support cannot be enabled due to functionality tests!"
4659 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4660 echo " If you believe this message is in error you may use the continue"
4661 echo " switch (-continue) to $0 to continue."
4662 exit 101
4663 else
4664 CFG_SQL_ibase=no
4669 sqlite2)
4670 if [ "$CFG_SQL_sqlite2" != "no" ]; then
4671 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sqlite2 "SQLite2" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4672 if [ "$CFG_SQL_sqlite2" = "auto" ]; then
4673 CFG_SQL_sqlite2=plugin
4675 else
4676 if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4677 echo "SQLite2 support cannot be enabled due to functionality tests!"
4678 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4679 echo " If you believe this message is in error you may use the continue"
4680 echo " switch (-continue) to $0 to continue."
4681 exit 101
4682 else
4683 CFG_SQL_sqlite2=no
4688 sqlite)
4689 if [ "$CFG_SQL_sqlite" != "no" ]; then
4690 SQLITE_AUTODETECT_FAILED="no"
4691 if [ "$CFG_SQLITE" = "system" ]; then
4692 if [ -n "$PKG_CONFIG" ]; then
4693 QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
4694 QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
4696 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sqlite "SQLite" $QT_LFLAGS_SQLITE $L_FLAGS $QT_CFLAGS_SQLITE $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4697 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4698 CFG_SQL_sqlite=plugin
4700 QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
4701 else
4702 SQLITE_AUTODETECT_FAILED="yes"
4703 CFG_SQL_sqlite=no
4705 elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
4706 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4707 CFG_SQL_sqlite=plugin
4709 else
4710 SQLITE_AUTODETECT_FAILED="yes"
4711 CFG_SQL_sqlite=no
4714 if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4715 echo "SQLite support cannot be enabled due to functionality tests!"
4716 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4717 echo " If you believe this message is in error you may use the continue"
4718 echo " switch (-continue) to $0 to continue."
4719 exit 101
4724 if [ "$OPT_VERBOSE" = "yes" ]; then
4725 echo "unknown SQL driver: $_SQLDR"
4728 esac
4729 done
4731 # auto-detect NIS support
4732 if [ "$CFG_NIS" != "no" ]; then
4733 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/nis "NIS" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4734 CFG_NIS=yes
4735 else
4736 if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4737 echo "NIS support cannot be enabled due to functionality tests!"
4738 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4739 echo " If you believe this message is in error you may use the continue"
4740 echo " switch (-continue) to $0 to continue."
4741 exit 101
4742 else
4743 CFG_NIS=no
4748 # auto-detect CUPS support
4749 if [ "$CFG_CUPS" != "no" ]; then
4750 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/cups "Cups" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4751 CFG_CUPS=yes
4752 else
4753 if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4754 echo "Cups support cannot be enabled due to functionality tests!"
4755 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4756 echo " If you believe this message is in error you may use the continue"
4757 echo " switch (-continue) to $0 to continue."
4758 exit 101
4759 else
4760 CFG_CUPS=no
4765 # auto-detect iconv(3) support
4766 if [ "$CFG_ICONV" != "no" ]; then
4767 if [ "$PLATFORM_QWS" = "yes" ]; then
4768 CFG_ICONV=no
4769 elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" "$OPT_VERBOSE" "$relpath" "$outpath" "config.tests/unix/iconv" "POSIX iconv" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4770 CFG_ICONV=yes
4771 elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" "$OPT_VERBOSE" "$relpath" "$outpath" "config.tests/unix/gnu-libiconv" "GNU libiconv" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
4772 CFG_ICONV=gnu
4773 else
4774 if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4775 echo "Iconv support cannot be enabled due to functionality tests!"
4776 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4777 echo " If you believe this message is in error you may use the continue"
4778 echo " switch (-continue) to $0 to continue."
4779 exit 101
4780 else
4781 CFG_ICONV=no
4786 # auto-detect libdbus-1 support
4787 if [ "$CFG_DBUS" != "no" ]; then
4788 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
4789 QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
4790 QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
4792 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/dbus "D-Bus" $L_FLAGS $I_FLAGS $l_FLAGS $QT_CFLAGS_DBUS $QT_LIBS_DBUS $MAC_CONFIG_TEST_COMMANDLINE; then
4793 [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
4794 QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
4795 QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
4796 else
4797 if [ "$CFG_DBUS" = "auto" ]; then
4798 CFG_DBUS=no
4799 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4800 # CFG_DBUS is "yes" or "linked" here
4802 echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
4803 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4804 echo " If you believe this message is in error you may use the continue"
4805 echo " switch (-continue) to $0 to continue."
4806 exit 101
4811 # Generate a CRC of the namespace for using in constants for the Carbon port.
4812 # This should mean that you really *can* load two Qt's and have our custom
4813 # Carbon events work.
4814 if [ "$PLATFORM_MAC" = "yes" -a ! -z "$QT_NAMESPACE" ]; then
4815 QT_NAMESPACE_MAC_CRC=`"$mactests/crc.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/mac/crc $QT_NAMESPACE $L_FLAGS $I_FLAGS $l_FLAGS`
4818 if [ "$PLATFORM_X11" = "yes" -o "$PLATFORM_QWS" = "yes" ]; then
4820 # detect EGL support
4821 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/egl" "EGL (EGL/egl.h)" $L_FLAGS $I_FLAGS $l_FLAGS; then
4822 # EGL specified by QMAKE_*_EGL, included with <EGL/egl.h>
4823 CFG_EGL=yes
4824 CFG_EGL_GLES_INCLUDES=no
4825 elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/egl4gles1" "EGL (GLES/egl.h)" $L_FLAGS $I_FLAGS $l_FLAGS; then
4826 # EGL specified by QMAKE_*_EGL, included with <GLES/egl.h>
4827 CFG_EGL=yes
4828 CFG_EGL_GLES_INCLUDES=yes
4830 if ( [ "$CFG_OPENGL" = "es1" ] || [ "$CFG_OPENGL" = "es1cl" ] || [ "$CFG_OPENGL" = "es2" ] ) && [ "$CFG_EGL" != "yes" ] && [ "$PLATFORM_X11" = "yes" ]; then
4831 echo "The EGL functionality test failed!"
4832 echo " EGL is required for OpenGL ES on X11 to manage contexts & surfaces."
4833 echo " You might need to modify the include and library search paths by editing"
4834 echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in"
4835 echo " ${XQMAKESPEC}."
4836 exit 1
4840 # auto-detect Glib support
4841 if [ "$CFG_GLIB" != "no" ]; then
4842 if [ -n "$PKG_CONFIG" ]; then
4843 QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
4844 QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
4846 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/glib "Glib" $L_FLAGS $I_FLAGS $l_FLAGS $QT_CFLAGS_GLIB $QT_LIBS_GLIB $X11TESTS_FLAGS ; then
4847 CFG_GLIB=yes
4848 QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
4849 QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
4850 else
4851 if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4852 echo "Glib support cannot be enabled due to functionality tests!"
4853 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4854 echo " If you believe this message is in error you may use the continue"
4855 echo " switch (-continue) to $0 to continue."
4856 exit 101
4857 else
4858 CFG_GLIB=no
4863 if [ "$CFG_PHONON" != "no" ]; then
4864 if [ "$CFG_PHONON_BACKEND" != "no" ]; then
4865 if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
4866 if [ -n "$PKG_CONFIG" ]; then
4867 QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4868 QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4870 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/gstreamer "GStreamer" $L_FLAGS $I_FLAGS $l_FLAGS $QT_CFLAGS_GSTREAMER $QT_LIBS_GSTREAMER $X11TESTS_FLAGS; then
4871 CFG_GSTREAMER=yes
4872 QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
4873 QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
4874 else
4875 if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4876 echo "Gstreamer 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_GSTREAMER=no
4885 elif [ "$CFG_GLIB" = "no" ]; then
4886 CFG_GSTREAMER=no
4889 if [ "$CFG_GSTREAMER" = "yes" ]; then
4890 CFG_PHONON=yes
4891 else
4892 if [ "$CFG_PHONON" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4893 echo "Phonon support cannot be enabled due to functionality tests!"
4894 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4895 echo " If you believe this message is in error you may use the continue"
4896 echo " switch (-continue) to $0 to continue."
4897 exit 101
4898 else
4899 CFG_PHONON=no
4902 else
4903 CFG_PHONON=yes
4906 fi # X11/QWS
4908 # x11
4909 if [ "$PLATFORM_X11" = "yes" ]; then
4910 x11tests="$relpath/config.tests/x11"
4911 X11TESTS_FLAGS=
4913 # work around broken X11 headers when using GCC 2.95 or later
4914 NOTYPE=no
4915 "$x11tests/notype.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" && NOTYPE=yes
4916 if [ $NOTYPE = "yes" ]; then
4917 QMakeVar add QMAKE_CXXFLAGS -fpermissive
4918 X11TESTS_FLAGS="$X11TESTS_FLAGS -fpermissive"
4921 # Check we actually have X11 :-)
4922 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xlib "XLib" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS
4923 if [ $? != "0" ]; then
4924 echo "Basic XLib functionality test failed!"
4925 echo " You might need to modify the include and library search paths by editing"
4926 echo " QMAKE_INCDIR_X11 and QMAKE_LIBDIR_X11 in ${XQMAKESPEC}."
4927 exit 1
4930 # auto-detect OpenGL support (es1 = OpenGL ES 1.x Common, es1cl = ES 1.x common lite, es2 = OpenGL ES 2.x)
4931 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4932 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/opengl "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
4933 CFG_OPENGL=desktop
4934 elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles2 "OpenGL ES 2.x" $L_FLAGS $I_FLAGS $l_FLAGS; then
4935 CFG_OPENGL=es2
4936 elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles1 "OpenGL ES 1.x" $L_FLAGS $I_FLAGS $l_FLAGS; then
4937 CFG_OPENGL=es1
4938 elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles1cl "OpenGL ES 1.x Lite" $L_FLAGS $I_FLAGS $l_FLAGS; then
4939 CFG_OPENGL=es1cl
4940 else
4941 if [ "$CFG_OPENGL" = "yes" ]; then
4942 echo "All the OpenGL functionality tests failed!"
4943 echo " You might need to modify the include and library search paths by editing"
4944 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4945 echo " ${XQMAKESPEC}."
4946 exit 1
4948 CFG_OPENGL=no
4950 case "$PLATFORM" in
4951 hpux*)
4952 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4953 if [ "$CFG_OPENGL" = "desktop" ]; then
4954 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/glxfbconfig "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS
4955 if [ $? != "0" ]; then
4956 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4962 esac
4963 elif [ "$CFG_OPENGL" = "es1cl" ]; then
4964 # OpenGL ES 1.x common lite
4965 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles1cl "OpenGL ES 1.x Lite" $L_FLAGS $I_FLAGS $l_FLAGS
4966 if [ $? != "0" ]; then
4967 echo "The OpenGL ES 1.x Common Lite Profile functionality test failed!"
4968 echo " You might need to modify the include and library search paths by editing"
4969 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4970 echo " ${XQMAKESPEC}."
4971 exit 1
4973 elif [ "$CFG_OPENGL" = "es1" ]; then
4974 # OpenGL ES 1.x
4975 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles1 "OpenGL ES 1.x" $L_FLAGS $I_FLAGS $l_FLAGS
4976 if [ $? != "0" ]; then
4977 echo "The OpenGL ES 1.x functionality test failed!"
4978 echo " You might need to modify the include and library search paths by editing"
4979 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4980 echo " ${XQMAKESPEC}."
4981 exit 1
4983 elif [ "$CFG_OPENGL" = "es2" ]; then
4984 #OpenGL ES 2.x
4985 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles2 "OpenGL ES 2.x" $L_FLAGS $I_FLAGS $l_FLAGS
4986 if [ $? != "0" ]; then
4987 echo "The OpenGL ES 2.0 functionality test failed!"
4988 echo " You might need to modify the include and library search paths by editing"
4989 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4990 echo " ${XQMAKESPEC}."
4991 exit 1
4993 elif [ "$CFG_OPENGL" = "desktop" ]; then
4994 # Desktop OpenGL support
4995 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/opengl "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS
4996 if [ $? != "0" ]; then
4997 echo "The OpenGL functionality test failed!"
4998 echo " You might need to modify the include and library search paths by editing"
4999 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
5000 echo " ${XQMAKESPEC}."
5001 exit 1
5003 case "$PLATFORM" in
5004 hpux*)
5005 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
5006 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/glxfbconfig "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS
5007 if [ $? != "0" ]; then
5008 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
5013 esac
5016 # if opengl is disabled and the user specified graphicssystem gl, disable it...
5017 if [ "$CFG_GRAPHICS_SYSTEM" = "opengl" ] && [ "$CFG_OPENGL" = "no" ]; then
5018 echo "OpenGL Graphics System is disabled due to missing OpenGL support..."
5019 CFG_GRAPHICS_SYSTEM=default
5022 # auto-detect Xcursor support
5023 if [ "$CFG_XCURSOR" != "no" ]; then
5024 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xcursor "Xcursor" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
5025 if [ "$CFG_XCURSOR" != "runtime" ]; then
5026 CFG_XCURSOR=yes;
5028 else
5029 if [ "$CFG_XCURSOR" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5030 echo "Xcursor support cannot be enabled due to functionality tests!"
5031 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5032 echo " If you believe this message is in error you may use the continue"
5033 echo " switch (-continue) to $0 to continue."
5034 exit 101
5035 else
5036 CFG_XCURSOR=no
5041 # auto-detect Xfixes support
5042 if [ "$CFG_XFIXES" != "no" ]; then
5043 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xfixes "Xfixes" $L_FLAGS $I_FLAGS $X11TESTS_FLAGS; then
5044 if [ "$CFG_XFIXES" != "runtime" ]; then
5045 CFG_XFIXES=yes;
5047 else
5048 if [ "$CFG_XFIXES" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5049 echo "Xfixes support cannot be enabled due to functionality tests!"
5050 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5051 echo " If you believe this message is in error you may use the continue"
5052 echo " switch (-continue) to $0 to continue."
5053 exit 101
5054 else
5055 CFG_XFIXES=no
5060 # auto-detect Xrandr support (resize and rotate extension)
5061 if [ "$CFG_XRANDR" != "no" ]; then
5062 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xrandr "Xrandr" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
5063 if [ "$CFG_XRANDR" != "runtime" ]; then
5064 CFG_XRANDR=yes
5066 else
5067 if [ "$CFG_XRANDR" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5068 echo "Xrandr support cannot be enabled due to functionality tests!"
5069 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5070 echo " If you believe this message is in error you may use the continue"
5071 echo " switch (-continue) to $0 to continue."
5072 exit 101
5073 else
5074 CFG_XRANDR=no
5079 # auto-detect Xrender support
5080 if [ "$CFG_XRENDER" != "no" ]; then
5081 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xrender "Xrender" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
5082 CFG_XRENDER=yes
5083 else
5084 if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5085 echo "Xrender support cannot be enabled due to functionality tests!"
5086 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5087 echo " If you believe this message is in error you may use the continue"
5088 echo " switch (-continue) to $0 to continue."
5089 exit 101
5090 else
5091 CFG_XRENDER=no
5096 # auto-detect MIT-SHM support
5097 if [ "$CFG_MITSHM" != "no" ]; then
5098 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/mitshm "mitshm" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
5099 CFG_MITSHM=yes
5100 else
5101 if [ "$CFG_MITSHM" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5102 echo "MITSHM support cannot be enabled due to functionality tests!"
5103 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5104 echo " If you believe this message is in error you may use the continue"
5105 echo " switch (-continue) to $0 to continue."
5106 exit 101
5107 else
5108 CFG_MITSHM=no
5113 # auto-detect FontConfig support
5114 if [ "$CFG_FONTCONFIG" != "no" ]; then
5115 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig 2>/dev/null; then
5116 QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig 2>/dev/null`
5117 QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig 2>/dev/null`
5118 else
5119 QT_CFLAGS_FONTCONFIG=
5120 QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
5122 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/fontconfig "FontConfig" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then
5123 CFG_FONTCONFIG=yes
5124 QMakeVar set QMAKE_CFLAGS_X11 "$QT_CFLAGS_FONTCONFIG \$\$QMAKE_CFLAGS_X11"
5125 QMakeVar set QMAKE_LIBS_X11 "$QT_LIBS_FONTCONFIG \$\$QMAKE_LIBS_X11"
5126 CFG_LIBFREETYPE=system
5127 else
5128 if [ "$CFG_FONTCONFIG" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5129 echo "FontConfig support cannot be enabled due to functionality tests!"
5130 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5131 echo " If you believe this message is in error you may use the continue"
5132 echo " switch (-continue) to $0 to continue."
5133 exit 101
5134 else
5135 CFG_FONTCONFIG=no
5140 # auto-detect Session Management support
5141 if [ "$CFG_SM" = "auto" ]; then
5142 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/sm "Session Management" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
5143 CFG_SM=yes
5144 else
5145 if [ "$CFG_SM" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5146 echo "Session Management support cannot be enabled due to functionality tests!"
5147 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5148 echo " If you believe this message is in error you may use the continue"
5149 echo " switch (-continue) to $0 to continue."
5150 exit 101
5151 else
5152 CFG_SM=no
5157 # auto-detect SHAPE support
5158 if [ "$CFG_XSHAPE" != "no" ]; then
5159 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xshape "XShape" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
5160 CFG_XSHAPE=yes
5161 else
5162 if [ "$CFG_XSHAPE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5163 echo "XShape support cannot be enabled due to functionality tests!"
5164 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5165 echo " If you believe this message is in error you may use the continue"
5166 echo " switch (-continue) to $0 to continue."
5167 exit 101
5168 else
5169 CFG_XSHAPE=no
5174 # auto-detect XSync support
5175 if [ "$CFG_XSYNC" != "no" ]; then
5176 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xsync "XSync" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
5177 CFG_XSYNC=yes
5178 else
5179 if [ "$CFG_XSYNC" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5180 echo "XSync support cannot be enabled due to functionality tests!"
5181 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5182 echo " If you believe this message is in error you may use the continue"
5183 echo " switch (-continue) to $0 to continue."
5184 exit 101
5185 else
5186 CFG_XSYNC=no
5191 # auto-detect Xinerama support
5192 if [ "$CFG_XINERAMA" != "no" ]; then
5193 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xinerama "Xinerama" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
5194 if [ "$CFG_XINERAMA" != "runtime" ]; then
5195 CFG_XINERAMA=yes
5197 else
5198 if [ "$CFG_XINERAMA" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5199 echo "Xinerama support cannot be enabled due to functionality tests!"
5200 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5201 echo " If you believe this message is in error you may use the continue"
5202 echo " switch (-continue) to $0 to continue."
5203 exit 101
5204 else
5205 CFG_XINERAMA=no
5210 # auto-detect Xinput support
5211 if [ "$CFG_XINPUT" != "no" ]; then
5212 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xinput "XInput" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
5213 if [ "$CFG_XINPUT" != "runtime" ]; then
5214 CFG_XINPUT=yes
5216 else
5217 if [ "$CFG_XINPUT" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5218 echo "Tablet and Xinput support cannot be enabled due to functionality tests!"
5219 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5220 echo " If you believe this message is in error you may use the continue"
5221 echo " switch (-continue) to $0 to continue."
5222 exit 101
5223 else
5224 CFG_XINPUT=no
5229 # auto-detect XKB support
5230 if [ "$CFG_XKB" != "no" ]; then
5231 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xkb "XKB" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
5232 CFG_XKB=yes
5233 else
5234 if [ "$CFG_XKB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5235 echo "XKB support cannot be enabled due to functionality tests!"
5236 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5237 echo " If you believe this message is in error you may use the continue"
5238 echo " switch (-continue) to $0 to continue."
5239 exit 101
5240 else
5241 CFG_XKB=no
5246 if [ "$CFG_GLIB" = "yes" -a "$CFG_QGTKSTYLE" != "no" ]; then
5247 if [ -n "$PKG_CONFIG" ]; then
5248 QT_CFLAGS_QGTKSTYLE=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.10 atk 2>/dev/null`
5249 QT_LIBS_QGTKSTYLE=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null`
5251 if [ -n "$QT_CFLAGS_QGTKSTYLE" ] ; then
5252 CFG_QGTKSTYLE=yes
5253 QMakeVar set QT_CFLAGS_QGTKSTYLE "$QT_CFLAGS_QGTKSTYLE"
5254 QMakeVar set QT_LIBS_QGTKSTYLE "$QT_LIBS_QGTKSTYLE"
5255 else
5256 if [ "$CFG_QGTKSTYLE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5257 echo "Gtk theme support cannot be enabled due to functionality tests!"
5258 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5259 echo " If you believe this message is in error you may use the continue"
5260 echo " switch (-continue) to $0 to continue."
5261 exit 101
5262 else
5263 CFG_QGTKSTYLE=no
5266 elif [ "$CFG_GLIB" = "no" ]; then
5267 CFG_QGTKSTYLE=no
5269 fi # X11
5272 if [ "$PLATFORM_MAC" = "yes" ]; then
5273 if [ "$CFG_PHONON" != "no" ]; then
5274 # Always enable Phonon (unless it was explicitly disabled)
5275 CFG_PHONON=yes
5279 # QWS
5280 if [ "$PLATFORM_QWS" = "yes" ]; then
5282 # auto-detect OpenGL support (es1 = OpenGL ES 1.x Common, es1cl = ES 1.x common lite, es2 = OpenGL ES 2.x)
5283 if [ "$CFG_OPENGL" = "yes" ]; then
5284 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles2 "OpenGL ES 2.x" $L_FLAGS $I_FLAGS $l_FLAGS; then
5285 CFG_OPENGL=es2
5286 elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles1 "OpenGL ES 1.x" $L_FLAGS $I_FLAGS $l_FLAGS; then
5287 CFG_OPENGL=es1
5288 elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles1cl "OpenGL ES 1.x Lite" $L_FLAGS $I_FLAGS $l_FLAGS; then
5289 CFG_OPENGL=es1cl
5290 else
5291 echo "All the OpenGL ES functionality tests failed!"
5292 echo " You might need to modify the include and library search paths by editing"
5293 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
5294 echo " ${XQMAKESPEC}."
5295 exit 1
5297 elif [ "$CFG_OPENGL" = "es1" ]; then
5298 # OpenGL ES 1.x
5299 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles1 "OpenGL ES 1.x" $L_FLAGS $I_FLAGS $l_FLAGS
5300 if [ $? != "0" ]; then
5301 echo "The OpenGL ES 1.x functionality test failed!"
5302 echo " You might need to modify the include and library search paths by editing"
5303 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
5304 echo " ${XQMAKESPEC}."
5305 exit 1
5307 elif [ "$CFG_OPENGL" = "es2" ]; then
5308 #OpenGL ES 2.x
5309 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/opengles2 "OpenGL ES 2.x" $L_FLAGS $I_FLAGS $l_FLAGS
5310 if [ $? != "0" ]; then
5311 echo "The OpenGL ES 2.0 functionality test failed!"
5312 echo " You might need to modify the include and library search paths by editing"
5313 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
5314 echo " ${XQMAKESPEC}."
5315 exit 1
5317 elif [ "$CFG_OPENGL" = "desktop" ]; then
5318 # Desktop OpenGL support
5319 echo "Desktop OpenGL support is not avaliable on Qt for Embedded Linux"
5320 exit 1
5323 # screen drivers
5324 for screen in ${CFG_GFX_ON} ${CFG_GFX_PLUGIN}; do
5325 if [ "${screen}" = "ahi" ] && [ "${CFG_CONFIGURE_EXIT_ON_ERROR}" = "yes" ]; then
5326 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qws/ahi "Ahi" $L_FLAGS $I_FLAGS $l_FLAGS
5327 if [ $? != "0" ]; then
5328 echo "The Ahi screen driver functionality test failed!"
5329 echo " You might need to modify the include and library search paths by editing"
5330 echo " QMAKE_INCDIR and QMAKE_LIBDIR in"
5331 echo " ${XQMAKESPEC}."
5332 exit 1
5336 if [ "${screen}" = "svgalib" ] && [ "${CFG_CONFIGURE_EXIT_ON_ERROR}" = "yes" ]; then
5337 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qws/svgalib "SVGAlib" $L_FLAGS $I_FLAGS $l_FLAGS
5338 if [ $? != "0" ]; then
5339 echo "The SVGAlib screen driver functionality test failed!"
5340 echo " You might need to modify the include and library search paths by editing"
5341 echo " QMAKE_INCDIR and QMAKE_LIBDIR in"
5342 echo " ${XQMAKESPEC}."
5343 exit 1
5347 if [ "${screen}" = "directfb" ] && [ "${CFG_CONFIGURE_EXIT_ON_ERROR}" = "yes" ]; then
5348 if [ -n "$PKG_CONFIG" ]; then
5349 if $PKG_CONFIG --exists directfb 2>/dev/null; then
5350 QT_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
5351 QT_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
5352 elif directfb-config --version >/dev/null 2>&1; then
5353 QT_CFLAGS_DIRECTFB=`directfb-config --cflags 2>/dev/null`
5354 QT_LIBS_DIRECTFB=`directfb-config --libs 2>/dev/null`
5358 # QMake variables set here override those in the mkspec. Therefore we only set the variables here if they are not zero.
5359 if [ -n "$QT_CFLAGS_DIRECTFB" ] || [ -n "$QT_LIBS_DIRECTFB" ]; then
5360 QMakeVar set QT_CFLAGS_DIRECTFB "$QT_CFLAGS_DIRECTFB"
5361 QMakeVar set QT_LIBS_DIRECTFB "$QT_LIBS_DIRECTFB"
5363 if [ "$CFG_QT3SUPPORT" = "yes" ]; then
5364 QMakeVar set QT_DEFINES_DIRECTFB "QT3_SUPPORT"
5367 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qws/directfb "DirectFB" $L_FLAGS $I_FLAGS $l_FLAGS $QT_CFLAGS_DIRECTFB $QT_LIBS_DIRECTFB
5368 if [ $? != "0" ]; then
5369 echo "The DirectFB screen driver functionality test failed!"
5370 echo " You might need to modify the include and library search paths by editing"
5371 echo " QT_CFLAGS_DIRECTFB and QT_LIBS_DIRECTFB in"
5372 echo " ${XQMAKESPEC}."
5373 exit 1
5377 done
5379 # mouse drivers
5380 for mouse in ${CFG_MOUSE_ON} ${CFG_MOUSE_PLUGIN}; do
5381 if [ "${mouse}" = "tslib" ] && [ "${CFG_CONFIGURE_EXIT_ON_ERROR}" = "yes" ]; then
5382 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/tslib "tslib" $L_FLAGS $I_FLAGS $l_FLAGS
5383 if [ $? != "0" ]; then
5384 echo "The tslib functionality test failed!"
5385 echo " You might need to modify the include and library search paths by editing"
5386 echo " QMAKE_INCDIR and QMAKE_LIBDIR in"
5387 echo " ${XQMAKESPEC}."
5388 exit 1
5391 done
5393 CFG_QGTKSTYLE=no
5395 # sound
5396 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qws/sound "sound" $L_FLAGS $I_FLAGS $l_FLAGS
5397 if [ $? != "0" ]; then
5398 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SOUND"
5401 fi # QWS
5403 # freetype support
5404 [ "x$CFG_EMBEDDED" != "xno" ] && CFG_LIBFREETYPE="$CFG_QWS_FREETYPE"
5405 [ "x$PLATFORM_MAC" = "xyes" ] && CFG_LIBFREETYPE=no
5406 if [ "$CFG_LIBFREETYPE" = "auto" ]; then
5407 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/freetype "FreeType" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
5408 CFG_LIBFREETYPE=system
5409 else
5410 CFG_LIBFREETYPE=yes
5414 if [ "$CFG_ENDIAN" = "auto" ]; then
5415 if [ "$PLATFORM_MAC" = "yes" ]; then
5416 true #leave as auto
5417 else
5418 "$unixtests/endian.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5419 F="$?"
5420 if [ "$F" -eq 0 ]; then
5421 CFG_ENDIAN="Q_LITTLE_ENDIAN"
5422 elif [ "$F" -eq 1 ]; then
5423 CFG_ENDIAN="Q_BIG_ENDIAN"
5424 else
5425 echo
5426 echo "The target system byte order could not be detected!"
5427 echo "Turn on verbose messaging (-v) to see the final report."
5428 echo "You can use the -little-endian or -big-endian switch to"
5429 echo "$0 to continue."
5430 exit 101
5435 if [ "$CFG_HOST_ENDIAN" = "auto" ]; then
5436 if [ "$PLATFORM_MAC" = "yes" ]; then
5437 true #leave as auto
5438 else
5439 "$unixtests/endian.test" "$QMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5440 F="$?"
5441 if [ "$F" -eq 0 ]; then
5442 CFG_HOST_ENDIAN="Q_LITTLE_ENDIAN"
5443 elif [ "$F" -eq 1 ]; then
5444 CFG_HOST_ENDIAN="Q_BIG_ENDIAN"
5445 else
5446 echo
5447 echo "The host system byte order could not be detected!"
5448 echo "Turn on verbose messaging (-v) to see the final report."
5449 echo "You can use the -host-little-endian or -host-big-endian switch to"
5450 echo "$0 to continue."
5451 exit 101
5456 if [ "$CFG_ARMFPA" != "auto" ]; then
5457 if [ "$CFG_ARMFPA" = "yes" ]; then
5458 if [ "$CFG_ENDIAN" = "Q_LITTLE_ENDIAN" ]; then
5459 CFG_DOUBLEFORMAT="Q_DOUBLE_LITTLE_SWAPPED"
5460 else
5461 CFG_DOUBLEFORMAT="Q_DOUBLE_BIG_SWAPPED"
5463 else
5464 CFG_DOUBLEFORMAT="normal"
5469 if [ "$CFG_DOUBLEFORMAT" = "auto" ]; then
5470 if [ "$PLATFORM_QWS" != "yes" ]; then
5471 CFG_DOUBLEFORMAT=normal
5472 else
5473 "$unixtests/doubleformat.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5474 F="$?"
5475 if [ "$F" -eq 10 ] && [ "$CFG_ENDIAN" = "Q_LITTLE_ENDIAN" ]; then
5476 CFG_DOUBLEFORMAT=normal
5477 elif [ "$F" -eq 11 ] && [ "$CFG_ENDIAN" = "Q_BIG_ENDIAN" ]; then
5478 CFG_DOUBLEFORMAT=normal
5479 elif [ "$F" -eq 10 ]; then
5480 CFG_DOUBLEFORMAT="Q_DOUBLE_LITTLE"
5481 elif [ "$F" -eq 11 ]; then
5482 CFG_DOUBLEFORMAT="Q_DOUBLE_BIG"
5483 elif [ "$F" -eq 12 ]; then
5484 CFG_DOUBLEFORMAT="Q_DOUBLE_LITTLE_SWAPPED"
5485 CFG_ARMFPA="yes"
5486 elif [ "$F" -eq 13 ]; then
5487 CFG_DOUBLEFORMAT="Q_DOUBLE_BIG_SWAPPED"
5488 CFG_ARMFPA="yes"
5489 else
5490 echo
5491 echo "The system floating point format could not be detected."
5492 echo "This may cause data to be generated in a wrong format"
5493 echo "Turn on verbose messaging (-v) to see the final report."
5494 # we do not fail on this since this is a new test, and if it fails,
5495 # the old behavior should be correct in most cases
5496 CFG_DOUBLEFORMAT=normal
5501 HAVE_STL=no
5502 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/stl "STL" $L_FLAGS $I_FLAGS $l_FLAGS; then
5503 HAVE_STL=yes
5506 if [ "$CFG_STL" != "no" ]; then
5507 if [ "$HAVE_STL" = "yes" ]; then
5508 CFG_STL=yes
5509 else
5510 if [ "$CFG_STL" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5511 echo "STL support cannot be enabled due to functionality tests!"
5512 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5513 echo " If you believe this message is in error you may use the continue"
5514 echo " switch (-continue) to $0 to continue."
5515 exit 101
5516 else
5517 CFG_STL=no
5522 # find if the platform supports IPv6
5523 if [ "$CFG_IPV6" != "no" ]; then
5524 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/ipv6 "IPv6" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
5525 CFG_IPV6=yes
5526 else
5527 if [ "$CFG_IPV6" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5528 echo "IPv6 support cannot be enabled due to functionality tests!"
5529 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5530 echo " If you believe this message is in error you may use the continue"
5531 echo " switch (-continue) to $0 to continue."
5532 exit 101
5533 else
5534 CFG_IPV6=no
5539 # detect POSIX clock_gettime()
5540 if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
5541 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/clock-gettime "POSIX clock_gettime()" $L_FLAGS $I_FLAGS $l_FLAGS; then
5542 CFG_CLOCK_GETTIME=yes
5543 else
5544 CFG_CLOCK_GETTIME=no
5548 # detect POSIX monotonic clocks
5549 if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
5550 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/clock-monotonic "POSIX Monotonic Clock" $L_FLAGS $I_FLAGS $l_FLAGS; then
5551 CFG_CLOCK_MONOTONIC=yes
5552 else
5553 CFG_CLOCK_MONOTONIC=no
5555 elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
5556 CFG_CLOCK_MONOTONIC=no
5559 # detect mremap
5560 if [ "$CFG_MREMAP" = "auto" ]; then
5561 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mremap "mremap" $L_FLAGS $I_FLAGS $l_FLAGS; then
5562 CFG_MREMAP=yes
5563 else
5564 CFG_MREMAP=no
5568 # find if the platform provides getaddrinfo (ipv6 dns lookups)
5569 if [ "$CFG_GETADDRINFO" != "no" ]; then
5570 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/getaddrinfo "getaddrinfo" $L_FLAGS $I_FLAGS $l_FLAGS; then
5571 CFG_GETADDRINFO=yes
5572 else
5573 if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5574 echo "getaddrinfo support cannot be enabled due to functionality tests!"
5575 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5576 echo " If you believe this message is in error you may use the continue"
5577 echo " switch (-continue) to $0 to continue."
5578 exit 101
5579 else
5580 CFG_GETADDRINFO=no
5585 # find if the platform provides inotify
5586 if [ "$CFG_INOTIFY" != "no" ]; then
5587 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/inotify "inotify" $L_FLAGS $I_FLAGS $l_FLAGS; then
5588 CFG_INOTIFY=yes
5589 else
5590 if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5591 echo "inotify support cannot be enabled due to functionality tests!"
5592 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5593 echo " If you believe this message is in error you may use the continue"
5594 echo " switch (-continue) to $0 to continue."
5595 exit 101
5596 else
5597 CFG_INOTIFY=no
5602 # find if the platform provides if_nametoindex (ipv6 interface name support)
5603 if [ "$CFG_IPV6IFNAME" != "no" ]; then
5604 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/ipv6ifname "IPv6 interface name" $L_FLAGS $I_FLAGS $l_FLAGS; then
5605 CFG_IPV6IFNAME=yes
5606 else
5607 if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5608 echo "IPv6 interface name support cannot be enabled due to functionality tests!"
5609 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5610 echo " If you believe this message is in error you may use the continue"
5611 echo " switch (-continue) to $0 to continue."
5612 exit 101
5613 else
5614 CFG_IPV6IFNAME=no
5619 # find if the platform provides getifaddrs (network interface enumeration)
5620 if [ "$CFG_GETIFADDRS" != "no" ]; then
5621 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/getifaddrs "getifaddrs" $L_FLAGS $I_FLAGS $l_FLAGS; then
5622 CFG_GETIFADDRS=yes
5623 else
5624 if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5625 echo "getifaddrs support cannot be enabled due to functionality tests!"
5626 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5627 echo " If you believe this message is in error you may use the continue"
5628 echo " switch (-continue) to $0 to continue."
5629 exit 101
5630 else
5631 CFG_GETIFADDRS=no
5636 # find if the platform supports X/Open Large File compilation environment
5637 if [ "$CFG_LARGEFILE" != "no" ]; then
5638 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/largefile "X/Open Large File" $L_FLAGS $I_FLAGS $l_FLAGS; then
5639 CFG_LARGEFILE=yes
5640 else
5641 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5642 echo "X/Open Large File support cannot be enabled due to functionality tests!"
5643 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5644 echo " If you believe this message is in error you may use the continue"
5645 echo " switch (-continue) to $0 to continue."
5646 exit 101
5647 else
5648 CFG_LARGEFILE=no
5653 # detect OpenSSL
5654 if [ "$CFG_OPENSSL" != "no" ]; then
5655 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/openssl "OpenSSL" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_CONFIG_TEST_COMMANDLINE; then
5656 if [ "$CFG_OPENSSL" = "auto" ]; then
5657 CFG_OPENSSL=yes
5659 else
5660 if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5661 echo "OpenSSL support cannot be enabled due to functionality tests!"
5662 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5663 echo " If you believe this message is in error you may use the continue"
5664 echo " switch (-continue) to $0 to continue."
5665 exit 101
5666 else
5667 CFG_OPENSSL=no
5672 # detect OpenVG support
5673 if [ "$CFG_OPENVG" != "no" ]; then
5674 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/openvg" "OpenVG" $L_FLAGS $I_FLAGS $l_FLAGS $CONFIG_ARG; then
5675 if [ "$CFG_OPENVG" = "auto" ]; then
5676 CFG_OPENVG=yes
5678 elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG openvg_on_opengl" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/openvg" "OpenVG" $L_FLAGS $I_FLAGS $l_FLAGS $CONFIG_ARG; then
5679 if [ "$CFG_OPENVG" = "auto" ]; then
5680 CFG_OPENVG=yes
5682 CFG_OPENVG_ON_OPENGL=yes
5683 elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG lower_case_includes" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/openvg" "OpenVG (lc includes)" $L_FLAGS $I_FLAGS $l_FLAGS $CONFIG_ARG; then
5684 if [ "$CFG_OPENVG" = "auto" ]; then
5685 CFG_OPENVG=yes
5687 CFG_OPENVG_LC_INCLUDES=yes
5688 elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG openvg_on_opengl lower_case_includes" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/openvg" "OpenVG (lc includes)" $L_FLAGS $I_FLAGS $l_FLAGS $CONFIG_ARG; then
5689 if [ "$CFG_OPENVG" = "auto" ]; then
5690 CFG_OPENVG=yes
5692 CFG_OPENVG_LC_INCLUDES=yes
5693 CFG_OPENVG_ON_OPENGL=yes
5694 else
5695 if [ "$CFG_OPENVG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5696 echo "$CFG_OPENVG was specified for OpenVG but cannot be enabled due to functionality tests!"
5697 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5698 echo " If you believe this message is in error you may use the continue"
5699 echo " switch (-continue) to $0 to continue."
5700 exit 101
5701 else
5702 CFG_OPENVG=no
5705 if [ "$CFG_OPENVG" == "yes" ] && "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "config.tests/unix/shivavg" "ShivaVG" $L_FLAGS $I_FLAGS $l_FLAGS $CONFIG_ARG; then
5706 CFG_OPENVG_SHIVA=yes
5710 # if openvg is disabled and the user specified graphicssystem vg, disable it...
5711 if [ "$CFG_GRAPHICS_SYSTEM" = "openvg" ] && [ "$CFG_OPENVG" = "no" ]; then
5712 echo "OpenVG Graphics System is disabled due to missing OpenVG support..."
5713 CFG_GRAPHICS_SYSTEM=default
5716 if [ "$CFG_PTMALLOC" != "no" ]; then
5717 # build ptmalloc, copy .a file to lib/
5718 echo "Building ptmalloc. Please wait..."
5719 (cd "$relpath/src/3rdparty/ptmalloc/"; "$MAKE" "clean" ; "$MAKE" "posix"
5720 mkdir "$outpath/lib/" ; cp "libptmalloc3.a" "$outpath/lib/")
5722 QMakeVar add QMAKE_LFLAGS "$outpath/lib/libptmalloc3.a"
5725 if [ "$CFG_ALSA" = "auto" ]; then
5726 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/alsa "alsa" $L_FLAGS $I_FLAGS $l_FLAGS; then
5727 CFG_ALSA=yes
5728 else
5729 CFG_ALSA=no
5733 #-------------------------------------------------------------------------------
5734 # ask for all that hasn't been auto-detected or specified in the arguments
5735 #-------------------------------------------------------------------------------
5737 ### fix this: user input should be validated in a loop
5738 if [ "$CFG_QWS_DEPTHS" = "prompted" -a "$PLATFORM_QWS" = "yes" ]; then
5739 echo
5740 echo "Choose pixel-depths to support:"
5741 echo
5742 echo " 1. 1bpp, black/white"
5743 echo " 4. 4bpp, grayscale"
5744 echo " 8. 8bpp, paletted"
5745 echo " 12. 12bpp, rgb 4-4-4"
5746 echo " 15. 15bpp, rgb 5-5-5"
5747 echo " 16. 16bpp, rgb 5-6-5"
5748 echo " 18. 18bpp, rgb 6-6-6"
5749 echo " 24. 24bpp, rgb 8-8-8"
5750 echo " 32. 32bpp, argb 8-8-8-8 and rgb 8-8-8"
5751 echo " all. All supported depths"
5752 echo
5753 echo "Your choices (default 8,16,32):"
5754 read CFG_QWS_DEPTHS
5755 if [ -z "$CFG_QWS_DEPTHS" ] || [ "$CFG_QWS_DEPTHS" = "yes" ]; then
5756 CFG_QWS_DEPTHS=8,16,32
5759 if [ -n "$CFG_QWS_DEPTHS" -a "$PLATFORM_QWS" = "yes" ]; then
5760 if [ "$CFG_QWS_DEPTHS" = "all" ]; then
5761 CFG_QWS_DEPTHS="1 4 8 12 15 16 18 24 32 generic"
5763 for D in `echo "$CFG_QWS_DEPTHS" | sed -e 's/,/ /g'`; do
5764 case $D in
5765 1|4|8|12|15|16|18|24|32) QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QWS_DEPTH_$D";;
5766 generic) QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QWS_DEPTH_GENERIC";;
5767 esac
5768 done
5771 # enable dwarf2 support on Mac
5772 if [ "$CFG_MAC_DWARF2" = "yes" ]; then
5773 QT_CONFIG="$QT_CONFIG dwarf2"
5776 # Set the default arch.
5777 # Carbon builds: 32 bit x86/ppc.
5778 # For "-cocoa" builds on snow leopard : compiler default (64-bit).
5779 # For "-cocoa" builds on leopard : compiler default (32-bit).
5780 if [ "$PLATFORM_MAC" = "yes" ] && [ "$CFG_MAC_ARCHS" == "" ]; then
5781 source "$mactests/defaultarch.test" "$TEST_COMPILER" "$OPT_VERBOSE" "$mactests"
5783 if [ "$CFG_MAC_COCOA" != "yes" ]; then
5784 if [ "$QT_MAC_DEFAULT_ARCH" == "x86_64" ]; then
5785 CFG_MAC_ARCHS=" x86"
5786 elif [ "$QT_MAC_DEFAULT_ARCH" == "ppc64" ]; then
5787 CFG_MAC_ARCHS=" ppc"
5788 else
5789 CFG_MAC_ARCHS=" $QT_MAC_DEFAULT_ARCH"
5791 else
5792 CFG_MAC_ARCHS=" $QT_MAC_DEFAULT_ARCH"
5795 [ "$OPT_VERBOSE" == "yes" ] && echo "Setting Mac architechture to$CFG_MAC_ARCHS."
5798 # enable cocoa and/or carbon on Mac
5799 if [ "$CFG_MAC_COCOA" = "yes" ]; then
5800 # -cocoa on the command line disables carbon completely (i.e. use cocoa for 32-bit as well)
5801 CFG_MAC_CARBON="no"
5802 else
5803 # check which archs are in use, enable cocoa if we find a 64-bit one
5804 if echo "$CFG_MAC_ARCHS" | grep 64 > /dev/null 2>&1; then
5805 CFG_MAC_COCOA="yes";
5806 CFG_MAC_CARBON="no";
5807 if echo "$CFG_MAC_ARCHS" | grep -w ppc > /dev/null 2>&1; then
5808 CFG_MAC_CARBON="yes";
5810 if echo "$CFG_MAC_ARCHS" | grep -w x86 > /dev/null 2>&1; then
5811 CFG_MAC_CARBON="yes";
5813 else
5814 # no 64-bit archs found.
5815 CFG_MAC_COCOA="no"
5819 # set the global Mac deployment target. This is overridden on an arch-by-arch basis
5820 # in some cases, see code further down
5821 case "$PLATFORM,$CFG_MAC_COCOA" in
5822 macx*,yes)
5823 # Cocoa
5824 QMakeVar set QMAKE_MACOSX_DEPLOYMENT_TARGET 10.5
5825 CFG_QT3SUPPORT="no"
5827 macx*,no)
5828 # gcc, Carbon
5829 QMakeVar set QMAKE_MACOSX_DEPLOYMENT_TARGET 10.4
5831 esac
5833 # disable Qt 3 support on VxWorks
5834 case "$XPLATFORM" in
5835 unsupported/vxworks*)
5836 CFG_QT3SUPPORT="no"
5838 esac
5840 # enable Qt 3 support functionality
5841 if [ "$CFG_QT3SUPPORT" = "yes" ]; then
5842 QT_CONFIG="$QT_CONFIG qt3support"
5845 # enable Phonon
5846 if [ "$CFG_PHONON" = "yes" ]; then
5847 QT_CONFIG="$QT_CONFIG phonon"
5848 if [ "$CFG_PHONON_BACKEND" = "yes" ]; then
5849 QT_CONFIG="$QT_CONFIG phonon-backend"
5851 else
5852 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PHONON"
5855 # disable accessibility
5856 if [ "$CFG_ACCESSIBILITY" = "no" ]; then
5857 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
5858 else
5859 QT_CONFIG="$QT_CONFIG accessibility"
5862 # enable egl
5863 if [ "$CFG_EGL" = "no" ]; then
5864 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL"
5865 else
5866 QT_CONFIG="$QT_CONFIG egl"
5867 if [ "$CFG_EGL_GLES_INCLUDES" = "yes" ]; then
5868 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_GLES_EGL"
5872 # enable openvg
5873 if [ "$CFG_OPENVG" = "no" ]; then
5874 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENVG"
5875 else
5876 QT_CONFIG="$QT_CONFIG openvg"
5877 if [ "$CFG_OPENVG_LC_INCLUDES" = "yes" ]; then
5878 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LOWER_CASE_VG_INCLUDES"
5880 if [ "$CFG_OPENVG_ON_OPENGL" = "yes" ]; then
5881 QT_CONFIG="$QT_CONFIG openvg_on_opengl"
5883 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
5884 QT_CONFIG="$QT_CONFIG shivavg"
5885 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SHIVAVG"
5889 # enable opengl
5890 if [ "$CFG_OPENGL" = "no" ]; then
5891 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
5892 else
5893 QT_CONFIG="$QT_CONFIG opengl"
5896 if [ "$CFG_OPENGL" = "es1" ] || [ "$CFG_OPENGL" = "es1cl" ] || [ "$CFG_OPENGL" = "es2" ]; then
5897 if [ "$PLATFORM_QWS" = "yes" ]; then
5898 QCONFIG_FLAGS="$QCONFIG_FLAGS Q_BACKINGSTORE_SUBSURFACES"
5899 QCONFIG_FLAGS="$QCONFIG_FLAGS Q_USE_EGLWINDOWSURFACE"
5901 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
5904 if [ "$CFG_OPENGL" = "es1" ]; then
5905 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_1"
5906 QT_CONFIG="$QT_CONFIG opengles1"
5909 if [ "$CFG_OPENGL" = "es1cl" ]; then
5910 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_1_CL"
5911 QT_CONFIG="$QT_CONFIG opengles1cl"
5914 if [ "$CFG_OPENGL" = "es2" ]; then
5915 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
5916 QT_CONFIG="$QT_CONFIG opengles2"
5919 # safe execution environment
5920 if [ "$CFG_SXE" != "no" ]; then
5921 QT_CONFIG="$QT_CONFIG sxe"
5924 # build up the variables for output
5925 if [ "$CFG_DEBUG" = "yes" ]; then
5926 QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
5927 QMAKE_CONFIG="$QMAKE_CONFIG debug"
5928 elif [ "$CFG_DEBUG" = "no" ]; then
5929 QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
5930 QMAKE_CONFIG="$QMAKE_CONFIG release"
5932 if [ "$CFG_SHARED" = "yes" ]; then
5933 QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
5934 QMAKE_CONFIG="$QMAKE_CONFIG shared dll"
5935 elif [ "$CFG_SHARED" = "no" ]; then
5936 QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
5937 QMAKE_CONFIG="$QMAKE_CONFIG static"
5939 if [ "$PLATFORM_QWS" = "yes" ]; then
5940 QMAKE_OUTDIR="${QMAKE_OUTDIR}-emb-$CFG_EMBEDDED"
5941 QMAKE_CONFIG="$QMAKE_CONFIG embedded"
5942 QT_CONFIG="$QT_CONFIG embedded"
5943 rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
5945 QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
5946 QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
5947 QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
5948 QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
5949 QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
5950 if [ "$CFG_LARGEFILE" = "yes" ]; then
5951 QMAKE_CONFIG="$QMAKE_CONFIG largefile"
5953 if [ "$CFG_STL" = "no" ]; then
5954 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STL"
5955 else
5956 QMAKE_CONFIG="$QMAKE_CONFIG stl"
5958 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
5959 QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
5961 [ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
5962 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
5963 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
5964 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
5965 QMakeVar add QMAKE_CFLAGS -g
5966 QMakeVar add QMAKE_CXXFLAGS -g
5967 QMAKE_CONFIG="$QMAKE_CONFIG separate_debug_info"
5969 [ "$CFG_MMX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mmx"
5970 [ "$CFG_3DNOW" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG 3dnow"
5971 [ "$CFG_SSE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse"
5972 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
5973 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
5974 [ "$PLATFORM_MAC" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG $CFG_MAC_ARCHS"
5975 if [ "$CFG_IPV6" = "yes" ]; then
5976 QT_CONFIG="$QT_CONFIG ipv6"
5978 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
5979 QT_CONFIG="$QT_CONFIG clock-gettime"
5981 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
5982 QT_CONFIG="$QT_CONFIG clock-monotonic"
5984 if [ "$CFG_MREMAP" = "yes" ]; then
5985 QT_CONFIG="$QT_CONFIG mremap"
5987 if [ "$CFG_GETADDRINFO" = "yes" ]; then
5988 QT_CONFIG="$QT_CONFIG getaddrinfo"
5990 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
5991 QT_CONFIG="$QT_CONFIG ipv6ifname"
5993 if [ "$CFG_GETIFADDRS" = "yes" ]; then
5994 QT_CONFIG="$QT_CONFIG getifaddrs"
5996 if [ "$CFG_INOTIFY" = "yes" ]; then
5997 QT_CONFIG="$QT_CONFIG inotify"
5999 if [ "$CFG_LIBJPEG" = "no" ]; then
6000 CFG_JPEG="no"
6001 elif [ "$CFG_LIBJPEG" = "system" ]; then
6002 QT_CONFIG="$QT_CONFIG system-jpeg"
6004 if [ "$CFG_JPEG" = "no" ]; then
6005 QT_CONFIG="$QT_CONFIG no-jpeg"
6006 elif [ "$CFG_JPEG" = "yes" ]; then
6007 QT_CONFIG="$QT_CONFIG jpeg"
6009 if [ "$CFG_LIBMNG" = "no" ]; then
6010 CFG_MNG="no"
6011 elif [ "$CFG_LIBMNG" = "system" ]; then
6012 QT_CONFIG="$QT_CONFIG system-mng"
6014 if [ "$CFG_MNG" = "no" ]; then
6015 QT_CONFIG="$QT_CONFIG no-mng"
6016 elif [ "$CFG_MNG" = "yes" ]; then
6017 QT_CONFIG="$QT_CONFIG mng"
6019 if [ "$CFG_LIBPNG" = "no" ]; then
6020 CFG_PNG="no"
6022 if [ "$CFG_LIBPNG" = "system" ]; then
6023 QT_CONFIG="$QT_CONFIG system-png"
6025 if [ "$CFG_PNG" = "no" ]; then
6026 QT_CONFIG="$QT_CONFIG no-png"
6027 elif [ "$CFG_PNG" = "yes" ]; then
6028 QT_CONFIG="$QT_CONFIG png"
6030 if [ "$CFG_GIF" = "no" ]; then
6031 QT_CONFIG="$QT_CONFIG no-gif"
6032 elif [ "$CFG_GIF" = "yes" ]; then
6033 QT_CONFIG="$QT_CONFIG gif"
6035 if [ "$CFG_LIBTIFF" = "no" ]; then
6036 CFG_TIFF="no"
6037 elif [ "$CFG_LIBTIFF" = "system" ]; then
6038 QT_CONFIG="$QT_CONFIG system-tiff"
6040 if [ "$CFG_TIFF" = "no" ]; then
6041 QT_CONFIG="$QT_CONFIG no-tiff"
6042 elif [ "$CFG_TIFF" = "yes" ]; then
6043 QT_CONFIG="$QT_CONFIG tiff"
6045 if [ "$CFG_LIBFREETYPE" = "no" ]; then
6046 QT_CONFIG="$QT_CONFIG no-freetype"
6047 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
6048 QT_CONFIG="$QT_CONFIG system-freetype"
6049 else
6050 QT_CONFIG="$QT_CONFIG freetype"
6053 if [ "x$PLATFORM_MAC" = "xyes" ]; then
6054 #On Mac we implicitly link against libz, so we
6055 #never use the 3rdparty stuff.
6056 [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
6058 if [ "$CFG_ZLIB" = "yes" ]; then
6059 QT_CONFIG="$QT_CONFIG zlib"
6060 elif [ "$CFG_ZLIB" = "system" ]; then
6061 QT_CONFIG="$QT_CONFIG system-zlib"
6064 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
6065 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
6066 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
6067 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
6068 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
6069 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
6070 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
6071 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
6072 [ "$CFG_NAS" = "system" ] && QT_CONFIG="$QT_CONFIG nas"
6073 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
6074 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
6076 if [ "$PLATFORM_X11" = "yes" ]; then
6077 [ "$CFG_SM" = "yes" ] && QT_CONFIG="$QT_CONFIG x11sm"
6079 # for some reason, the following libraries are not always built shared,
6080 # so *every* program/lib (including Qt) has to link against them
6081 if [ "$CFG_XSHAPE" = "yes" ]; then
6082 QT_CONFIG="$QT_CONFIG xshape"
6084 if [ "$CFG_XSYNC" = "yes" ]; then
6085 QT_CONFIG="$QT_CONFIG xsync"
6087 if [ "$CFG_XINERAMA" = "yes" ]; then
6088 QT_CONFIG="$QT_CONFIG xinerama"
6089 QMakeVar set QMAKE_LIBS_X11 '-lXinerama $$QMAKE_LIBS_X11'
6091 if [ "$CFG_XCURSOR" = "yes" ]; then
6092 QT_CONFIG="$QT_CONFIG xcursor"
6093 QMakeVar set QMAKE_LIBS_X11 '-lXcursor $$QMAKE_LIBS_X11'
6095 if [ "$CFG_XFIXES" = "yes" ]; then
6096 QT_CONFIG="$QT_CONFIG xfixes"
6097 QMakeVar set QMAKE_LIBS_X11 '-lXfixes $$QMAKE_LIBS_X11'
6099 if [ "$CFG_XRANDR" = "yes" ]; then
6100 QT_CONFIG="$QT_CONFIG xrandr"
6101 if [ "$CFG_XRENDER" != "yes" ]; then
6102 # libXrandr uses 1 function from libXrender, so we always have to have it :/
6103 QMakeVar set QMAKE_LIBS_X11 '-lXrandr -lXrender $$QMAKE_LIBS_X11'
6104 else
6105 QMakeVar set QMAKE_LIBS_X11 '-lXrandr $$QMAKE_LIBS_X11'
6108 if [ "$CFG_XRENDER" = "yes" ]; then
6109 QT_CONFIG="$QT_CONFIG xrender"
6110 QMakeVar set QMAKE_LIBS_X11 '-lXrender $$QMAKE_LIBS_X11'
6112 if [ "$CFG_MITSHM" = "yes" ]; then
6113 QT_CONFIG="$QT_CONFIG mitshm"
6115 if [ "$CFG_FONTCONFIG" = "yes" ]; then
6116 QT_CONFIG="$QT_CONFIG fontconfig"
6118 if [ "$CFG_XINPUT" = "yes" ]; then
6119 QMakeVar set QMAKE_LIBS_X11 '-lXi $$QMAKE_LIBS_X11'
6121 if [ "$CFG_XINPUT" = "yes" ]; then
6122 QT_CONFIG="$QT_CONFIG xinput tablet"
6124 if [ "$CFG_XKB" = "yes" ]; then
6125 QT_CONFIG="$QT_CONFIG xkb"
6129 [ '!' -z "$D_FLAGS" ] && QMakeVar add DEFINES "$D_FLAGS"
6130 [ '!' -z "$L_FLAGS" ] && QMakeVar add QMAKE_LIBDIR_FLAGS "$L_FLAGS"
6131 [ '!' -z "$l_FLAGS" ] && QMakeVar add LIBS "$l_FLAGS"
6133 if [ "$PLATFORM_MAC" = "yes" ]; then
6134 if [ "$CFG_RPATH" = "yes" ]; then
6135 QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
6137 elif [ -z "`getQMakeConf \"$XQMAKESPEC\" | grep QMAKE_RPATH | awk '{print $3;}'`" ]; then
6138 if [ -n "$RPATH_FLAGS" ]; then
6139 echo
6140 echo "ERROR: -R cannot be used on this platform as \$QMAKE_RPATH is"
6141 echo " undefined."
6142 echo
6143 exit 1
6144 elif [ "$CFG_RPATH" = "yes" ]; then
6145 RPATH_MESSAGE=" NOTE: This platform does not support runtime library paths, using -no-rpath."
6146 CFG_RPATH=no
6148 else
6149 if [ "$CFG_RPATH" = "yes" ]; then
6150 # set the default rpath to the library installation directory
6151 RPATH_FLAGS="\"$QT_INSTALL_LIBS\" $RPATH_FLAGS"
6153 if [ -n "$RPATH_FLAGS" ]; then
6154 # add the user defined rpaths
6155 QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
6159 if [ '!' -z "$I_FLAGS" ]; then
6160 # add the user define include paths
6161 QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
6162 QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
6165 # turn off exceptions for the compilers that support it
6166 if [ "$PLATFORM_QWS" = "yes" ]; then
6167 COMPILER=`echo $XPLATFORM | cut -f 3- -d-`
6168 else
6169 COMPILER=`echo $PLATFORM | cut -f 2- -d-`
6171 if [ "$CFG_EXCEPTIONS" = "unspecified" -a "$PLATFORM_QWS" = "yes" ]; then
6172 CFG_EXCEPTIONS=no
6175 if [ "$CFG_EXCEPTIONS" != "no" ]; then
6176 QTCONFIG_CONFIG="$QTCONFIG_CONFIG exceptions"
6179 if [ "$CFG_ALSA" = "yes" ]; then
6180 QT_CONFIG="$QT_CONFIG alsa"
6184 # Some Qt modules are too advanced in C++ for some old compilers
6185 # Detect here the platforms where they are known to work.
6187 # See Qt documentation for more information on which features are
6188 # supported and on which compilers.
6190 canBuildQtXmlPatterns="yes"
6191 canBuildWebKit="$HAVE_STL"
6192 canBuildQtConcurrent="yes"
6194 # WebKit requires stdint.h
6195 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/stdint "Stdint" $L_FLAGS $I_FLAGS $l_FLAGS
6196 if [ $? != "0" ]; then
6197 canBuildWebKit="no"
6200 case "$XPLATFORM" in
6201 hpux-g++*)
6202 # PA-RISC's assembly is too limited
6203 # gcc 3.4 on that platform can't build QtXmlPatterns
6204 # the assembly it generates cannot be compiled
6206 # Check gcc's version
6207 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
6210 3.4*)
6211 canBuildQtXmlPatterns="no"
6214 canBuildWebKit="no"
6215 canBuildQtXmlPatterns="no"
6217 esac
6219 unsupported/vxworks-*-g++*)
6220 canBuildWebKit="no"
6222 unsupported/vxworks-*-dcc*)
6223 canBuildWebKit="no"
6224 canBuildQtXmlPatterns="no"
6226 *-g++*)
6227 # Check gcc's version
6228 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
6229 4*|3.4*)
6231 3.3*)
6232 canBuildWebKit="no"
6235 canBuildWebKit="no"
6236 canBuildQtXmlPatterns="no"
6238 esac
6240 solaris-cc*)
6241 # Check the compiler version
6242 case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
6243 5.[012345678])
6244 canBuildWebKit="no"
6245 canBuildQtXmlPatterns="no"
6246 canBuildQtConcurrent="no"
6248 5.9)
6249 canBuildWebKit="no"
6250 canBuildQtConcurrent="no"
6252 esac
6254 hpux-acc*)
6255 canBuildWebKit="no"
6256 canBuildQtXmlPatterns="no"
6257 canBuildQtConcurrent="no"
6259 hpuxi-acc*)
6260 canBuildWebKit="no"
6262 aix-xlc*)
6263 # Get the xlC version
6264 cat > xlcver.c <<EOF
6265 #include <stdio.h>
6266 int main()
6268 printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF);
6269 return 0;
6272 xlcver=
6273 if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then
6274 xlcver=`./xlcver 2>/dev/null`
6275 rm -f ./xlcver
6277 if [ "$OPT_VERBOSE" = "yes" ]; then
6278 if [ -n "$xlcver" ]; then
6279 echo Found IBM xlC version: $xlcver.
6280 else
6281 echo Could not determine IBM xlC version, assuming oldest supported.
6285 case "$xlcver" in
6286 [123456].*)
6287 canBuildWebKit="no"
6288 canBuildQtXmlPatterns="no"
6289 canBuildQtConcurrent="no"
6292 canBuildWebKit="no"
6293 canBuildQtConcurrent="no"
6295 esac
6297 irix-cc*)
6298 canBuildWebKit="no"
6299 canBuildQtConcurrent="no"
6301 esac
6303 CFG_CONCURRENT="yes"
6304 if [ "$canBuildQtConcurrent" = "no" ]; then
6305 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT"
6306 CFG_CONCURRENT="no"
6309 if [ "$CFG_XMLPATTERNS" = "yes" -a "$CFG_EXCEPTIONS" = "no" ]; then
6310 echo "QtXmlPatterns was requested, but it can't be built due to exceptions being disabled."
6311 exit 1
6313 if [ "$CFG_XMLPATTERNS" = "auto" -a "$CFG_EXCEPTIONS" != "no" ]; then
6314 CFG_XMLPATTERNS="$canBuildQtXmlPatterns"
6315 elif [ "$CFG_EXCEPTIONS" = "no" ]; then
6316 CFG_XMLPATTERNS="no"
6318 if [ "$CFG_XMLPATTERNS" = "yes" ]; then
6319 QT_CONFIG="$QT_CONFIG xmlpatterns"
6320 else
6321 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XMLPATTERNS"
6324 if [ "$CFG_MULTIMEDIA" = "no" ]; then
6325 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MULTIMEDIA"
6326 else
6327 QT_CONFIG="$QT_CONFIG multimedia"
6330 if [ "$CFG_SVG" = "yes" ]; then
6331 QT_CONFIG="$QT_CONFIG svg"
6332 else
6333 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SVG"
6336 if [ "$CFG_WEBKIT" = "auto" ]; then
6337 CFG_WEBKIT="$canBuildWebKit"
6340 if [ "$CFG_WEBKIT" = "yes" ]; then
6341 QT_CONFIG="$QT_CONFIG webkit"
6342 # The reason we set CFG_WEBKIT, is such that the printed overview of what will be enabled, shows correctly.
6343 CFG_WEBKIT="yes"
6344 else
6345 CFG_WEBKIT="no"
6346 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WEBKIT"
6349 if [ "$CFG_SCRIPT" = "auto" ]; then
6350 CFG_SCRIPT="$canBuildWebKit"
6353 if [ "$CFG_SCRIPT" = "yes" ]; then
6354 QT_CONFIG="$QT_CONFIG script"
6355 else
6356 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SCRIPT"
6359 if [ "$CFG_SCRIPTTOOLS" = "yes" -a "$CFG_SCRIPT" = "no" ]; then
6360 echo "QtScriptTools was requested, but it can't be built due to QtScript being disabled."
6361 exit 1
6363 if [ "$CFG_SCRIPTTOOLS" = "auto" -a "$CFG_SCRIPT" != "no" ]; then
6364 CFG_SCRIPTTOOLS="yes"
6365 elif [ "$CFG_SCRIPT" = "no" ]; then
6366 CFG_SCRIPTTOOLS="no"
6369 if [ "$CFG_SCRIPTTOOLS" = "yes" ]; then
6370 QT_CONFIG="$QT_CONFIG scripttools"
6371 else
6372 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SCRIPTTOOLS"
6375 if [ "$CFG_EXCEPTIONS" = "no" ]; then
6376 case "$COMPILER" in
6377 g++*)
6378 QMakeVar add QMAKE_CFLAGS -fno-exceptions
6379 QMakeVar add QMAKE_CXXFLAGS -fno-exceptions
6380 QMakeVar add QMAKE_LFLAGS -fno-exceptions
6382 cc*)
6383 case "$PLATFORM" in
6384 irix-cc*)
6385 QMakeVar add QMAKE_CFLAGS -LANG:exceptions=off
6386 QMakeVar add QMAKE_CXXFLAGS -LANG:exceptions=off
6387 QMakeVar add QMAKE_LFLAGS -LANG:exceptions=off
6389 *) ;;
6390 esac
6392 *) ;;
6393 esac
6394 QMAKE_CONFIG="$QMAKE_CONFIG exceptions_off"
6397 # On Mac, set the minimum deployment target for the different architechtures
6398 # using the Xarch compiler option when supported (10.5 and up). On 10.4 the
6399 # deployment version is set to 10.4 globally using the QMAKE_MACOSX_DEPLOYMENT_TARGET
6400 # env. variable. "-cocoa" on the command line means Cocoa is used in 32-bit mode also,
6401 # in this case fall back on QMAKE_MACOSX_DEPLOYMENT_TARGET which will be set to 10.5.
6402 if [ "$PLATFORM_MAC" = "yes" ] && [ "$CFG_MAC_XARCH" != "no" ] && [ "$COMMANDLINE_MAC_COCOA" != "yes" ]; then
6403 if echo "$CFG_MAC_ARCHS" | grep '\<x86\>' > /dev/null 2>&1; then
6404 QMakeVar add QMAKE_CFLAGS "-Xarch_i386 -mmacosx-version-min=10.4"
6405 QMakeVar add QMAKE_CXXFLAGS "-Xarch_i386 -mmacosx-version-min=10.4"
6406 QMakeVar add QMAKE_LFLAGS "-Xarch_i386 -mmacosx-version-min=10.4"
6407 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_X86 "-arch i386 -Xarch_i386 -mmacosx-version-min=10.4"
6409 if echo "$CFG_MAC_ARCHS" | grep '\<ppc\>' > /dev/null 2>&1; then
6410 QMakeVar add QMAKE_CFLAGS "-Xarch_ppc -mmacosx-version-min=10.4"
6411 QMakeVar add QMAKE_CXXFLAGS "-Xarch_ppc -mmacosx-version-min=10.4"
6412 QMakeVar add QMAKE_LFLAGS "-Xarch_ppc -mmacosx-version-min=10.4"
6413 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_PPC "-arch ppc -Xarch_ppc -mmacosx-version-min=10.4"
6415 if echo "$CFG_MAC_ARCHS" | grep '\<x86_64\>' > /dev/null 2>&1; then
6416 QMakeVar add QMAKE_CFLAGS "-Xarch_x86_64 -mmacosx-version-min=10.5"
6417 QMakeVar add QMAKE_CXXFLAGS "-Xarch_x86_64 -mmacosx-version-min=10.5"
6418 QMakeVar add QMAKE_LFLAGS "-Xarch_x86_64 -mmacosx-version-min=10.5"
6419 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_X86_64 "-arch x86_64 -Xarch_x86_64 -mmacosx-version-min=10.5"
6421 if echo "$CFG_MAC_ARCHS" | grep '\<ppc64\>' > /dev/null 2>&1; then
6422 QMakeVar add QMAKE_CFLAGS "-Xarch_ppc64 -mmacosx-version-min=10.5"
6423 QMakeVar add QMAKE_CXXFLAGS "-Xarch_ppc64 -mmacosx-version-min=10.5"
6424 QMakeVar add QMAKE_LFLAGS "-Xarch_ppc64 -mmacosx-version-min=10.5"
6425 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_PPC_64 "-arch ppc64 -Xarch_ppc64 -mmacosx-version-min=10.5"
6429 #-------------------------------------------------------------------------------
6430 # generate QT_BUILD_KEY
6431 #-------------------------------------------------------------------------------
6433 # some compilers generate binary incompatible code between different versions,
6434 # so we need to generate a build key that is different between these compilers
6435 case "$COMPILER" in
6436 g++*)
6437 # GNU C++
6438 COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
6440 case "$COMPILER_VERSION" in
6441 *.*.*)
6442 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
6443 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
6444 QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
6446 *.*)
6447 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
6448 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
6449 QT_GCC_PATCH_VERSION=0
6451 esac
6453 case "$COMPILER_VERSION" in
6454 2.95.*)
6455 COMPILER_VERSION="2.95.*"
6457 3.*)
6458 COMPILER_VERSION="3.*"
6460 4.*)
6461 COMPILER_VERSION="4"
6465 esac
6466 [ '!' -z "$COMPILER_VERSION" ] && COMPILER="g++-${COMPILER_VERSION}"
6471 esac
6473 # QT_CONFIG can contain the following:
6475 # Things that affect the Qt API/ABI:
6477 # Options:
6478 # minimal-config small-config medium-config large-config full-config
6480 # Different edition modules:
6481 # network canvas table xml opengl sql
6483 # Things that do not affect the Qt API/ABI:
6484 # stl
6485 # system-jpeg no-jpeg jpeg
6486 # system-mng no-mng mng
6487 # system-png no-png png
6488 # system-zlib no-zlib zlib
6489 # system-libtiff no-libtiff
6490 # no-gif gif
6491 # debug release
6492 # dll staticlib
6494 # nocrosscompiler
6495 # GNUmake
6496 # largefile
6497 # nis
6498 # nas
6499 # tablet
6500 # ipv6
6502 # X11 : x11sm xinerama xcursor xfixes xrandr xrender mitshm fontconfig xkb
6503 # Embedded: embedded freetype
6505 ALL_OPTIONS=
6506 BUILD_CONFIG=
6507 BUILD_OPTIONS=
6509 # determine the build options
6510 for config_option in $QMAKE_CONFIG $QT_CONFIG; do
6511 SKIP="yes"
6512 case "$config_option" in
6513 *-config)
6514 # take the last *-config setting. this is the highest config being used,
6515 # and is the one that we will use for tagging plugins
6516 BUILD_CONFIG="$config_option"
6519 *) # skip all other options since they don't affect the Qt API/ABI.
6521 esac
6523 if [ "$SKIP" = "no" ]; then
6524 BUILD_OPTIONS="$BUILD_OPTIONS $config_option"
6526 done
6528 # put the options that we are missing into .options
6529 rm -f .options
6530 for opt in `echo $ALL_OPTIONS`; do
6531 SKIP="no"
6532 if echo $BUILD_OPTIONS | grep $opt >/dev/null 2>&1; then
6533 SKIP="yes"
6535 if [ "$SKIP" = "no" ]; then
6536 echo "$opt" >> .options
6538 done
6540 # reconstruct BUILD_OPTIONS with a sorted negative feature list
6541 # (ie. only things that are missing are will be put into the build key)
6542 BUILD_OPTIONS=
6543 if [ -f .options ]; then
6544 for opt in `sort -f .options | uniq`; do
6545 BUILD_OPTIONS="$BUILD_OPTIONS no-$opt"
6546 done
6548 rm -f .options
6550 # QT_NO* defines affect the Qt API (and binary compatibility). they need
6551 # to be included in the build key
6552 for build_option in $D_FLAGS; do
6553 build_option=`echo $build_option | cut -d \" -f 2 -`
6554 case "$build_option" in
6555 QT_NO*)
6556 echo "$build_option" >> .options
6559 # skip all other compiler defines
6561 esac
6562 done
6564 # sort the compile time defines (helps ensure that changes in this configure
6565 # script don't affect the QT_BUILD_KEY generation)
6566 if [ -f .options ]; then
6567 for opt in `sort -f .options | uniq`; do
6568 BUILD_OPTIONS="$BUILD_OPTIONS $opt"
6569 done
6571 rm -f .options
6573 BUILD_OPTIONS="$BUILD_CONFIG $BUILD_OPTIONS"
6574 # extract the operating system from the XPLATFORM
6575 TARGET_OPERATING_SYSTEM=`echo $XPLATFORM | cut -f 2- -d/ | cut -f -1 -d-`
6577 # when cross-compiling, don't include build-host information (build key is target specific)
6578 QT_BUILD_KEY="$CFG_USER_BUILD_KEY $CFG_ARCH $TARGET_OPERATING_SYSTEM $COMPILER $BUILD_OPTIONS"
6579 if [ -n "$QT_NAMESPACE" ]; then
6580 QT_BUILD_KEY="$QT_BUILD_KEY $QT_NAMESPACE"
6582 MAC_NEED_TWO_BUILD_KEYS="no"
6583 if [ "$PLATFORM_MAC" = "yes" -a "$CFG_MAC_COCOA" = "yes" ]; then
6584 QT_BUILD_KEY_CARBON=$QT_BUILD_KEY
6585 TARGET_OPERATING_SYSTEM="$TARGET_OPERATING_SYSTEM-cocoa"
6586 QT_BUILD_KEY_COCOA="$CFG_USER_BUILD_KEY $CFG_ARCH $TARGET_OPERATING_SYSTEM $COMPILER $BUILD_OPTIONS"
6587 if [ "$CFG_MAC_CARBON" = "no" ]; then
6588 QT_BUILD_KEY=$QT_BUILD_KEY_COCOA
6589 else
6590 MAC_NEED_TWO_BUILD_KEYS="yes"
6593 # don't break loading plugins build with an older version of Qt
6594 QT_BUILD_KEY_COMPAT=
6595 if [ "$QT_CROSS_COMPILE" = "no" ]; then
6596 # previous versions of Qt used a build key built from the uname
6597 QT_BUILD_KEY_COMPAT="$CFG_USER_BUILD_KEY $UNAME_MACHINE $UNAME_SYSTEM $COMPILER $BUILD_OPTIONS"
6598 if [ -n "$QT_NAMESPACE" ]; then
6599 QT_BUILD_KEY_COMPAT="$QT_BUILD_KEY_COMPAT $QT_NAMESPACE"
6602 # strip out leading/trailing/extra whitespace
6603 QT_BUILD_KEY=`echo $QT_BUILD_KEY | sed -e "s, *, ,g" -e "s,^ *,," -e "s, *$,,"`
6604 QT_BUILD_KEY_COMPAT=`echo $QT_BUILD_KEY_COMPAT | sed -e "s, *, ,g" -e "s,^ *,," -e "s, *$,,"`
6606 #-------------------------------------------------------------------------------
6607 # part of configuration information goes into qconfig.h
6608 #-------------------------------------------------------------------------------
6610 case "$CFG_QCONFIG" in
6611 full)
6612 echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
6615 tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
6616 echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
6617 cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
6618 echo "#endif" >>"$tmpconfig"
6620 esac
6622 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
6624 /* Qt Edition */
6625 #ifndef QT_EDITION
6626 # define QT_EDITION $QT_EDITION
6627 #endif
6629 /* Machine byte-order */
6630 #define Q_BIG_ENDIAN 4321
6631 #define Q_LITTLE_ENDIAN 1234
6634 if [ "$MAC_NEED_TWO_BUILD_KEYS" = "no" ]; then
6635 echo "#define QT_BUILD_KEY \"$QT_BUILD_KEY\"" \
6636 >> "$outpath/src/corelib/global/qconfig.h.new"
6637 else
6638 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
6640 #define QT_BUILD_KEY_CARBON "$QT_BUILD_KEY_CARBON"
6641 #define QT_BUILD_KEY_COCOA "$QT_BUILD_KEY_COCOA"
6645 if [ -n "$QT_BUILD_KEY_COMPAT" ]; then
6646 echo "#define QT_BUILD_KEY_COMPAT \"$QT_BUILD_KEY_COMPAT\"" \
6647 >> "$outpath/src/corelib/global/qconfig.h.new"
6649 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
6651 echo "#ifdef QT_BOOTSTRAPPED" >>"$outpath/src/corelib/global/qconfig.h.new"
6652 if [ "$CFG_HOST_ENDIAN" = "auto" ]; then
6653 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
6654 #if defined(__BIG_ENDIAN__)
6655 # define Q_BYTE_ORDER Q_BIG_ENDIAN
6656 #elif defined(__LITTLE_ENDIAN__)
6657 # define Q_BYTE_ORDER Q_LITTLE_ENDIAN
6658 #else
6659 # error "Unable to determine byte order!"
6660 #endif
6662 else
6663 echo "#define Q_BYTE_ORDER $CFG_HOST_ENDIAN" >>"$outpath/src/corelib/global/qconfig.h.new"
6665 echo "#else" >>"$outpath/src/corelib/global/qconfig.h.new"
6666 if [ "$CFG_ENDIAN" = "auto" ]; then
6667 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
6668 #if defined(__BIG_ENDIAN__)
6669 # define Q_BYTE_ORDER Q_BIG_ENDIAN
6670 #elif defined(__LITTLE_ENDIAN__)
6671 # define Q_BYTE_ORDER Q_LITTLE_ENDIAN
6672 #else
6673 # error "Unable to determine byte order!"
6674 #endif
6676 else
6677 echo "#define Q_BYTE_ORDER $CFG_ENDIAN" >>"$outpath/src/corelib/global/qconfig.h.new"
6679 echo "#endif" >>"$outpath/src/corelib/global/qconfig.h.new"
6681 if [ "$CFG_DOUBLEFORMAT" != "normal" ]; then
6682 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
6683 /* Non-IEEE double format */
6684 #define Q_DOUBLE_LITTLE "01234567"
6685 #define Q_DOUBLE_BIG "76543210"
6686 #define Q_DOUBLE_LITTLE_SWAPPED "45670123"
6687 #define Q_DOUBLE_BIG_SWAPPED "32107654"
6688 #define Q_DOUBLE_FORMAT $CFG_DOUBLEFORMAT
6691 if [ "$CFG_ARMFPA" = "yes" ]; then
6692 if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
6693 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
6694 #ifndef QT_BOOTSTRAPPED
6695 # define QT_ARMFPA
6696 #endif
6698 else
6699 echo "#define QT_ARMFPA" >>"$outpath/src/corelib/global/qconfig.h.new"
6703 CFG_ARCH_STR=`echo $CFG_ARCH | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
6704 CFG_HOST_ARCH_STR=`echo $CFG_HOST_ARCH | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
6705 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
6706 /* Machine Architecture */
6707 #ifndef QT_BOOTSTRAPPED
6708 # define QT_ARCH_${CFG_ARCH_STR}
6709 #else
6710 # define QT_ARCH_${CFG_HOST_ARCH_STR}
6711 #endif
6714 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
6715 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
6717 if [ "$CFG_LARGEFILE" = "yes" ]; then
6718 echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
6721 # if both carbon and cocoa are specified, enable the autodetection code.
6722 if [ "$CFG_MAC_COCOA" = "yes" -a "$CFG_MAC_CARBON" = "yes" ]; then
6723 echo "#define AUTODETECT_COCOA 1" >>"$outpath/src/corelib/global/qconfig.h.new"
6724 elif [ "$CFG_MAC_COCOA" = "yes" ]; then
6725 echo "#define QT_MAC_USE_COCOA 1" >>"$outpath/src/corelib/global/qconfig.h.new"
6728 if [ "$CFG_FRAMEWORK" = "yes" ]; then
6729 echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
6732 if [ "$PLATFORM_MAC" = "yes" ]; then
6733 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
6734 #if defined(__LP64__)
6735 # define QT_POINTER_SIZE 8
6736 #else
6737 # define QT_POINTER_SIZE 4
6738 #endif
6740 else
6741 "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
6742 echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
6746 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
6748 if [ "$CFG_DEV" = "yes" ]; then
6749 echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
6752 # Embedded compile time options
6753 if [ "$PLATFORM_QWS" = "yes" ]; then
6754 # Add QWS to config.h
6755 QCONFIG_FLAGS="$QCONFIG_FLAGS Q_WS_QWS"
6757 # Add excluded decorations to $QCONFIG_FLAGS
6758 decors=`grep '^decorations -= ' "$QMAKE_VARS_FILE" | ${AWK} '{print $3}'`
6759 for decor in $decors; do
6760 NODECORATION=`echo $decor | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
6761 QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_NO_QWS_DECORATION_${NODECORATION}"
6762 done
6764 # Figure which embedded drivers which are turned off
6765 CFG_GFX_OFF="$CFG_GFX_AVAILABLE"
6766 for ADRIVER in $CFG_GFX_ON; do
6767 CFG_GFX_OFF=`echo "${CFG_GFX_OFF} " | sed "s,${ADRIVER} ,,g"`
6768 done
6770 CFG_KBD_OFF="$CFG_KBD_AVAILABLE"
6771 # the um driver is currently not in the available list for external builds
6772 if [ "$CFG_DEV" = "no" ]; then
6773 CFG_KBD_OFF="$CFG_KBD_OFF um"
6775 for ADRIVER in $CFG_KBD_ON; do
6776 CFG_KBD_OFF=`echo "${CFG_KBD_OFF} " | sed "s,${ADRIVER} ,,g"`
6777 done
6779 CFG_MOUSE_OFF="$CFG_MOUSE_AVAILABLE"
6780 for ADRIVER in $CFG_MOUSE_ON; do
6781 CFG_MOUSE_OFF=`echo "${CFG_MOUSE_OFF} " | sed "s,${ADRIVER} ,,g"`
6782 done
6784 for DRIVER in $CFG_GFX_OFF; do
6785 NODRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
6786 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_QWS_$NODRIVER"
6787 done
6789 for DRIVER in $CFG_KBD_OFF; do
6790 NODRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
6791 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_QWS_KBD_$NODRIVER"
6792 done
6794 for DRIVER in $CFG_MOUSE_OFF; do
6795 NODRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
6796 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_QWS_MOUSE_$NODRIVER"
6797 done
6798 fi # QWS
6800 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
6801 QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
6804 # Add turned on SQL drivers
6805 for DRIVER in $CFG_SQL_AVAILABLE; do
6806 eval "VAL=\$CFG_SQL_$DRIVER"
6807 case "$VAL" in
6809 ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
6810 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
6811 SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
6813 plugin)
6814 SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
6816 esac
6817 done
6820 QMakeVar set sql-drivers "$SQL_DRIVERS"
6821 QMakeVar set sql-plugins "$SQL_PLUGINS"
6823 # Add other configuration options to the qconfig.h file
6824 [ "$CFG_GIF" = "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
6825 [ "$CFG_TIFF" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_TIFF"
6826 [ "$CFG_PNG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
6827 [ "$CFG_JPEG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
6828 [ "$CFG_MNG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_MNG"
6829 [ "$CFG_ZLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
6830 [ "$CFG_EXCEPTIONS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EXCEPTIONS"
6831 [ "$CFG_IPV6" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6"
6832 [ "$CFG_SXE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SXE"
6833 [ "$CFG_DBUS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
6835 if [ "$PLATFORM_QWS" != "yes" ]; then
6836 [ "$CFG_GRAPHICS_SYSTEM" = "raster" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_GRAPHICSSYSTEM_RASTER"
6837 [ "$CFG_GRAPHICS_SYSTEM" = "opengl" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_GRAPHICSSYSTEM_OPENGL"
6838 [ "$CFG_GRAPHICS_SYSTEM" = "openvg" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_GRAPHICSSYSTEM_OPENVG"
6841 # X11/Unix/Mac only configs
6842 [ "$CFG_CUPS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
6843 [ "$CFG_ICONV" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
6844 [ "$CFG_GLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
6845 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
6846 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
6847 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
6848 [ "$CFG_MREMAP" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
6849 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
6850 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
6851 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
6852 [ "$CFG_INOTIFY" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
6853 [ "$CFG_NAS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NAS"
6854 [ "$CFG_NIS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
6855 [ "$CFG_OPENSSL" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL"
6856 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
6858 [ "$CFG_SM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
6859 [ "$CFG_XCURSOR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
6860 [ "$CFG_XFIXES" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
6861 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
6862 [ "$CFG_XINERAMA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
6863 [ "$CFG_XKB" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
6864 [ "$CFG_XRANDR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
6865 [ "$CFG_XRENDER" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
6866 [ "$CFG_MITSHM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
6867 [ "$CFG_XSHAPE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
6868 [ "$CFG_XSYNC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC"
6869 [ "$CFG_XINPUT" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
6871 [ "$CFG_XCURSOR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
6872 [ "$CFG_XINERAMA" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
6873 [ "$CFG_XFIXES" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
6874 [ "$CFG_XRANDR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
6875 [ "$CFG_XINPUT" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
6876 [ "$CFG_ALSA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA"
6878 # sort QCONFIG_FLAGS for neatness if we can
6879 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
6880 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
6882 if [ -n "$QCONFIG_FLAGS" ]; then
6883 for cfg in $QCONFIG_FLAGS; do
6884 cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
6885 cfg=`echo $cfg | sed 's/=/ /'` # turn first '=' into a space
6886 # figure out define logic, so we can output the correct
6887 # ifdefs to override the global defines in a project
6888 cfgdNeg=
6889 if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
6890 # QT_NO_option can be forcefully turned on by QT_option
6891 cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
6892 elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
6893 # QT_option can be forcefully turned off by QT_NO_option
6894 cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
6897 if [ -z $cfgdNeg ]; then
6898 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
6899 #ifndef $cfgd
6900 # define $cfg
6901 #endif
6904 else
6905 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
6906 #if defined($cfgd) && defined($cfgdNeg)
6907 # undef $cfgd
6908 #elif !defined($cfgd) && !defined($cfgdNeg)
6909 # define $cfg
6910 #endif
6914 done
6917 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
6918 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
6919 #define QT_VISIBILITY_AVAILABLE
6924 # avoid unecessary rebuilds by copying only if qconfig.h has changed
6925 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
6926 rm -f "$outpath/src/corelib/global/qconfig.h.new"
6927 else
6928 [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
6929 mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
6930 chmod -w "$outpath/src/corelib/global/qconfig.h"
6931 for conf in "$outpath/include/QtCore/qconfig.h" "$outpath/include/Qt/qconfig.h"; do
6932 if [ '!' -f "$conf" ]; then
6933 ln -s "$outpath/src/corelib/global/qconfig.h" "$conf"
6935 done
6938 #-------------------------------------------------------------------------------
6939 # save configuration into qconfig.pri
6940 #-------------------------------------------------------------------------------
6942 QTCONFIG="$outpath/mkspecs/qconfig.pri"
6943 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
6944 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
6945 if [ "$CFG_DEBUG" = "yes" ]; then
6946 QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
6947 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6948 QT_CONFIG="$QT_CONFIG release"
6950 QT_CONFIG="$QT_CONFIG debug"
6951 elif [ "$CFG_DEBUG" = "no" ]; then
6952 QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
6953 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6954 QT_CONFIG="$QT_CONFIG debug"
6956 QT_CONFIG="$QT_CONFIG release"
6958 if [ "$CFG_STL" = "yes" ]; then
6959 QTCONFIG_CONFIG="$QTCONFIG_CONFIG stl"
6961 if [ "$CFG_FRAMEWORK" = "no" ]; then
6962 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
6963 else
6964 QT_CONFIG="$QT_CONFIG qt_framework"
6965 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
6967 if [ "$PLATFORM_MAC" = "yes" ]; then
6968 QT_CONFIG="$QT_CONFIG $CFG_MAC_ARCHS"
6970 if [ "$CFG_DEV" = "yes" ]; then
6971 QT_CONFIG="$QT_CONFIG private_tests"
6974 # Make the application arch follow the Qt arch for single arch builds.
6975 # (for multiple-arch builds, set CONFIG manually in the application .pro file)
6976 if [ `echo "$CFG_MAC_ARCHS" | wc -w` -eq 1 ]; then
6977 QTCONFIG_CONFIG="$QTCONFIG_CONFIG $CFG_MAC_ARCHS"
6980 cat >>"$QTCONFIG.tmp" <<EOF
6981 #configuration
6982 CONFIG += $QTCONFIG_CONFIG
6983 QT_ARCH = $CFG_ARCH
6984 QT_EDITION = $Edition
6985 QT_CONFIG += $QT_CONFIG
6987 #versioning
6988 QT_VERSION = $QT_VERSION
6989 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
6990 QT_MINOR_VERSION = $QT_MINOR_VERSION
6991 QT_PATCH_VERSION = $QT_PATCH_VERSION
6993 #namespaces
6994 QT_LIBINFIX = $QT_LIBINFIX
6995 QT_NAMESPACE = $QT_NAMESPACE
6996 QT_NAMESPACE_MAC_CRC = $QT_NAMESPACE_MAC_CRC
6999 if [ "$CFG_RPATH" = "yes" ]; then
7000 echo "QMAKE_RPATHDIR += \"$QT_INSTALL_LIBS\"" >> "$QTCONFIG.tmp"
7002 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
7003 echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
7004 echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
7005 echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
7007 # replace qconfig.pri if it differs from the newly created temp file
7008 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
7009 rm -f "$QTCONFIG.tmp"
7010 else
7011 mv -f "$QTCONFIG.tmp" "$QTCONFIG"
7014 #-------------------------------------------------------------------------------
7015 # save configuration into .qmake.cache
7016 #-------------------------------------------------------------------------------
7018 CACHEFILE="$outpath/.qmake.cache"
7019 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
7020 cat >>"$CACHEFILE.tmp" <<EOF
7021 CONFIG += $QMAKE_CONFIG dylib create_prl link_prl depend_includepath fix_output_dirs QTDIR_build
7022 QT_SOURCE_TREE = \$\$quote($relpath)
7023 QT_BUILD_TREE = \$\$quote($outpath)
7024 QT_BUILD_PARTS = $CFG_BUILD_PARTS
7025 QMAKE_ABSOLUTE_SOURCE_ROOT = \$\$QT_SOURCE_TREE
7026 QMAKE_MOC_SRC = \$\$QT_BUILD_TREE/src/moc
7028 #local paths that cannot be queried from the QT_INSTALL_* properties while building QTDIR
7029 QMAKE_MOC = \$\$QT_BUILD_TREE/bin/moc
7030 QMAKE_UIC = \$\$QT_BUILD_TREE/bin/uic
7031 QMAKE_UIC3 = \$\$QT_BUILD_TREE/bin/uic3
7032 QMAKE_RCC = \$\$QT_BUILD_TREE/bin/rcc
7033 QMAKE_QDBUSXML2CPP = \$\$QT_BUILD_TREE/bin/qdbusxml2cpp
7034 QMAKE_INCDIR_QT = \$\$QT_BUILD_TREE/include
7035 QMAKE_LIBDIR_QT = \$\$QT_BUILD_TREE/lib
7039 # Ensure we can link to uninistalled libraries
7040 if linkerSupportsFlag -rpath-link "$outpath/lib"; then
7041 echo "QMAKE_LFLAGS += -Wl,-rpath-link,\$\$QT_BUILD_TREE/lib" >> "$CACHEFILE.tmp"
7044 if [ -n "$QT_CFLAGS_PSQL" ]; then
7045 echo "QT_CFLAGS_PSQL = $QT_CFLAGS_PSQL" >> "$CACHEFILE.tmp"
7047 if [ -n "$QT_LFLAGS_PSQL" ]; then
7048 echo "QT_LFLAGS_PSQL = $QT_LFLAGS_PSQL" >> "$CACHEFILE.tmp"
7050 if [ -n "$QT_CFLAGS_MYSQL" ]; then
7051 echo "QT_CFLAGS_MYSQL = $QT_CFLAGS_MYSQL" >> "$CACHEFILE.tmp"
7053 if [ -n "$QT_LFLAGS_MYSQL" ]; then
7054 echo "QT_LFLAGS_MYSQL = $QT_LFLAGS_MYSQL" >> "$CACHEFILE.tmp"
7056 if [ -n "$QT_CFLAGS_SQLITE" ]; then
7057 echo "QT_CFLAGS_SQLITE = $QT_CFLAGS_SQLITE" >> "$CACHEFILE.tmp"
7059 if [ -n "$QT_LFLAGS_SQLITE" ]; then
7060 echo "QT_LFLAGS_SQLITE = $QT_LFLAGS_SQLITE" >> "$CACHEFILE.tmp"
7062 if [ -n "$QT_LFLAGS_ODBC" ]; then
7063 echo "QT_LFLAGS_ODBC = $QT_LFLAGS_ODBC" >> "$CACHEFILE.tmp"
7066 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
7067 echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$CACHEFILE.tmp"
7070 #dump in the OPENSSL_LIBS info
7071 if [ '!' -z "$OPENSSL_LIBS" ]; then
7072 echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$CACHEFILE.tmp"
7073 elif [ "$CFG_OPENSSL" = "linked" ]; then
7074 echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$CACHEFILE.tmp"
7077 #dump in the SDK info
7078 if [ '!' -z "$CFG_SDK" ]; then
7079 echo "QMAKE_MAC_SDK = $CFG_SDK" >> "$CACHEFILE.tmp"
7082 # mac gcc -Xarch support
7083 if [ "$CFG_MAC_XARCH" = "no" ]; then
7084 echo "QMAKE_MAC_XARCH = no" >> "$CACHEFILE.tmp"
7087 #dump the qmake spec
7088 if [ -d "$outpath/mkspecs/$XPLATFORM" ]; then
7089 echo "QMAKESPEC = \$\$QT_BUILD_TREE/mkspecs/$XPLATFORM" >> "$CACHEFILE.tmp"
7090 else
7091 echo "QMAKESPEC = $XPLATFORM" >> "$CACHEFILE.tmp"
7094 # cmdline args
7095 cat "$QMAKE_VARS_FILE" >> "$CACHEFILE.tmp"
7096 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
7098 # incrementals
7099 INCREMENTAL=""
7100 [ "$CFG_INCREMENTAL" = "auto" ] && "$WHICH" p4 >/dev/null 2>&1 && [ "$CFG_DEV" = "yes" ] && CFG_INCREMENTAL="yes"
7101 if [ "$CFG_INCREMENTAL" = "yes" ]; then
7102 find "$relpath" -perm u+w -mtime -3 | grep 'cpp$' | while read f; do
7103 # don't need to worry about generated files
7104 [ -r `echo $f | sed "s,cpp$,ui,"` ] && continue
7105 basename "$f" | grep '^moc_' >/dev/null 2>&1 && continue
7106 # done
7107 INCREMENTAL="$INCREMENTAL `basename \"$f\" | sed 's,.cpp,.o,'`"
7108 done
7109 [ '!' -z "$INCREMENTAL" ] && echo "QMAKE_INCREMENTAL += $INCREMENTAL" >> "$CACHEFILE.tmp"
7110 [ -r "$outpath/.qmake.incremental" ] && echo "include($outpath/.qmake.incremental)" >> "$CACHEFILE.tmp"
7113 # replace .qmake.cache if it differs from the newly created temp file
7114 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
7115 rm -f "$CACHEFILE.tmp"
7116 else
7117 mv -f "$CACHEFILE.tmp" "$CACHEFILE"
7120 #-------------------------------------------------------------------------------
7121 # give feedback on configuration
7122 #-------------------------------------------------------------------------------
7124 case "$COMPILER" in
7125 g++*)
7126 if [ "$CFG_EXCEPTIONS" != "no" ]; then
7127 cat <<EOF
7129 This target is using the GNU C++ compiler ($PLATFORM).
7131 Recent versions of this compiler automatically include code for
7132 exceptions, which increase both the size of the Qt libraries and
7133 the amount of memory taken by your applications.
7135 You may choose to re-run `basename $0` with the -no-exceptions
7136 option to compile Qt without exceptions. This is completely binary
7137 compatible, and existing applications will continue to work.
7142 cc*)
7143 case "$PLATFORM" in
7144 irix-cc*)
7145 if [ "$CFG_EXCEPTIONS" != "no" ]; then
7146 cat <<EOF
7148 This target is using the MIPSpro C++ compiler ($PLATFORM).
7150 You may choose to re-run `basename $0` with the -no-exceptions
7151 option to compile Qt without exceptions. This will make the
7152 size of the Qt library smaller and reduce the amount of memory
7153 taken by your applications.
7158 *) ;;
7159 esac
7161 *) ;;
7162 esac
7164 if [ "$PLATFORM_MAC" = "yes" ] && [ "$CFG_MAC_DWARF2" == "no" ] && [ "$CFG_WEBKIT" = "yes" ] && [ "$CFG_DEBUG_RELEASE" == "yes" ]; then
7165 cat <<EOF
7166 WARNING: DWARF2 debug symbols are not enabled. Linking webkit
7167 in debug mode will run out of memory on systems with 2GB or less.
7168 Install Xcode 2.4.1 or higher to enable DWARF2, or configure with
7169 -no-webkit or -release to skip webkit debug.
7173 echo
7174 if [ "$XPLATFORM" = "$PLATFORM" ]; then
7175 echo "Build type: $PLATFORM"
7176 else
7177 echo "Building on: $PLATFORM"
7178 echo "Building for: $XPLATFORM"
7181 if [ "$PLATFORM_MAC" = "yes" ]; then
7182 echo "Architecture: $CFG_ARCH ($CFG_MAC_ARCHS )"
7183 else
7184 echo "Architecture: $CFG_ARCH"
7187 if [ "$PLATFORM_QWS" = "yes" ]; then
7188 echo "Host architecture: $CFG_HOST_ARCH"
7191 if [ "$PLATFORM_MAC" = "yes" ]; then
7192 if [ "$CFG_MAC_COCOA" = "yes" ]; then
7193 if [ "$CFG_MAC_CARBON" = "yes" ]; then
7194 echo "Using framework: Carbon for 32-bit, Cocoa for 64-bit"
7195 else
7196 echo "Using framework: Cocoa"
7198 else
7199 echo "Using framework: Carbon"
7203 if [ -n "$PLATFORM_NOTES" ]; then
7204 echo "Platform notes:"
7205 echo "$PLATFORM_NOTES"
7206 else
7207 echo
7210 if [ "$OPT_VERBOSE" = "yes" ]; then
7211 if echo '\c' | grep '\c' >/dev/null; then
7212 echo -n "qmake vars .......... "
7213 else
7214 echo "qmake vars .......... \c"
7216 cat "$QMAKE_VARS_FILE" | tr '\n' ' '
7217 echo "qmake switches ...... $QMAKE_SWITCHES"
7220 [ "$CFG_INCREMENTAL" = "yes" ] && [ '!' -z "$INCREMENTAL" ] && echo "Incremental ......... $INCREMENTAL"
7221 echo "Build ............... $CFG_BUILD_PARTS"
7222 echo "Configuration ....... $QMAKE_CONFIG $QT_CONFIG"
7223 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
7224 echo "Debug ............... yes (combined)"
7225 if [ "$CFG_DEBUG" = "yes" ]; then
7226 echo "Default Link ........ debug"
7227 else
7228 echo "Default Link ........ release"
7230 else
7231 echo "Debug ............... $CFG_DEBUG"
7233 echo "Qt 3 compatibility .. $CFG_QT3SUPPORT"
7234 [ "$CFG_DBUS" = "no" ] && echo "QtDBus module ....... no"
7235 [ "$CFG_DBUS" = "yes" ] && echo "QtDBus module ....... yes (run-time)"
7236 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module ....... yes (linked)"
7237 echo "QtConcurrent code.... $CFG_CONCURRENT"
7238 echo "QtScript module ..... $CFG_SCRIPT"
7239 echo "QtScriptTools module $CFG_SCRIPTTOOLS"
7240 echo "QtXmlPatterns module $CFG_XMLPATTERNS"
7241 echo "Phonon module ....... $CFG_PHONON"
7242 echo "Multimedia module ... $CFG_MULTIMEDIA"
7243 echo "SVG module .......... $CFG_SVG"
7244 echo "WebKit module ....... $CFG_WEBKIT"
7245 echo "STL support ......... $CFG_STL"
7246 echo "PCH support ......... $CFG_PRECOMPILE"
7247 echo "MMX/3DNOW/SSE/SSE2.. ${CFG_MMX}/${CFG_3DNOW}/${CFG_SSE}/${CFG_SSE2}"
7248 if [ "${CFG_ARCH}" = "arm" ]; then
7249 echo "iWMMXt support ...... ${CFG_IWMMXT}"
7251 [ "${PLATFORM_QWS}" != "yes" ] && echo "Graphics System ..... $CFG_GRAPHICS_SYSTEM"
7252 echo "IPv6 support ........ $CFG_IPV6"
7253 echo "IPv6 ifname support . $CFG_IPV6IFNAME"
7254 echo "getaddrinfo support . $CFG_GETADDRINFO"
7255 echo "getifaddrs support .. $CFG_GETIFADDRS"
7256 echo "Accessibility ....... $CFG_ACCESSIBILITY"
7257 echo "NIS support ......... $CFG_NIS"
7258 echo "CUPS support ........ $CFG_CUPS"
7259 echo "Iconv support ....... $CFG_ICONV"
7260 echo "Glib support ........ $CFG_GLIB"
7261 echo "GStreamer support ... $CFG_GSTREAMER"
7262 echo "Large File support .. $CFG_LARGEFILE"
7263 echo "GIF support ......... $CFG_GIF"
7264 if [ "$CFG_TIFF" = "no" ]; then
7265 echo "TIFF support ........ $CFG_TIFF"
7266 else
7267 echo "TIFF support ........ $CFG_TIFF ($CFG_LIBTIFF)"
7269 if [ "$CFG_JPEG" = "no" ]; then
7270 echo "JPEG support ........ $CFG_JPEG"
7271 else
7272 echo "JPEG support ........ $CFG_JPEG ($CFG_LIBJPEG)"
7274 if [ "$CFG_PNG" = "no" ]; then
7275 echo "PNG support ......... $CFG_PNG"
7276 else
7277 echo "PNG support ......... $CFG_PNG ($CFG_LIBPNG)"
7279 if [ "$CFG_MNG" = "no" ]; then
7280 echo "MNG support ......... $CFG_MNG"
7281 else
7282 echo "MNG support ......... $CFG_MNG ($CFG_LIBMNG)"
7284 echo "zlib support ........ $CFG_ZLIB"
7285 echo "Session management .. $CFG_SM"
7286 if [ "$PLATFORM_QWS" = "yes" ]; then
7287 echo "Embedded support .... $CFG_EMBEDDED"
7288 if [ "$CFG_QWS_FREETYPE" = "auto" ]; then
7289 echo "Freetype2 support ... $CFG_QWS_FREETYPE ($CFG_LIBFREETYPE)"
7290 else
7291 echo "Freetype2 support ... $CFG_QWS_FREETYPE"
7293 # Normalize the decoration output first
7294 CFG_GFX_ON=`echo ${CFG_GFX_ON}`
7295 CFG_GFX_PLUGIN=`echo ${CFG_GFX_PLUGIN}`
7296 echo "Graphics (qt) ....... ${CFG_GFX_ON}"
7297 echo "Graphics (plugin) ... ${CFG_GFX_PLUGIN}"
7298 CFG_DECORATION_ON=`echo ${CFG_DECORATION_ON}`
7299 CFG_DECORATION_PLUGIN=`echo ${CFG_DECORATION_PLUGIN}`
7300 echo "Decorations (qt) .... $CFG_DECORATION_ON"
7301 echo "Decorations (plugin) $CFG_DECORATION_PLUGIN"
7302 CFG_KBD_ON=`echo ${CFG_KBD_ON}`
7303 CFG_KBD_PLUGIN=`echo ${CFG_KBD_PLUGIN}`
7304 echo "Keyboard driver (qt). ${CFG_KBD_ON}"
7305 echo "Keyboard driver (plugin) ${CFG_KBD_PLUGIN}"
7306 CFG_MOUSE_ON=`echo ${CFG_MOUSE_ON}`
7307 CFG_MOUSE_PLUGIN=`echo ${CFG_MOUSE_PLUGIN}`
7308 echo "Mouse driver (qt) ... $CFG_MOUSE_ON"
7309 echo "Mouse driver (plugin) $CFG_MOUSE_PLUGIN"
7311 if [ "$CFG_OPENGL" = "desktop" ]; then
7312 echo "OpenGL support ...... yes (Desktop OpenGL)"
7313 elif [ "$CFG_OPENGL" = "es1" ]; then
7314 echo "OpenGL support ...... yes (OpenGL ES 1.x Common profile)"
7315 elif [ "$CFG_OPENGL" = "es1cl" ]; then
7316 echo "OpenGL support ...... yes (OpenGL ES 1.x Common Lite profile)"
7317 elif [ "$CFG_OPENGL" = "es2" ]; then
7318 echo "OpenGL support ...... yes (OpenGL ES 2.x)"
7319 else
7320 echo "OpenGL support ...... no"
7322 if [ "$CFG_EGL" != "no" ]; then
7323 if [ "$CFG_EGL_GLES_INCLUDES" != "no" ]; then
7324 echo "EGL support ......... yes <GLES/egl.h>"
7325 else
7326 echo "EGL support ......... yes <EGL/egl.h>"
7329 if [ "$CFG_OPENVG" ]; then
7330 if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then
7331 echo "OpenVG support ...... ShivaVG"
7332 else
7333 echo "OpenVG support ...... $CFG_OPENVG"
7336 if [ "$PLATFORM_X11" = "yes" ]; then
7337 echo "NAS sound support ... $CFG_NAS"
7338 echo "XShape support ...... $CFG_XSHAPE"
7339 echo "XSync support ....... $CFG_XSYNC"
7340 echo "Xinerama support .... $CFG_XINERAMA"
7341 echo "Xcursor support ..... $CFG_XCURSOR"
7342 echo "Xfixes support ...... $CFG_XFIXES"
7343 echo "Xrandr support ...... $CFG_XRANDR"
7344 echo "Xrender support ..... $CFG_XRENDER"
7345 echo "Xi support .......... $CFG_XINPUT"
7346 echo "MIT-SHM support ..... $CFG_MITSHM"
7347 echo "FontConfig support .. $CFG_FONTCONFIG"
7348 echo "XKB Support ......... $CFG_XKB"
7349 echo "immodule support .... $CFG_IM"
7350 echo "GTK theme support ... $CFG_QGTKSTYLE"
7352 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support ....... $CFG_SQL_mysql"
7353 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support .. $CFG_SQL_psql"
7354 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........ $CFG_SQL_odbc"
7355 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ......... $CFG_SQL_oci"
7356 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ......... $CFG_SQL_tds"
7357 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ......... $CFG_SQL_db2"
7358 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ... $CFG_SQL_ibase"
7359 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support .... $CFG_SQL_sqlite2"
7360 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ...... $CFG_SQL_sqlite ($CFG_SQLITE)"
7362 OPENSSL_LINKAGE=""
7363 if [ "$CFG_OPENSSL" = "yes" ]; then
7364 OPENSSL_LINKAGE="(run-time)"
7365 elif [ "$CFG_OPENSSL" = "linked" ]; then
7366 OPENSSL_LINKAGE="(linked)"
7368 echo "OpenSSL support ..... $CFG_OPENSSL $OPENSSL_LINKAGE"
7370 [ "$CFG_PTMALLOC" != "no" ] && echo "Use ptmalloc ........ $CFG_PTMALLOC"
7372 # complain about not being able to use dynamic plugins if we are using a static build
7373 if [ "$CFG_SHARED" = "no" ]; then
7374 echo
7375 echo "WARNING: Using static linking will disable the use of dynamically"
7376 echo "loaded plugins. Make sure to import all needed static plugins,"
7377 echo "or compile needed modules into the library."
7378 echo
7380 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
7381 echo
7382 echo "NOTE: When linking against OpenSSL, you can override the default"
7383 echo "library names through OPENSSL_LIBS."
7384 echo "For example:"
7385 echo " ./configure -openssl-linked OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto'"
7386 echo
7388 if [ "$PLATFORM_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
7389 echo
7390 echo "NOTE: Mac OS X frameworks implicitly build debug and release Qt libraries."
7391 echo
7393 echo "alsa support ........ $CFG_ALSA"
7394 echo
7396 sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
7397 PROCS=1
7398 EXEC=""
7401 #-------------------------------------------------------------------------------
7402 # build makefiles based on the configuration
7403 #-------------------------------------------------------------------------------
7405 echo "Finding project files. Please wait..."
7406 "$outpath/bin/qmake" -prl -r "${relpath}/projects.pro"
7407 if [ -f "${relpath}/projects.pro" ]; then
7408 mkfile="${outpath}/Makefile"
7409 [ -f "$mkfile" ] && chmod +w "$mkfile"
7410 QTDIR="$outpath" "$outpath/bin/qmake" -spec "$XQMAKESPEC" "${relpath}/projects.pro" -o "$mkfile"
7413 # .projects -> projects to process
7414 # .projects.1 -> qt and moc
7415 # .projects.2 -> subdirs and libs
7416 # .projects.3 -> the rest
7417 rm -f .projects .projects.1 .projects.2 .projects.3
7419 QMAKE_PROJECTS=`find "$relpath/." -name '*.pro' -print | sed 's-/\./-/-'`
7420 if [ -z "$AWK" ]; then
7421 for p in `echo $QMAKE_PROJECTS`; do
7422 echo "$p" >> .projects
7423 done
7424 else
7425 cat >projects.awk <<EOF
7426 BEGIN {
7427 files = 0
7428 target_file = ""
7429 input_file = ""
7431 first = "./.projects.1.tmp"
7432 second = "./.projects.2.tmp"
7433 third = "./.projects.3.tmp"
7436 FNR == 1 {
7437 if ( input_file ) {
7438 if ( ! target_file )
7439 target_file = third
7440 print input_file >target_file
7443 matched_target = 0
7444 template_lib = 0
7445 input_file = FILENAME
7446 target_file = ""
7449 /^(TARGET.*=)/ {
7450 if ( \$3 == "moc" || \$3 ~ /^Qt/ ) {
7451 target_file = first
7452 matched_target = 1
7456 matched_target == 0 && /^(TEMPLATE.*=)/ {
7457 if ( \$3 == "subdirs" )
7458 target_file = second
7459 else if ( \$3 == "lib" )
7460 template_lib = 1
7461 else
7462 target_file = third
7465 matched_target == 0 && template_lib == 1 && /^(CONFIG.*=)/ {
7466 if ( \$0 ~ /plugin/ )
7467 target_file = third
7468 else
7469 target_file = second
7472 END {
7473 if ( input_file ) {
7474 if ( ! target_file )
7475 target_file = third
7476 print input_file >>target_file
7482 rm -f .projects.all
7483 for p in `echo $QMAKE_PROJECTS`; do
7484 echo "$p" >> .projects.all
7485 done
7487 # if you get errors about the length of the command line to awk, change the -l arg
7488 # to split below
7489 split -l 100 .projects.all .projects.all.
7490 for p in .projects.all.*; do
7491 "$AWK" -f projects.awk `cat $p`
7492 [ -f .projects.1.tmp ] && cat .projects.1.tmp >> .projects.1
7493 [ -f .projects.2.tmp ] && cat .projects.2.tmp >> .projects.2
7494 [ -f .projects.3.tmp ] && cat .projects.3.tmp >> .projects.3
7495 rm -f .projects.1.tmp .projects.2.tmp .projects.3.tmp $p
7496 done
7497 rm -f .projects.all* projects.awk
7499 [ -f .projects.1 ] && cat .projects.1 >>.projects
7500 [ -f .projects.2 ] && cat .projects.2 >>.projects
7501 rm -f .projects.1 .projects.2
7502 if [ -f .projects.3 ] && [ "$OPT_FAST" = "no" ]; then
7503 cat .projects.3 >>.projects
7504 rm -f .projects.3
7507 # don't sort Qt and MOC in with the other project files
7508 # also work around a segfaulting uniq(1)
7509 if [ -f .sorted.projects.2 ]; then
7510 sort .sorted.projects.2 > .sorted.projects.2.new
7511 mv -f .sorted.projects.2.new .sorted.projects.2
7512 cat .sorted.projects.2 >> .sorted.projects.1
7514 [ -f .sorted.projects.1 ] && sort .sorted.projects.1 >> .sorted.projects
7515 rm -f .sorted.projects.2 .sorted.projects.1
7517 NORM_PROJECTS=0
7518 FAST_PROJECTS=0
7519 if [ -f .projects ]; then
7520 uniq .projects >.tmp
7521 mv -f .tmp .projects
7522 NORM_PROJECTS=`cat .projects | wc -l | sed -e "s, ,,g"`
7524 if [ -f .projects.3 ]; then
7525 uniq .projects.3 >.tmp
7526 mv -f .tmp .projects.3
7527 FAST_PROJECTS=`cat .projects.3 | wc -l | sed -e "s, ,,g"`
7529 echo " `expr $NORM_PROJECTS + $FAST_PROJECTS` projects found."
7530 echo
7532 PART_ROOTS=
7533 for part in $CFG_BUILD_PARTS; do
7534 case "$part" in
7535 tools) PART_ROOTS="$PART_ROOTS tools" ;;
7536 libs) PART_ROOTS="$PART_ROOTS src" ;;
7537 examples) PART_ROOTS="$PART_ROOTS examples demos" ;;
7538 *) ;;
7539 esac
7540 done
7542 if [ "$CFG_DEV" = "yes" ]; then
7543 PART_ROOTS="$PART_ROOTS tests"
7546 echo "Creating makefiles. Please wait..."
7547 for file in .projects .projects.3; do
7548 [ '!' -f "$file" ] && continue
7549 for a in `cat $file`; do
7550 IN_ROOT=no
7551 for r in $PART_ROOTS; do
7552 if echo "$a" | grep "^$r" >/dev/null 2>&1 || echo "$a" | grep "^$relpath/$r" >/dev/null 2>&1; then
7553 IN_ROOT=yes
7554 break
7556 done
7557 [ "$IN_ROOT" = "no" ] && continue
7559 case $a in
7560 *winmain/winmain.pro) continue ;;
7561 *s60main/s60main.pro) continue ;;
7562 */qmake/qmake.pro) continue ;;
7563 *tools/bootstrap*|*tools/moc*|*tools/rcc*|*tools/uic*) SPEC=$QMAKESPEC ;;
7564 *) SPEC=$XQMAKESPEC ;;
7565 esac
7566 dir=`dirname "$a" | sed -e "s;$sepath;.;g"`
7567 test -d "$dir" || mkdir -p "$dir"
7568 OUTDIR="$outpath/$dir"
7569 if [ -f "${OUTDIR}/Makefile" ] && [ "$OPT_FAST" = "yes" ]; then
7570 # fast configure - the makefile exists, skip it
7571 # since the makefile exists, it was generated by qmake, which means we
7572 # can skip it, since qmake has a rule to regenerate the makefile if the .pro
7573 # file changes...
7574 [ "$OPT_VERBOSE" = "yes" ] && echo " skipping $a"
7575 continue;
7577 QMAKE_SPEC_ARGS="-spec $SPEC"
7578 if echo '\c' | grep '\c' >/dev/null; then
7579 echo -n " for $a"
7580 else
7581 echo " for $a\c"
7584 QMAKE="$outpath/bin/qmake"
7585 QMAKE_ARGS="$QMAKE_SWITCHES $QMAKE_SPEC_ARGS"
7586 if [ "$file" = ".projects.3" ]; then
7587 if echo '\c' | grep '\c' >/dev/null; then
7588 echo -n " (fast)"
7589 else
7590 echo " (fast)\c"
7592 echo
7594 cat >"${OUTDIR}/Makefile" <<EOF
7595 # ${OUTDIR}/Makefile: generated by configure
7597 # WARNING: This makefile will be replaced with a real makefile.
7598 # All changes made to this file will be lost.
7600 [ "$CFG_DEBUG_RELEASE" = "no" ] && echo "first_target: first" >>${OUTDIR}/Makefile
7602 cat >>"${OUTDIR}/Makefile" <<EOF
7603 QMAKE = "$QMAKE"
7604 all clean install qmake first Makefile: FORCE
7605 \$(QMAKE) $QMAKE_ARGS -o "$OUTDIR" "$a"
7606 cd "$OUTDIR"
7607 \$(MAKE) \$@
7609 FORCE:
7612 else
7613 if [ "$OPT_VERBOSE" = "yes" ]; then
7614 echo " (`basename $SPEC`)"
7615 echo "$QMAKE" $QMAKE_ARGS -o "$OUTDIR" "$a"
7616 else
7617 echo
7620 [ -f "${OUTDIR}/Makefile" ] && chmod +w "${OUTDIR}/Makefile"
7621 QTDIR="$outpath" "$QMAKE" $QMAKE_ARGS -o "$OUTDIR" "$a"
7623 done
7624 done
7625 rm -f .projects .projects.3
7627 #-------------------------------------------------------------------------------
7628 # XShape is important, DnD in the Designer doens't work without it
7629 #-------------------------------------------------------------------------------
7630 if [ "$PLATFORM_X11" = "yes" ] && [ "$CFG_XSHAPE" = "no" ]; then
7631 cat <<EOF
7633 NOTICE: Qt will not be built with XShape support.
7635 As a result, drag-and-drop in the Qt Designer will NOT
7636 work. We recommend that you enable XShape support by passing
7637 the -xshape switch to $0.
7641 #-------------------------------------------------------------------------------
7642 # check for platforms that we don't yet know about
7643 #-------------------------------------------------------------------------------
7644 if [ "$CFG_ARCH" = "generic" ]; then
7645 cat <<EOF
7647 NOTICE: Atomic operations are not yet supported for this
7648 architecture.
7650 Qt will use the 'generic' architecture instead, which uses a
7651 single pthread_mutex_t to protect all atomic operations. This
7652 implementation is the slow (but safe) fallback implementation
7653 for architectures Qt does not yet support.
7657 #-------------------------------------------------------------------------------
7658 # check if the user passed the -no-zlib option, which is no longer supported
7659 #-------------------------------------------------------------------------------
7660 if [ -n "$ZLIB_FORCED" ]; then
7661 which_zlib="supplied"
7662 if [ "$CFG_ZLIB" = "system" ]; then
7663 which_zlib="system"
7666 cat <<EOF
7668 NOTICE: The -no-zlib option was supplied but is no longer
7669 supported.
7671 Qt now requires zlib support in all builds, so the -no-zlib
7672 option was ignored. Qt will be built using the $which_zlib
7673 zlib.
7677 #-------------------------------------------------------------------------------
7678 # finally save the executed command to another script
7679 #-------------------------------------------------------------------------------
7680 if [ `basename $0` != "config.status" ]; then
7681 CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
7683 # add the system variables
7684 for varname in $SYSTEM_VARIABLES; do
7685 cmd=`echo \
7686 'if [ -n "\$'${varname}'" ]; then
7687 CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
7688 fi'`
7689 eval "$cmd"
7690 done
7692 echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
7694 [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
7695 echo "#!/bin/sh" > "$outpath/config.status"
7696 echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
7697 echo " $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
7698 echo "else" >> "$outpath/config.status"
7699 echo " $CONFIG_STATUS" >> "$outpath/config.status"
7700 echo "fi" >> "$outpath/config.status"
7701 chmod +x "$outpath/config.status"
7704 if [ -n "$RPATH_MESSAGE" ]; then
7705 echo
7706 echo "$RPATH_MESSAGE"
7709 MAKE=`basename "$MAKE"`
7710 echo
7711 echo Qt is now configured for building. Just run \'$MAKE\'.
7712 if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
7713 echo Once everything is built, Qt is installed.
7714 echo You should not run \'$MAKE install\'.
7715 else
7716 echo Once everything is built, you must run \'$MAKE install\'.
7717 echo Qt will be installed into $QT_INSTALL_PREFIX
7719 echo
7720 echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.
7721 echo