Minor cleanup.
[qt-netbsd.git] / configure
blob4cf7499c4a690bca35febc9dcc9f0f0bed20bf3a
1 #!/bin/sh
3 # Configures to build the Qt library
5 # Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
6 # Contact: Qt Software Information (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 # Adds a new qmake variable to the cache
51 # Usage: QMakeVar mode varname contents
52 # where mode is one of: set, add, del
53 QMakeVar()
55 case "$1" in
56 set)
57 eq="="
59 add)
60 eq="+="
62 del)
63 eq="-="
66 echo >&2 "BUG: wrong command to QMakeVar: $1"
68 esac
70 echo "$2" "$eq" "$3" >> "$QMAKE_VARS_FILE"
73 # relies on $QMAKESPEC being set correctly. parses include statements in
74 # qmake.conf and prints out the expanded file
75 getQMakeConf()
77 tmpSPEC="$QMAKESPEC"
78 if [ -n "$1" ]; then
79 tmpSPEC="$1"
81 $AWK -v "QMAKESPEC=$tmpSPEC" '
82 /^include\(.+\)$/{
83 fname = QMAKESPEC "/" substr($0, 9, length($0) - 9)
84 while ((getline line < fname) > 0)
85 print line
86 close(fname)
87 next
89 { print }' "$tmpSPEC/qmake.conf"
92 #-------------------------------------------------------------------------------
93 # operating system detection
94 #-------------------------------------------------------------------------------
96 # need that throughout the script
97 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
98 UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
99 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
100 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
103 #-------------------------------------------------------------------------------
104 # window system detection
105 #-------------------------------------------------------------------------------
107 PLATFORM_X11=no
108 PLATFORM_MAC=no
109 PLATFORM_QWS=no
111 if [ -f "$relpath"/src/gui/kernel/qapplication_mac.mm ] && [ -d /System/Library/Frameworks/Carbon.framework ]; then
112 # Qt/Mac
113 # ~ the Carbon SDK exists
114 # ~ src/gui/base/qapplication_mac.cpp is present
115 # ~ this is the internal edition and Qt/Mac sources exist
116 PLATFORM_MAC=maybe
117 elif [ -f "$relpath"/src/gui/kernel/qapplication_qws.cpp ]; then
118 # Qt Embedded
119 # ~ src/gui/base/qapplication_qws.cpp is present
120 # ~ this is the free or commercial edition
121 # ~ this is the internal edition and Qt Embedded is explicitly enabled
122 if [ -f "$relpath"/src/gui/kernel/qapplication_mac.mm ]; then
123 # This is a depot build, or an all-platforms package
124 PLATFORM_QWS=maybe
125 else
126 # This must be the embedded package, since the Qt/Mac source files are not present
127 PLATFORM_QWS=yes
131 #-----------------------------------------------------------------------------
132 # Qt version detection
133 #-----------------------------------------------------------------------------
134 QT_VERSION=`grep '^# *define *QT_VERSION_STR' "$relpath"/src/corelib/global/qglobal.h`
135 QT_MAJOR_VERSION=
136 QT_MINOR_VERSION=0
137 QT_PATCH_VERSION=0
138 if [ -n "$QT_VERSION" ]; then
139 QT_VERSION=`echo $QT_VERSION | sed 's,^# *define *QT_VERSION_STR *"*\([^ ]*\)"$,\1,'`
140 MAJOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
141 if [ -n "$MAJOR" ]; then
142 MINOR=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
143 PATCH=`echo $QT_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
144 QT_MAJOR_VERSION="$MAJOR"
145 [ -z "$MINOR" ] || QT_MINOR_VERSION="$MINOR"
146 [ -z "$PATCH" ] || QT_PATCH_VERSION="$PATCH"
149 if [ -z "$QT_MAJOR_VERSION" ]; then
150 echo "Cannot process version from qglobal.h: $QT_VERSION"
151 echo "Cannot proceed."
152 exit 1
155 QT_PACKAGEDATE=`grep '^# *define *QT_PACKAGEDATE_STR' "$relpath"/src/corelib/global/qglobal.h | sed -e 's,^# *define *QT_PACKAGEDATE_STR *"\([^ ]*\)"$,\1,' -e s,-,,g`
156 if [ -z "$QT_PACKAGEDATE" ]; then
157 echo "Unable to determine package date from qglobal.h: '$QT_PACKAGEDATE'"
158 echo "Cannot proceed"
159 exit 1
162 #-------------------------------------------------------------------------------
163 # check the license
164 #-------------------------------------------------------------------------------
165 COMMERCIAL_USER=ask
166 CFG_DEV=no
167 CFG_NOKIA=no
168 CFG_EMBEDDED=no
169 EditionString=Commercial
171 earlyArgParse()
173 # parse the arguments, setting things to "yes" or "no"
174 while [ "$#" -gt 0 ]; do
175 CURRENT_OPT="$1"
176 UNKNOWN_ARG=no
177 case "$1" in
178 #Autoconf style options
179 --enable-*)
180 VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
181 VAL=yes
183 --disable-*)
184 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
185 VAL=no
187 --*=*)
188 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
189 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
191 --no-*)
192 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
193 VAL=no
195 -embedded)
196 VAR=embedded
197 # this option may or may not be followed by an argument
198 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
199 VAL=auto
200 else
201 shift;
202 VAL=$1
205 -h|help|--help|-help)
206 if [ "$VAL" = "yes" ]; then
207 OPT_HELP="$VAL"
208 COMMERCIAL_USER="no" #doesn't matter we will display the help
209 else
210 UNKNOWN_OPT=yes
211 COMMERCIAL_USER="no" #doesn't matter we will display the help
214 --*)
215 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
216 VAL=yes
219 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
220 VAL="unknown"
223 UNKNOWN_ARG=yes
225 esac
226 if [ "$UNKNOWN_ARG" = "yes" ]; then
227 shift
228 continue
230 shift
232 UNKNOWN_OPT=no
233 case "$VAR" in
234 embedded)
235 CFG_EMBEDDED="$VAL"
236 if [ "$PLATFORM_QWS" != "no" ]; then
237 if [ "$PLATFORM_QWS" = "maybe" ]; then
238 PLATFORM_X11=no
239 PLATFORM_MAC=no
240 PLATFORM_QWS=yes
242 else
243 echo "No license exists to enable Qt for Embedded Linux. Disabling."
244 CFG_EMBEDDED=no
247 developer-build)
248 CFG_DEV="yes"
250 nokia-developer)
251 CFG_DEV="yes"
252 CFG_NOKIA="yes"
253 COMMERCIAL_USER="no"
255 commercial)
256 COMMERCIAL_USER="yes"
258 opensource)
259 COMMERCIAL_USER="no"
262 UNKNOWN_OPT=yes
264 esac
265 done
268 earlyArgParse "$@"
270 if [ "$COMMERCIAL_USER" = "ask" ]; then
271 while true; do
272 echo "Which edition of Qt do you want to use ?"
273 echo
274 echo "Type 'c' if you want to use the Commercial Edition."
275 echo "Type 'o' if you want to use the Open Source Edition."
276 echo
277 read commercial
278 echo
279 if [ "$commercial" = "c" ]; then
280 COMMERCIAL_USER="yes"
281 break
282 elif [ "$commercial" = "o" ]; then
283 COMMERCIAL_USER="no"
284 break
286 done
289 if [ "$CFG_NOKIA" = "yes" ]; then
290 Licensee="Nokia"
291 Edition="NokiaInternalBuild"
292 EditionString="Nokia Internal Build"
293 QT_EDITION="QT_EDITION_OPENSOURCE"
294 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
295 elif [ -f "$relpath"/LICENSE.PREVIEW.COMMERCIAL ] && [ $COMMERCIAL_USER = "yes" ]; then
296 # Commercial preview release
297 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
298 Licensee="Preview"
299 Edition="Preview"
300 QT_EDITION="QT_EDITION_DESKTOP"
301 LicenseType="Technology Preview"
302 elif [ $COMMERCIAL_USER = "yes" ]; then
303 # one of commercial editions
304 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
305 [ "$PLATFORM_QWS" = "maybe" ] && PLATFORM_QWS=yes
307 # read in the license file
308 if [ -f "$LICENSE_FILE" ]; then
309 . "$LICENSE_FILE" >/dev/null 2>&1
310 if [ -z "$LicenseKeyExt" ]; then
311 echo
312 echo "You are using an old license file."
313 echo
314 echo "Please install the license file supplied by Qt Software,"
315 echo "or install the Qt Open Source Edition if you intend to"
316 echo "develop free software."
317 exit 1
319 if [ -z "$Licensee" ]; then
320 echo
321 echo "Invalid license key. Please check the license key."
322 exit 1
324 else
325 if [ -z "$LicenseKeyExt" ]; then
326 echo
327 if echo '\c' | grep '\c' >/dev/null; then
328 echo -n "Please enter your license key: "
329 else
330 echo "Please enter your license key: \c"
332 read LicenseKeyExt
333 Licensee="Unknown user"
337 # Key verification
338 echo "$LicenseKeyExt" | grep ".....*-....*-....*-....*-.....*-.....*-...." >/dev/null 2>&1 \
339 && LicenseValid="yes" \
340 || LicenseValid="no"
341 if [ "$LicenseValid" != "yes" ]; then
342 echo
343 echo "Invalid license key. Please check the license key."
344 exit 1
346 ProductCode=`echo $LicenseKeyExt | cut -f 1 -d - | cut -b 1`
347 PlatformCode=`echo $LicenseKeyExt | cut -f 2 -d - | cut -b 1`
348 LicenseTypeCode=`echo $LicenseKeyExt | cut -f 3 -d -`
349 LicenseFeatureCode=`echo $LicenseKeyExt | cut -f 4 -d - | cut -b 1`
351 # determine which edition we are licensed to use
352 case "$LicenseTypeCode" in
353 F4M)
354 LicenseType="Commercial"
355 case $ProductCode in
357 Edition="Universal"
358 QT_EDITION="QT_EDITION_UNIVERSAL"
361 Edition="FullFramework"
362 EditionString="Full Framework"
363 QT_EDITION="QT_EDITION_DESKTOP"
366 Edition="GUIFramework"
367 EditionString="GUI Framework"
368 QT_EDITION="QT_EDITION_DESKTOPLIGHT"
370 esac
372 Z4M|R4M|Q4M)
373 LicenseType="Evaluation"
374 case $ProductCode in
376 Edition="Evaluation"
377 QT_EDITION="QT_EDITION_EVALUATION"
379 esac
381 esac
382 if [ -z "$LicenseType" -o -z "$Edition" -o -z "$QT_EDITION" ]; then
383 echo
384 echo "Invalid license key. Please check the license key."
385 exit 1
388 # verify that we are licensed to use Qt on this platform
389 LICENSE_EXTENSION=
390 if [ "$PlatformCode" = "X" ]; then
391 # Qt All-OS
392 LICENSE_EXTENSION="-ALLOS"
393 elif [ "$PLATFORM_QWS" = "yes" ]; then
394 case $PlatformCode in
395 2|4|8|A|B|E|G|J|K|P|Q|S|U|V|W)
396 # Qt for Embedded Linux
397 LICENSE_EXTENSION="-EMBEDDED"
400 echo
401 echo "You are not licensed for Qt for Embedded Linux."
402 echo
403 echo "Please contact sales@trolltech.com to upgrade your license"
404 echo "to include Qt for Embedded Linux, or install the"
405 echo "Qt Open Source Edition if you intend to develop free software."
406 exit 1
408 esac
409 elif [ "$PLATFORM_MAC" = "yes" ]; then
410 case $PlatformCode in
411 2|4|5|7|9|B|C|E|F|G|L|M|U|W|Y)
412 # Qt/Mac
413 LICENSE_EXTENSION="-DESKTOP"
415 3|6|8|A|D|H|J|K|P|Q|S|V)
416 # Embedded no-deploy
417 LICENSE_EXTENSION="-EMBEDDED"
420 echo
421 echo "You are not licensed for the Qt/Mac platform."
422 echo
423 echo "Please contact sales@trolltech.com to upgrade your license"
424 echo "to include the Qt/Mac platform."
425 exit 1
427 esac
428 else
429 case $PlatformCode in
430 2|3|4|5|7|D|E|F|J|M|Q|S|T|V|Z)
431 # Qt/X11
432 LICENSE_EXTENSION="-DESKTOP"
434 6|8|9|A|B|C|G|H|K|P|U|W)
435 # Embedded no-deploy
436 LICENSE_EXTENSION="-EMBEDDED"
439 echo
440 echo "You are not licensed for the Qt/X11 platform."
441 echo
442 echo "Please contact sales@trolltech.com to upgrade your license to"
443 echo "include the Qt/X11 platform, or install the Qt Open Source Edition"
444 echo "if you intend to develop free software."
445 exit 1
447 esac
450 if test -r "$relpath/.LICENSE"; then
451 # Generic, non-final license
452 LICENSE_EXTENSION=""
453 line=`sed 'y/a-z/A-Z/;q' "$relpath"/.LICENSE`
454 case "$line" in
455 *BETA*)
456 Edition=Beta
458 *TECHNOLOGY?PREVIEW*)
459 Edition=Preview
461 *EVALUATION*)
462 Edition=Evaluation
465 echo >&2 "Invalid license files; cannot continue"
466 exit 1
468 esac
469 Licensee="$Edition"
470 EditionString="$Edition"
471 QT_EDITION="QT_EDITION_DESKTOP"
474 case "$LicenseFeatureCode" in
475 G|L)
476 # US
477 case "$LicenseType" in
478 Commercial)
479 cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}-US" "$outpath/LICENSE"
481 Evaluation)
482 cp -f "$relpath/.LICENSE-EVALUATION-US" "$outpath/LICENSE"
484 esac
486 2|5)
487 # non-US
488 case "$LicenseType" in
489 Commercial)
490 cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}" "$outpath/LICENSE"
492 Evaluation)
493 cp -f "$relpath/.LICENSE-EVALUATION" "$outpath/LICENSE"
495 esac
498 echo
499 echo "Invalid license key. Please check the license key."
500 exit 1
502 esac
503 if [ '!' -f "$outpath/LICENSE" ]; then
504 echo "The LICENSE, LICENSE.GPL3 LICENSE.LGPL file shipped with"
505 echo "this software has disappeared."
506 echo
507 echo "Sorry, you are not licensed to use this software."
508 echo "Try re-installing."
509 echo
510 exit 1
512 elif [ $COMMERCIAL_USER = "no" ]; then
513 # Open Source edition - may only be used under the terms of the GPL or LGPL.
514 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
515 Licensee="Open Source"
516 Edition="OpenSource"
517 EditionString="Open Source"
518 QT_EDITION="QT_EDITION_OPENSOURCE"
521 #-------------------------------------------------------------------------------
522 # initalize variables
523 #-------------------------------------------------------------------------------
525 SYSTEM_VARIABLES="CC CXX CFLAGS CXXFLAGS LDFLAGS"
526 for varname in $SYSTEM_VARIABLES; do
527 qmakevarname="${varname}"
528 # use LDFLAGS for autoconf compat, but qmake uses QMAKE_LFLAGS
529 if [ "${varname}" = "LDFLAGS" ]; then
530 qmakevarname="LFLAGS"
532 cmd=`echo \
533 'if [ -n "\$'${varname}'" ]; then
534 QMakeVar set QMAKE_'${qmakevarname}' "\$'${varname}'"
535 fi'`
536 eval "$cmd"
537 done
538 # Use CC/CXX to run config.tests
539 mkdir -p "$outpath/config.tests"
540 rm -f "$outpath/config.tests/.qmake.cache"
541 cp "$QMAKE_VARS_FILE" "$outpath/config.tests/.qmake.cache"
543 QMakeVar add styles "cde mac motif plastique cleanlooks windows"
544 QMakeVar add decorations "default windows styled"
545 QMakeVar add gfx-drivers "linuxfb"
546 QMakeVar add kbd-drivers "tty"
547 QMakeVar add mouse-drivers "pc linuxtp"
549 if [ "$CFG_DEV" = "yes" ]; then
550 QMakeVar add kbd-drivers "um"
553 # QTDIR may be set and point to an old or system-wide Qt installation
554 unset QTDIR
556 # the minimum version of libdbus-1 that we require:
557 MIN_DBUS_1_VERSION=0.62
559 # initalize internal variables
560 CFG_CONFIGURE_EXIT_ON_ERROR=yes
561 CFG_PROFILE=no
562 CFG_EXCEPTIONS=unspecified
563 CFG_SCRIPTTOOLS=auto # (yes|no|auto)
564 CFG_XMLPATTERNS=auto # (yes|no|auto)
565 CFG_INCREMENTAL=auto
566 CFG_QCONFIG=full
567 CFG_DEBUG=auto
568 CFG_MYSQL_CONFIG=
569 CFG_DEBUG_RELEASE=no
570 CFG_SHARED=yes
571 CFG_SM=auto
572 CFG_XSHAPE=auto
573 CFG_XINERAMA=runtime
574 CFG_XFIXES=runtime
575 CFG_ZLIB=auto
576 CFG_SQLITE=qt
577 CFG_GIF=auto
578 CFG_TIFF=auto
579 CFG_LIBTIFF=auto
580 CFG_PNG=yes
581 CFG_LIBPNG=auto
582 CFG_JPEG=auto
583 CFG_LIBJPEG=auto
584 CFG_MNG=auto
585 CFG_LIBMNG=auto
586 CFG_XCURSOR=runtime
587 CFG_XRANDR=runtime
588 CFG_XRENDER=auto
589 CFG_MITSHM=auto
590 CFG_OPENGL=auto
591 CFG_SSE=auto
592 CFG_FONTCONFIG=auto
593 CFG_QWS_FREETYPE=auto
594 CFG_LIBFREETYPE=auto
595 CFG_SQL_AVAILABLE=
596 QT_DEFAULT_BUILD_PARTS="libs tools examples demos docs translations"
597 CFG_BUILD_PARTS=""
598 CFG_NOBUILD_PARTS=""
599 CFG_RELEASE_QMAKE=no
600 CFG_PHONON=auto
601 CFG_PHONON_BACKEND=yes
602 CFG_SVG=yes
603 CFG_WEBKIT=auto # (yes|no|auto)
605 CFG_GFX_AVAILABLE="linuxfb transformed qvfb vnc multiscreen"
606 CFG_GFX_ON="linuxfb multiscreen"
607 CFG_GFX_PLUGIN_AVAILABLE=
608 CFG_GFX_PLUGIN=
609 CFG_GFX_OFF=
610 CFG_KBD_AVAILABLE="tty usb sl5000 yopy vr41xx qvfb"
611 CFG_KBD_ON="tty" #default, see QMakeVar above
612 CFG_MOUSE_AVAILABLE="pc bus linuxtp yopy vr41xx tslib qvfb"
613 CFG_MOUSE_ON="pc linuxtp" #default, see QMakeVar above
615 CFG_ARCH=
616 CFG_HOST_ARCH=
617 CFG_KBD_PLUGIN_AVAILABLE=
618 CFG_KBD_PLUGIN=
619 CFG_KBD_OFF=
620 CFG_MOUSE_PLUGIN_AVAILABLE=
621 CFG_MOUSE_PLUGIN=
622 CFG_MOUSE_OFF=
623 CFG_USE_GNUMAKE=no
624 CFG_IM=yes
625 CFG_DECORATION_AVAILABLE="styled windows default"
626 CFG_DECORATION_ON="${CFG_DECORATION_AVAILABLE}" # all on by default
627 CFG_DECORATION_PLUGIN_AVAILABLE=
628 CFG_DECORATION_PLUGIN=
629 CFG_XINPUT=runtime
630 CFG_XKB=auto
631 CFG_NIS=auto
632 CFG_CUPS=auto
633 CFG_ICONV=auto
634 CFG_DBUS=auto
635 CFG_GLIB=auto
636 CFG_GSTREAMER=auto
637 CFG_QGTKSTYLE=auto
638 CFG_LARGEFILE=auto
639 CFG_OPENSSL=auto
640 CFG_PTMALLOC=no
641 CFG_STL=auto
642 CFG_PRECOMPILE=auto
643 CFG_SEPARATE_DEBUG_INFO=auto
644 CFG_REDUCE_EXPORTS=auto
645 CFG_MMX=auto
646 CFG_3DNOW=auto
647 CFG_SSE=auto
648 CFG_SSE2=auto
649 CFG_REDUCE_RELOCATIONS=no
650 CFG_IPV6=auto
651 CFG_NAS=no
652 CFG_QWS_DEPTHS=all
653 CFG_USER_BUILD_KEY=
654 CFG_ACCESSIBILITY=auto
655 CFG_QT3SUPPORT=yes
656 CFG_ENDIAN=auto
657 CFG_HOST_ENDIAN=auto
658 CFG_DOUBLEFORMAT=auto
659 CFG_ARMFPA=auto
660 CFG_IWMMXT=no
661 CFG_CLOCK_GETTIME=auto
662 CFG_CLOCK_MONOTONIC=auto
663 CFG_MREMAP=auto
664 CFG_GETADDRINFO=auto
665 CFG_IPV6IFNAME=auto
666 CFG_GETIFADDRS=auto
667 CFG_INOTIFY=auto
668 CFG_RPATH=yes
669 CFG_FRAMEWORK=auto
670 CFG_MAC_ARCHS=
671 MAC_ARCHS_COMMANDLINE=
672 CFG_MAC_DWARF2=auto
673 CFG_MAC_XARCH=auto
674 CFG_MAC_CARBON=yes
675 CFG_MAC_COCOA=auto
676 COMMANDLINE_MAC_COCOA=no
677 CFG_SXE=no
678 CFG_PREFIX_INSTALL=yes
679 CFG_SDK=
680 D_FLAGS=
681 I_FLAGS=
682 L_FLAGS=
683 RPATH_FLAGS=
684 l_FLAGS=
685 QCONFIG_FLAGS=
686 XPLATFORM= # This seems to be the QMAKESPEC, like "linux-g++"
687 PLATFORM=$QMAKESPEC
688 QT_CROSS_COMPILE=no
689 OPT_CONFIRM_LICENSE=no
690 OPT_SHADOW=maybe
691 OPT_FAST=auto
692 OPT_VERBOSE=no
693 OPT_HELP=
694 CFG_SILENT=no
695 CFG_GRAPHICS_SYSTEM=default
697 # initalize variables used for installation
698 QT_INSTALL_PREFIX=
699 QT_INSTALL_DOCS=
700 QT_INSTALL_HEADERS=
701 QT_INSTALL_LIBS=
702 QT_INSTALL_BINS=
703 QT_INSTALL_PLUGINS=
704 QT_INSTALL_DATA=
705 QT_INSTALL_TRANSLATIONS=
706 QT_INSTALL_SETTINGS=
707 QT_INSTALL_EXAMPLES=
708 QT_INSTALL_DEMOS=
709 QT_HOST_PREFIX=
711 #flags for SQL drivers
712 QT_CFLAGS_PSQL=
713 QT_LFLAGS_PSQL=
714 QT_CFLAGS_MYSQL=
715 QT_LFLAGS_MYSQL=
716 QT_LFLAGS_MYSQL_R=
717 QT_CFLAGS_SQLITE=
718 QT_LFLAGS_SQLITE=
720 # flags for libdbus-1
721 QT_CFLAGS_DBUS=
722 QT_LIBS_DBUS=
724 # flags for Glib (X11 only)
725 QT_CFLAGS_GLIB=
726 QT_LIBS_GLIB=
728 # flags for GStreamer (X11 only)
729 QT_CFLAGS_GSTREAMER=
730 QT_LIBS_GSTREAMER=
732 #-------------------------------------------------------------------------------
733 # check SQL drivers, mouse drivers and decorations available in this package
734 #-------------------------------------------------------------------------------
736 # opensource version removes some drivers, so force them to be off
737 CFG_SQL_tds=no
738 CFG_SQL_oci=no
739 CFG_SQL_db2=no
741 CFG_SQL_AVAILABLE=
742 if [ -d "$relpath/src/plugins/sqldrivers" ]; then
743 for a in "$relpath/src/plugins/sqldrivers/"*; do
744 if [ -d "$a" ]; then
745 base_a=`basename $a`
746 CFG_SQL_AVAILABLE="${CFG_SQL_AVAILABLE} ${base_a}"
747 eval "CFG_SQL_${base_a}=auto"
749 done
752 CFG_DECORATION_PLUGIN_AVAILABLE=
753 if [ -d "$relpath/src/plugins/decorations" ]; then
754 for a in "$relpath/src/plugins/decorations/"*; do
755 if [ -d "$a" ]; then
756 base_a=`basename $a`
757 CFG_DECORATION_PLUGIN_AVAILABLE="${CFG_DECORATION_PLUGIN_AVAILABLE} ${base_a}"
759 done
762 CFG_KBD_PLUGIN_AVAILABLE=
763 if [ -d "$relpath/src/plugins/kbddrivers" ]; then
764 for a in "$relpath/src/plugins/kbddrivers/"*; do
765 if [ -d "$a" ]; then
766 base_a=`basename $a`
767 CFG_KBD_PLUGIN_AVAILABLE="${CFG_KBD_PLUGIN_AVAILABLE} ${base_a}"
769 done
772 CFG_MOUSE_PLUGIN_AVAILABLE=
773 if [ -d "$relpath/src/plugins/mousedrivers" ]; then
774 for a in "$relpath/src/plugins/mousedrivers/"*; do
775 if [ -d "$a" ]; then
776 base_a=`basename $a`
777 CFG_MOUSE_PLUGIN_AVAILABLE="${CFG_MOUSE_PLUGIN_AVAILABLE} ${base_a}"
779 done
782 CFG_GFX_PLUGIN_AVAILABLE=
783 if [ -d "$relpath/src/plugins/gfxdrivers" ]; then
784 for a in "$relpath/src/plugins/gfxdrivers/"*; do
785 if [ -d "$a" ]; then
786 base_a=`basename $a`
787 CFG_GFX_PLUGIN_AVAILABLE="${CFG_GFX_PLUGIN_AVAILABLE} ${base_a}"
789 done
790 CFG_GFX_OFF="$CFG_GFX_AVAILABLE" # assume all off
793 #-------------------------------------------------------------------------------
794 # parse command line arguments
795 #-------------------------------------------------------------------------------
797 # parse the arguments, setting things to "yes" or "no"
798 while [ "$#" -gt 0 ]; do
799 CURRENT_OPT="$1"
800 UNKNOWN_ARG=no
801 case "$1" in
802 #Autoconf style options
803 --enable-*)
804 VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
805 VAL=yes
807 --disable-*)
808 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
809 VAL=no
811 --*=*)
812 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
813 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
815 --no-*)
816 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
817 VAL=no
819 --*)
820 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
821 VAL=yes
823 #Qt plugin options
824 -no-*-*|-plugin-*-*|-qt-*-*)
825 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
826 VAL=`echo $1 | sed "s,^-\([^-]*\).*,\1,"`
828 #Qt style no options
829 -no-*)
830 VAR=`echo $1 | sed "s,^-no-\(.*\),\1,"`
831 VAL=no
833 #Qt style yes options
834 -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|-svg|-webkit|-scripttools|-rpath|-force-pkg-config)
835 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
836 VAL=yes
838 #Qt style options that pass an argument
839 -qconfig)
840 if [ "$PLATFORM_QWS" = "yes" ]; then
841 CFG_QCONFIG="$VAL"
842 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
843 shift
844 VAL=$1
845 else
846 UNKNOWN_ARG=yes
849 -prefix|-docdir|-headerdir|-plugindir|-datadir|-libdir|-bindir|-translationdir|-sysconfdir|-examplesdir|-demosdir|-depths|-make|-nomake|-platform|-xplatform|-buildkey|-sdk|-arch|-host-arch|-mysql_config)
850 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
851 shift
852 VAL="$1"
854 #Qt style complex options in one command
855 -enable-*|-disable-*)
856 VAR=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
857 VAL=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
859 #Qt Builtin/System style options
860 -no-*|-system-*|-qt-*)
861 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
862 VAL=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
864 #Options that cannot be generalized
865 -k|-continue)
866 VAR=fatal_error
867 VAL=no
869 -embedded)
870 VAR=embedded
871 # this option may or may not be followed by an argument
872 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
873 VAL=auto
874 else
875 shift;
876 VAL=$1
879 -opengl)
880 VAR=opengl
881 # this option may or may not be followed by an argument
882 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
883 VAL=yes
884 else
885 shift;
886 VAL=$1
889 -hostprefix)
890 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
891 # this option may or may not be followed by an argument
892 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
893 VAL=$outpath
894 else
895 shift;
896 VAL=$1
899 -host-*-endian)
900 VAR=host_endian
901 VAL=`echo $1 | sed "s,^-.*-\(.*\)-.*,\1,"`
903 -*-endian)
904 VAR=endian
905 VAL=`echo $1 | sed "s,^-\(.*\)-.*,\1,"`
907 -qtnamespace)
908 VAR="qtnamespace"
909 shift
910 VAL="$1"
912 -graphicssystem)
913 VAR="graphicssystem"
914 shift
915 VAL=$1
917 -qtlibinfix)
918 VAR="qtlibinfix"
919 shift
920 VAL="$1"
922 -D?*|-D)
923 VAR="add_define"
924 if [ "$1" = "-D" ]; then
925 shift
926 VAL="$1"
927 else
928 VAL=`echo $1 | sed 's,-D,,'`
931 -I?*|-I)
932 VAR="add_ipath"
933 if [ "$1" = "-I" ]; then
934 shift
935 VAL="$1"
936 else
937 VAL=`echo $1 | sed 's,-I,,'`
940 -L?*|-L)
941 VAR="add_lpath"
942 if [ "$1" = "-L" ]; then
943 shift
944 VAL="$1"
945 else
946 VAL=`echo $1 | sed 's,-L,,'`
949 -R?*|-R)
950 VAR="add_rpath"
951 if [ "$1" = "-R" ]; then
952 shift
953 VAL="$1"
954 else
955 VAL=`echo $1 | sed 's,-R,,'`
958 -l?*)
959 VAR="add_link"
960 VAL=`echo $1 | sed 's,-l,,'`
962 -F?*|-F)
963 VAR="add_fpath"
964 if [ "$1" = "-F" ]; then
965 shift
966 VAL="$1"
967 else
968 VAL=`echo $1 | sed 's,-F,,'`
971 -fw?*|-fw)
972 VAR="add_framework"
973 if [ "$1" = "-fw" ]; then
974 shift
975 VAL="$1"
976 else
977 VAL=`echo $1 | sed 's,-fw,,'`
981 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
982 VAL="unknown"
985 UNKNOWN_ARG=yes
987 esac
988 if [ "$UNKNOWN_ARG" = "yes" ]; then
989 echo "$1: unknown argument"
990 OPT_HELP=yes
991 ERROR=yes
992 shift
993 continue
995 shift
997 UNKNOWN_OPT=no
998 case "$VAR" in
999 qt3support)
1000 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1001 CFG_QT3SUPPORT="$VAL"
1002 else
1003 UNKNOWN_OPT=yes
1006 accessibility)
1007 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1008 CFG_ACCESSIBILITY="$VAL"
1009 else
1010 UNKNOWN_OPT=yes
1013 license)
1014 LICENSE_FILE="$VAL"
1016 gnumake)
1017 CFG_USE_GNUMAKE="$VAL"
1019 mysql_config)
1020 CFG_MYSQL_CONFIG="$VAL"
1022 prefix)
1023 QT_INSTALL_PREFIX="$VAL"
1025 hostprefix)
1026 QT_HOST_PREFIX="$VAL"
1028 force-pkg-config)
1029 QT_FORCE_PKGCONFIG=yes
1031 docdir)
1032 QT_INSTALL_DOCS="$VAL"
1034 headerdir)
1035 QT_INSTALL_HEADERS="$VAL"
1037 plugindir)
1038 QT_INSTALL_PLUGINS="$VAL"
1040 datadir)
1041 QT_INSTALL_DATA="$VAL"
1043 libdir)
1044 QT_INSTALL_LIBS="$VAL"
1046 qtnamespace)
1047 QT_NAMESPACE="$VAL"
1049 qtlibinfix)
1050 QT_LIBINFIX="$VAL"
1052 translationdir)
1053 QT_INSTALL_TRANSLATIONS="$VAL"
1055 sysconfdir|settingsdir)
1056 QT_INSTALL_SETTINGS="$VAL"
1058 examplesdir)
1059 QT_INSTALL_EXAMPLES="$VAL"
1061 demosdir)
1062 QT_INSTALL_DEMOS="$VAL"
1064 qconfig)
1065 CFG_QCONFIG="$VAL"
1067 bindir)
1068 QT_INSTALL_BINS="$VAL"
1070 buildkey)
1071 CFG_USER_BUILD_KEY="$VAL"
1073 sxe)
1074 CFG_SXE="$VAL"
1076 embedded)
1077 CFG_EMBEDDED="$VAL"
1078 if [ "$PLATFORM_QWS" != "no" ]; then
1079 if [ "$PLATFORM_QWS" = "maybe" ]; then
1080 PLATFORM_X11=no
1081 PLATFORM_MAC=no
1082 PLATFORM_QWS=yes
1084 else
1085 echo "No license exists to enable Qt for Embedded Linux. Disabling."
1086 CFG_EMBEDDED=no
1089 sse)
1090 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1091 CFG_SSE="$VAL"
1092 else
1093 UNKNOWN_OPT=yes
1096 endian)
1097 if [ "$VAL" = "little" ]; then
1098 CFG_ENDIAN="Q_LITTLE_ENDIAN"
1099 elif [ "$VAL" = "big" ]; then
1100 CFG_ENDIAN="Q_BIG_ENDIAN"
1101 else
1102 UNKNOWN_OPT=yes
1105 host_endian)
1106 if [ "$VAL" = "little" ]; then
1107 CFG_HOST_ENDIAN="Q_LITTLE_ENDIAN"
1108 elif [ "$VAL" = "big" ]; then
1109 CFG_HOST_ENDIAN="Q_BIG_ENDIAN"
1110 else
1111 UNKNOWN_OPT=yes
1114 armfpa)
1115 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1116 CFG_ARMFPA="$VAL"
1117 else
1118 UNKNOWN_OPT=yes
1121 depths)
1122 CFG_QWS_DEPTHS="$VAL"
1124 opengl)
1125 if [ "$VAL" = "auto" ] || [ "$VAL" = "desktop" ] ||
1126 [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] ||
1127 [ "$VAL" = "es1cl" ] || [ "$VAL" = "es1" ] || [ "$VAL" = "es2" ]; then
1128 CFG_OPENGL="$VAL"
1129 else
1130 UNKNOWN_OPT=yes
1133 graphicssystem)
1134 if [ "$PLATFORM_QWS" = "yes" ]; then
1135 echo "Error: Graphics System plugins are not supported on QWS."
1136 echo " On QWS, the graphics system API is part of the QScreen plugin architecture "
1137 echo " rather than existing as a separate plugin."
1138 echo ""
1139 UNKNOWN_OPT=yes
1140 else
1141 if [ "$VAL" = "opengl" ]; then
1142 CFG_GRAPHICS_SYSTEM="opengl"
1143 elif [ "$VAL" = "raster" ]; then
1144 CFG_GRAPHICS_SYSTEM="raster"
1145 else
1146 UNKNOWN_OPT=yes
1151 qvfb) # left for commandline compatibility, not documented
1152 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1153 if [ "$VAL" = "yes" ]; then
1154 QMakeVar add gfx-drivers qvfb
1155 QMakeVar add kbd-drivers qvfb
1156 QMakeVar add mouse-drivers qvfb
1157 CFG_GFX_ON="$CFG_GFX_ON qvfb"
1158 CFG_KBD_ON="$CFG_KBD_ON qvfb"
1159 CFG_MOUSE_ON="$CFG_MOUSE_ON qvfb"
1161 else
1162 UNKNOWN_OPT=yes
1165 nomake)
1166 CFG_NOBUILD_PARTS="$CFG_NOBUILD_PARTS $VAL"
1168 make)
1169 CFG_BUILD_PARTS="$CFG_BUILD_PARTS $VAL"
1171 x11)
1172 if [ "$PLATFORM_MAC" = "yes" ]; then
1173 PLATFORM_MAC=no
1174 elif [ "$PLATFORM_QWS" = "yes" ]; then
1175 PLATFORM_QWS=no
1177 if [ "$CFG_FRAMEWORK" = "auto" ]; then
1178 CFG_FRAMEWORK=no
1180 PLATFORM_X11=yes
1182 sdk)
1183 if [ "$PLATFORM_MAC" = "yes" ]; then
1184 CFG_SDK="$VAL"
1185 else
1186 UNKNOWN_OPT=yes
1189 dwarf2)
1190 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1191 CFG_MAC_DWARF2="$VAL"
1192 else
1193 UNKNOWN_OPT=yes
1196 arch)
1197 if [ "$PLATFORM_MAC" = "yes" ]; then
1198 CFG_MAC_ARCHS="$CFG_MAC_ARCHS $VAL"
1199 else
1200 CFG_ARCH=$VAL
1203 host-arch)
1204 CFG_HOST_ARCH=$VAL
1206 universal)
1207 if [ "$PLATFORM_MAC" = "yes" ] && [ "$VAL" = "yes" ]; then
1208 CFG_MAC_ARCHS="$CFG_MAC_ARCHS x86 ppc"
1209 else
1210 UNKNOWN_OPT=yes
1213 cocoa)
1214 if [ "$PLATFORM_MAC" = "yes" ] && [ "$VAL" = "yes" ]; then
1215 CFG_MAC_COCOA="$VAL"
1216 COMMANDLINE_MAC_COCOA="$VAL"
1217 else
1218 UNKNOWN_OPT=yes
1221 framework)
1222 if [ "$PLATFORM_MAC" = "yes" ]; then
1223 CFG_FRAMEWORK="$VAL"
1224 else
1225 UNKNOWN_OPT=yes
1228 profile)
1229 if [ "$VAL" = "yes" ]; then
1230 CFG_PROFILE=yes
1231 QMakeVar add QMAKE_CFLAGS -pg
1232 QMakeVar add QMAKE_CXXFLAGS -pg
1233 QMakeVar add QMAKE_LFLAGS -pg
1234 QMAKE_VARS="$QMAKE_VARS CONFIG+=nostrip"
1235 else
1236 UNKNOWN_OPT=yes
1239 exceptions|g++-exceptions)
1240 if [ "$VAL" = "no" ]; then
1241 CFG_EXCEPTIONS=no
1242 elif [ "$VAL" = "yes" ]; then
1243 CFG_EXCEPTIONS=yes
1244 else
1245 UNKNOWN_OPT=yes
1248 platform)
1249 PLATFORM="$VAL"
1250 # keep compatibility with old platform names
1251 case $PLATFORM in
1252 aix-64)
1253 PLATFORM=aix-xlc-64
1255 hpux-o64)
1256 PLATFORM=hpux-acc-o64
1258 hpux-n64)
1259 PLATFORM=hpux-acc-64
1261 hpux-acc-n64)
1262 PLATFORM=hpux-acc-64
1264 irix-n32)
1265 PLATFORM=irix-cc
1267 irix-64)
1268 PLATFORM=irix-cc-64
1270 irix-cc-n64)
1271 PLATFORM=irix-cc-64
1273 reliant-64)
1274 PLATFORM=reliant-cds-64
1276 solaris-64)
1277 PLATFORM=solaris-cc-64
1279 solaris-64)
1280 PLATFORM=solaris-cc-64
1282 openunix-cc)
1283 PLATFORM=unixware-cc
1285 openunix-g++)
1286 PLATFORM=unixware-g++
1288 unixware7-cc)
1289 PLATFORM=unixware-cc
1291 unixware7-g++)
1292 PLATFORM=unixware-g++
1294 macx-g++-64)
1295 PLATFORM=macx-g++
1296 NATIVE_64_ARCH=
1297 case `uname -p` in
1298 i386) NATIVE_64_ARCH="x86_64" ;;
1299 powerpc) NATIVE_64_ARCH="ppc64" ;;
1300 *) echo "WARNING: Can't detect CPU architecture for macx-g++-64" ;;
1301 esac
1302 if [ ! -z "$NATIVE_64_ARCH" ]; then
1303 QTCONFIG_CONFIG="$QTCONFIG_CONFIG $NATIVE_64_ARCH"
1304 CFG_MAC_ARCHS="$CFG_MAC_ARCHS $NATIVE_64_ARCH"
1307 esac
1309 xplatform)
1310 XPLATFORM="$VAL"
1312 debug-and-release)
1313 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1314 CFG_DEBUG_RELEASE="$VAL"
1315 else
1316 UNKNOWN_OPT=yes
1319 optimized-qmake)
1320 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1321 CFG_RELEASE_QMAKE="$VAL"
1322 else
1323 UNKNOWN_OPT=yes
1326 release)
1327 if [ "$VAL" = "yes" ]; then
1328 CFG_DEBUG=no
1329 elif [ "$VAL" = "no" ]; then
1330 CFG_DEBUG=yes
1331 else
1332 UNKNOWN_OPT=yes
1335 prefix-install)
1336 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1337 CFG_PREFIX_INSTALL="$VAL"
1338 else
1339 UNKNOWN_OPT=yes
1342 debug)
1343 CFG_DEBUG="$VAL"
1345 developer-build|commercial|opensource|nokia-developer)
1346 # These switches have been dealt with already
1348 static)
1349 if [ "$VAL" = "yes" ]; then
1350 CFG_SHARED=no
1351 elif [ "$VAL" = "no" ]; then
1352 CFG_SHARED=yes
1353 else
1354 UNKNOWN_OPT=yes
1357 incremental)
1358 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1359 CFG_INCREMENTAL="$VAL"
1360 else
1361 UNKNOWN_OPT=yes
1364 fatal_error)
1365 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1366 CFG_CONFIGURE_EXIT_ON_ERROR="$VAL"
1367 else
1368 UNKNOWN_OPT=yes
1371 feature-*)
1372 if [ "$PLATFORM_QWS" = "yes" ]; then
1373 FEATURE=`echo $VAR | sed "s,^[^-]*-\([^-]*\),\1," | tr 'abcdefghijklmnopqrstuvwxyz-' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
1374 if [ "$VAL" = "no" ]; then
1375 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_$FEATURE"
1376 elif [ "$VAL" = "yes" ] || [ "$VAL" = "unknown" ]; then
1377 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_$FEATURE"
1378 else
1379 UNKNOWN_OPT=yes
1381 else
1382 UNKNOWN_OPT=yes
1385 shared)
1386 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1387 CFG_SHARED="$VAL"
1388 else
1389 UNKNOWN_OPT=yes
1392 gif)
1393 [ "$VAL" = "qt" ] && VAL=yes
1394 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1395 CFG_GIF="$VAL"
1396 else
1397 UNKNOWN_OPT=yes
1401 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1402 CFG_SM="$VAL"
1403 else
1404 UNKNOWN_OPT=yes
1408 xinerama)
1409 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1410 CFG_XINERAMA="$VAL"
1411 else
1412 UNKNOWN_OPT=yes
1415 xshape)
1416 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1417 CFG_XSHAPE="$VAL"
1418 else
1419 UNKNOWN_OPT=yes
1422 xinput)
1423 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1424 CFG_XINPUT="$VAL"
1425 else
1426 UNKNOWN_OPT=yes
1429 stl)
1430 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1431 CFG_STL="$VAL"
1432 else
1433 UNKNOWN_OPT=yes
1436 pch)
1437 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1438 CFG_PRECOMPILE="$VAL"
1439 else
1440 UNKNOWN_OPT=yes
1443 separate-debug-info)
1444 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1445 CFG_SEPARATE_DEBUG_INFO="$VAL"
1446 else
1447 UNKNOWN_OPT=yes
1450 reduce-exports)
1451 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1452 CFG_REDUCE_EXPORTS="$VAL"
1453 else
1454 UNKNOWN_OPT=yes
1457 mmx)
1458 if [ "$VAL" = "no" ]; then
1459 CFG_MMX="$VAL"
1460 else
1461 UNKNOWN_OPT=yes
1464 3dnow)
1465 if [ "$VAL" = "no" ]; then
1466 CFG_3DNOW="$VAL"
1467 else
1468 UNKNOWN_OPT=yes
1471 sse)
1472 if [ "$VAL" = "no" ]; then
1473 CFG_SSE="$VAL"
1474 else
1475 UNKNOWN_OPT=yes
1478 sse2)
1479 if [ "$VAL" = "no" ]; then
1480 CFG_SSE2="$VAL"
1481 else
1482 UNKNOWN_OPT=yes
1485 iwmmxt)
1486 CFG_IWMMXT="yes"
1488 reduce-relocations)
1489 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1490 CFG_REDUCE_RELOCATIONS="$VAL"
1491 else
1492 UNKNOWN_OPT=yes
1495 freetype)
1496 [ "$VAL" = "qt" ] && VAL=yes
1497 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1498 CFG_QWS_FREETYPE="$VAL"
1499 else
1500 UNKNOWN_OPT=yes
1503 zlib)
1504 [ "$VAL" = "qt" ] && VAL=yes
1505 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1506 CFG_ZLIB="$VAL"
1507 else
1508 UNKNOWN_OPT=yes
1510 # No longer supported:
1511 #[ "$VAL" = "no" ] && CFG_LIBPNG=no
1513 sqlite)
1514 if [ "$VAL" = "system" ]; then
1515 CFG_SQLITE=system
1516 else
1517 UNKNOWN_OPT=yes
1520 libpng)
1521 [ "$VAL" = "yes" ] && VAL=qt
1522 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1523 CFG_LIBPNG="$VAL"
1524 else
1525 UNKNOWN_OPT=yes
1528 libjpeg)
1529 [ "$VAL" = "yes" ] && VAL=qt
1530 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1531 CFG_LIBJPEG="$VAL"
1532 else
1533 UNKNOWN_OPT=yes
1536 libmng)
1537 [ "$VAL" = "yes" ] && VAL=qt
1538 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1539 CFG_LIBMNG="$VAL"
1540 else
1541 UNKNOWN_OPT=yes
1544 libtiff)
1545 [ "$VAL" = "yes" ] && VAL=qt
1546 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1547 CFG_LIBTIFF="$VAL"
1548 else
1549 UNKNOWN_OPT=yes
1552 nas-sound)
1553 if [ "$VAL" = "system" ] || [ "$VAL" = "no" ]; then
1554 CFG_NAS="$VAL"
1555 else
1556 UNKNOWN_OPT=yes
1559 xcursor)
1560 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1561 CFG_XCURSOR="$VAL"
1562 else
1563 UNKNOWN_OPT=yes
1566 xfixes)
1567 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1568 CFG_XFIXES="$VAL"
1569 else
1570 UNKNOWN_OPT=yes
1573 xrandr)
1574 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1575 CFG_XRANDR="$VAL"
1576 else
1577 UNKNOWN_OPT=yes
1580 xrender)
1581 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1582 CFG_XRENDER="$VAL"
1583 else
1584 UNKNOWN_OPT=yes
1587 mitshm)
1588 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1589 CFG_MITSHM="$VAL"
1590 else
1591 UNKNOWN_OPT=yes
1594 fontconfig)
1595 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1596 CFG_FONTCONFIG="$VAL"
1597 else
1598 UNKNOWN_OPT=yes
1601 xkb)
1602 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1603 CFG_XKB="$VAL"
1604 else
1605 UNKNOWN_OPT=yes
1608 cups)
1609 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1610 CFG_CUPS="$VAL"
1611 else
1612 UNKNOWN_OPT=yes
1615 iconv)
1616 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1617 CFG_ICONV="$VAL"
1618 else
1619 UNKNOWN_OPT=yes
1622 glib)
1623 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1624 CFG_GLIB="$VAL"
1625 else
1626 UNKNOWN_OPT=yes
1629 gstreamer)
1630 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1631 CFG_GSTREAMER="$VAL"
1632 else
1633 UNKNOWN_OPT=yes
1636 gtkstyle)
1637 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1638 CFG_QGTKSTYLE="$VAL"
1639 else
1640 UNKNOWN_OPT=yes
1643 qdbus|dbus)
1644 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "linked" ]; then
1645 CFG_DBUS="$VAL"
1646 elif [ "$VAL" = "runtime" ]; then
1647 CFG_DBUS="yes"
1648 else
1649 UNKNOWN_OPT=yes
1652 dbus-linked)
1653 if [ "$VAL" = "yes" ]; then
1654 CFG_DBUS="linked"
1655 else
1656 UNKNOWN_OPT=yes
1659 nis)
1660 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1661 CFG_NIS="$VAL"
1662 else
1663 UNKNOWN_OPT=yes
1666 largefile)
1667 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1668 CFG_LARGEFILE="$VAL"
1669 else
1670 UNKNOWN_OPT=yes
1673 openssl)
1674 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1675 CFG_OPENSSL="$VAL"
1676 else
1677 UNKNOWN_OPT=yes
1680 openssl-linked)
1681 if [ "$VAL" = "yes" ]; then
1682 CFG_OPENSSL="linked"
1683 else
1684 UNKNOWN_OPT=yes
1687 ptmalloc)
1688 if [ "$VAL" = "yes" ]; then
1689 CFG_PTMALLOC="yes"
1690 else
1691 UNKNOWN_OPT=yes
1695 xmlpatterns)
1696 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1697 CFG_XMLPATTERNS="yes"
1698 else
1699 if [ "$VAL" = "no" ]; then
1700 CFG_XMLPATTERNS="no"
1701 else
1702 UNKNOWN_OPT=yes
1706 scripttools)
1707 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1708 CFG_SCRIPTTOOLS="yes"
1709 else
1710 if [ "$VAL" = "no" ]; then
1711 CFG_SCRIPTTOOLS="no"
1712 else
1713 UNKNOWN_OPT=yes
1717 svg)
1718 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1719 CFG_SVG="yes"
1720 else
1721 if [ "$VAL" = "no" ]; then
1722 CFG_SVG="no"
1723 else
1724 UNKNOWN_OPT=yes
1728 webkit)
1729 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1730 CFG_WEBKIT="yes"
1731 else
1732 if [ "$VAL" = "no" ]; then
1733 CFG_WEBKIT="no"
1734 else
1735 UNKNOWN_OPT=yes
1739 confirm-license)
1740 if [ "$VAL" = "yes" ]; then
1741 OPT_CONFIRM_LICENSE="$VAL"
1742 else
1743 UNKNOWN_OPT=yes
1746 h|help)
1747 if [ "$VAL" = "yes" ]; then
1748 OPT_HELP="$VAL"
1749 else
1750 UNKNOWN_OPT=yes
1753 sql-*|gfx-*|decoration-*|kbd-*|mouse-*)
1754 # if Qt style options were used, $VAL can be "no", "qt", or "plugin"
1755 # if autoconf style options were used, $VAL can be "yes" or "no"
1756 [ "$VAL" = "yes" ] && VAL=qt
1757 # now $VAL should be "no", "qt", or "plugin"... double-check
1758 if [ "$VAL" != "no" ] && [ "$VAL" != "qt" ] && [ "$VAL" != "plugin" ]; then
1759 UNKNOWN_OPT=yes
1761 # now $VAL is "no", "qt", or "plugin"
1762 OPT="$VAL"
1763 VAL=`echo $VAR | sed "s,^[^-]*-\([^-]*\).*,\1,"`
1764 VAR=`echo $VAR | sed "s,^\([^-]*\).*,\1,"`
1766 # Grab the available values
1767 case "$VAR" in
1768 sql)
1769 avail="$CFG_SQL_AVAILABLE"
1771 gfx)
1772 avail="$CFG_GFX_AVAILABLE"
1773 if [ "$OPT" = "plugin" ]; then
1774 avail="$CFG_GFX_PLUGIN_AVAILABLE"
1777 decoration)
1778 avail="$CFG_DECORATION_AVAILABLE"
1779 if [ "$OPT" = "plugin" ]; then
1780 avail="$CFG_DECORATION_PLUGIN_AVAILABLE"
1783 kbd)
1784 avail="$CFG_KBD_AVAILABLE"
1785 if [ "$OPT" = "plugin" ]; then
1786 avail="$CFG_KBD_PLUGIN_AVAILABLE"
1789 mouse)
1790 avail="$CFG_MOUSE_AVAILABLE"
1791 if [ "$OPT" = "plugin" ]; then
1792 avail="$CFG_MOUSE_PLUGIN_AVAILABLE"
1796 avail=""
1797 echo "BUG: Unhandled type $VAR used in $CURRENT_OPT"
1799 esac
1801 # Check that that user's value is available.
1802 found=no
1803 for d in $avail; do
1804 if [ "$VAL" = "$d" ]; then
1805 found=yes
1806 break
1808 done
1809 [ "$found" = yes ] || ERROR=yes
1811 if [ "$VAR" = "sql" ]; then
1812 # set the CFG_SQL_driver
1813 eval "CFG_SQL_$VAL=\$OPT"
1814 continue
1817 if [ "$OPT" = "plugin" ] || [ "$OPT" = "qt" ]; then
1818 if [ "$OPT" = "plugin" ]; then
1819 [ "$VAR" = "decoration" ] && QMakeVar del "${VAR}s" "$VAL"
1820 [ "$VAR" = "decoration" ] && CFG_DECORATION_ON=`echo "${CFG_DECORATION_ON} " | sed "s,${VAL} ,,g"` && CFG_DECORATION_PLUGIN="$CFG_DECORATION_PLUGIN ${VAL}"
1821 [ "$VAR" = "kbd" ] && QMakeVar del "${VAR}s" "$VAL"
1822 [ "$VAR" = "kbd" ] && CFG_KBD_ON=`echo "${CFG_MOUSE_ON} " | sed "s,${VAL} ,,g"` && CFG_KBD_PLUGIN="$CFG_KBD_PLUGIN ${VAL}"
1823 [ "$VAR" = "mouse" ] && QMakeVar del "${VAR}s" "$VAL"
1824 [ "$VAR" = "mouse" ] && CFG_MOUSE_ON=`echo "${CFG_MOUSE_ON} " | sed "s,${VAL} ,,g"` && CFG_MOUSE_PLUGIN="$CFG_MOUSE_PLUGIN ${VAL}"
1825 [ "$VAR" = "gfx" ] && QMakeVar del "${VAR}s" "$VAL"
1826 [ "$VAR" = "gfx" ] && CFG_GFX_ON=`echo "${CFG_GFX_ON} " | sed "s,${VAL} ,,g"` && CFG_GFX_PLUGIN="${CFG_GFX_PLUGIN} ${VAL}"
1827 VAR="${VAR}-${OPT}"
1828 else
1829 if [ "$VAR" = "gfx" ] || [ "$VAR" = "kbd" ] || [ "$VAR" = "decoration" ] || [ "$VAR" = "mouse" ]; then
1830 [ "$VAR" = "gfx" ] && CFG_GFX_ON="$CFG_GFX_ON $VAL"
1831 [ "$VAR" = "kbd" ] && CFG_KBD_ON="$CFG_KBD_ON $VAL"
1832 [ "$VAR" = "decoration" ] && CFG_DECORATION_ON="$CFG_DECORATION_ON $VAL"
1833 [ "$VAR" = "mouse" ] && CFG_MOUSE_ON="$CFG_MOUSE_ON $VAL"
1834 VAR="${VAR}-driver"
1837 QMakeVar add "${VAR}s" "${VAL}"
1838 elif [ "$OPT" = "no" ]; then
1839 PLUG_VAR="${VAR}-plugin"
1840 if [ "$VAR" = "gfx" ] || [ "$VAR" = "kbd" ] || [ "$VAR" = "mouse" ]; then
1841 IN_VAR="${VAR}-driver"
1842 else
1843 IN_VAR="${VAR}"
1845 [ "$VAR" = "decoration" ] && CFG_DECORATION_ON=`echo "${CFG_DECORATION_ON} " | sed "s,${VAL} ,,g"`
1846 [ "$VAR" = "gfx" ] && CFG_GFX_ON=`echo "${CFG_GFX_ON} " | sed "s,${VAL} ,,g"`
1847 [ "$VAR" = "kbd" ] && CFG_KBD_ON=`echo "${CFG_KBD_ON} " | sed "s,${VAL} ,,g"`
1848 [ "$VAR" = "mouse" ] && CFG_MOUSE_ON=`echo "${CFG_MOUSE_ON} " | sed "s,${VAL} ,,g"`
1849 QMakeVar del "${IN_VAR}s" "$VAL"
1850 QMakeVar del "${PLUG_VAR}s" "$VAL"
1852 if [ "$ERROR" = "yes" ]; then
1853 echo "$CURRENT_OPT: unknown argument"
1854 OPT_HELP=yes
1857 v|verbose)
1858 if [ "$VAL" = "yes" ]; then
1859 if [ "$OPT_VERBOSE" = "$VAL" ]; then # takes two verboses to turn on qmake debugs
1860 QMAKE_SWITCHES="$QMAKE_SWITCHES -d"
1861 else
1862 OPT_VERBOSE=yes
1864 elif [ "$VAL" = "no" ]; then
1865 if [ "$OPT_VERBOSE" = "$VAL" ] && echo "$QMAKE_SWITCHES" | grep ' -d' >/dev/null 2>&1; then
1866 QMAKE_SWITCHES=`echo $QMAKE_SWITCHES | sed "s, -d,,"`
1867 else
1868 OPT_VERBOSE=no
1870 else
1871 UNKNOWN_OPT=yes
1874 fast)
1875 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1876 OPT_FAST="$VAL"
1877 else
1878 UNKNOWN_OPT=yes
1881 rpath)
1882 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1883 CFG_RPATH="$VAL"
1884 else
1885 UNKNOWN_OPT=yes
1888 add_define)
1889 D_FLAGS="$D_FLAGS \"$VAL\""
1891 add_ipath)
1892 I_FLAGS="$I_FLAGS -I\"${VAL}\""
1894 add_lpath)
1895 L_FLAGS="$L_FLAGS -L\"${VAL}\""
1897 add_rpath)
1898 RPATH_FLAGS="$RPATH_FLAGS \"${VAL}\""
1900 add_link)
1901 l_FLAGS="$l_FLAGS -l\"${VAL}\""
1903 add_fpath)
1904 if [ "$PLATFORM_MAC" = "yes" ]; then
1905 L_FLAGS="$L_FLAGS -F\"${VAL}\""
1906 I_FLAGS="$I_FLAGS -F\"${VAL}\""
1907 else
1908 UNKNOWN_OPT=yes
1911 add_framework)
1912 if [ "$PLATFORM_MAC" = "yes" ]; then
1913 l_FLAGS="$l_FLAGS -framework \"${VAL}\""
1914 else
1915 UNKNOWN_OPT=yes
1918 silent)
1919 CFG_SILENT="$VAL"
1921 phonon)
1922 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1923 CFG_PHONON="$VAL"
1924 else
1925 UNKNOWN_OPT=yes
1928 phonon-backend)
1929 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1930 CFG_PHONON_BACKEND="$VAL"
1931 else
1932 UNKNOWN_OPT=yes
1936 UNKNOWN_OPT=yes
1938 esac
1939 if [ "$UNKNOWN_OPT" = "yes" ]; then
1940 echo "${CURRENT_OPT}: invalid command-line switch"
1941 OPT_HELP=yes
1942 ERROR=yes
1944 done
1946 if [ "$CFG_QCONFIG" != "full" ] && [ "$CFG_QT3SUPPORT" = "yes" ]; then
1947 echo "Warning: '-qconfig $CFG_QCONFIG' will disable the qt3support library."
1948 CFG_QT3SUPPORT="no"
1951 # update QT_CONFIG to show our current predefined configuration
1952 case "$CFG_QCONFIG" in
1953 minimal|small|medium|large|full)
1954 # these are a sequence of increasing functionality
1955 for c in minimal small medium large full; do
1956 QT_CONFIG="$QT_CONFIG $c-config"
1957 [ "$CFG_QCONFIG" = $c ] && break
1958 done
1961 # not known to be sufficient for anything
1962 if [ '!' -f "$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h" ]; then
1963 echo >&2 "Error: configuration file not found:"
1964 echo >&2 " $relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h"
1965 OPT_HELP=yes
1967 esac
1969 #-------------------------------------------------------------------------------
1970 # build tree initialization
1971 #-------------------------------------------------------------------------------
1973 # where to find which..
1974 unixtests="$relpath/config.tests/unix"
1975 mactests="$relpath/config.tests/mac"
1976 WHICH="$unixtests/which.test"
1978 PERL=`$WHICH perl 2>/dev/null`
1980 # find out which awk we want to use, prefer gawk, then nawk, then regular awk
1981 AWK=
1982 for e in gawk nawk awk; do
1983 if "$WHICH" $e >/dev/null 2>&1 && ( $e -f /dev/null /dev/null ) >/dev/null 2>&1; then
1984 AWK=$e
1985 break
1987 done
1989 ### skip this if the user just needs help...
1990 if [ "$OPT_HELP" != "yes" ]; then
1992 # is this a shadow build?
1993 if [ "$OPT_SHADOW" = "maybe" ]; then
1994 OPT_SHADOW=no
1995 if [ "$relpath" != "$outpath" ] && [ '!' -f "$outpath/configure" ]; then
1996 if [ -h "$outpath" ]; then
1997 [ "$relpath" -ef "$outpath" ] || OPT_SHADOW=yes
1998 else
1999 OPT_SHADOW=yes
2003 if [ "$OPT_SHADOW" = "yes" ]; then
2004 if [ -f "$relpath/.qmake.cache" -o -f "$relpath/src/corelib/global/qconfig.h" ]; then
2005 echo >&2 "You cannot make a shadow build from a source tree containing a previous build."
2006 echo >&2 "Cannot proceed."
2007 exit 1
2009 [ "$OPT_VERBOSE" = "yes" ] && echo "Performing shadow build..."
2012 if [ "$PLATFORM_X11" = "yes" -o "$PLATFORM_QWS" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2013 echo
2014 echo "WARNING: -debug-and-release is not supported anymore on Qt/X11 and Qt for Embedded Linux"
2015 echo "By default, Qt is built in release mode with separate debug information, so"
2016 echo "-debug-and-release is not necessary anymore"
2017 echo
2020 # detect build style
2021 if [ "$CFG_DEBUG" = "auto" ]; then
2022 if [ "$PLATFORM_MAC" = "yes" ]; then
2023 CFG_DEBUG_RELEASE=yes
2024 CFG_DEBUG=yes
2025 elif [ "$CFG_DEV" = "yes" ]; then
2026 CFG_DEBUG_RELEASE=no
2027 CFG_DEBUG=yes
2028 else
2029 CFG_DEBUG_RELEASE=no
2030 CFG_DEBUG=no
2033 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2034 QMAKE_CONFIG="$QMAKE_CONFIG build_all"
2037 if [ "$CFG_SILENT" = "yes" ]; then
2038 QMAKE_CONFIG="$QMAKE_CONFIG silent"
2041 # if the source tree is different from the build tree,
2042 # symlink or copy part of the sources
2043 if [ "$OPT_SHADOW" = "yes" ]; then
2044 echo "Preparing build tree..."
2046 if [ -z "$PERL" ]; then
2047 echo
2048 echo "You need perl in your PATH to make a shadow build."
2049 echo "Cannot proceed."
2050 exit 1
2053 [ -d "$outpath/bin" ] || mkdir -p "$outpath/bin"
2055 # symlink the qmake directory
2056 find "$relpath/qmake" | while read a; do
2057 my_a=`echo "$a" | sed "s,^${relpath}/,${outpath}/,"`
2058 if [ '!' -f "$my_a" ]; then
2059 if [ -d "$a" ]; then
2060 # directories are created...
2061 mkdir -p "$my_a"
2062 else
2063 a_dir=`dirname "$my_a"`
2064 [ -d "$a_dir" ] || mkdir -p "$a_dir"
2065 # ... and files are symlinked
2066 case `basename "$a"` in
2067 *.o|*.d|GNUmakefile*|qmake)
2070 rm -f "$my_a"
2071 ln -s "$a" "$my_a"
2073 esac
2076 done
2078 # make a syncqt script that can be used in the shadow
2079 rm -f "$outpath/bin/syncqt"
2080 if [ -x "$relpath/bin/syncqt" ]; then
2081 mkdir -p "$outpath/bin"
2082 echo "#!/bin/sh" >"$outpath/bin/syncqt"
2083 echo "QTDIR=\"$relpath\"; export QTDIR" >>"$outpath/bin/syncqt"
2084 echo "perl \"$relpath/bin/syncqt\" -outdir \"$outpath\" $*" >>"$outpath/bin/syncqt"
2085 chmod 755 "$outpath/bin/syncqt"
2088 # symlink the mkspecs directory
2089 mkdir -p "$outpath/mkspecs"
2090 rm -f "$outpath"/mkspecs/*
2091 ln -s "$relpath"/mkspecs/* "$outpath/mkspecs"
2092 rm -f "$outpath/mkspecs/default"
2094 # symlink the doc directory
2095 rm -rf "$outpath/doc"
2096 ln -s "$relpath/doc" "$outpath/doc"
2098 # make sure q3porting.xml can be found
2099 mkdir -p "$outpath/tools/porting/src"
2100 rm -f "$outpath/tools/porting/src/q3porting.xml"
2101 ln -s "$relpath/tools/porting/src/q3porting.xml" "$outpath/tools/porting/src"
2104 # symlink files from src/gui/embedded neccessary to build qvfb
2105 if [ "$CFG_DEV" = "yes" ]; then
2106 for f in qvfbhdr.h qlock_p.h qlock.cpp qwssignalhandler_p.h qwssignalhandler.cpp; do
2107 dest="${relpath}/tools/qvfb/${f}"
2108 rm -f "$dest"
2109 ln -s "${relpath}/src/gui/embedded/${f}" "${dest}"
2110 done
2113 # symlink fonts to be able to run application from build directory
2114 if [ "$PLATFORM_QWS" = "yes" ] && [ ! -e "${outpath}/lib/fonts" ]; then
2115 if [ "$PLATFORM" = "$XPLATFORM" ]; then
2116 mkdir -p "${outpath}/lib"
2117 ln -s "${relpath}/lib/fonts" "${outpath}/lib/fonts"
2121 if [ "$OPT_FAST" = "auto" ]; then
2122 if [ '!' -z "$AWK" ] && [ "$CFG_DEV" = "yes" ]; then
2123 OPT_FAST=yes
2124 else
2125 OPT_FAST=no
2129 # find a make command
2130 if [ -z "$MAKE" ]; then
2131 MAKE=
2132 for mk in gmake make; do
2133 if "$WHICH" $mk >/dev/null 2>&1; then
2134 MAKE=`$WHICH $mk`
2135 break
2137 done
2138 if [ -z "$MAKE" ]; then
2139 echo >&2 "You don't seem to have 'make' or 'gmake' in your PATH."
2140 echo >&2 "Cannot proceed."
2141 exit 1
2145 fi ### help
2147 #-------------------------------------------------------------------------------
2148 # auto-detect all that hasn't been specified in the arguments
2149 #-------------------------------------------------------------------------------
2151 [ "$PLATFORM_QWS" = "yes" -a "$CFG_EMBEDDED" = "no" ] && CFG_EMBEDDED=auto
2152 if [ "$CFG_EMBEDDED" != "no" ]; then
2153 case "$UNAME_SYSTEM:$UNAME_RELEASE" in
2154 Darwin:*)
2155 [ -z "$PLATFORM" ] && PLATFORM=qws/macx-generic-g++
2156 if [ -z "$XPLATFORM" ]; then
2157 [ "$CFG_EMBEDDED" = "auto" ] && CFG_EMBEDDED=generic
2158 XPLATFORM="qws/macx-$CFG_EMBEDDED-g++"
2161 FreeBSD:*)
2162 [ -z "$PLATFORM" ] && PLATFORM=qws/freebsd-generic-g++
2163 if [ -z "$XPLATFORM" ]; then
2164 [ "$CFG_EMBEDDED" = "auto" ] && CFG_EMBEDDED=generic
2165 XPLATFORM="qws/freebsd-$CFG_EMBEDDED-g++"
2168 SunOS:5*)
2169 [ -z "$PLATFORM" ] && PLATFORM=qws/solaris-generic-g++
2170 if [ -z "$XPLATFORM" ]; then
2171 [ "$CFG_EMBEDDED" = "auto" ] && CFG_EMBEDDED=generic
2172 XPLATFORM="qws/solaris-$CFG_EMBEDDED-g++"
2175 Linux:*)
2176 if [ -z "$PLATFORM" ]; then
2177 case "$UNAME_MACHINE" in
2178 *86)
2179 PLATFORM=qws/linux-x86-g++
2181 *86_64)
2182 PLATFORM=qws/linux-x86_64-g++
2184 *ppc)
2185 PLATFORM=qws/linux-ppc-g++
2188 PLATFORM=qws/linux-generic-g++
2190 esac
2192 if [ -z "$XPLATFORM" ]; then
2193 if [ "$CFG_EMBEDDED" = "auto" ]; then
2194 if [ -n "$CFG_ARCH" ]; then
2195 CFG_EMBEDDED=$CFG_ARCH
2196 else
2197 case "$UNAME_MACHINE" in
2198 *86)
2199 CFG_EMBEDDED=x86
2201 *86_64)
2202 CFG_EMBEDDED=x86_64
2204 *ppc)
2205 CFG_EMBEDDED=ppc
2208 CFG_EMBEDDED=generic
2210 esac
2213 XPLATFORM="qws/linux-$CFG_EMBEDDED-g++"
2216 CYGWIN*:*)
2217 CFG_EMBEDDED=x86
2220 echo "Qt for Embedded Linux is not supported on this platform. Disabling."
2221 CFG_EMBEDDED=no
2222 PLATFORM_QWS=no
2224 esac
2226 if [ -z "$PLATFORM" ]; then
2227 PLATFORM_NOTES=
2228 case "$UNAME_SYSTEM:$UNAME_RELEASE" in
2229 Darwin:*)
2230 if [ "$PLATFORM_MAC" = "yes" ]; then
2231 PLATFORM=macx-g++
2232 # PLATFORM=macx-xcode
2233 else
2234 PLATFORM=darwin-g++
2237 AIX:*)
2238 #PLATFORM=aix-g++
2239 #PLATFORM=aix-g++-64
2240 PLATFORM=aix-xlc
2241 #PLATFORM=aix-xlc-64
2242 PLATFORM_NOTES="
2243 - Also available for AIX: aix-g++ aix-g++-64 aix-xlc-64
2246 GNU:*)
2247 PLATFORM=hurd-g++
2249 dgux:*)
2250 PLATFORM=dgux-g++
2252 # DYNIX/ptx:4*)
2253 # PLATFORM=dynix-g++
2254 # ;;
2255 ULTRIX:*)
2256 PLATFORM=ultrix-g++
2258 FreeBSD:*)
2259 PLATFORM=freebsd-g++
2260 PLATFORM_NOTES="
2261 - Also available for FreeBSD: freebsd-icc
2264 OpenBSD:*)
2265 PLATFORM=openbsd-g++
2267 NetBSD:*)
2268 PLATFORM=netbsd-g++
2270 BSD/OS:*|BSD/386:*)
2271 PLATFORM=bsdi-g++
2273 IRIX*:*)
2274 #PLATFORM=irix-g++
2275 PLATFORM=irix-cc
2276 #PLATFORM=irix-cc-64
2277 PLATFORM_NOTES="
2278 - Also available for IRIX: irix-g++ irix-cc-64
2281 HP-UX:*)
2282 case "$UNAME_MACHINE" in
2283 ia64)
2284 #PLATFORM=hpuxi-acc-32
2285 PLATFORM=hpuxi-acc-64
2286 PLATFORM_NOTES="
2287 - Also available for HP-UXi: hpuxi-acc-32
2291 #PLATFORM=hpux-g++
2292 PLATFORM=hpux-acc
2293 #PLATFORM=hpux-acc-64
2294 #PLATFORM=hpux-cc
2295 #PLATFORM=hpux-acc-o64
2296 PLATFORM_NOTES="
2297 - Also available for HP-UX: hpux-g++ hpux-acc-64 hpux-acc-o64
2300 esac
2302 OSF1:*)
2303 #PLATFORM=tru64-g++
2304 PLATFORM=tru64-cxx
2305 PLATFORM_NOTES="
2306 - Also available for Tru64: tru64-g++
2309 Linux:*)
2310 case "$UNAME_MACHINE" in
2311 x86_64|s390x|ppc64)
2312 PLATFORM=linux-g++-64
2315 PLATFORM=linux-g++
2317 esac
2318 PLATFORM_NOTES="
2319 - Also available for Linux: linux-kcc linux-icc linux-cxx
2322 SunOS:5*)
2323 #PLATFORM=solaris-g++
2324 PLATFORM=solaris-cc
2325 #PLATFORM=solaris-cc64
2326 PLATFORM_NOTES="
2327 - Also available for Solaris: solaris-g++ solaris-cc-64
2330 ReliantUNIX-*:*|SINIX-*:*)
2331 PLATFORM=reliant-cds
2332 #PLATFORM=reliant-cds-64
2333 PLATFORM_NOTES="
2334 - Also available for Reliant UNIX: reliant-cds-64
2337 CYGWIN*:*)
2338 PLATFORM=cygwin-g++
2340 LynxOS*:*)
2341 PLATFORM=lynxos-g++
2343 OpenUNIX:*)
2344 #PLATFORM=unixware-g++
2345 PLATFORM=unixware-cc
2346 PLATFORM_NOTES="
2347 - Also available for OpenUNIX: unixware-g++
2350 UnixWare:*)
2351 #PLATFORM=unixware-g++
2352 PLATFORM=unixware-cc
2353 PLATFORM_NOTES="
2354 - Also available for UnixWare: unixware-g++
2357 SCO_SV:*)
2358 #PLATFORM=sco-g++
2359 PLATFORM=sco-cc
2360 PLATFORM_NOTES="
2361 - Also available for SCO OpenServer: sco-g++
2364 UNIX_SV:*)
2365 PLATFORM=unixware-g++
2368 if [ "$OPT_HELP" != "yes" ]; then
2369 echo
2370 for p in $PLATFORMS; do
2371 echo " $relconf $* -platform $p"
2372 done
2373 echo >&2
2374 echo " The build script does not currently recognize all" >&2
2375 echo " platforms supported by Qt." >&2
2376 echo " Rerun this script with a -platform option listed to" >&2
2377 echo " set the system/compiler combination you use." >&2
2378 echo >&2
2379 exit 2
2381 esac
2384 if [ "$PLATFORM_QWS" = "yes" ]; then
2385 CFG_SM=no
2386 PLATFORMS=`find "$relpath/mkspecs/qws" | sed "s,$relpath/mkspecs/qws/,,"`
2387 else
2388 PLATFORMS=`find "$relpath/mkspecs/" -type f | grep -v qws | sed "s,$relpath/mkspecs/qws/,,"`
2391 [ -z "$XPLATFORM" ] && XPLATFORM="$PLATFORM"
2392 if [ -d "$PLATFORM" ]; then
2393 QMAKESPEC="$PLATFORM"
2394 else
2395 QMAKESPEC="$relpath/mkspecs/${PLATFORM}"
2397 if [ -d "$XPLATFORM" ]; then
2398 XQMAKESPEC="$XPLATFORM"
2399 else
2400 XQMAKESPEC="$relpath/mkspecs/${XPLATFORM}"
2402 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2403 QT_CROSS_COMPILE=yes
2404 QMAKE_CONFIG="$QMAKE_CONFIG cross_compile"
2407 if [ "$PLATFORM_MAC" = "yes" ]; then
2408 if [ `basename $QMAKESPEC` = "macx-xcode" ] || [ `basename $XQMAKESPEC` = "macx-xcode" ]; then
2409 echo >&2
2410 echo " Platform 'macx-xcode' should not be used when building Qt/Mac." >&2
2411 echo " Please build Qt/Mac with 'macx-g++', then if you would like to" >&2
2412 echo " use mac-xcode on your application code it can link to a Qt/Mac" >&2
2413 echo " built with 'macx-g++'" >&2
2414 echo >&2
2415 exit 2
2419 # check specified platforms are supported
2420 if [ '!' -d "$QMAKESPEC" ]; then
2421 echo
2422 echo " The specified system/compiler is not supported:"
2423 echo
2424 echo " $QMAKESPEC"
2425 echo
2426 echo " Please see the README file for a complete list."
2427 echo
2428 exit 2
2430 if [ '!' -d "$XQMAKESPEC" ]; then
2431 echo
2432 echo " The specified system/compiler is not supported:"
2433 echo
2434 echo " $XQMAKESPEC"
2435 echo
2436 echo " Please see the README file for a complete list."
2437 echo
2438 exit 2
2440 if [ '!' -f "${XQMAKESPEC}/qplatformdefs.h" ]; then
2441 echo
2442 echo " The specified system/compiler port is not complete:"
2443 echo
2444 echo " $XQMAKESPEC/qplatformdefs.h"
2445 echo
2446 echo " Please contact qt-bugs@trolltech.com."
2447 echo
2448 exit 2
2451 # now look at the configs and figure out what platform we are config'd for
2452 [ "$CFG_EMBEDDED" = "no" ] \
2453 && [ '!' -z "`getQMakeConf \"$XQMAKESPEC\" | grep QMAKE_LIBS_X11 | awk '{print $3;}'`" ] \
2454 && PLATFORM_X11=yes
2455 ### echo "$XQMAKESPEC" | grep mkspecs/qws >/dev/null 2>&1 && PLATFORM_QWS=yes
2457 if [ "$UNAME_SYSTEM" = "SunOS" ]; then
2458 # Solaris 2.5 and 2.6 have libposix4, which was renamed to librt for Solaris 7 and up
2459 if echo $UNAME_RELEASE | grep "^5\.[5|6]" >/dev/null 2>&1; then
2460 sed -e "s,-lrt,-lposix4," "$XQMAKESPEC/qmake.conf" > "$XQMAKESPEC/qmake.conf.new"
2461 mv "$XQMAKESPEC/qmake.conf.new" "$XQMAKESPEC/qmake.conf"
2465 #-------------------------------------------------------------------------------
2466 # determine the system architecture
2467 #-------------------------------------------------------------------------------
2468 if [ "$OPT_VERBOSE" = "yes" ]; then
2469 echo "Determining system architecture... ($UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_MACHINE)"
2472 if [ "$CFG_EMBEDDED" != "no" -a "$CFG_EMBEDDED" != "auto" ] && [ -n "$CFG_ARCH" ]; then
2473 if [ "$CFG_ARCH" != "$CFG_EMBEDDED" ]; then
2474 echo ""
2475 echo "You have specified a target architecture with -embedded and -arch."
2476 echo "The two architectures you have specified are different, so we can"
2477 echo "not proceed. Either set both to be the same, or only use -embedded."
2478 echo ""
2479 exit 1
2483 if [ -z "${CFG_HOST_ARCH}" ]; then
2484 case "$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_MACHINE" in
2485 IRIX*:*:*)
2486 CFG_HOST_ARCH=`uname -p`
2487 if [ "$OPT_VERBOSE" = "yes" ]; then
2488 echo " SGI ($CFG_HOST_ARCH)"
2491 SunOS:5*:*)
2492 case "$UNAME_MACHINE" in
2493 sun4u*|sun4v*)
2494 if [ "$OPT_VERBOSE" = "yes" ]; then
2495 echo " Sun SPARC (sparc)"
2497 CFG_HOST_ARCH=sparc
2499 i86pc)
2500 case "$PLATFORM" in
2501 *-64)
2502 if [ "$OPT_VERBOSE" = "yes" ]; then
2503 echo " 64-bit AMD 80x86 (x86_64)"
2505 CFG_HOST_ARCH=x86_64
2508 if [ "$OPT_VERBOSE" = "yes" ]; then
2509 echo " 32-bit Intel 80x86 (i386)"
2511 CFG_HOST_ARCH=i386
2513 esac
2514 esac
2516 Darwin:*:*)
2517 case "$UNAME_MACHINE" in
2518 Power?Macintosh)
2519 if [ "$OPT_VERBOSE" = "yes" ]; then
2520 echo " 32-bit Apple PowerPC (powerpc)"
2523 x86)
2524 if [ "$OPT_VERBOSE" = "yes" ]; then
2525 echo " 32-bit Intel 80x86 (i386)"
2528 esac
2529 CFG_HOST_ARCH=macosx
2531 AIX:*:00????????00)
2532 if [ "$OPT_VERBOSE" = "yes" ]; then
2533 echo " 64-bit IBM PowerPC (powerpc)"
2535 CFG_HOST_ARCH=powerpc
2537 HP-UX:*:9000*)
2538 if [ "$OPT_VERBOSE" = "yes" ]; then
2539 echo " HP PA-RISC (parisc)"
2541 CFG_HOST_ARCH=parisc
2543 *:*:i?86)
2544 if [ "$OPT_VERBOSE" = "yes" ]; then
2545 echo " 32-bit Intel 80x86 (i386)"
2547 CFG_HOST_ARCH=i386
2549 *:*:x86_64|*:*:amd64)
2550 if [ "$PLATFORM" = "linux-g++-32" -o "$PLATFORM" = "linux-icc-32" ]; then
2551 if [ "$OPT_VERBOSE" = "yes" ]; then
2552 echo " 32 bit on 64-bit AMD 80x86 (i386)"
2554 CFG_HOST_ARCH=i386
2555 else
2556 if [ "$OPT_VERBOSE" = "yes" ]; then
2557 echo " 64-bit AMD 80x86 (x86_64)"
2559 CFG_HOST_ARCH=x86_64
2562 *:*:ppc)
2563 if [ "$OPT_VERBOSE" = "yes" ]; then
2564 echo " 32-bit PowerPC (powerpc)"
2566 CFG_HOST_ARCH=powerpc
2568 *:*:ppc64)
2569 if [ "$OPT_VERBOSE" = "yes" ]; then
2570 echo " 64-bit PowerPC (powerpc)"
2572 CFG_HOST_ARCH=powerpc
2574 *:*:s390*)
2575 if [ "$OPT_VERBOSE" = "yes" ]; then
2576 echo " IBM S/390 (s390)"
2578 CFG_HOST_ARCH=s390
2580 *:*:arm*)
2581 if [ "$OPT_VERBOSE" = "yes" ]; then
2582 echo " ARM (arm)"
2584 CFG_HOST_ARCH=arm
2586 Linux:*:sparc*)
2587 if [ "$OPT_VERBOSE" = "yes" ]; then
2588 echo " Linux on SPARC"
2590 CFG_HOST_ARCH=sparc
2592 *:*:*)
2593 if [ "$OPT_VERBOSE" = "yes" ]; then
2594 echo " Trying '$UNAME_MACHINE'..."
2596 CFG_HOST_ARCH="$UNAME_MACHINE"
2598 esac
2601 if [ "$PLATFORM" != "$XPLATFORM" -a "$CFG_EMBEDDED" != "no" ]; then
2602 if [ -n "$CFG_ARCH" ]; then
2603 CFG_EMBEDDED=$CFG_ARCH
2606 case "$CFG_EMBEDDED" in
2607 x86)
2608 CFG_ARCH=i386
2610 x86_64)
2611 CFG_ARCH=x86_64
2613 ipaq|sharp)
2614 CFG_ARCH=arm
2616 dm7000)
2617 CFG_ARCH=powerpc
2619 dm800)
2620 CFG_ARCH=mips
2622 sh4al)
2623 CFG_ARCH=sh4a
2626 CFG_ARCH="$CFG_EMBEDDED"
2628 esac
2629 elif [ "$PLATFORM_MAC" = "yes" ] || [ -z "$CFG_ARCH" ]; then
2630 CFG_ARCH=$CFG_HOST_ARCH
2633 if [ -d "$relpath/src/corelib/arch/$CFG_ARCH" ]; then
2634 if [ "$OPT_VERBOSE" = "yes" ]; then
2635 echo " '$CFG_ARCH' is supported"
2637 else
2638 if [ "$OPT_VERBOSE" = "yes" ]; then
2639 echo " '$CFG_ARCH' is unsupported, using 'generic'"
2641 CFG_ARCH=generic
2643 if [ "$CFG_HOST_ARCH" != "$CFG_ARCH" ]; then
2644 if [ -d "$relpath/src/corelib/arch/$CFG_HOST_ARCH" ]; then
2645 if [ "$OPT_VERBOSE" = "yes" ]; then
2646 echo " '$CFG_HOST_ARCH' is supported"
2648 else
2649 if [ "$OPT_VERBOSE" = "yes" ]; then
2650 echo " '$CFG_HOST_ARCH' is unsupported, using 'generic'"
2652 CFG_HOST_ARCH=generic
2656 if [ "$OPT_VERBOSE" = "yes" ]; then
2657 echo "System architecture: '$CFG_ARCH'"
2658 if [ "$PLATFORM_QWS" = "yes" ]; then
2659 echo "Host architecture: '$CFG_HOST_ARCH'"
2663 #-------------------------------------------------------------------------------
2664 # tests that don't need qmake (must be run before displaying help)
2665 #-------------------------------------------------------------------------------
2667 if [ -z "$PKG_CONFIG" ]; then
2668 # See if PKG_CONFIG is set in the mkspec:
2669 PKG_CONFIG=`getQMakeConf "$XQMAKESPEC" | sed -n -e 's%PKG_CONFIG[^_].*=%%p' | tr '\n' ' '`
2671 if [ -z "$PKG_CONFIG" ]; then
2672 PKG_CONFIG=`$WHICH pkg-config 2>/dev/null`
2675 # Work out if we can use pkg-config
2676 if [ "$QT_CROSS_COMPILE" = "yes" ]; then
2677 if [ "$QT_FORCE_PKGCONFIG" = "yes" ]; then
2678 echo >&2 ""
2679 echo >&2 "You have asked to use pkg-config and are cross-compiling."
2680 echo >&2 "Please make sure you have a correctly set-up pkg-config"
2681 echo >&2 "environment!"
2682 echo >&2 ""
2683 if [ -z "$PKG_CONFIG_PATH" ]; then
2684 echo >&2 ""
2685 echo >&2 "Warning: PKG_CONFIG_PATH has not been set. This could mean"
2686 echo >&2 "the host compiler's .pc files will be used. This is probably"
2687 echo >&2 "not what you want."
2688 echo >&2 ""
2689 elif [ -z "$PKG_CONFIG_SYSROOT" ] && [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
2690 echo >&2 ""
2691 echo >&2 "Warning: PKG_CONFIG_SYSROOT/PKG_CONFIG_SYSROOT_DIR has not"
2692 echo >&2 "been set. This means your toolchain's .pc files must contain"
2693 echo >&2 "the paths to the toolchain's libraries & headers. If configure"
2694 echo >&2 "tests are failing, please check these files."
2695 echo >&2 ""
2697 else
2698 PKG_CONFIG=""
2702 # process CFG_MAC_ARCHS
2703 if [ "$PLATFORM_MAC" = "yes" ]; then
2704 # check -arch arguments for validity.
2705 ALLOWED="x86 ppc x86_64 ppc64 i386"
2706 # Save the list so we can re-write it using only valid values
2707 CFG_MAC_ARCHS_IN="$CFG_MAC_ARCHS"
2708 CFG_MAC_ARCHS=
2709 for i in $CFG_MAC_ARCHS_IN
2711 if echo "$ALLOWED" | grep -w -v "$i" > /dev/null 2>&1; then
2712 echo "Unknown architecture: \"$i\". Supported architectures: x86[i386] ppc x86_64 ppc64";
2713 exit 2;
2715 if [ "$i" = "i386" -o "$i" = "x86" ]; then
2716 # These are synonymous values
2717 # CFG_MAC_ARCHS requires x86 while GCC requires i386
2718 CFG_MAC_ARCHS="$CFG_MAC_ARCHS x86"
2719 MAC_ARCHS_COMMANDLINE="$MAC_ARCHS_COMMANDLINE -arch i386"
2720 else
2721 CFG_MAC_ARCHS="$CFG_MAC_ARCHS $i"
2722 MAC_ARCHS_COMMANDLINE="$MAC_ARCHS_COMMANDLINE -arch $i"
2724 done
2727 # find the default framework value
2728 if [ "$PLATFORM_MAC" = "yes" ] && [ "$PLATFORM" != "macx-xlc" ]; then
2729 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2730 CFG_FRAMEWORK="$CFG_SHARED"
2731 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2732 echo
2733 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2734 echo
2735 CFG_FRAMEWORK="no"
2737 else
2738 CFG_FRAMEWORK=no
2741 QMAKE_CONF_COMPILER=`getQMakeConf "$XQMAKESPEC" | grep "^QMAKE_CXX[^_A-Z0-9]" | sed "s,.* *= *\(.*\)$,\1," | tail -1`
2742 TEST_COMPILER="$CC"
2743 [ -z "$TEST_COMPILER" ] && TEST_COMPILER=$QMAKE_CONF_COMPILER
2745 # auto-detect precompiled header support
2746 if [ "$CFG_PRECOMPILE" = "auto" ]; then
2747 if [ `echo "$CFG_MAC_ARCHS" | wc -w` -gt 1 ]; then
2748 CFG_PRECOMPILE=no
2749 elif "$unixtests/precomp.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2750 CFG_PRECOMPILE=no
2751 else
2752 CFG_PRECOMPILE=yes
2754 elif [ "$CFG_PRECOMPILE" = "yes" ] && [ `echo "$CFG_MAC_ARCHS" | wc -w` -gt 1 ]; then
2755 echo
2756 echo "WARNING: Using universal binaries disables precompiled headers."
2757 echo
2758 CFG_PRECOMPILE=no
2761 #auto-detect DWARF2 on the mac
2762 if [ "$PLATFORM_MAC" = "yes" ] && [ "$CFG_MAC_DWARF2" == "auto" ]; then
2763 if "$mactests/dwarf2.test" "$TEST_COMPILER" "$OPT_VERBOSE" "$mactests" ; then
2764 CFG_MAC_DWARF2=no
2765 else
2766 CFG_MAC_DWARF2=yes
2770 # auto-detect support for -Xarch on the mac
2771 if [ "$PLATFORM_MAC" = "yes" ] && [ "$CFG_MAC_XARCH" == "auto" ]; then
2772 if "$mactests/xarch.test" "$TEST_COMPILER" "$OPT_VERBOSE" "$mactests" ; then
2773 CFG_MAC_XARCH=no
2774 else
2775 CFG_MAC_XARCH=yes
2779 # don't autodetect support for separate debug info on objcopy when
2780 # cross-compiling as lots of toolchains seems to have problems with this
2781 if [ "$QT_CROSS_COMPILE" = "yes" ] && [ "$CFG_SEPARATE_DEBUG_INFO" = "auto" ]; then
2782 CFG_SEPARATE_DEBUG_INFO="no"
2785 # auto-detect support for separate debug info in objcopy
2786 if [ "$CFG_SEPARATE_DEBUG_INFO" != "no" ] && [ "$CFG_SHARED" = "yes" ]; then
2787 TEST_COMPILER_CFLAGS=`getQMakeConf "$XQMAKESPEC" | sed -n -e 's%QMAKE_CFLAGS[^_].*=%%p' | tr '\n' ' '`
2788 TEST_COMPILER_CXXFLAGS=`getQMakeConf "$XQMAKESPEC" | sed -n -e 's%QMAKE_CXXFLAGS[^_].*=%%p' | tr '\n' ' '`
2789 TEST_OBJCOPY=`getQMakeConf "$XQMAKESPEC" | grep "^QMAKE_OBJCOPY" | sed "s%.* *= *\(.*\)$%\1%" | tail -1`
2790 COMPILER_WITH_FLAGS="$TEST_COMPILER $TEST_COMPILER_CXXFLAGS"
2791 COMPILER_WITH_FLAGS=`echo "$COMPILER_WITH_FLAGS" | sed -e "s%\\$\\$QMAKE_CFLAGS%$TEST_COMPILER_CFLAGS%g"`
2792 if "$unixtests/objcopy.test" "$COMPILER_WITH_FLAGS" "$TEST_OBJCOPY" "$OPT_VERBOSE"; then
2793 CFG_SEPARATE_DEBUG_INFO=no
2794 else
2795 case "$PLATFORM" in
2796 hpux-*)
2797 # binutils on HP-UX is buggy; default to no.
2798 CFG_SEPARATE_DEBUG_INFO=no
2801 CFG_SEPARATE_DEBUG_INFO=yes
2803 esac
2807 # auto-detect -fvisibility support
2808 if [ "$CFG_REDUCE_EXPORTS" = "auto" ]; then
2809 if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2810 CFG_REDUCE_EXPORTS=no
2811 else
2812 CFG_REDUCE_EXPORTS=yes
2816 # detect the availability of the -Bsymbolic-functions linker optimization
2817 if [ "$CFG_REDUCE_RELOCATIONS" != "no" ]; then
2818 if "$unixtests/bsymbolic_functions.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then
2819 CFG_REDUCE_RELOCATIONS=no
2820 else
2821 CFG_REDUCE_RELOCATIONS=yes
2825 # auto-detect GNU make support
2826 if [ "$CFG_USE_GNUMAKE" = "auto" ] && "$MAKE" -v | grep "GNU Make" >/dev/null 2>&1; then
2827 CFG_USE_GNUMAKE=yes
2830 # If -opengl wasn't specified, don't try to auto-detect
2831 if [ "$PLATFORM_QWS" = "yes" ] && [ "$CFG_OPENGL" = "auto" ]; then
2832 CFG_OPENGL=no
2835 # mac
2836 if [ "$PLATFORM_MAC" = "yes" ]; then
2837 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
2838 CFG_OPENGL=desktop
2842 # find the default framework value
2843 if [ "$PLATFORM_MAC" = "yes" ] && [ "$PLATFORM" != "macx-xlc" ]; then
2844 if [ "$CFG_FRAMEWORK" = "auto" ]; then
2845 CFG_FRAMEWORK="$CFG_SHARED"
2846 elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then
2847 echo
2848 echo "WARNING: Using static linking will disable the use of Mac frameworks."
2849 echo
2850 CFG_FRAMEWORK="no"
2852 else
2853 CFG_FRAMEWORK=no
2856 # x11 tests are done after qmake is built
2859 #setup the build parts
2860 if [ -z "$CFG_BUILD_PARTS" ]; then
2861 CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS"
2863 # don't build tools by default when cross-compiling
2864 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2865 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, tools,,g"`
2868 for nobuild in $CFG_NOBUILD_PARTS; do
2869 CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"`
2870 done
2871 if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then
2872 # echo
2873 # echo "WARNING: libs is a required part of the build."
2874 # echo
2875 CFG_BUILD_PARTS="$CFG_BUILD_PARTS libs"
2878 #-------------------------------------------------------------------------------
2879 # post process QT_INSTALL_* variables
2880 #-------------------------------------------------------------------------------
2882 #prefix
2883 if [ -z "$QT_INSTALL_PREFIX" ]; then
2884 if [ "$CFG_DEV" = "yes" ]; then
2885 QT_INSTALL_PREFIX="$outpath" # At Trolltech, we use sandboxed builds by default
2886 elif [ "$PLATFORM_QWS" = "yes" ]; then
2887 QT_INSTALL_PREFIX="/usr/local/Trolltech/QtEmbedded-${QT_VERSION}"
2888 if [ "$PLATFORM" != "$XPLATFORM" ]; then
2889 QT_INSTALL_PREFIX="${QT_INSTALL_PREFIX}-${CFG_ARCH}"
2891 else
2892 QT_INSTALL_PREFIX="/usr/local/Trolltech/Qt-${QT_VERSION}" # the default install prefix is /usr/local/Trolltech/Qt-$QT_VERSION
2895 QT_INSTALL_PREFIX=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PREFIX"`
2897 #docs
2898 if [ -z "$QT_INSTALL_DOCS" ]; then #default
2899 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2900 if [ "$PLATFORM_MAC" = "yes" ]; then
2901 QT_INSTALL_DOCS="/Developer/Documentation/Qt"
2904 [ -z "$QT_INSTALL_DOCS" ] && QT_INSTALL_DOCS="$QT_INSTALL_PREFIX/doc" #fallback
2907 QT_INSTALL_DOCS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DOCS"`
2909 #headers
2910 if [ -z "$QT_INSTALL_HEADERS" ]; then #default
2911 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2912 if [ "$PLATFORM_MAC" = "yes" ]; then
2913 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2914 QT_INSTALL_HEADERS=
2918 [ -z "$QT_INSTALL_HEADERS" ] && QT_INSTALL_HEADERS="$QT_INSTALL_PREFIX/include"
2921 QT_INSTALL_HEADERS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_HEADERS"`
2923 #libs
2924 if [ -z "$QT_INSTALL_LIBS" ]; then #default
2925 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2926 if [ "$PLATFORM_MAC" = "yes" ]; then
2927 if [ "$CFG_FRAMEWORK" = "yes" ]; then
2928 QT_INSTALL_LIBS="/Libraries/Frameworks"
2932 [ -z "$QT_INSTALL_LIBS" ] && QT_INSTALL_LIBS="$QT_INSTALL_PREFIX/lib" #fallback
2934 QT_INSTALL_LIBS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_LIBS"`
2936 #bins
2937 if [ -z "$QT_INSTALL_BINS" ]; then #default
2938 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2939 if [ "$PLATFORM_MAC" = "yes" ]; then
2940 QT_INSTALL_BINS="/Developer/Applications/Qt"
2943 [ -z "$QT_INSTALL_BINS" ] && QT_INSTALL_BINS="$QT_INSTALL_PREFIX/bin" #fallback
2946 QT_INSTALL_BINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_BINS"`
2948 #plugins
2949 if [ -z "$QT_INSTALL_PLUGINS" ]; then #default
2950 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2951 if [ "$PLATFORM_MAC" = "yes" ]; then
2952 QT_INSTALL_PLUGINS="/Developer/Applications/Qt/plugins"
2955 [ -z "$QT_INSTALL_PLUGINS" ] && QT_INSTALL_PLUGINS="$QT_INSTALL_PREFIX/plugins" #fallback
2957 QT_INSTALL_PLUGINS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_PLUGINS"`
2959 #data
2960 if [ -z "$QT_INSTALL_DATA" ]; then #default
2961 QT_INSTALL_DATA="$QT_INSTALL_PREFIX"
2963 QT_INSTALL_DATA=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DATA"`
2965 #translations
2966 if [ -z "$QT_INSTALL_TRANSLATIONS" ]; then #default
2967 QT_INSTALL_TRANSLATIONS="$QT_INSTALL_PREFIX/translations"
2969 QT_INSTALL_TRANSLATIONS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_TRANSLATIONS"`
2971 #settings
2972 if [ -z "$QT_INSTALL_SETTINGS" ]; then #default
2973 if [ "$PLATFORM_MAC" = "yes" ]; then
2974 QT_INSTALL_SETTINGS=/Library/Preferences/Qt
2975 else
2976 QT_INSTALL_SETTINGS=/etc/xdg
2979 QT_INSTALL_SETTINGS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_SETTINGS"`
2981 #examples
2982 if [ -z "$QT_INSTALL_EXAMPLES" ]; then #default
2983 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2984 if [ "$PLATFORM_MAC" = "yes" ]; then
2985 QT_INSTALL_EXAMPLES="/Developer/Examples/Qt"
2988 [ -z "$QT_INSTALL_EXAMPLES" ] && QT_INSTALL_EXAMPLES="$QT_INSTALL_PREFIX/examples" #fallback
2990 QT_INSTALL_EXAMPLES=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_EXAMPLES"`
2992 #demos
2993 if [ -z "$QT_INSTALL_DEMOS" ]; then #default
2994 if [ "$CFG_PREFIX_INSTALL" = "no" ]; then
2995 if [ "$PLATFORM_MAC" = "yes" ]; then
2996 QT_INSTALL_DEMOS="/Developer/Examples/Qt/Demos"
2999 [ -z "$QT_INSTALL_DEMOS" ] && QT_INSTALL_DEMOS="$QT_INSTALL_PREFIX/demos"
3001 QT_INSTALL_DEMOS=`"$relpath/config.tests/unix/makeabs" "$QT_INSTALL_DEMOS"`
3003 #-------------------------------------------------------------------------------
3004 # help - interactive parts of the script _after_ this section please
3005 #-------------------------------------------------------------------------------
3007 # next, emit a usage message if something failed.
3008 if [ "$OPT_HELP" = "yes" ]; then
3009 [ "x$ERROR" = "xyes" ] && echo
3010 if [ "$CFG_NIS" = "no" ]; then
3011 NSY=" "
3012 NSN="*"
3013 else
3014 NSY="*"
3015 NSN=" "
3017 if [ "$CFG_CUPS" = "no" ]; then
3018 CUY=" "
3019 CUN="*"
3020 else
3021 CUY="*"
3022 CUN=" "
3024 if [ "$CFG_ICONV" = "no" ]; then
3025 CIY=" "
3026 CIN="*"
3027 else
3028 CIY="*"
3029 CIN=" "
3031 if [ "$CFG_LARGEFILE" = "no" ]; then
3032 LFSY=" "
3033 LFSN="*"
3034 else
3035 LFSY="*"
3036 LFSN=" "
3038 if [ "$CFG_STL" = "auto" ] || [ "$CFG_STL" = "yes" ]; then
3039 SHY="*"
3040 SHN=" "
3041 else
3042 SHY=" "
3043 SHN="*"
3045 if [ "$CFG_IPV6" = "auto" ]; then
3046 I6Y="*"
3047 I6N=" "
3049 if [ "$CFG_PRECOMPILE" = "auto" ] || [ "$CFG_PRECOMPILE" = "no" ]; then
3050 PHY=" "
3051 PHN="*"
3052 else
3053 PHY="*"
3054 PHN=" "
3057 cat <<EOF
3058 Usage: $relconf [-h] [-prefix <dir>] [-prefix-install] [-bindir <dir>] [-libdir <dir>]
3059 [-docdir <dir>] [-headerdir <dir>] [-plugindir <dir> ] [-datadir <dir>]
3060 [-translationdir <dir>] [-sysconfdir <dir>] [-examplesdir <dir>]
3061 [-demosdir <dir>] [-buildkey <key>] [-release] [-debug]
3062 [-debug-and-release] [-developer-build] [-shared] [-static] [-no-fast] [-fast] [-no-largefile]
3063 [-largefile] [-no-exceptions] [-exceptions] [-no-accessibility]
3064 [-accessibility] [-no-stl] [-stl] [-no-sql-<driver>] [-sql-<driver>]
3065 [-plugin-sql-<driver>] [-system-sqlite] [-no-qt3support] [-qt3support]
3066 [-platform] [-D <string>] [-I <string>] [-L <string>] [-help]
3067 [-qt-zlib] [-system-zlib] [-no-gif] [-qt-gif] [-no-libtiff] [-qt-libtiff] [-system-libtiff]
3068 [-no-libpng] [-qt-libpng] [-system-libpng] [-no-libmng] [-qt-libmng]
3069 [-system-libmng] [-no-libjpeg] [-qt-libjpeg] [-system-libjpeg] [-make <part>]
3070 [-no-make <part>] [-R <string>] [-l <string>] [-no-rpath] [-rpath] [-continue]
3071 [-verbose] [-v] [-silent] [-no-nis] [-nis] [-no-cups] [-cups] [-no-iconv]
3072 [-iconv] [-no-pch] [-pch] [-no-dbus] [-dbus] [-dbus-linked]
3073 [-no-separate-debug-info] [-no-mmx] [-no-3dnow] [-no-sse] [-no-sse2]
3074 [-qtnamespace <namespace>] [-qtlibinfix <infix>] [-separate-debug-info] [-armfpa]
3075 [-no-optimized-qmake] [-optimized-qmake] [-no-xmlpatterns] [-xmlpatterns]
3076 [-no-phonon] [-phonon] [-no-phonon-backend] [-phonon-backend]
3077 [-no-openssl] [-openssl] [-openssl-linked]
3078 [-no-gtkstyle] [-gtkstyle] [-no-svg] [-svg] [-no-webkit] [-webkit]
3079 [-no-scripttools] [-scripttools]
3081 [additional platform specific options (see below)]
3084 Installation options:
3086 These are optional, but you may specify install directories.
3088 -prefix <dir> ...... This will install everything relative to <dir>
3089 (default $QT_INSTALL_PREFIX)
3091 if [ "$PLATFORM_QWS" = "yes" ]; then
3092 cat <<EOF
3094 -hostprefix [dir] .. Tools and libraries needed when developing
3095 applications are installed in [dir]. If [dir] is
3096 not given, the current build directory will be used.
3099 cat <<EOF
3101 * -prefix-install .... Force a sandboxed "local" installation of
3102 Qt. This will install into
3103 $QT_INSTALL_PREFIX, if this option is
3104 disabled then some platforms will attempt a
3105 "system" install by placing default values to
3106 be placed in a system location other than
3107 PREFIX.
3109 You may use these to separate different parts of the install:
3111 -bindir <dir> ......... Executables will be installed to <dir>
3112 (default PREFIX/bin)
3113 -libdir <dir> ......... Libraries will be installed to <dir>
3114 (default PREFIX/lib)
3115 -docdir <dir> ......... Documentation will be installed to <dir>
3116 (default PREFIX/doc)
3117 -headerdir <dir> ...... Headers will be installed to <dir>
3118 (default PREFIX/include)
3119 -plugindir <dir> ...... Plugins will be installed to <dir>
3120 (default PREFIX/plugins)
3121 -datadir <dir> ........ Data used by Qt programs will be installed to <dir>
3122 (default PREFIX)
3123 -translationdir <dir> . Translations of Qt programs will be installed to <dir>
3124 (default PREFIX/translations)
3125 -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir>
3126 (default PREFIX/etc/settings)
3127 -examplesdir <dir> .... Examples will be installed to <dir>
3128 (default PREFIX/examples)
3129 -demosdir <dir> ....... Demos will be installed to <dir>
3130 (default PREFIX/demos)
3132 You may use these options to turn on strict plugin loading.
3134 -buildkey <key> .... Build the Qt library and plugins using the specified
3135 <key>. When the library loads plugins, it will only
3136 load those that have a matching key.
3138 Configure options:
3140 The defaults (*) are usually acceptable. A plus (+) denotes a default value
3141 that needs to be evaluated. If the evaluation succeeds, the feature is
3142 included. Here is a short explanation of each option:
3144 * -release ........... Compile and link Qt with debugging turned off.
3145 -debug ............. Compile and link Qt with debugging turned on.
3146 -debug-and-release . Compile and link two versions of Qt, with and without
3147 debugging turned on (Mac only).
3149 -developer-build.... Compile and link Qt with Qt developer options (including auto-tests exporting)
3151 -opensource......... Compile and link the Open-Source Edition of Qt.
3152 -commercial......... Compile and link the Commercial Edition of Qt.
3155 * -shared ............ Create and use shared Qt libraries.
3156 -static ............ Create and use static Qt libraries.
3158 * -no-fast ........... Configure Qt normally by generating Makefiles for all
3159 project files.
3160 -fast .............. Configure Qt quickly by generating Makefiles only for
3161 library and subdirectory targets. All other Makefiles
3162 are created as wrappers, which will in turn run qmake.
3164 -no-largefile ...... Disables large file support.
3165 + -largefile ......... Enables Qt to access files larger than 4 GB.
3168 if [ "$PLATFORM_QWS" = "yes" ]; then
3169 EXCN="*"
3170 EXCY=" "
3171 else
3172 EXCN=" "
3173 EXCY="*"
3175 if [ "$CFG_DBUS" = "no" ]; then
3176 DBY=" "
3177 DBN="+"
3178 else
3179 DBY="+"
3180 DBN=" "
3183 cat << EOF
3184 $EXCN -no-exceptions ..... Disable exceptions on compilers that support it.
3185 $EXCY -exceptions ........ Enable exceptions on compilers that support it.
3187 -no-accessibility .. Do not compile Accessibility support.
3188 * -accessibility ..... Compile Accessibility support.
3190 $SHN -no-stl ............ Do not compile STL support.
3191 $SHY -stl ............... Compile STL support.
3193 -no-sql-<driver> ... Disable SQL <driver> entirely.
3194 -qt-sql-<driver> ... Enable a SQL <driver> in the QtSql library, by default
3195 none are turned on.
3196 -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to
3197 at run time.
3199 Possible values for <driver>:
3200 [ $CFG_SQL_AVAILABLE ]
3202 -system-sqlite ..... Use sqlite from the operating system.
3204 -no-qt3support ..... Disables the Qt 3 support functionality.
3205 * -qt3support ........ Enables the Qt 3 support functionality.
3207 -no-xmlpatterns .... Do not build the QtXmlPatterns module.
3208 + -xmlpatterns ....... Build the QtXmlPatterns module.
3209 QtXmlPatterns is built if a decent C++ compiler
3210 is used and exceptions are enabled.
3212 -no-phonon ......... Do not build the Phonon module.
3213 + -phonon ............ Build the Phonon module.
3214 Phonon is built if a decent C++ compiler is used.
3215 -no-phonon-backend.. Do not build the platform phonon plugin.
3216 + -phonon-backend..... Build the platform phonon plugin.
3218 -no-svg ............ Do not build the SVG module.
3219 + -svg ............... Build the SVG module.
3221 -no-webkit ......... Do not build the WebKit module.
3222 + -webkit ............ Build the WebKit module.
3223 WebKit is built if a decent C++ compiler is used.
3225 -no-scripttools .... Do not build the QtScriptTools module.
3226 + -scripttools ....... Build the QtScriptTools module.
3228 -platform target ... The operating system and compiler you are building
3229 on ($PLATFORM).
3231 See the README file for a list of supported
3232 operating systems and compilers.
3234 if [ "${PLATFORM_QWS}" != "yes" ]; then
3235 cat << EOF
3236 -graphicssystem <sys> Sets an alternate graphics system. Available options are:
3237 raster - Software rasterizer
3238 opengl - Rendering via OpenGL, Experimental!
3241 cat << EOF
3243 -no-mmx ............ Do not compile with use of MMX instructions.
3244 -no-3dnow .......... Do not compile with use of 3DNOW instructions.
3245 -no-sse ............ Do not compile with use of SSE instructions.
3246 -no-sse2 ........... Do not compile with use of SSE2 instructions.
3248 -qtnamespace <name> Wraps all Qt library code in 'namespace <name> {...}'.
3249 -qtlibinfix <infix> Renames all libQt*.so to libQt*<infix>.so.
3251 -D <string> ........ Add an explicit define to the preprocessor.
3252 -I <string> ........ Add an explicit include path.
3253 -L <string> ........ Add an explicit library path.
3255 -help, -h .......... Display this information.
3257 Third Party Libraries:
3259 -qt-zlib ........... Use the zlib bundled with Qt.
3260 + -system-zlib ....... Use zlib from the operating system.
3261 See http://www.gzip.org/zlib
3263 -no-gif ............ Do not compile the plugin for GIF reading support.
3264 * -qt-gif ............ Compile the plugin for GIF reading support.
3265 See also src/plugins/imageformats/gif/qgifhandler.h
3267 -no-libtiff ........ Do not compile the plugin for TIFF support.
3268 -qt-libtiff ........ Use the libtiff bundled with Qt.
3269 + -system-libtiff .... Use libtiff from the operating system.
3270 See http://www.libtiff.org
3272 -no-libpng ......... Do not compile in PNG support.
3273 -qt-libpng ......... Use the libpng bundled with Qt.
3274 + -system-libpng ..... Use libpng from the operating system.
3275 See http://www.libpng.org/pub/png
3277 -no-libmng ......... Do not compile the plugin for MNG support.
3278 -qt-libmng ......... Use the libmng bundled with Qt.
3279 + -system-libmng ..... Use libmng from the operating system.
3280 See http://www.libmng.com
3282 -no-libjpeg ........ Do not compile the plugin for JPEG support.
3283 -qt-libjpeg ........ Use the libjpeg bundled with Qt.
3284 + -system-libjpeg .... Use libjpeg from the operating system.
3285 See http://www.ijg.org
3287 -no-openssl ........ Do not compile support for OpenSSL.
3288 + -openssl ........... Enable run-time OpenSSL support.
3289 -openssl-linked .... Enabled linked OpenSSL support.
3291 -ptmalloc .......... Override the system memory allocator with ptmalloc.
3292 (Experimental.)
3294 Additional options:
3296 -make <part> ....... Add part to the list of parts to be built at make time.
3297 ($QT_DEFAULT_BUILD_PARTS)
3298 -nomake <part> ..... Exclude part from the list of parts to be built.
3300 -R <string> ........ Add an explicit runtime library path to the Qt
3301 libraries.
3302 -l <string> ........ Add an explicit library.
3304 -no-rpath .......... Do not use the library install path as a runtime
3305 library path.
3306 + -rpath ............. Link Qt libraries and executables using the library
3307 install path as a runtime library path. Equivalent
3308 to -R install_libpath
3310 -continue .......... Continue as far as possible if an error occurs.
3312 -verbose, -v ....... Print verbose information about each step of the
3313 configure process.
3315 -silent ............ Reduce the build output so that warnings and errors
3316 can be seen more easily.
3318 * -no-optimized-qmake ... Do not build qmake optimized.
3319 -optimized-qmake ...... Build qmake optimized.
3321 $NSN -no-nis ............ Do not compile NIS support.
3322 $NSY -nis ............... Compile NIS support.
3324 $CUN -no-cups ........... Do not compile CUPS support.
3325 $CUY -cups .............. Compile CUPS support.
3326 Requires cups/cups.h and libcups.so.2.
3328 $CIN -no-iconv .......... Do not compile support for iconv(3).
3329 $CIY -iconv ............. Compile support for iconv(3).
3331 $PHN -no-pch ............ Do not use precompiled header support.
3332 $PHY -pch ............... Use precompiled header support.
3334 $DBN -no-dbus ........... Do not compile the QtDBus module.
3335 $DBY -dbus .............. Compile the QtDBus module and dynamically load libdbus-1.
3336 -dbus-linked ....... Compile the QtDBus module and link to libdbus-1.
3338 -reduce-relocations ..... Reduce relocations in the libraries through extra
3339 linker optimizations (Qt/X11 and Qt for Embedded Linux only;
3340 experimental; needs GNU ld >= 2.18).
3343 if [ "$CFG_SEPARATE_DEBUG_INFO" = "auto" ]; then
3344 if [ "$QT_CROSS_COMPILE" = "yes" ]; then
3345 SBY=""
3346 SBN="*"
3347 else
3348 SBY="*"
3349 SBN=" "
3351 elif [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
3352 SBY="*"
3353 SBN=" "
3354 else
3355 SBY=" "
3356 SBN="*"
3359 if [ "$PLATFORM_X11" = "yes" -o "$PLATFORM_QWS" = "yes" ]; then
3361 cat << EOF
3363 $SBN -no-separate-debug-info . Do not store debug information in a separate file.
3364 $SBY -separate-debug-info .... Strip debug information into a separate .debug file.
3368 fi # X11/QWS
3370 if [ "$PLATFORM_X11" = "yes" ]; then
3371 if [ "$CFG_SM" = "no" ]; then
3372 SMY=" "
3373 SMN="*"
3374 else
3375 SMY="*"
3376 SMN=" "
3378 if [ "$CFG_XSHAPE" = "no" ]; then
3379 SHY=" "
3380 SHN="*"
3381 else
3382 SHY="*"
3383 SHN=" "
3385 if [ "$CFG_XINERAMA" = "no" ]; then
3386 XAY=" "
3387 XAN="*"
3388 else
3389 XAY="*"
3390 XAN=" "
3392 if [ "$CFG_FONTCONFIG" = "no" ]; then
3393 FCGY=" "
3394 FCGN="*"
3395 else
3396 FCGY="*"
3397 FCGN=" "
3399 if [ "$CFG_XCURSOR" = "no" ]; then
3400 XCY=" "
3401 XCN="*"
3402 else
3403 XCY="*"
3404 XCN=" "
3406 if [ "$CFG_XFIXES" = "no" ]; then
3407 XFY=" "
3408 XFN="*"
3409 else
3410 XFY="*"
3411 XFN=" "
3413 if [ "$CFG_XRANDR" = "no" ]; then
3414 XZY=" "
3415 XZN="*"
3416 else
3417 XZY="*"
3418 XZN=" "
3420 if [ "$CFG_XRENDER" = "no" ]; then
3421 XRY=" "
3422 XRN="*"
3423 else
3424 XRY="*"
3425 XRN=" "
3427 if [ "$CFG_MITSHM" = "no" ]; then
3428 XMY=" "
3429 XMN="*"
3430 else
3431 XMY="*"
3432 XMN=" "
3434 if [ "$CFG_XINPUT" = "no" ]; then
3435 XIY=" "
3436 XIN="*"
3437 else
3438 XIY="*"
3439 XIN=" "
3441 if [ "$CFG_XKB" = "no" ]; then
3442 XKY=" "
3443 XKN="*"
3444 else
3445 XKY="*"
3446 XKN=" "
3448 if [ "$CFG_IM" = "no" ]; then
3449 IMY=" "
3450 IMN="*"
3451 else
3452 IMY="*"
3453 IMN=" "
3455 cat << EOF
3457 Qt/X11 only:
3459 -no-gtkstyle ....... Do not build the GTK theme integration.
3460 + -gtkstyle .......... Build the GTK theme integration.
3462 * -no-nas-sound ...... Do not compile in NAS sound support.
3463 -system-nas-sound .. Use NAS libaudio from the operating system.
3464 See http://radscan.com/nas.html
3466 -no-opengl ......... Do not support OpenGL.
3467 + -opengl <api> ...... Enable OpenGL support.
3468 With no parameter, this will auto-detect the "best"
3469 OpenGL API to use. If desktop OpenGL is avaliable, it
3470 will be used. Use desktop, es1, es1cl or es2 for <api>
3471 to force the use of the Desktop (OpenGL 1.x or 2.x),
3472 OpenGL ES 1.x Common profile, 1.x Common Lite profile
3473 or 2.x APIs instead. On X11, the EGL API will be used
3474 to manage GL contexts in the case of OpenGL ES.
3476 $SMN -no-sm ............. Do not support X Session Management.
3477 $SMY -sm ................ Support X Session Management, links in -lSM -lICE.
3479 $SHN -no-xshape ......... Do not compile XShape support.
3480 $SHY -xshape ............ Compile XShape support.
3481 Requires X11/extensions/shape.h.
3483 $XAN -no-xinerama ....... Do not compile Xinerama (multihead) support.
3484 $XAY -xinerama .......... Compile Xinerama support.
3485 Requires X11/extensions/Xinerama.h and libXinerama.
3486 By default, Xinerama support will be compiled if
3487 available and the shared libraries are dynamically
3488 loaded at runtime.
3490 $XCN -no-xcursor ........ Do not compile Xcursor support.
3491 $XCY -xcursor ........... Compile Xcursor support.
3492 Requires X11/Xcursor/Xcursor.h and libXcursor.
3493 By default, Xcursor support will be compiled if
3494 available and the shared libraries are dynamically
3495 loaded at runtime.
3497 $XFN -no-xfixes ......... Do not compile Xfixes support.
3498 $XFY -xfixes ............ Compile Xfixes support.
3499 Requires X11/extensions/Xfixes.h and libXfixes.
3500 By default, Xfixes support will be compiled if
3501 available and the shared libraries are dynamically
3502 loaded at runtime.
3504 $XZN -no-xrandr ......... Do not compile Xrandr (resize and rotate) support.
3505 $XZY -xrandr ............ Compile Xrandr support.
3506 Requires X11/extensions/Xrandr.h and libXrandr.
3508 $XRN -no-xrender ........ Do not compile Xrender support.
3509 $XRY -xrender ........... Compile Xrender support.
3510 Requires X11/extensions/Xrender.h and libXrender.
3512 $XMN -no-mitshm ......... Do not compile MIT-SHM support.
3513 $XMY -mitshm ............ Compile MIT-SHM support.
3514 Requires sys/ipc.h, sys/shm.h and X11/extensions/XShm.h
3516 $FCGN -no-fontconfig ..... Do not compile FontConfig (anti-aliased font) support.
3517 $FCGY -fontconfig ........ Compile FontConfig support.
3518 Requires fontconfig/fontconfig.h, libfontconfig,
3519 freetype.h and libfreetype.
3521 $XIN -no-xinput.......... Do not compile Xinput support.
3522 $XIY -xinput ............ Compile Xinput support. This also enabled tablet support
3523 which requires IRIX with wacom.h and libXi or
3524 XFree86 with X11/extensions/XInput.h and libXi.
3526 $XKN -no-xkb ............ Do not compile XKB (X KeyBoard extension) support.
3527 $XKY -xkb ............... Compile XKB support.
3532 if [ "$PLATFORM_MAC" = "yes" ]; then
3533 cat << EOF
3535 Qt/Mac only:
3537 -Fstring ........... Add an explicit framework path.
3538 -fw string ......... Add an explicit framework.
3540 -cocoa ............. Build the Cocoa version of Qt. Note that -no-framework
3541 and -static is not supported with -cocoa. Specifying
3542 this option creates Qt binaries that requires Mac OS X
3543 10.5 or higher.
3545 * -framework ......... Build Qt as a series of frameworks and
3546 link tools against those frameworks.
3547 -no-framework ...... Do not build Qt as a series of frameworks.
3549 * -dwarf2 ............ Enable dwarf2 debugging symbols.
3550 -no-dwarf2 ......... Disable dwarf2 debugging symbols.
3552 -universal ......... Equivalent to -arch "ppc x86"
3554 -arch <arch> ....... Build Qt for <arch>
3555 Example values for <arch>: x86 ppc x86_64 ppc64
3556 Multiple -arch arguments can be specified, 64-bit archs
3557 will be built with the Cocoa framework.
3559 -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. This option requires gcc 4.
3560 To use a different SDK with gcc 3.3, set the SDKROOT environment variable.
3565 if [ "$PLATFORM_QWS" = "yes" ]; then
3566 cat << EOF
3568 Qt for Embedded Linux only:
3570 -xplatform target ... The target platform when cross-compiling.
3572 -no-feature-<feature> Do not compile in <feature>.
3573 -feature-<feature> .. Compile in <feature>. The available features
3574 are described in src/corelib/global/qfeatures.txt
3576 -embedded <arch> .... This will enable the embedded build, you must have a
3577 proper license for this switch to work.
3578 Example values for <arch>: arm mips x86 generic
3580 -armfpa ............. Target platform is uses the ARM-FPA floating point format.
3581 -no-armfpa .......... Target platform does not use the ARM-FPA floating point format.
3583 The floating point format is usually autodetected by configure. Use this
3584 to override the detected value.
3586 -little-endian ...... Target platform is little endian (LSB first).
3587 -big-endian ......... Target platform is big endian (MSB first).
3589 -host-little-endian . Host platform is little endian (LSB first).
3590 -host-big-endian .... Host platform is big endian (MSB first).
3592 You only need to specify the endianness when
3593 cross-compiling, otherwise the host
3594 endianness will be used.
3596 -no-freetype ........ Do not compile in Freetype2 support.
3597 -qt-freetype ........ Use the libfreetype bundled with Qt.
3598 * -system-freetype .... Use libfreetype from the operating system.
3599 See http://www.freetype.org/
3601 -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the
3602 default ($CFG_QCONFIG).
3604 -depths <list> ...... Comma-separated list of supported bit-per-pixel
3605 depths, from: 1, 4, 8, 12, 15, 16, 18, 24, 32 and 'all'.
3607 -qt-decoration-<style> ....Enable a decoration <style> in the QtGui library,
3608 by default all available decorations are on.
3609 Possible values for <style>: [ $CFG_DECORATION_AVAILABLE ]
3610 -plugin-decoration-<style> Enable decoration <style> as a plugin to be
3611 linked to at run time.
3612 Possible values for <style>: [ $CFG_DECORATION_PLUGIN_AVAILABLE ]
3613 -no-decoration-<style> ....Disable decoration <style> entirely.
3614 Possible values for <style>: [ $CFG_DECORATION_AVAILABLE ]
3616 -no-opengl .......... Do not support OpenGL.
3617 -opengl <api> ....... Enable OpenGL ES support
3618 With no parameter, this will attempt to auto-detect OpenGL ES 1.x
3619 or 2.x. Use es1, es1cl or es2 for <api> to override auto-detection.
3621 NOTE: A QGLScreen driver for the hardware is required to support
3622 OpenGL ES on Qt for Embedded Linux.
3624 -qt-gfx-<driver> ... Enable a graphics <driver> in the QtGui library.
3625 Possible values for <driver>: [ $CFG_GFX_AVAILABLE ]
3626 -plugin-gfx-<driver> Enable graphics <driver> as a plugin to be
3627 linked to at run time.
3628 Possible values for <driver>: [ $CFG_GFX_PLUGIN_AVAILABLE ]
3629 -no-gfx-<driver> ... Disable graphics <driver> entirely.
3630 Possible values for <driver>: [ $CFG_GFX_AVAILABLE ]
3632 -qt-kbd-<driver> ... Enable a keyboard <driver> in the QtGui library.
3633 Possible values for <driver>: [ $CFG_KBD_AVAILABLE ]
3635 -plugin-kbd-<driver> Enable keyboard <driver> as a plugin to be linked to
3636 at runtime.
3637 Possible values for <driver>: [ $CFG_KBD_PLUGIN_AVAILABLE ]
3639 -no-kbd-<driver> ... Disable keyboard <driver> entirely.
3640 Possible values for <driver>: [ $CFG_KBD_AVAILABLE ]
3642 -qt-mouse-<driver> ... Enable a mouse <driver> in the QtGui library.
3643 Possible values for <driver>: [ $CFG_MOUSE_AVAILABLE ]
3644 -plugin-mouse-<driver> Enable mouse <driver> as a plugin to be linked to
3645 at runtime.
3646 Possible values for <driver>: [ $CFG_MOUSE_PLUGIN_AVAILABLE ]
3647 -no-mouse-<driver> ... Disable mouse <driver> entirely.
3648 Possible values for <driver>: [ $CFG_MOUSE_AVAILABLE ]
3650 -iwmmxt ............ Compile using the iWMMXt instruction set
3651 (available on some XScale CPUs).
3657 if [ "$PLATFORM_QWS" = "yes" -o "$PLATFORM_X11" = "yes" ]; then
3658 if [ "$CFG_GLIB" = "no" ]; then
3659 GBY=" "
3660 GBN="+"
3661 else
3662 GBY="+"
3663 GBN=" "
3665 cat << EOF
3666 $GBN -no-glib ........... Do not compile Glib support.
3667 $GBY -glib .............. Compile Glib support.
3672 [ "x$ERROR" = "xyes" ] && exit 1
3673 exit 0
3674 fi # Help
3677 # -----------------------------------------------------------------------------
3678 # LICENSING, INTERACTIVE PART
3679 # -----------------------------------------------------------------------------
3681 if [ "$PLATFORM_QWS" = "yes" ]; then
3682 Platform="Qt for Embedded Linux"
3683 elif [ "$PLATFORM_MAC" = "yes" ]; then
3684 Platform="Qt/Mac"
3685 else
3686 PLATFORM_X11=yes
3687 Platform="Qt/X11"
3690 echo
3691 echo "This is the $Platform ${EditionString} Edition."
3692 echo
3694 if [ "$Edition" = "NokiaInternalBuild" ]; then
3695 echo "Detected -nokia-developer option"
3696 echo "Nokia employees and agents are allowed to use this software under"
3697 echo "the authority of Nokia Corporation and/or its subsidiary(-ies)"
3698 elif [ "$Edition" = "OpenSource" ]; then
3699 while true; do
3700 echo "You are licensed to use this software under the terms of"
3701 echo "the GNU General Public License (GPL) versions 3."
3702 echo "You are also licensed to use this software under the terms of"
3703 echo "the Lesser GNU General Public License (LGPL) versions 2.1."
3704 echo
3705 affix="either"
3706 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3707 echo "You have already accepted the terms of the $LicenseType license."
3708 acceptance=yes
3709 else
3710 echo "Type '3' to view the GNU General Public License version 3."
3711 echo "Type 'L' to view the Lesser GNU General Public License version 2.1."
3712 echo "Type 'yes' to accept this license offer."
3713 echo "Type 'no' to decline this license offer."
3714 echo
3715 if echo '\c' | grep '\c' >/dev/null; then
3716 echo -n "Do you accept the terms of $affix license? "
3717 else
3718 echo "Do you accept the terms of $affix license? \c"
3720 read acceptance
3722 echo
3723 if [ "$acceptance" = "yes" ]; then
3724 break
3725 elif [ "$acceptance" = "no" ]; then
3726 echo "You are not licensed to use this software."
3727 echo
3728 exit 1
3729 elif [ "$acceptance" = "3" ]; then
3730 more "$relpath/LICENSE.GPL3"
3731 elif [ "$acceptance" = "L" ]; then
3732 more "$relpath/LICENSE.LGPL"
3734 done
3735 elif [ "$Edition" = "Preview" ]; then
3736 TheLicense=`head -n 1 "$relpath/LICENSE.PREVIEW.COMMERCIAL"`
3737 while true; do
3739 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3740 echo "You have already accepted the terms of the $LicenseType license."
3741 acceptance=yes
3742 else
3743 echo "You are licensed to use this software under the terms of"
3744 echo "the $TheLicense"
3745 echo
3746 echo "Type '?' to read the Preview License."
3747 echo "Type 'yes' to accept this license offer."
3748 echo "Type 'no' to decline this license offer."
3749 echo
3750 if echo '\c' | grep '\c' >/dev/null; then
3751 echo -n "Do you accept the terms of the license? "
3752 else
3753 echo "Do you accept the terms of the license? \c"
3755 read acceptance
3757 echo
3758 if [ "$acceptance" = "yes" ]; then
3759 break
3760 elif [ "$acceptance" = "no" ] ;then
3761 echo "You are not licensed to use this software."
3762 echo
3763 exit 0
3764 elif [ "$acceptance" = "?" ]; then
3765 more "$relpath/LICENSE.PREVIEW.COMMERCIAL"
3767 done
3768 elif [ "$Edition" != "OpenSource" ]; then
3769 if [ -n "$ExpiryDate" ]; then
3770 ExpiryDate=`echo $ExpiryDate | sed -e "s,-,,g" | tr -d "\n\r"`
3771 [ -z "$ExpiryDate" ] && ExpiryDate="0"
3772 Today=`date +%Y%m%d`
3773 if [ "$Today" -gt "$ExpiryDate" ]; then
3774 case "$LicenseType" in
3775 Commercial|Academic|Educational)
3776 if [ "$QT_PACKAGEDATE" -gt "$ExpiryDate" ]; then
3777 echo
3778 echo "NOTICE NOTICE NOTICE NOTICE"
3779 echo
3780 echo " Your support and upgrade period has expired."
3781 echo
3782 echo " You are no longer licensed to use this version of Qt."
3783 echo " Please contact sales@trolltech.com to renew your support"
3784 echo " and upgrades for this license."
3785 echo
3786 echo "NOTICE NOTICE NOTICE NOTICE"
3787 echo
3788 exit 1
3789 else
3790 echo
3791 echo "WARNING WARNING WARNING WARNING"
3792 echo
3793 echo " Your support and upgrade period has expired."
3794 echo
3795 echo " You may continue to use your last licensed release"
3796 echo " of Qt under the terms of your existing license"
3797 echo " agreement. But you are not entitled to technical"
3798 echo " support, nor are you entitled to use any more recent"
3799 echo " Qt releases."
3800 echo
3801 echo " Please contact sales@trolltech.com to renew your"
3802 echo " support and upgrades for this license."
3803 echo
3804 echo "WARNING WARNING WARNING WARNING"
3805 echo
3806 sleep 3
3809 Evaluation|*)
3810 echo
3811 echo "NOTICE NOTICE NOTICE NOTICE"
3812 echo
3813 echo " Your Evaluation license has expired."
3814 echo
3815 echo " You are no longer licensed to use this software. Please"
3816 echo " contact sales@trolltech.com to purchase license, or install"
3817 echo " the Qt Open Source Edition if you intend to develop free"
3818 echo " software."
3819 echo
3820 echo "NOTICE NOTICE NOTICE NOTICE"
3821 echo
3822 exit 1
3824 esac
3827 TheLicense=`head -n 1 "$outpath/LICENSE"`
3828 while true; do
3829 if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then
3830 echo "You have already accepted the terms of the $TheLicense."
3831 acceptance=yes
3832 else
3833 echo "You are licensed to use this software under the terms of"
3834 echo "the $TheLicense."
3835 echo
3836 echo "Type '?' to view the $TheLicense."
3837 echo "Type 'yes' to accept this license offer."
3838 echo "Type 'no' to decline this license offer."
3839 echo
3840 if echo '\c' | grep '\c' >/dev/null; then
3841 echo -n "Do you accept the terms of the $TheLicense? "
3842 else
3843 echo "Do you accept the terms of the $TheLicense? \c"
3845 read acceptance
3847 echo
3848 if [ "$acceptance" = "yes" ]; then
3849 break
3850 elif [ "$acceptance" = "no" ]; then
3851 echo "You are not licensed to use this software."
3852 echo
3853 exit 1
3854 else [ "$acceptance" = "?" ]
3855 more "$outpath/LICENSE"
3857 done
3860 # this should be moved somewhere else
3861 case "$PLATFORM" in
3862 aix-*)
3863 AIX_VERSION=`uname -v`
3864 if [ "$AIX_VERSION" -lt "5" ]; then
3865 QMakeVar add QMAKE_LIBS_X11 -lbind
3870 esac
3872 #-------------------------------------------------------------------------------
3873 # generate qconfig.cpp
3874 #-------------------------------------------------------------------------------
3875 [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global"
3877 LICENSE_USER_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_lcnsuser=$Licensee"`
3878 LICENSE_PRODUCTS_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_lcnsprod=$Edition"`
3879 PREFIX_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_prfxpath=$QT_INSTALL_PREFIX"`
3880 DOCUMENTATION_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_docspath=$QT_INSTALL_DOCS"`
3881 HEADERS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_hdrspath=$QT_INSTALL_HEADERS"`
3882 LIBRARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_libspath=$QT_INSTALL_LIBS"`
3883 BINARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_binspath=$QT_INSTALL_BINS"`
3884 PLUGINS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_plugpath=$QT_INSTALL_PLUGINS"`
3885 DATA_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_datapath=$QT_INSTALL_DATA"`
3886 TRANSLATIONS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_trnspath=$QT_INSTALL_TRANSLATIONS"`
3887 SETTINGS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_stngpath=$QT_INSTALL_SETTINGS"`
3888 EXAMPLES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_xmplpath=$QT_INSTALL_EXAMPLES"`
3889 DEMOS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_demopath=$QT_INSTALL_DEMOS"`
3891 cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3892 /* License Info */
3893 static const char qt_configure_licensee_str [256 + 12] = "$LICENSE_USER_STR";
3894 static const char qt_configure_licensed_products_str [256 + 12] = "$LICENSE_PRODUCTS_STR";
3897 if [ ! -z "$QT_HOST_PREFIX" ]; then
3898 HOSTPREFIX_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_prfxpath=$QT_HOST_PREFIX"`
3899 HOSTDOCUMENTATION_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_docspath=$QT_HOST_PREFIX/doc"`
3900 HOSTHEADERS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_hdrspath=$QT_HOST_PREFIX/include"`
3901 HOSTLIBRARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_libspath=$QT_HOST_PREFIX/lib"`
3902 HOSTBINARIES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_binspath=$QT_HOST_PREFIX/bin"`
3903 HOSTPLUGINS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_plugpath=$QT_HOST_PREFIX/plugins"`
3904 HOSTDATA_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_datapath=$QT_HOST_PREFIX"`
3905 HOSTTRANSLATIONS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_trnspath=$QT_HOST_PREFIX/translations"`
3906 HOSTSETTINGS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_stngpath=$QT_INSTALL_SETTINGS"`
3907 HOSTEXAMPLES_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_xmplpath=$QT_INSTALL_EXAMPLES"`
3908 HOSTDEMOS_PATH_STR=`"$relpath/config.tests/unix/padstring" 268 "qt_demopath=$QT_INSTALL_DEMOS"`
3910 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3912 #if defined(QT_BOOTSTRAPPED) || defined(QT_BUILD_QMAKE)
3913 /* Installation Info */
3914 static const char qt_configure_prefix_path_str [256 + 12] = "$HOSTPREFIX_PATH_STR";
3915 static const char qt_configure_documentation_path_str[256 + 12] = "$HOSTDOCUMENTATION_PATH_STR";
3916 static const char qt_configure_headers_path_str [256 + 12] = "$HOSTHEADERS_PATH_STR";
3917 static const char qt_configure_libraries_path_str [256 + 12] = "$HOSTLIBRARIES_PATH_STR";
3918 static const char qt_configure_binaries_path_str [256 + 12] = "$HOSTBINARIES_PATH_STR";
3919 static const char qt_configure_plugins_path_str [256 + 12] = "$HOSTPLUGINS_PATH_STR";
3920 static const char qt_configure_data_path_str [256 + 12] = "$HOSTDATA_PATH_STR";
3921 static const char qt_configure_translations_path_str [256 + 12] = "$HOSTTRANSLATIONS_PATH_STR";
3922 static const char qt_configure_settings_path_str [256 + 12] = "$HOSTSETTINGS_PATH_STR";
3923 static const char qt_configure_examples_path_str [256 + 12] = "$HOSTEXAMPLES_PATH_STR";
3924 static const char qt_configure_demos_path_str [256 + 12] = "$HOSTDEMOS_PATH_STR";
3925 #else // QT_BOOTSTRAPPED
3929 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3930 /* Installation Info */
3931 static const char qt_configure_prefix_path_str [256 + 12] = "$PREFIX_PATH_STR";
3932 static const char qt_configure_documentation_path_str[256 + 12] = "$DOCUMENTATION_PATH_STR";
3933 static const char qt_configure_headers_path_str [256 + 12] = "$HEADERS_PATH_STR";
3934 static const char qt_configure_libraries_path_str [256 + 12] = "$LIBRARIES_PATH_STR";
3935 static const char qt_configure_binaries_path_str [256 + 12] = "$BINARIES_PATH_STR";
3936 static const char qt_configure_plugins_path_str [256 + 12] = "$PLUGINS_PATH_STR";
3937 static const char qt_configure_data_path_str [256 + 12] = "$DATA_PATH_STR";
3938 static const char qt_configure_translations_path_str [256 + 12] = "$TRANSLATIONS_PATH_STR";
3939 static const char qt_configure_settings_path_str [256 + 12] = "$SETTINGS_PATH_STR";
3940 static const char qt_configure_examples_path_str [256 + 12] = "$EXAMPLES_PATH_STR";
3941 static const char qt_configure_demos_path_str [256 + 12] = "$DEMOS_PATH_STR";
3944 if [ ! -z "$QT_HOST_PREFIX" ]; then
3945 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3946 #endif // QT_BOOTSTRAPPED
3951 cat >> "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF
3952 /* strlen( "qt_lcnsxxxx" ) == 12 */
3953 #define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12;
3954 #define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12;
3955 #define QT_CONFIGURE_PREFIX_PATH qt_configure_prefix_path_str + 12;
3956 #define QT_CONFIGURE_DOCUMENTATION_PATH qt_configure_documentation_path_str + 12;
3957 #define QT_CONFIGURE_HEADERS_PATH qt_configure_headers_path_str + 12;
3958 #define QT_CONFIGURE_LIBRARIES_PATH qt_configure_libraries_path_str + 12;
3959 #define QT_CONFIGURE_BINARIES_PATH qt_configure_binaries_path_str + 12;
3960 #define QT_CONFIGURE_PLUGINS_PATH qt_configure_plugins_path_str + 12;
3961 #define QT_CONFIGURE_DATA_PATH qt_configure_data_path_str + 12;
3962 #define QT_CONFIGURE_TRANSLATIONS_PATH qt_configure_translations_path_str + 12;
3963 #define QT_CONFIGURE_SETTINGS_PATH qt_configure_settings_path_str + 12;
3964 #define QT_CONFIGURE_EXAMPLES_PATH qt_configure_examples_path_str + 12;
3965 #define QT_CONFIGURE_DEMOS_PATH qt_configure_demos_path_str + 12;
3968 # avoid unecessary rebuilds by copying only if qconfig.cpp has changed
3969 if cmp -s "$outpath/src/corelib/global/qconfig.cpp" "$outpath/src/corelib/global/qconfig.cpp.new"; then
3970 rm -f "$outpath/src/corelib/global/qconfig.cpp.new"
3971 else
3972 [ -f "$outpath/src/corelib/global/qconfig.cpp" ] && chmod +w "$outpath/src/corelib/global/qconfig.cpp"
3973 mv "$outpath/src/corelib/global/qconfig.cpp.new" "$outpath/src/corelib/global/qconfig.cpp"
3974 chmod -w "$outpath/src/corelib/global/qconfig.cpp"
3977 # -----------------------------------------------------------------------------
3978 # build qmake
3979 # -----------------------------------------------------------------------------
3981 # symlink includes
3982 if [ -n "$PERL" ] && [ -x "$relpath/bin/syncqt" ]; then
3983 SYNCQT_OPTS=
3984 [ "$CFG_DEV" = "yes" ] && SYNCQT_OPTS="$SYNCQT_OPTS -check-includes"
3985 if [ "$OPT_SHADOW" = "yes" ]; then
3986 "$outpath/bin/syncqt" $SYNCQT_OPTS
3987 elif [ "$CFG_DEV" = "yes" ] || [ ! -d $relpath/include ]; then
3988 QTDIR="$relpath" perl "$outpath/bin/syncqt" $SYNCQT_OPTS
3992 # $1: variable name
3993 # $2: optional transformation
3994 # relies on $QMAKESPEC, $COMPILER_CONF and $mkfile being set correctly, as the latter
3995 # is where the resulting variable is written to
3996 setBootstrapVariable()
3998 variableRegExp="^$1[^_A-Z0-9]"
3999 getQMakeConf | grep "$variableRegExp" | ( [ -n "$2" ] && sed "$2" ; [ -z "$2" ] && cat ) | $AWK '
4001 varLength = index($0, "=") - 1
4002 valStart = varLength + 2
4003 if (substr($0, varLength, 1) == "+") {
4004 varLength = varLength - 1
4005 valStart = valStart + 1
4007 var = substr($0, 0, varLength)
4008 gsub("[ \t]+", "", var)
4009 val = substr($0, valStart)
4010 printf "%s_%s = %s\n", var, NR, val
4012 END {
4013 if (length(var) > 0) {
4014 printf "%s =", var
4015 for (i = 1; i <= NR; ++i)
4016 printf " $(%s_%s)", var, i
4017 printf "\n"
4019 }' >> "$mkfile"
4022 # build qmake
4023 if true; then ###[ '!' -f "$outpath/bin/qmake" ];
4024 echo "Creating qmake. Please wait..."
4026 OLD_QCONFIG_H=
4027 QCONFIG_H="$outpath/src/corelib/global/qconfig.h"
4028 QMAKE_QCONFIG_H="${QCONFIG_H}.qmake"
4029 if [ -f "$QCONFIG_H" ]; then
4030 OLD_QCONFIG_H=$QCONFIG_H
4031 mv -f "$OLD_QCONFIG_H" "${OLD_QCONFIG_H}.old"
4034 # create temporary qconfig.h for compiling qmake, if it doesn't exist
4035 # when building qmake, we use #defines for the install paths,
4036 # however they are real functions in the library
4037 if [ '!' -f "$QMAKE_QCONFIG_H" ]; then
4038 mkdir -p "$outpath/src/corelib/global"
4039 [ -f "$QCONFIG_H" ] && chmod +w "$QCONFIG_H"
4040 echo "/* All features enabled while building qmake */" >"$QMAKE_QCONFIG_H"
4043 mv -f "$QMAKE_QCONFIG_H" "$QCONFIG_H"
4044 for conf in "$outpath/include/QtCore/qconfig.h" "$outpath/include/Qt/qconfig.h"; do
4045 if [ '!' -f "$conf" ]; then
4046 ln -s "$QCONFIG_H" "$conf"
4048 done
4050 #mkspecs/default is used as a (gasp!) default mkspec so QMAKESPEC needn't be set once configured
4051 rm -f mkspecs/default
4052 ln -s `echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` mkspecs/default
4053 # fix makefiles
4054 for mkfile in GNUmakefile Makefile; do
4055 EXTRA_LFLAGS=
4056 EXTRA_CFLAGS=
4057 in_mkfile="${mkfile}.in"
4058 if [ "$mkfile" = "Makefile" ]; then
4059 # if which qmake >/dev/null 2>&1 && [ -f qmake/qmake.pro ]; then
4060 # (cd qmake && qmake) >/dev/null 2>&1 && continue
4061 # fi
4062 in_mkfile="${mkfile}.unix"
4064 in_mkfile="$relpath/qmake/$in_mkfile"
4065 mkfile="$outpath/qmake/$mkfile"
4066 if [ -f "$mkfile" ]; then
4067 [ "$CFG_DEV" = "yes" ] && "$WHICH" chflags >/dev/null 2>&1 && chflags nouchg "$mkfile"
4068 rm -f "$mkfile"
4070 [ -f "$in_mkfile" ] || continue
4072 echo "########################################################################" >$mkfile
4073 echo "## This file was autogenerated by configure, all changes will be lost ##" >>$mkfile
4074 echo "########################################################################" >>$mkfile
4075 EXTRA_OBJS=
4076 EXTRA_SRCS=
4077 EXTRA_CFLAGS="\$(QMAKE_CFLAGS)"
4078 EXTRA_CXXFLAGS="\$(QMAKE_CXXFLAGS)"
4079 EXTRA_LFLAGS="\$(QMAKE_LFLAGS)"
4081 if [ "$PLATFORM" = "irix-cc" ] || [ "$PLATFORM" = "irix-cc-64" ]; then
4082 EXTRA_LFLAGS="$EXTRA_LFLAGS -lm"
4085 [ -n "$CC" ] && echo "CC = $CC" >>$mkfile
4086 [ -n "$CXX" ] && echo "CXX = $CXX" >>$mkfile
4087 if [ "$CFG_SILENT" = "yes" ]; then
4088 [ -z "$CC" ] && setBootstrapVariable QMAKE_CC 's,QMAKE_CC.*=,CC=\@,'
4089 [ -z "$CXX" ] && setBootstrapVariable QMAKE_CXX 's,QMAKE_CXX.*=,CXX=\@,'
4090 else
4091 [ -z "$CC" ] && setBootstrapVariable QMAKE_CC 's,QMAKE_CC,CC,'
4092 [ -z "$CXX" ] && setBootstrapVariable QMAKE_CXX 's,QMAKE_CXX,CXX,'
4094 setBootstrapVariable QMAKE_CFLAGS
4095 setBootstrapVariable QMAKE_CXXFLAGS 's,\$\$QMAKE_CFLAGS,\$(QMAKE_CFLAGS),'
4096 setBootstrapVariable QMAKE_LFLAGS
4098 if [ $QT_EDITION = "QT_EDITION_OPENSOURCE" ]; then
4099 EXTRA_CFLAGS="$EXTRA_CFLAGS -DQMAKE_OPENSOURCE_EDITION"
4100 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS -DQMAKE_OPENSOURCE_EDITION"
4102 if [ "$CFG_RELEASE_QMAKE" = "yes" ]; then
4103 setBootstrapVariable QMAKE_CFLAGS_RELEASE
4104 setBootstrapVariable QMAKE_CXXFLAGS_RELEASE 's,\$\$QMAKE_CFLAGS_RELEASE,\$(QMAKE_CFLAGS_RELEASE),'
4105 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_RELEASE)"
4106 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_RELEASE)"
4107 elif [ "$CFG_DEBUG" = "yes" ]; then
4108 setBootstrapVariable QMAKE_CFLAGS_DEBUG
4109 setBootstrapVariable QMAKE_CXXFLAGS_DEBUG 's,\$\$QMAKE_CFLAGS_DEBUG,\$(QMAKE_CFLAGS_DEBUG),'
4110 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(QMAKE_CFLAGS_DEBUG)"
4111 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(QMAKE_CXXFLAGS_DEBUG)"
4114 if [ '!' -z "$RPATH_FLAGS" ] && [ '!' -z "`getQMakeConf \"$QMAKESPEC\" | grep QMAKE_RPATH | awk '{print $3;}'`" ]; then
4115 setBootstrapVariable QMAKE_RPATH 's,\$\$LITERAL_WHITESPACE, ,'
4116 for rpath in $RPATH_FLAGS; do
4117 EXTRA_LFLAGS="\$(QMAKE_RPATH)\"$rpath\" $EXTRA_LFLAGS"
4118 done
4120 if [ "$PLATFORM_MAC" = "yes" ]; then
4121 if [ "$PLATFORM" = "macx-icc" ]; then
4122 echo "export MACOSX_DEPLOYMENT_TARGET = 10.4" >>"$mkfile"
4123 else
4124 echo "export MACOSX_DEPLOYMENT_TARGET = 10.3" >>"$mkfile"
4126 echo "CARBON_LFLAGS =-framework ApplicationServices" >>"$mkfile"
4127 echo "CARBON_CFLAGS =-fconstant-cfstrings" >>"$mkfile"
4128 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(CARBON_LFLAGS)"
4129 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(CARBON_CFLAGS)"
4130 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(CARBON_CFLAGS)"
4131 EXTRA_OBJS="qsettings_mac.o qcore_mac.o"
4132 EXTRA_SRCS="\"$relpath/src/corelib/io/qsettings_mac.cpp\" \"$relpath/src/corelib/kernel/qcore_mac.cpp\""
4133 if echo "$CFG_MAC_ARCHS" | grep x86 > /dev/null 2>&1; then # matches both x86 and x86_64
4134 X86_CFLAGS="-arch i386"
4135 X86_LFLAGS="-arch i386"
4136 EXTRA_CFLAGS="$X86_CFLAGS $EXTRA_CFLAGS"
4137 EXTRA_CXXFLAGS="$X86_CFLAGS $EXTRA_CXXFLAGS"
4138 EXTRA_LFLAGS="$EXTRA_LFLAGS $X86_LFLAGS"
4140 if echo "$CFG_MAC_ARCHS" | grep ppc > /dev/null 2>&1; then # matches both ppc and ppc64
4141 PPC_CFLAGS="-arch ppc"
4142 PPC_LFLAGS="-arch ppc"
4143 EXTRA_CFLAGS="$PPC_CFLAGS $EXTRA_CFLAGS"
4144 EXTRA_CXXFLAGS="$PPC_CFLAGS $EXTRA_CXXFLAGS"
4145 EXTRA_LFLAGS="$EXTRA_LFLAGS $PPC_LFLAGS"
4147 if [ '!' -z "$CFG_SDK" ]; then
4148 echo "SDK_LFLAGS =-Wl,-syslibroot,$CFG_SDK" >>"$mkfile"
4149 echo "SDK_CFLAGS =-isysroot $CFG_SDK" >>"$mkfile"
4150 EXTRA_CFLAGS="$EXTRA_CFLAGS \$(SDK_CFLAGS)"
4151 EXTRA_CXXFLAGS="$EXTRA_CXXFLAGS \$(SDK_CFLAGS)"
4152 EXTRA_LFLAGS="$EXTRA_LFLAGS \$(SDK_LFLAGS)"
4155 [ "$CFG_EMBEDDED" != "no" ] && EXTRA_CFLAGS="$EXTRA_CFLAGS -DQWS"
4156 if [ '!' -z "$D_FLAGS" ]; then
4157 for DEF in $D_FLAGS; do
4158 EXTRA_CFLAGS="$EXTRA_CFLAGS \"-D${DEF}\""
4159 done
4161 QMAKE_BIN_DIR="$QT_INSTALL_BINS"
4162 [ -z "$QMAKE_BIN_DIR" ] && QMAKE_BIN_DIR="${QT_INSTALL_PREFIX}/bin"
4163 QMAKE_DATA_DIR="$QT_INSTALL_DATA"
4164 [ -z "$QMAKE_DATA_DIR" ] && QMAKE_DATA_DIR="${QT_INSTALL_PREFIX}"
4165 echo >>"$mkfile"
4166 adjrelpath=`echo "$relpath" | sed 's/ /\\\\\\\\ /g'`
4167 adjoutpath=`echo "$outpath" | sed 's/ /\\\\\\\\ /g'`
4168 sed -e "s,@SOURCE_PATH@,$adjrelpath,g" -e "s,@BUILD_PATH@,$adjoutpath,g" \
4169 -e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
4170 -e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
4171 -e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
4172 -e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
4173 -e "s,@QMAKE_QTOBJS@,$EXTRA_OBJS,g" -e "s,@QMAKE_QTSRCS@,$EXTRA_SRCS,g" \
4174 -e "s,@QMAKESPEC@,$QMAKESPEC,g" "$in_mkfile" >>"$mkfile"
4176 if "$WHICH" makedepend >/dev/null 2>&1 && grep 'depend:' "$mkfile" >/dev/null 2>&1; then
4177 (cd "$outpath/qmake" && "$MAKE" -f "$mkfile" depend) >/dev/null 2>&1
4178 sed "s,^.*/\([^/]*.o\):,\1:,g" "$mkfile" >"${mkfile}.tmp"
4179 mv "${mkfile}.tmp" "${mkfile}"
4181 done
4183 QMAKE_BUILD_ERROR=no
4184 (cd "$outpath/qmake"; "$MAKE") || QMAKE_BUILD_ERROR=yes
4185 [ '!' -z "$QCONFIG_H" ] && mv -f "$QCONFIG_H" "$QMAKE_QCONFIG_H" #move qmake's qconfig.h to qconfig.h.qmake
4186 [ '!' -z "$OLD_QCONFIG_H" ] && mv -f "${OLD_QCONFIG_H}.old" "$OLD_QCONFIG_H" #put back qconfig.h
4187 [ "$QMAKE_BUILD_ERROR" = "yes" ] && exit 2
4188 fi # Build qmake
4190 #-------------------------------------------------------------------------------
4191 # tests that need qmake
4192 #-------------------------------------------------------------------------------
4194 # detect availability of float math.h functions
4195 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/floatmath "floatmath" $L_FLAGS $I_FLAGS $l_FLAGS; then
4196 CFG_USE_FLOATMATH=yes
4197 else
4198 CFG_USE_FLOATMATH=no
4201 # detect mmx support
4202 if [ "${CFG_MMX}" = "auto" ]; then
4203 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mmx "mmx" $L_FLAGS $I_FLAGS $l_FLAGS "-mmmx"; then
4204 CFG_MMX=yes
4205 else
4206 CFG_MMX=no
4210 # detect 3dnow support
4211 if [ "${CFG_3DNOW}" = "auto" ]; then
4212 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/3dnow "3dnow" $L_FLAGS $I_FLAGS $l_FLAGS "-m3dnow"; then
4213 CFG_3DNOW=yes
4214 else
4215 CFG_3DNOW=no
4219 # detect sse support
4220 if [ "${CFG_SSE}" = "auto" ]; then
4221 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sse "sse" $L_FLAGS $I_FLAGS $l_FLAGS "-msse"; then
4222 CFG_SSE=yes
4223 else
4224 CFG_SSE=no
4228 # detect sse2 support
4229 if [ "${CFG_SSE2}" = "auto" ]; then
4230 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sse2 "sse2" $L_FLAGS $I_FLAGS $l_FLAGS "-msse2"; then
4231 CFG_SSE2=yes
4232 else
4233 CFG_SSE2=no
4237 # check iWMMXt support
4238 if [ "$CFG_IWMMXT" = "yes" ]; then
4239 if ! "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/iwmmxt "iwmmxt" $L_FLAGS $I_FLAGS $l_FLAGS "-mcpu=iwmmxt"; then
4240 echo "The iWMMXt functionality test failed!"
4241 echo " Please make sure your compiler supports iWMMXt intrinsics!"
4242 exit 1
4246 # detect zlib
4247 if [ "$CFG_ZLIB" = "no" ]; then
4248 # Note: Qt no longer support builds without zlib
4249 # So we force a "no" to be "auto" here.
4250 # If you REALLY really need no zlib support, you can still disable
4251 # it by doing the following:
4252 # add "no-zlib" to mkspecs/qconfig.pri
4253 # #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h)
4255 # There's no guarantee that Qt will build under those conditions
4257 CFG_ZLIB=auto
4258 ZLIB_FORCED=yes
4260 if [ "$CFG_ZLIB" = "auto" ]; then
4261 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/zlib "zlib" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_ARCHS_COMMANDLINE; then
4262 CFG_ZLIB=system
4263 else
4264 CFG_ZLIB=yes
4268 # detect how jpeg should be built
4269 if [ "$CFG_JPEG" = "auto" ]; then
4270 if [ "$CFG_SHARED" = "yes" ]; then
4271 CFG_JPEG=plugin
4272 else
4273 CFG_JPEG=yes
4276 # detect jpeg
4277 if [ "$CFG_LIBJPEG" = "auto" ]; then
4278 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/libjpeg "libjpeg" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_ARCHS_COMMANDLINE; then
4279 CFG_LIBJPEG=system
4280 else
4281 CFG_LIBJPEG=qt
4285 # detect how gif should be built
4286 if [ "$CFG_GIF" = "auto" ]; then
4287 if [ "$CFG_SHARED" = "yes" ]; then
4288 CFG_GIF=plugin
4289 else
4290 CFG_GIF=yes
4294 # detect how tiff should be built
4295 if [ "$CFG_TIFF" = "auto" ]; then
4296 if [ "$CFG_SHARED" = "yes" ]; then
4297 CFG_TIFF=plugin
4298 else
4299 CFG_TIFF=yes
4303 # detect tiff
4304 if [ "$CFG_LIBTIFF" = "auto" ]; then
4305 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/libtiff "libtiff" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_ARCHS_COMMANDLINE; then
4306 CFG_LIBTIFF=system
4307 else
4308 CFG_LIBTIFF=qt
4312 # detect how mng should be built
4313 if [ "$CFG_MNG" = "auto" ]; then
4314 if [ "$CFG_SHARED" = "yes" ]; then
4315 CFG_MNG=plugin
4316 else
4317 CFG_MNG=yes
4320 # detect mng
4321 if [ "$CFG_LIBMNG" = "auto" ]; then
4322 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/libmng "libmng" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_ARCHS_COMMANDLINE; then
4323 CFG_LIBMNG=system
4324 else
4325 CFG_LIBMNG=qt
4329 # detect png
4330 if [ "$CFG_LIBPNG" = "auto" ]; then
4331 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/libpng "libpng" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_ARCHS_COMMANDLINE; then
4332 CFG_LIBPNG=system
4333 else
4334 CFG_LIBPNG=qt
4338 # detect accessibility
4339 if [ "$CFG_ACCESSIBILITY" = "auto" ]; then
4340 CFG_ACCESSIBILITY=yes
4343 # auto-detect SQL-modules support
4344 for _SQLDR in $CFG_SQL_AVAILABLE; do
4345 case $_SQLDR in
4346 mysql)
4347 if [ "$CFG_SQL_mysql" != "no" ]; then
4348 [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`$WHICH mysql_config`
4349 if [ -x "$CFG_MYSQL_CONFIG" ]; then
4350 QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null`
4351 QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null`
4352 QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null`
4353 QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null`
4354 QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1`
4356 if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then
4357 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4358 echo "This version of MySql is not supported ($QT_MYSQL_VERSION)."
4359 echo " You need MySql 4 or higher."
4360 echo " If you believe this message is in error you may use the continue"
4361 echo " switch (-continue) to $0 to continue."
4362 exit 101
4363 else
4364 CFG_SQL_mysql="no"
4365 QT_LFLAGS_MYSQL=""
4366 QT_LFLAGS_MYSQL_R=""
4367 QT_CFLAGS_MYSQL=""
4369 else
4370 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_ARCHS_COMMANDLINE; then
4371 QMakeVar add CONFIG use_libmysqlclient_r
4372 if [ "$CFG_SQL_mysql" = "auto" ]; then
4373 CFG_SQL_mysql=plugin
4375 QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R"
4376 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_ARCHS_COMMANDLINE; then
4377 if [ "$CFG_SQL_mysql" = "auto" ]; then
4378 CFG_SQL_mysql=plugin
4380 else
4381 if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4382 echo "MySQL support cannot be enabled due to functionality tests!"
4383 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4384 echo " If you believe this message is in error you may use the continue"
4385 echo " switch (-continue) to $0 to continue."
4386 exit 101
4387 else
4388 CFG_SQL_mysql=no
4389 QT_LFLAGS_MYSQL=""
4390 QT_LFLAGS_MYSQL_R=""
4391 QT_CFLAGS_MYSQL=""
4397 psql)
4398 if [ "$CFG_SQL_psql" != "no" ]; then
4399 if "$WHICH" pg_config >/dev/null 2>&1; then
4400 QT_CFLAGS_PSQL=`pg_config --includedir 2>/dev/null`
4401 QT_LFLAGS_PSQL=`pg_config --libdir 2>/dev/null`
4403 [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL"
4404 [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL"
4405 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_ARCHS_COMMANDLINE; then
4406 if [ "$CFG_SQL_psql" = "auto" ]; then
4407 CFG_SQL_psql=plugin
4409 else
4410 if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4411 echo "PostgreSQL support cannot be enabled due to functionality tests!"
4412 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4413 echo " If you believe this message is in error you may use the continue"
4414 echo " switch (-continue) to $0 to continue."
4415 exit 101
4416 else
4417 CFG_SQL_psql=no
4418 QT_CFLAGS_PSQL=""
4419 QT_LFLAGS_PSQL=""
4424 odbc)
4425 if [ "$CFG_SQL_odbc" != "no" ]; then
4426 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/odbc "ODBC" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_ARCHS_COMMANDLINE; then
4427 if [ "$CFG_SQL_odbc" = "auto" ]; then
4428 CFG_SQL_odbc=plugin
4430 else
4431 if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4432 echo "ODBC support cannot be enabled due to functionality tests!"
4433 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4434 echo " If you believe this message is in error you may use the continue"
4435 echo " switch (-continue) to $0 to continue."
4436 exit 101
4437 else
4438 CFG_SQL_odbc=no
4443 oci)
4444 if [ "$CFG_SQL_oci" != "no" ]; then
4445 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/oci "OCI" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_ARCHS_COMMANDLINE; then
4446 if [ "$CFG_SQL_oci" = "auto" ]; then
4447 CFG_SQL_oci=plugin
4449 else
4450 if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4451 echo "Oracle (OCI) support cannot be enabled due to functionality tests!"
4452 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4453 echo " If you believe this message is in error you may use the continue"
4454 echo " switch (-continue) to $0 to continue."
4455 exit 101
4456 else
4457 CFG_SQL_oci=no
4462 tds)
4463 if [ "$CFG_SQL_tds" != "no" ]; then
4464 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/tds "TDS" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_ARCHS_COMMANDLINE; then
4465 if [ "$CFG_SQL_tds" = "auto" ]; then
4466 CFG_SQL_tds=plugin
4468 else
4469 if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4470 echo "TDS support cannot be enabled due to functionality tests!"
4471 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4472 echo " If you believe this message is in error you may use the continue"
4473 echo " switch (-continue) to $0 to continue."
4474 exit 101
4475 else
4476 CFG_SQL_tds=no
4481 db2)
4482 if [ "$CFG_SQL_db2" != "no" ]; then
4483 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/db2 "DB2" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_ARCHS_COMMANDLINE; then
4484 if [ "$CFG_SQL_db2" = "auto" ]; then
4485 CFG_SQL_db2=plugin
4487 else
4488 if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4489 echo "ODBC support cannot be enabled due to functionality tests!"
4490 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4491 echo " If you believe this message is in error you may use the continue"
4492 echo " switch (-continue) to $0 to continue."
4493 exit 101
4494 else
4495 CFG_SQL_db2=no
4500 ibase)
4501 if [ "$CFG_SQL_ibase" != "no" ]; then
4502 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/ibase "InterBase" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_ARCHS_COMMANDLINE; then
4503 if [ "$CFG_SQL_ibase" = "auto" ]; then
4504 CFG_SQL_ibase=plugin
4506 else
4507 if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4508 echo "InterBase support cannot be enabled due to functionality tests!"
4509 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4510 echo " If you believe this message is in error you may use the continue"
4511 echo " switch (-continue) to $0 to continue."
4512 exit 101
4513 else
4514 CFG_SQL_ibase=no
4519 sqlite2)
4520 if [ "$CFG_SQL_sqlite2" != "no" ]; then
4521 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sqlite2 "SQLite2" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_ARCHS_COMMANDLINE; then
4522 if [ "$CFG_SQL_sqlite2" = "auto" ]; then
4523 CFG_SQL_sqlite2=plugin
4525 else
4526 if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4527 echo "SQLite2 support cannot be enabled due to functionality tests!"
4528 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4529 echo " If you believe this message is in error you may use the continue"
4530 echo " switch (-continue) to $0 to continue."
4531 exit 101
4532 else
4533 CFG_SQL_sqlite2=no
4538 sqlite)
4539 if [ "$CFG_SQL_sqlite" != "no" ]; then
4540 SQLITE_AUTODETECT_FAILED="no"
4541 if [ "$CFG_SQLITE" = "system" ]; then
4542 if [ -n "$PKG_CONFIG" ]; then
4543 QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null`
4544 QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null`
4546 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_ARCHS_COMMANDLINE; then
4547 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4548 CFG_SQL_sqlite=plugin
4550 QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite"
4551 else
4552 SQLITE_AUTODETECT_FAILED="yes"
4553 CFG_SQL_sqlite=no
4555 elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then
4556 if [ "$CFG_SQL_sqlite" = "auto" ]; then
4557 CFG_SQL_sqlite=plugin
4559 else
4560 SQLITE_AUTODETECT_FAILED="yes"
4561 CFG_SQL_sqlite=no
4564 if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4565 echo "SQLite support cannot be enabled due to functionality tests!"
4566 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4567 echo " If you believe this message is in error you may use the continue"
4568 echo " switch (-continue) to $0 to continue."
4569 exit 101
4574 if [ "$OPT_VERBOSE" = "yes" ]; then
4575 echo "unknown SQL driver: $_SQLDR"
4578 esac
4579 done
4581 # auto-detect NIS support
4582 if [ "$CFG_NIS" != "no" ]; then
4583 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/nis "NIS" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_ARCHS_COMMANDLINE; then
4584 CFG_NIS=yes
4585 else
4586 if [ "$CFG_NIS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4587 echo "NIS support cannot be enabled due to functionality tests!"
4588 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4589 echo " If you believe this message is in error you may use the continue"
4590 echo " switch (-continue) to $0 to continue."
4591 exit 101
4592 else
4593 CFG_NIS=no
4598 # auto-detect CUPS support
4599 if [ "$CFG_CUPS" != "no" ]; then
4600 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/cups "Cups" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_ARCHS_COMMANDLINE; then
4601 CFG_CUPS=yes
4602 else
4603 if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4604 echo "Cups support cannot be enabled due to functionality tests!"
4605 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4606 echo " If you believe this message is in error you may use the continue"
4607 echo " switch (-continue) to $0 to continue."
4608 exit 101
4609 else
4610 CFG_CUPS=no
4615 # auto-detect iconv(3) support
4616 if [ "$CFG_ICONV" != "no" ]; then
4617 if [ "$PLATFORM_QWS" = "yes" ]; then
4618 CFG_ICONV=no
4619 elif "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" "$OPT_VERBOSE" "$relpath" "$outpath" "config.tests/unix/iconv" "POSIX iconv" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_ARCHS_COMMANDLINE; then
4620 CFG_ICONV=yes
4621 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_ARCHS_COMMANDLINE; then
4622 CFG_ICONV=gnu
4623 else
4624 if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4625 echo "Iconv support cannot be enabled due to functionality tests!"
4626 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4627 echo " If you believe this message is in error you may use the continue"
4628 echo " switch (-continue) to $0 to continue."
4629 exit 101
4630 else
4631 CFG_ICONV=no
4636 # auto-detect libdbus-1 support
4637 if [ "$CFG_DBUS" != "no" ]; then
4638 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then
4639 QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null`
4640 QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null`
4642 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_ARCHS_COMMANDLINE; then
4643 [ "$CFG_DBUS" = "auto" ] && CFG_DBUS=yes
4644 QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS"
4645 QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS"
4646 else
4647 if [ "$CFG_DBUS" = "auto" ]; then
4648 CFG_DBUS=no
4649 elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4650 # CFG_DBUS is "yes" or "linked" here
4652 echo "The QtDBus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found."
4653 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4654 echo " If you believe this message is in error you may use the continue"
4655 echo " switch (-continue) to $0 to continue."
4656 exit 101
4661 # Generate a CRC of the namespace for using in constants for the Carbon port.
4662 # This should mean that you really *can* load two Qt's and have our custom
4663 # Carbon events work.
4664 if [ "$PLATFORM_MAC" = "yes" -a ! -z "$QT_NAMESPACE" ]; then
4665 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`
4668 if [ "$PLATFORM_X11" = "yes" -o "$PLATFORM_QWS" = "yes" ]; then
4669 # auto-detect Glib support
4670 if [ "$CFG_GLIB" != "no" ]; then
4671 if [ -n "$PKG_CONFIG" ]; then
4672 QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null`
4673 QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null`
4675 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
4676 CFG_GLIB=yes
4677 QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB"
4678 QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB"
4679 else
4680 if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4681 echo "Glib support cannot be enabled due to functionality tests!"
4682 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4683 echo " If you believe this message is in error you may use the continue"
4684 echo " switch (-continue) to $0 to continue."
4685 exit 101
4686 else
4687 CFG_GLIB=no
4692 if [ "$CFG_PHONON" != "no" ]; then
4693 if [ "$CFG_PHONON_BACKEND" != "no" ]; then
4694 if [ "$CFG_GLIB" = "yes" -a "$CFG_GSTREAMER" != "no" ]; then
4695 if [ -n "$PKG_CONFIG" ]; then
4696 QT_CFLAGS_GSTREAMER=`$PKG_CONFIG --cflags gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4697 QT_LIBS_GSTREAMER=`$PKG_CONFIG --libs gstreamer-0.10 gstreamer-plugins-base-0.10 2>/dev/null`
4699 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
4700 CFG_GSTREAMER=yes
4701 QMakeVar set QT_CFLAGS_GSTREAMER "$QT_CFLAGS_GSTREAMER"
4702 QMakeVar set QT_LIBS_GSTREAMER "$QT_LIBS_GSTREAMER"
4703 else
4704 if [ "$CFG_GSTREAMER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4705 echo "Gstreamer support cannot be enabled due to functionality tests!"
4706 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4707 echo " If you believe this message is in error you may use the continue"
4708 echo " switch (-continue) to $0 to continue."
4709 exit 101
4710 else
4711 CFG_GSTREAMER=no
4714 elif [ "$CFG_GLIB" = "no" ]; then
4715 CFG_GSTREAMER=no
4718 if [ "$CFG_GSTREAMER" = "yes" ]; then
4719 CFG_PHONON=yes
4720 else
4721 if [ "$CFG_PHONON" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4722 echo "Phonon support cannot be enabled due to functionality tests!"
4723 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4724 echo " If you believe this message is in error you may use the continue"
4725 echo " switch (-continue) to $0 to continue."
4726 exit 101
4727 else
4728 CFG_PHONON=no
4731 else
4732 CFG_PHONON=yes
4735 fi # X11/QWS
4737 # x11
4738 if [ "$PLATFORM_X11" = "yes" ]; then
4739 x11tests="$relpath/config.tests/x11"
4740 X11TESTS_FLAGS=
4742 # work around broken X11 headers when using GCC 2.95 or later
4743 NOTYPE=no
4744 "$x11tests/notype.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" && NOTYPE=yes
4745 if [ $NOTYPE = "yes" ]; then
4746 QMakeVar add QMAKE_CXXFLAGS -fpermissive
4747 X11TESTS_FLAGS="$X11TESTS_FLAGS -fpermissive"
4750 # Check we actually have X11 :-)
4751 if ! "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xlib "XLib" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
4752 echo "Basic XLib functionality test failed!"
4753 echo " You might need to modify the include and library search paths by editing"
4754 echo " QMAKE_INCDIR_X11 and QMAKE_LIBDIR_X11 in ${XQMAKESPEC}."
4755 exit 1
4758 # auto-detect OpenGL support (es1 = OpenGL ES 1.x Common, es1cl = ES 1.x common lite, es2 = OpenGL ES 2.x)
4759 if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
4760 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
4761 CFG_OPENGL=desktop
4762 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
4763 CFG_OPENGL=es2
4764 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
4765 CFG_OPENGL=es1
4766 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
4767 CFG_OPENGL=es1cl
4768 else
4769 if [ "$CFG_OPENGL" = "yes" ]; then
4770 echo "All the OpenGL functionality tests failed!"
4771 echo " You might need to modify the include and library search paths by editing"
4772 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4773 echo " ${XQMAKESPEC}."
4774 exit 1
4776 CFG_OPENGL=no
4778 case "$PLATFORM" in
4779 hpux*)
4780 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4781 if [ "$CFG_OPENGL" = "desktop" ]; then
4782 if ! "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/glxfbconfig "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
4783 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4789 esac
4790 elif [ "$CFG_OPENGL" = "es1cl" ]; then
4791 # OpenGL ES 1.x common lite
4792 if ! "$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
4793 echo "The OpenGL ES 1.x Common Lite Profile functionality test failed!"
4794 echo " You might need to modify the include and library search paths by editing"
4795 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4796 echo " ${XQMAKESPEC}."
4797 exit 1
4799 elif [ "$CFG_OPENGL" = "es1" ]; then
4800 # OpenGL ES 1.x
4801 if ! "$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
4802 echo "The OpenGL ES 1.x functionality test failed!"
4803 echo " You might need to modify the include and library search paths by editing"
4804 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4805 echo " ${XQMAKESPEC}."
4806 exit 1
4808 elif [ "$CFG_OPENGL" = "es2" ]; then
4809 #OpenGL ES 2.x
4810 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
4811 echo "The OpenGL ES 2.0 functionality test failed!"
4812 echo " You might need to modify the include and library search paths by editing"
4813 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4814 echo " ${XQMAKESPEC}."
4815 exit 1
4817 elif [ "$CFG_OPENGL" = "desktop" ]; then
4818 # Desktop OpenGL support
4819 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
4820 echo "The OpenGL functionality test failed!"
4821 echo " You might need to modify the include and library search paths by editing"
4822 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
4823 echo " ${XQMAKESPEC}."
4824 exit 1
4826 case "$PLATFORM" in
4827 hpux*)
4828 # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct.
4829 if ! "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/glxfbconfig "OpenGL" $L_FLAGS $I_FLAGS $l_FLAGS $X11TESTS_FLAGS; then
4830 QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT
4835 esac
4838 # if opengl is disabled and the user specified graphicssystem gl, disable it...
4839 if [ "$CFG_GRAPHICS_SYSTEM" = "opengl" ] && [ "$CFG_OPENGL" = "no" ]; then
4840 echo "OpenGL Graphics System is disabled due to missing OpenGL support..."
4841 CFG_GRAPHICS_SYSTEM=default
4844 # auto-detect Xcursor support
4845 if [ "$CFG_XCURSOR" != "no" ]; then
4846 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
4847 if [ "$CFG_XCURSOR" != "runtime" ]; then
4848 CFG_XCURSOR=yes;
4850 else
4851 if [ "$CFG_XCURSOR" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4852 echo "Xcursor 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_XCURSOR=no
4863 # auto-detect Xfixes support
4864 if [ "$CFG_XFIXES" != "no" ]; then
4865 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/x11/xfixes "Xfixes" $L_FLAGS $I_FLAGS $X11TESTS_FLAGS; then
4866 if [ "$CFG_XFIXES" != "runtime" ]; then
4867 CFG_XFIXES=yes;
4869 else
4870 if [ "$CFG_XFIXES" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4871 echo "Xfixes support cannot be enabled due to functionality tests!"
4872 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4873 echo " If you believe this message is in error you may use the continue"
4874 echo " switch (-continue) to $0 to continue."
4875 exit 101
4876 else
4877 CFG_XFIXES=no
4882 # auto-detect Xrandr support (resize and rotate extension)
4883 if [ "$CFG_XRANDR" != "no" ]; then
4884 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
4885 if [ "$CFG_XRANDR" != "runtime" ]; then
4886 CFG_XRANDR=yes
4888 else
4889 if [ "$CFG_XRANDR" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4890 echo "Xrandr support cannot be enabled due to functionality tests!"
4891 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4892 echo " If you believe this message is in error you may use the continue"
4893 echo " switch (-continue) to $0 to continue."
4894 exit 101
4895 else
4896 CFG_XRANDR=no
4901 # auto-detect Xrender support
4902 if [ "$CFG_XRENDER" != "no" ]; then
4903 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
4904 CFG_XRENDER=yes
4905 else
4906 if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4907 echo "Xrender support cannot be enabled due to functionality tests!"
4908 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4909 echo " If you believe this message is in error you may use the continue"
4910 echo " switch (-continue) to $0 to continue."
4911 exit 101
4912 else
4913 CFG_XRENDER=no
4918 # auto-detect MIT-SHM support
4919 if [ "$CFG_MITSHM" != "no" ]; then
4920 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
4921 CFG_MITSHM=yes
4922 else
4923 if [ "$CFG_MITSHM" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4924 echo "MITSHM support cannot be enabled due to functionality tests!"
4925 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4926 echo " If you believe this message is in error you may use the continue"
4927 echo " switch (-continue) to $0 to continue."
4928 exit 101
4929 else
4930 CFG_MITSHM=no
4935 # auto-detect FontConfig support
4936 if [ "$CFG_FONTCONFIG" != "no" ]; then
4937 if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig 2>/dev/null; then
4938 QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig 2>/dev/null`
4939 QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig 2>/dev/null`
4940 else
4941 QT_CFLAGS_FONTCONFIG=
4942 QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
4944 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
4945 CFG_FONTCONFIG=yes
4946 QMakeVar set QMAKE_CFLAGS_X11 "$QT_CFLAGS_FONTCONFIG \$\$QMAKE_CFLAGS_X11"
4947 QMakeVar set QMAKE_LIBS_X11 "$QT_LIBS_FONTCONFIG \$\$QMAKE_LIBS_X11"
4948 CFG_LIBFREETYPE=system
4949 else
4950 if [ "$CFG_FONTCONFIG" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4951 echo "FontConfig support cannot be enabled due to functionality tests!"
4952 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4953 echo " If you believe this message is in error you may use the continue"
4954 echo " switch (-continue) to $0 to continue."
4955 exit 101
4956 else
4957 CFG_FONTCONFIG=no
4962 # auto-detect Session Management support
4963 if [ "$CFG_SM" = "auto" ]; then
4964 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
4965 CFG_SM=yes
4966 else
4967 if [ "$CFG_SM" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4968 echo "Session Management support cannot be enabled due to functionality tests!"
4969 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4970 echo " If you believe this message is in error you may use the continue"
4971 echo " switch (-continue) to $0 to continue."
4972 exit 101
4973 else
4974 CFG_SM=no
4979 # auto-detect SHAPE support
4980 if [ "$CFG_XSHAPE" != "no" ]; then
4981 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
4982 CFG_XSHAPE=yes
4983 else
4984 if [ "$CFG_XSHAPE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
4985 echo "XShape support cannot be enabled due to functionality tests!"
4986 echo " Turn on verbose messaging (-v) to $0 to see the final report."
4987 echo " If you believe this message is in error you may use the continue"
4988 echo " switch (-continue) to $0 to continue."
4989 exit 101
4990 else
4991 CFG_XSHAPE=no
4996 # auto-detect Xinerama support
4997 if [ "$CFG_XINERAMA" != "no" ]; then
4998 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
4999 if [ "$CFG_XINERAMA" != "runtime" ]; then
5000 CFG_XINERAMA=yes
5002 else
5003 if [ "$CFG_XINERAMA" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5004 echo "Xinerama support cannot be enabled due to functionality tests!"
5005 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5006 echo " If you believe this message is in error you may use the continue"
5007 echo " switch (-continue) to $0 to continue."
5008 exit 101
5009 else
5010 CFG_XINERAMA=no
5015 # auto-detect Xinput support
5016 if [ "$CFG_XINPUT" != "no" ]; then
5017 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
5018 if [ "$CFG_XINPUT" != "runtime" ]; then
5019 CFG_XINPUT=yes
5021 else
5022 if [ "$CFG_XINPUT" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5023 echo "Tablet and Xinput support cannot be enabled due to functionality tests!"
5024 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5025 echo " If you believe this message is in error you may use the continue"
5026 echo " switch (-continue) to $0 to continue."
5027 exit 101
5028 else
5029 CFG_XINPUT=no
5034 # auto-detect XKB support
5035 if [ "$CFG_XKB" != "no" ]; then
5036 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
5037 CFG_XKB=yes
5038 else
5039 if [ "$CFG_XKB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5040 echo "XKB support cannot be enabled due to functionality tests!"
5041 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5042 echo " If you believe this message is in error you may use the continue"
5043 echo " switch (-continue) to $0 to continue."
5044 exit 101
5045 else
5046 CFG_XKB=no
5051 if [ "$CFG_GLIB" = "yes" -a "$CFG_QGTKSTYLE" != "no" ]; then
5052 if [ -n "$PKG_CONFIG" ]; then
5053 QT_CFLAGS_QGTKSTYLE=`$PKG_CONFIG --cflags gtk+-2.0 ">=" 2.10 atk 2>/dev/null`
5054 QT_LIBS_QGTKSTYLE=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null`
5056 if [ -n "$QT_CFLAGS_QGTKSTYLE" ] ; then
5057 CFG_QGTKSTYLE=yes
5058 QMakeVar set QT_CFLAGS_QGTKSTYLE "$QT_CFLAGS_QGTKSTYLE"
5059 QMakeVar set QT_LIBS_QGTKSTYLE "$QT_LIBS_QGTKSTYLE"
5060 else
5061 if [ "$CFG_QGTKSTYLE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5062 echo "Gtk theme support cannot be enabled due to functionality tests!"
5063 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5064 echo " If you believe this message is in error you may use the continue"
5065 echo " switch (-continue) to $0 to continue."
5066 exit 101
5067 else
5068 CFG_QGTKSTYLE=no
5071 elif [ "$CFG_GLIB" = "no" ]; then
5072 CFG_QGTKSTYLE=no
5074 fi # X11
5077 if [ "$PLATFORM_MAC" = "yes" ]; then
5078 if [ "$CFG_PHONON" != "no" ]; then
5079 # Always enable Phonon (unless it was explicitly disabled)
5080 CFG_PHONON=yes
5084 # QWS
5085 if [ "$PLATFORM_QWS" = "yes" ]; then
5087 # auto-detect OpenGL support (es1 = OpenGL ES 1.x Common, es1cl = ES 1.x common lite, es2 = OpenGL ES 2.x)
5088 if [ "$CFG_OPENGL" = "yes" ]; then
5089 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
5090 CFG_OPENGL=es2
5091 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
5092 CFG_OPENGL=es1
5093 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
5094 CFG_OPENGL=es1cl
5095 else
5096 echo "All the OpenGL ES functionality tests failed!"
5097 echo " You might need to modify the include and library search paths by editing"
5098 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
5099 echo " ${XQMAKESPEC}."
5100 exit 1
5102 elif [ "$CFG_OPENGL" = "es1" ]; then
5103 # OpenGL ES 1.x
5104 if ! "$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
5105 echo "The OpenGL ES 1.x functionality test failed!"
5106 echo " You might need to modify the include and library search paths by editing"
5107 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
5108 echo " ${XQMAKESPEC}."
5109 exit 1
5111 elif [ "$CFG_OPENGL" = "es2" ]; then
5112 #OpenGL ES 2.x
5113 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
5114 echo "The OpenGL ES 2.0 functionality test failed!"
5115 echo " You might need to modify the include and library search paths by editing"
5116 echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in"
5117 echo " ${XQMAKESPEC}."
5118 exit 1
5120 elif [ "$CFG_OPENGL" = "desktop" ]; then
5121 # Desktop OpenGL support
5122 echo "Desktop OpenGL support is not avaliable on Qt for Embedded Linux"
5123 exit 1
5126 # screen drivers
5127 for screen in ${CFG_GFX_ON} ${CFG_GFX_PLUGIN}; do
5128 if [ "${screen}" = "ahi" ] && [ "${CFG_CONFIGURE_EXIT_ON_ERROR}" = "yes" ]; then
5129 if ! "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qws/ahi "Ahi" $L_FLAGS $I_FLAGS $l_FLAGS; then
5130 echo "The Ahi screen driver functionality test failed!"
5131 echo " You might need to modify the include and library search paths by editing"
5132 echo " QMAKE_INCDIR and QMAKE_LIBDIR in"
5133 echo " ${XQMAKESPEC}."
5134 exit 1
5138 if [ "${screen}" = "svgalib" ] && [ "${CFG_CONFIGURE_EXIT_ON_ERROR}" = "yes" ]; then
5139 if ! "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qws/svgalib "SVGAlib" $L_FLAGS $I_FLAGS $l_FLAGS; then
5140 echo "The SVGAlib screen driver functionality test failed!"
5141 echo " You might need to modify the include and library search paths by editing"
5142 echo " QMAKE_INCDIR and QMAKE_LIBDIR in"
5143 echo " ${XQMAKESPEC}."
5144 exit 1
5148 if [ "${screen}" = "directfb" ] && [ "${CFG_CONFIGURE_EXIT_ON_ERROR}" = "yes" ]; then
5149 if [ -n "$PKG_CONFIG" ]; then
5150 if $PKG_CONFIG --exists directfb 2>/dev/null; then
5151 QT_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null`
5152 QT_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null`
5153 elif directfb-config --version >/dev/null 2>&1; then
5154 QT_CFLAGS_DIRECTFB=`directfb-config --cflags 2>/dev/null`
5155 QT_LIBS_DIRECTFB=`directfb-config --libs 2>/dev/null`
5159 # QMake variables set here override those in the mkspec. Therefore we only set the variables here if they are not zero.
5160 if [ -n "$QT_CFLAGS_DIRECTFB" ] || [ -n "$QT_LIBS_DIRECTFB" ]; then
5161 QMakeVar set QT_CFLAGS_DIRECTFB "$QT_CFLAGS_DIRECTFB"
5162 QMakeVar set QT_LIBS_DIRECTFB "$QT_LIBS_DIRECTFB"
5164 if [ "$CFG_QT3SUPPORT" = "yes" ]; then
5165 QMakeVar set QT_DEFINES_DIRECTFB "QT3_SUPPORT"
5168 if ! "$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; then
5169 echo "The DirectFB screen driver functionality test failed!"
5170 echo " You might need to modify the include and library search paths by editing"
5171 echo " QT_CFLAGS_DIRECTFB and QT_LIBS_DIRECTFB in"
5172 echo " ${XQMAKESPEC}."
5173 exit 1
5177 done
5179 # mouse drivers
5180 for mouse in ${CFG_MOUSE_ON} ${CFG_MOUSE_PLUGIN}; do
5181 if [ "${mouse}" = "tslib" ] && [ "${CFG_CONFIGURE_EXIT_ON_ERROR}" = "yes" ]; then
5182 if ! "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/tslib "tslib" $L_FLAGS $I_FLAGS $l_FLAGS; then
5183 echo "The tslib functionality test failed!"
5184 echo " You might need to modify the include and library search paths by editing"
5185 echo " QMAKE_INCDIR and QMAKE_LIBDIR in"
5186 echo " ${XQMAKESPEC}."
5187 exit 1
5190 done
5192 CFG_QGTKSTYLE=no
5194 # sound
5195 if ! "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/qws/sound "sound" $L_FLAGS $I_FLAGS $l_FLAGS; then
5196 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SOUND"
5199 fi # QWS
5201 # freetype support
5202 [ "x$CFG_EMBEDDED" != "xno" ] && CFG_LIBFREETYPE="$CFG_QWS_FREETYPE"
5203 [ "x$PLATFORM_MAC" = "xyes" ] && CFG_LIBFREETYPE=no
5204 if [ "$CFG_LIBFREETYPE" = "auto" ]; then
5205 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/freetype "FreeType" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_ARCHS_COMMANDLINE; then
5206 CFG_LIBFREETYPE=system
5207 else
5208 CFG_LIBFREETYPE=yes
5212 if [ "$CFG_ENDIAN" = "auto" ]; then
5213 if [ "$PLATFORM_MAC" = "yes" ]; then
5214 true #leave as auto
5215 else
5216 "$unixtests/endian.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5217 F="$?"
5218 if [ "$F" -eq 0 ]; then
5219 CFG_ENDIAN="Q_LITTLE_ENDIAN"
5220 elif [ "$F" -eq 1 ]; then
5221 CFG_ENDIAN="Q_BIG_ENDIAN"
5222 else
5223 echo
5224 echo "The target system byte order could not be detected!"
5225 echo "Turn on verbose messaging (-v) to see the final report."
5226 echo "You can use the -little-endian or -big-endian switch to"
5227 echo "$0 to continue."
5228 exit 101
5233 if [ "$CFG_HOST_ENDIAN" = "auto" ]; then
5234 if [ "$PLATFORM_MAC" = "yes" ]; then
5235 true #leave as auto
5236 else
5237 "$unixtests/endian.test" "$QMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5238 F="$?"
5239 if [ "$F" -eq 0 ]; then
5240 CFG_HOST_ENDIAN="Q_LITTLE_ENDIAN"
5241 elif [ "$F" -eq 1 ]; then
5242 CFG_HOST_ENDIAN="Q_BIG_ENDIAN"
5243 else
5244 echo
5245 echo "The host system byte order could not be detected!"
5246 echo "Turn on verbose messaging (-v) to see the final report."
5247 echo "You can use the -host-little-endian or -host-big-endian switch to"
5248 echo "$0 to continue."
5249 exit 101
5254 if [ "$CFG_ARMFPA" != "auto" ]; then
5255 if [ "$CFG_ARMFPA" = "yes" ]; then
5256 if [ "$CFG_ENDIAN" = "Q_LITTLE_ENDIAN" ]; then
5257 CFG_DOUBLEFORMAT="Q_DOUBLE_LITTLE_SWAPPED"
5258 else
5259 CFG_DOUBLEFORMAT="Q_DOUBLE_BIG_SWAPPED"
5261 else
5262 CFG_DOUBLEFORMAT="normal"
5267 if [ "$CFG_DOUBLEFORMAT" = "auto" ]; then
5268 if [ "$PLATFORM_QWS" != "yes" ]; then
5269 CFG_DOUBLEFORMAT=normal
5270 else
5271 "$unixtests/doubleformat.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
5272 F="$?"
5273 if [ "$F" -eq 10 ] && [ "$CFG_ENDIAN" = "Q_LITTLE_ENDIAN" ]; then
5274 CFG_DOUBLEFORMAT=normal
5275 elif [ "$F" -eq 11 ] && [ "$CFG_ENDIAN" = "Q_BIG_ENDIAN" ]; then
5276 CFG_DOUBLEFORMAT=normal
5277 elif [ "$F" -eq 10 ]; then
5278 CFG_DOUBLEFORMAT="Q_DOUBLE_LITTLE"
5279 elif [ "$F" -eq 11 ]; then
5280 CFG_DOUBLEFORMAT="Q_DOUBLE_BIG"
5281 elif [ "$F" -eq 12 ]; then
5282 CFG_DOUBLEFORMAT="Q_DOUBLE_LITTLE_SWAPPED"
5283 CFG_ARMFPA="yes"
5284 elif [ "$F" -eq 13 ]; then
5285 CFG_DOUBLEFORMAT="Q_DOUBLE_BIG_SWAPPED"
5286 CFG_ARMFPA="yes"
5287 else
5288 echo
5289 echo "The system floating point format could not be detected."
5290 echo "This may cause data to be generated in a wrong format"
5291 echo "Turn on verbose messaging (-v) to see the final report."
5292 # we do not fail on this since this is a new test, and if it fails,
5293 # the old behavior should be correct in most cases
5294 CFG_DOUBLEFORMAT=normal
5299 HAVE_STL=no
5300 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/stl "STL" $L_FLAGS $I_FLAGS $l_FLAGS; then
5301 HAVE_STL=yes
5304 if [ "$CFG_STL" != "no" ]; then
5305 if [ "$HAVE_STL" = "yes" ]; then
5306 CFG_STL=yes
5307 else
5308 if [ "$CFG_STL" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5309 echo "STL support cannot be enabled due to functionality tests!"
5310 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5311 echo " If you believe this message is in error you may use the continue"
5312 echo " switch (-continue) to $0 to continue."
5313 exit 101
5314 else
5315 CFG_STL=no
5320 # find if the platform supports IPv6
5321 if [ "$CFG_IPV6" != "no" ]; then
5322 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/ipv6 "IPv6" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_ARCHS_COMMANDLINE; then
5323 CFG_IPV6=yes
5324 else
5325 if [ "$CFG_IPV6" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5326 echo "IPv6 support cannot be enabled due to functionality tests!"
5327 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5328 echo " If you believe this message is in error you may use the continue"
5329 echo " switch (-continue) to $0 to continue."
5330 exit 101
5331 else
5332 CFG_IPV6=no
5337 # detect POSIX clock_gettime()
5338 if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then
5339 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
5340 CFG_CLOCK_GETTIME=yes
5341 else
5342 CFG_CLOCK_GETTIME=no
5346 # detect POSIX monotonic clocks
5347 if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then
5348 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
5349 CFG_CLOCK_MONOTONIC=yes
5350 else
5351 CFG_CLOCK_MONOTONIC=no
5353 elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then
5354 CFG_CLOCK_MONOTONIC=no
5357 # detect mremap
5358 if [ "$CFG_MREMAP" = "auto" ]; then
5359 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mremap "mremap" $L_FLAGS $I_FLAGS $l_FLAGS; then
5360 CFG_MREMAP=yes
5361 else
5362 CFG_MREMAP=no
5366 # find if the platform provides getaddrinfo (ipv6 dns lookups)
5367 if [ "$CFG_GETADDRINFO" != "no" ]; then
5368 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/getaddrinfo "getaddrinfo" $L_FLAGS $I_FLAGS $l_FLAGS; then
5369 CFG_GETADDRINFO=yes
5370 else
5371 if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5372 echo "getaddrinfo support cannot be enabled due to functionality tests!"
5373 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5374 echo " If you believe this message is in error you may use the continue"
5375 echo " switch (-continue) to $0 to continue."
5376 exit 101
5377 else
5378 CFG_GETADDRINFO=no
5383 # find if the platform provides inotify
5384 if [ "$CFG_INOTIFY" != "no" ]; then
5385 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/inotify "inotify" $L_FLAGS $I_FLAGS $l_FLAGS; then
5386 CFG_INOTIFY=yes
5387 else
5388 if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5389 echo "inotify support cannot be enabled due to functionality tests!"
5390 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5391 echo " If you believe this message is in error you may use the continue"
5392 echo " switch (-continue) to $0 to continue."
5393 exit 101
5394 else
5395 CFG_INOTIFY=no
5400 # find if the platform provides if_nametoindex (ipv6 interface name support)
5401 if [ "$CFG_IPV6IFNAME" != "no" ]; then
5402 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
5403 CFG_IPV6IFNAME=yes
5404 else
5405 if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5406 echo "IPv6 interface name support cannot be enabled due to functionality tests!"
5407 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5408 echo " If you believe this message is in error you may use the continue"
5409 echo " switch (-continue) to $0 to continue."
5410 exit 101
5411 else
5412 CFG_IPV6IFNAME=no
5417 # find if the platform provides getifaddrs (network interface enumeration)
5418 if [ "$CFG_GETIFADDRS" != "no" ]; then
5419 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/getifaddrs "getifaddrs" $L_FLAGS $I_FLAGS $l_FLAGS; then
5420 CFG_GETIFADDRS=yes
5421 else
5422 if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5423 echo "getifaddrs support cannot be enabled due to functionality tests!"
5424 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5425 echo " If you believe this message is in error you may use the continue"
5426 echo " switch (-continue) to $0 to continue."
5427 exit 101
5428 else
5429 CFG_GETIFADDRS=no
5434 # find if the platform supports X/Open Large File compilation environment
5435 if [ "$CFG_LARGEFILE" != "no" ]; then
5436 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
5437 CFG_LARGEFILE=yes
5438 else
5439 if [ "$CFG_LARGEFILE" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5440 echo "X/Open Large File support cannot be enabled due to functionality tests!"
5441 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5442 echo " If you believe this message is in error you may use the continue"
5443 echo " switch (-continue) to $0 to continue."
5444 exit 101
5445 else
5446 CFG_LARGEFILE=no
5451 # detect OpenSSL
5452 if [ "$CFG_OPENSSL" != "no" ]; then
5453 if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/openssl "OpenSSL" $L_FLAGS $I_FLAGS $l_FLAGS $MAC_ARCHS_COMMANDLINE; then
5454 if [ "$CFG_OPENSSL" = "auto" ]; then
5455 CFG_OPENSSL=yes
5457 else
5458 if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then
5459 echo "OpenSSL support cannot be enabled due to functionality tests!"
5460 echo " Turn on verbose messaging (-v) to $0 to see the final report."
5461 echo " If you believe this message is in error you may use the continue"
5462 echo " switch (-continue) to $0 to continue."
5463 exit 101
5464 else
5465 CFG_OPENSSL=no
5470 if [ "$CFG_PTMALLOC" != "no" ]; then
5471 # build ptmalloc, copy .a file to lib/
5472 echo "Building ptmalloc. Please wait..."
5473 (cd "$relpath/src/3rdparty/ptmalloc/"; "$MAKE" "clean" ; "$MAKE" "posix"
5474 mkdir "$outpath/lib/" ; cp "libptmalloc3.a" "$outpath/lib/")
5476 QMakeVar add QMAKE_LFLAGS "$outpath/lib/libptmalloc3.a"
5479 #-------------------------------------------------------------------------------
5480 # ask for all that hasn't been auto-detected or specified in the arguments
5481 #-------------------------------------------------------------------------------
5483 ### fix this: user input should be validated in a loop
5484 if [ "$CFG_QWS_DEPTHS" = "prompted" -a "$PLATFORM_QWS" = "yes" ]; then
5485 echo
5486 echo "Choose pixel-depths to support:"
5487 echo
5488 echo " 1. 1bpp, black/white"
5489 echo " 4. 4bpp, grayscale"
5490 echo " 8. 8bpp, paletted"
5491 echo " 12. 12bpp, rgb 4-4-4"
5492 echo " 15. 15bpp, rgb 5-5-5"
5493 echo " 16. 16bpp, rgb 5-6-5"
5494 echo " 18. 18bpp, rgb 6-6-6"
5495 echo " 24. 24bpp, rgb 8-8-8"
5496 echo " 32. 32bpp, argb 8-8-8-8 and rgb 8-8-8"
5497 echo " all. All supported depths"
5498 echo
5499 echo "Your choices (default 8,16,32):"
5500 read CFG_QWS_DEPTHS
5501 if [ -z "$CFG_QWS_DEPTHS" ] || [ "$CFG_QWS_DEPTHS" = "yes" ]; then
5502 CFG_QWS_DEPTHS=8,16,32
5505 if [ -n "$CFG_QWS_DEPTHS" -a "$PLATFORM_QWS" = "yes" ]; then
5506 if [ "$CFG_QWS_DEPTHS" = "all" ]; then
5507 CFG_QWS_DEPTHS="1 4 8 12 15 16 18 24 32 generic"
5509 for D in `echo "$CFG_QWS_DEPTHS" | sed -e 's/,/ /g'`; do
5510 case $D in
5511 1|4|8|12|15|16|18|24|32) QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QWS_DEPTH_$D";;
5512 generic) QCONFIG_FLAGS="$QCONFIG_FLAGS QT_QWS_DEPTH_GENERIC";;
5513 esac
5514 done
5517 # enable dwarf2 support on Mac
5518 if [ "$CFG_MAC_DWARF2" = "yes" ]; then
5519 QT_CONFIG="$QT_CONFIG dwarf2"
5522 # Set the default arch. Select 32-bit/carbon if nothing else has
5523 # been specified on the configure line.
5524 if [ "$PLATFORM_MAC" = "yes" ] && [ "$CFG_MAC_ARCHS" == "" ]; then
5525 source "$mactests/defaultarch.test" "$TEST_COMPILER" "$OPT_VERBOSE" "$mactests"
5527 if [ "$QT_MAC_DEFUALT_ARCH" == "x86_64" ]; then
5528 CFG_MAC_ARCHS=" x86"
5529 elif [ "$QT_MAC_DEFUALT_ARCH" == "ppc64" ]; then
5530 CFG_MAC_ARCHS=" ppc"
5531 else
5532 CFG_MAC_ARCHS=" $QT_MAC_DEFUALT_ARCH"
5535 [ "$OPT_VERBOSE" == "yes" ] && echo "Setting Mac architechture to$CFG_MAC_ARCHS."
5538 # enable cocoa and/or carbon on Mac
5539 if [ "$CFG_MAC_COCOA" = "yes" ]; then
5540 # -cocoa on the command line disables carbon completely (i.e. use cocoa for 32-bit as well)
5541 CFG_MAC_CARBON="no"
5542 else
5543 # check which archs are in use, enable cocoa if we find a 64-bit one
5544 if echo "$CFG_MAC_ARCHS" | grep 64 > /dev/null 2>&1; then
5545 CFG_MAC_COCOA="yes";
5546 CFG_MAC_CARBON="no";
5547 if echo "$CFG_MAC_ARCHS" | grep -w ppc > /dev/null 2>&1; then
5548 CFG_MAC_CARBON="yes";
5550 if echo "$CFG_MAC_ARCHS" | grep -w x86 > /dev/null 2>&1; then
5551 CFG_MAC_CARBON="yes";
5553 else
5554 # no 64-bit archs found.
5555 CFG_MAC_COCOA="no"
5559 # set the global Mac deployment target. This is overridden on an arch-by-arch basis
5560 # in some cases, see code further down
5561 case "$PLATFORM,$CFG_MAC_COCOA" in
5562 macx*,yes)
5563 # Cocoa
5564 QMakeVar set QMAKE_MACOSX_DEPLOYMENT_TARGET 10.5
5565 CFG_QT3SUPPORT="no"
5567 macx-icc,*)
5568 # Intel CC, Carbon
5569 QMakeVar set QMAKE_MACOSX_DEPLOYMENT_TARGET 10.4
5571 macx*,no)
5572 # gcc, Carbon
5573 QMakeVar set QMAKE_MACOSX_DEPLOYMENT_TARGET 10.3
5575 esac
5577 # enable Qt 3 support functionality
5578 if [ "$CFG_QT3SUPPORT" = "yes" ]; then
5579 QT_CONFIG="$QT_CONFIG qt3support"
5582 # enable Phonon
5583 if [ "$CFG_PHONON" = "yes" ]; then
5584 QT_CONFIG="$QT_CONFIG phonon"
5585 if [ "$CFG_PHONON_BACKEND" = "yes" ]; then
5586 QT_CONFIG="$QT_CONFIG phonon-backend"
5588 else
5589 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PHONON"
5592 # disable accessibility
5593 if [ "$CFG_ACCESSIBILITY" = "no" ]; then
5594 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY"
5595 else
5596 QT_CONFIG="$QT_CONFIG accessibility"
5599 # enable opengl
5600 if [ "$CFG_OPENGL" = "no" ]; then
5601 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL"
5602 else
5603 QT_CONFIG="$QT_CONFIG opengl"
5606 if [ "$CFG_OPENGL" = "es1" ] || [ "$CFG_OPENGL" = "es1cl" ] || [ "$CFG_OPENGL" = "es2" ]; then
5607 if [ "$PLATFORM_QWS" = "yes" ]; then
5608 QCONFIG_FLAGS="$QCONFIG_FLAGS Q_BACKINGSTORE_SUBSURFACES"
5609 QCONFIG_FLAGS="$QCONFIG_FLAGS Q_USE_EGLWINDOWSURFACE"
5611 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES"
5614 if [ "$CFG_OPENGL" = "es1" ]; then
5615 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_1"
5616 QT_CONFIG="$QT_CONFIG opengles1"
5619 if [ "$CFG_OPENGL" = "es1cl" ]; then
5620 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_1_CL"
5621 QT_CONFIG="$QT_CONFIG opengles1cl"
5624 if [ "$CFG_OPENGL" = "es2" ]; then
5625 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_2"
5626 QT_CONFIG="$QT_CONFIG opengles2"
5629 # safe execution environment
5630 if [ "$CFG_SXE" != "no" ]; then
5631 QT_CONFIG="$QT_CONFIG sxe"
5634 # build up the variables for output
5635 if [ "$CFG_DEBUG" = "yes" ]; then
5636 QMAKE_OUTDIR="${QMAKE_OUTDIR}debug"
5637 QMAKE_CONFIG="$QMAKE_CONFIG debug"
5638 elif [ "$CFG_DEBUG" = "no" ]; then
5639 QMAKE_OUTDIR="${QMAKE_OUTDIR}release"
5640 QMAKE_CONFIG="$QMAKE_CONFIG release"
5642 if [ "$CFG_SHARED" = "yes" ]; then
5643 QMAKE_OUTDIR="${QMAKE_OUTDIR}-shared"
5644 QMAKE_CONFIG="$QMAKE_CONFIG shared dll"
5645 elif [ "$CFG_SHARED" = "no" ]; then
5646 QMAKE_OUTDIR="${QMAKE_OUTDIR}-static"
5647 QMAKE_CONFIG="$QMAKE_CONFIG static"
5649 if [ "$PLATFORM_QWS" = "yes" ]; then
5650 QMAKE_OUTDIR="${QMAKE_OUTDIR}-emb-$CFG_EMBEDDED"
5651 QMAKE_CONFIG="$QMAKE_CONFIG embedded"
5652 QT_CONFIG="$QT_CONFIG embedded"
5653 rm -f "src/.moc/$QMAKE_OUTDIR/allmoc.cpp" # needs remaking if config changes
5655 QMakeVar set PRECOMPILED_DIR ".pch/$QMAKE_OUTDIR"
5656 QMakeVar set OBJECTS_DIR ".obj/$QMAKE_OUTDIR"
5657 QMakeVar set MOC_DIR ".moc/$QMAKE_OUTDIR"
5658 QMakeVar set RCC_DIR ".rcc/$QMAKE_OUTDIR"
5659 QMakeVar set UI_DIR ".uic/$QMAKE_OUTDIR"
5660 if [ "$CFG_LARGEFILE" = "yes" ]; then
5661 QMAKE_CONFIG="$QMAKE_CONFIG largefile"
5663 if [ "$CFG_STL" = "no" ]; then
5664 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STL"
5665 else
5666 QMAKE_CONFIG="$QMAKE_CONFIG stl"
5668 if [ "$CFG_USE_GNUMAKE" = "yes" ]; then
5669 QMAKE_CONFIG="$QMAKE_CONFIG GNUmake"
5671 [ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports"
5672 [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations"
5673 [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header"
5674 if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then
5675 QMakeVar add QMAKE_CFLAGS -g
5676 QMakeVar add QMAKE_CXXFLAGS -g
5677 QMAKE_CONFIG="$QMAKE_CONFIG separate_debug_info"
5679 [ "$CFG_MMX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mmx"
5680 [ "$CFG_3DNOW" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG 3dnow"
5681 [ "$CFG_SSE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse"
5682 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
5683 [ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
5684 [ "$PLATFORM_MAC" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG $CFG_MAC_ARCHS"
5685 if [ "$CFG_IPV6" = "yes" ]; then
5686 QT_CONFIG="$QT_CONFIG ipv6"
5688 if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then
5689 QT_CONFIG="$QT_CONFIG clock-gettime"
5691 if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then
5692 QT_CONFIG="$QT_CONFIG clock-monotonic"
5694 if [ "$CFG_MREMAP" = "yes" ]; then
5695 QT_CONFIG="$QT_CONFIG mremap"
5697 if [ "$CFG_GETADDRINFO" = "yes" ]; then
5698 QT_CONFIG="$QT_CONFIG getaddrinfo"
5700 if [ "$CFG_IPV6IFNAME" = "yes" ]; then
5701 QT_CONFIG="$QT_CONFIG ipv6ifname"
5703 if [ "$CFG_GETIFADDRS" = "yes" ]; then
5704 QT_CONFIG="$QT_CONFIG getifaddrs"
5706 if [ "$CFG_INOTIFY" = "yes" ]; then
5707 QT_CONFIG="$QT_CONFIG inotify"
5709 if [ "$CFG_LIBJPEG" = "system" ]; then
5710 QT_CONFIG="$QT_CONFIG system-jpeg"
5712 if [ "$CFG_JPEG" = "no" ]; then
5713 QT_CONFIG="$QT_CONFIG no-jpeg"
5714 elif [ "$CFG_JPEG" = "yes" ]; then
5715 QT_CONFIG="$QT_CONFIG jpeg"
5717 if [ "$CFG_LIBMNG" = "system" ]; then
5718 QT_CONFIG="$QT_CONFIG system-mng"
5720 if [ "$CFG_MNG" = "no" ]; then
5721 QT_CONFIG="$QT_CONFIG no-mng"
5722 elif [ "$CFG_MNG" = "yes" ]; then
5723 QT_CONFIG="$QT_CONFIG mng"
5725 if [ "$CFG_LIBPNG" = "no" ]; then
5726 CFG_PNG="no"
5728 if [ "$CFG_LIBPNG" = "system" ]; then
5729 QT_CONFIG="$QT_CONFIG system-png"
5731 if [ "$CFG_PNG" = "no" ]; then
5732 QT_CONFIG="$QT_CONFIG no-png"
5733 elif [ "$CFG_PNG" = "yes" ]; then
5734 QT_CONFIG="$QT_CONFIG png"
5736 if [ "$CFG_GIF" = "no" ]; then
5737 QT_CONFIG="$QT_CONFIG no-gif"
5738 elif [ "$CFG_GIF" = "yes" ]; then
5739 QT_CONFIG="$QT_CONFIG gif"
5741 if [ "$CFG_LIBTIFF" = "system" ]; then
5742 QT_CONFIG="$QT_CONFIG system-tiff"
5744 if [ "$CFG_TIFF" = "no" ]; then
5745 QT_CONFIG="$QT_CONFIG no-tiff"
5746 elif [ "$CFG_TIFF" = "yes" ]; then
5747 QT_CONFIG="$QT_CONFIG tiff"
5749 if [ "$CFG_LIBFREETYPE" = "no" ]; then
5750 QT_CONFIG="$QT_CONFIG no-freetype"
5751 elif [ "$CFG_LIBFREETYPE" = "system" ]; then
5752 QT_CONFIG="$QT_CONFIG system-freetype"
5753 else
5754 QT_CONFIG="$QT_CONFIG freetype"
5757 if [ "x$PLATFORM_MAC" = "xyes" ]; then
5758 #On Mac we implicitly link against libz, so we
5759 #never use the 3rdparty stuff.
5760 [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system"
5762 if [ "$CFG_ZLIB" = "yes" ]; then
5763 QT_CONFIG="$QT_CONFIG zlib"
5764 elif [ "$CFG_ZLIB" = "system" ]; then
5765 QT_CONFIG="$QT_CONFIG system-zlib"
5768 [ "$CFG_NIS" = "yes" ] && QT_CONFIG="$QT_CONFIG nis"
5769 [ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups"
5770 [ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv"
5771 [ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv"
5772 [ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib"
5773 [ "$CFG_GSTREAMER" = "yes" ] && QT_CONFIG="$QT_CONFIG gstreamer"
5774 [ "$CFG_DBUS" = "yes" ] && QT_CONFIG="$QT_CONFIG dbus"
5775 [ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus dbus-linked"
5776 [ "$CFG_NAS" = "system" ] && QT_CONFIG="$QT_CONFIG nas"
5777 [ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl"
5778 [ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked"
5780 if [ "$PLATFORM_X11" = "yes" ]; then
5781 [ "$CFG_SM" = "yes" ] && QT_CONFIG="$QT_CONFIG x11sm"
5783 # for some reason, the following libraries are not always built shared,
5784 # so *every* program/lib (including Qt) has to link against them
5785 if [ "$CFG_XSHAPE" = "yes" ]; then
5786 QT_CONFIG="$QT_CONFIG xshape"
5788 if [ "$CFG_XINERAMA" = "yes" ]; then
5789 QT_CONFIG="$QT_CONFIG xinerama"
5790 QMakeVar set QMAKE_LIBS_X11 '-lXinerama $$QMAKE_LIBS_X11'
5792 if [ "$CFG_XCURSOR" = "yes" ]; then
5793 QT_CONFIG="$QT_CONFIG xcursor"
5794 QMakeVar set QMAKE_LIBS_X11 '-lXcursor $$QMAKE_LIBS_X11'
5796 if [ "$CFG_XFIXES" = "yes" ]; then
5797 QT_CONFIG="$QT_CONFIG xfixes"
5798 QMakeVar set QMAKE_LIBS_X11 '-lXfixes $$QMAKE_LIBS_X11'
5800 if [ "$CFG_XRANDR" = "yes" ]; then
5801 QT_CONFIG="$QT_CONFIG xrandr"
5802 if [ "$CFG_XRENDER" != "yes" ]; then
5803 # libXrandr uses 1 function from libXrender, so we always have to have it :/
5804 QMakeVar set QMAKE_LIBS_X11 '-lXrandr -lXrender $$QMAKE_LIBS_X11'
5805 else
5806 QMakeVar set QMAKE_LIBS_X11 '-lXrandr $$QMAKE_LIBS_X11'
5809 if [ "$CFG_XRENDER" = "yes" ]; then
5810 QT_CONFIG="$QT_CONFIG xrender"
5811 QMakeVar set QMAKE_LIBS_X11 '-lXrender $$QMAKE_LIBS_X11'
5813 if [ "$CFG_MITSHM" = "yes" ]; then
5814 QT_CONFIG="$QT_CONFIG mitshm"
5816 if [ "$CFG_FONTCONFIG" = "yes" ]; then
5817 QT_CONFIG="$QT_CONFIG fontconfig"
5819 if [ "$CFG_XINPUT" = "yes" ]; then
5820 QMakeVar set QMAKE_LIBS_X11 '-lXi $$QMAKE_LIBS_X11'
5822 if [ "$CFG_XINPUT" = "yes" ]; then
5823 QT_CONFIG="$QT_CONFIG xinput tablet"
5825 if [ "$CFG_XKB" = "yes" ]; then
5826 QT_CONFIG="$QT_CONFIG xkb"
5830 [ '!' -z "$D_FLAGS" ] && QMakeVar add DEFINES "$D_FLAGS"
5831 [ '!' -z "$L_FLAGS" ] && QMakeVar add QMAKE_LIBDIR_FLAGS "$L_FLAGS"
5832 [ '!' -z "$l_FLAGS" ] && QMakeVar add LIBS "$l_FLAGS"
5834 if [ "$PLATFORM_MAC" = "yes" ]; then
5835 if [ "$CFG_RPATH" = "yes" ]; then
5836 QMAKE_CONFIG="$QMAKE_CONFIG absolute_library_soname"
5838 elif [ -z "`getQMakeConf \"$XQMAKESPEC\" | grep QMAKE_RPATH | awk '{print $3;}'`" ]; then
5839 if [ -n "$RPATH_FLAGS" ]; then
5840 echo
5841 echo "ERROR: -R cannot be used on this platform as \$QMAKE_RPATH is"
5842 echo " undefined."
5843 echo
5844 exit 1
5845 elif [ "$CFG_RPATH" = "yes" ]; then
5846 RPATH_MESSAGE=" NOTE: This platform does not support runtime library paths, using -no-rpath."
5847 CFG_RPATH=no
5849 else
5850 if [ "$CFG_RPATH" = "yes" ]; then
5851 # set the default rpath to the library installation directory
5852 RPATH_FLAGS="\"$QT_INSTALL_LIBS\" $RPATH_FLAGS"
5854 if [ -n "$RPATH_FLAGS" ]; then
5855 # add the user defined rpaths
5856 QMakeVar add QMAKE_RPATHDIR "$RPATH_FLAGS"
5860 if [ '!' -z "$I_FLAGS" ]; then
5861 # add the user define include paths
5862 QMakeVar add QMAKE_CFLAGS "$I_FLAGS"
5863 QMakeVar add QMAKE_CXXFLAGS "$I_FLAGS"
5866 # turn off exceptions for the compilers that support it
5867 if [ "$PLATFORM_QWS" = "yes" ]; then
5868 COMPILER=`echo $XPLATFORM | cut -f 3- -d-`
5869 else
5870 COMPILER=`echo $PLATFORM | cut -f 2- -d-`
5872 if [ "$CFG_EXCEPTIONS" = "unspecified" -a "$PLATFORM_QWS" = "yes" ]; then
5873 CFG_EXCEPTIONS=no
5876 if [ "$CFG_EXCEPTIONS" != "no" ]; then
5877 QTCONFIG_CONFIG="$QTCONFIG_CONFIG exceptions"
5881 # Some Qt modules are too advanced in C++ for some old compilers
5882 # Detect here the platforms where they are known to work.
5884 # See Qt documentation for more information on which features are
5885 # supported and on which compilers.
5887 canBuildQtXmlPatterns="yes"
5888 canBuildWebKit="$HAVE_STL"
5890 # WebKit requires stdint.h
5891 "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/stdint "Stdint" $L_FLAGS $I_FLAGS $l_FLAGS
5892 if [ $? != "0" ]; then
5893 canBuildWebKit="no"
5896 case "$XPLATFORM" in
5897 hpux-g++*)
5898 # PA-RISC's assembly is too limited
5899 # gcc 3.4 on that platform can't build QtXmlPatterns
5900 # the assembly it generates cannot be compiled
5902 # Check gcc's version
5903 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5906 3.4*)
5907 canBuildQtXmlPatterns="no"
5910 canBuildWebKit="no"
5911 canBuildQtXmlPatterns="no"
5913 esac
5915 *-g++*)
5916 # Check gcc's version
5917 case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in
5918 4*|3.4*)
5920 3.3*)
5921 canBuildWebKit="no"
5924 canBuildWebKit="no"
5925 canBuildQtXmlPatterns="no"
5927 esac
5929 solaris-cc*)
5930 # Check the compiler version
5931 case `${QMAKE_CONF_COMPILER} -V 2>&1 | awk '{print $4}'` in
5933 canBuildWebKit="no"
5934 canBuildQtXmlPatterns="no"
5936 esac
5938 hpux-acc*)
5939 canBuildWebKit="no"
5940 canBuildQtXmlPatterns="no"
5942 hpuxi-acc*)
5943 canBuildWebKit="no"
5945 aix-xlc*)
5946 canBuildWebKit="no"
5947 canBuildQtXmlPatterns="no"
5949 irix-cc*)
5950 canBuildWebKit="no"
5952 esac
5954 if [ "$CFG_XMLPATTERNS" = "yes" -a "$CFG_EXCEPTIONS" = "no" ]; then
5955 echo "QtXmlPatterns was requested, but it can't be built due to exceptions being disabled."
5956 exit 1
5958 if [ "$CFG_XMLPATTERNS" = "auto" -a "$CFG_EXCEPTIONS" != "no" ]; then
5959 CFG_XMLPATTERNS="$canBuildQtXmlPatterns"
5960 elif [ "$CFG_EXCEPTIONS" = "no" ]; then
5961 CFG_XMLPATTERNS="no"
5963 if [ "$CFG_XMLPATTERNS" = "yes" ]; then
5964 QT_CONFIG="$QT_CONFIG xmlpatterns"
5965 else
5966 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XMLPATTERNS"
5969 if [ "$CFG_SVG" = "yes" ]; then
5970 QT_CONFIG="$QT_CONFIG svg"
5971 else
5972 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SVG"
5975 if [ "$CFG_WEBKIT" = "auto" ]; then
5976 CFG_WEBKIT="$canBuildWebKit"
5979 if [ "$CFG_WEBKIT" = "yes" ]; then
5980 QT_CONFIG="$QT_CONFIG webkit"
5981 # The reason we set CFG_WEBKIT, is such that the printed overview of what will be enabled, shows correctly.
5982 CFG_WEBKIT="yes"
5983 else
5984 CFG_WEBKIT="no"
5985 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WEBKIT"
5988 if [ "$CFG_SCRIPTTOOLS" = "auto" ]; then
5989 CFG_SCRIPTTOOLS="yes"
5992 if [ "$CFG_SCRIPTTOOLS" = "yes" ]; then
5993 QT_CONFIG="$QT_CONFIG scripttools"
5994 CFG_SCRIPTTOOLS="yes"
5995 else
5996 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SCRIPTTOOLS"
5999 if [ "$CFG_EXCEPTIONS" = "no" ]; then
6000 case "$COMPILER" in
6001 g++*)
6002 QMakeVar add QMAKE_CFLAGS -fno-exceptions
6003 QMakeVar add QMAKE_CXXFLAGS -fno-exceptions
6004 QMakeVar add QMAKE_LFLAGS -fno-exceptions
6006 cc*)
6007 case "$PLATFORM" in
6008 irix-cc*)
6009 QMakeVar add QMAKE_CFLAGS -LANG:exceptions=off
6010 QMakeVar add QMAKE_CXXFLAGS -LANG:exceptions=off
6011 QMakeVar add QMAKE_LFLAGS -LANG:exceptions=off
6013 *) ;;
6014 esac
6016 *) ;;
6017 esac
6018 QMAKE_CONFIG="$QMAKE_CONFIG exceptions_off"
6021 # On Mac, set the minimum deployment target for the different architechtures
6022 # using the Xarch compiler option when supported (10.5 and up). On 10.4 the
6023 # deployment version is set to 10.3 globally using the QMAKE_MACOSX_DEPLOYMENT_TARGET
6024 # env. variable. "-cocoa" on the command line means Cocoa is used in 32-bit mode also,
6025 # in this case fall back on QMAKE_MACOSX_DEPLOYMENT_TARGET which will be set to 10.5.
6026 if [ "$PLATFORM_MAC" = "yes" ] && [ "$CFG_MAC_XARCH" != "no" ] && [ "$COMMANDLINE_MAC_COCOA" != "yes" ]; then
6027 if echo "$CFG_MAC_ARCHS" | grep '\<x86\>' > /dev/null 2>&1; then
6028 QMakeVar add QMAKE_CFLAGS "-Xarch_i386 -mmacosx-version-min=10.4"
6029 QMakeVar add QMAKE_CXXFLAGS "-Xarch_i386 -mmacosx-version-min=10.4"
6030 QMakeVar add QMAKE_LFLAGS "-Xarch_i386 -mmacosx-version-min=10.4"
6031 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_X86 "-arch i386 -Xarch_i386 -mmacosx-version-min=10.4"
6033 if echo "$CFG_MAC_ARCHS" | grep '\<ppc\>' > /dev/null 2>&1; then
6034 QMakeVar add QMAKE_CFLAGS "-Xarch_ppc -mmacosx-version-min=10.3"
6035 QMakeVar add QMAKE_CXXFLAGS "-Xarch_ppc -mmacosx-version-min=10.3"
6036 QMakeVar add QMAKE_LFLAGS "-Xarch_ppc -mmacosx-version-min=10.3"
6037 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_PPC "-arch ppc -Xarch_ppc -mmacosx-version-min=10.3"
6039 if echo "$CFG_MAC_ARCHS" | grep '\<x86_64\>' > /dev/null 2>&1; then
6040 QMakeVar add QMAKE_CFLAGS "-Xarch_x86_64 -mmacosx-version-min=10.5"
6041 QMakeVar add QMAKE_CXXFLAGS "-Xarch_x86_64 -mmacosx-version-min=10.5"
6042 QMakeVar add QMAKE_LFLAGS "-Xarch_x86_64 -mmacosx-version-min=10.5"
6043 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_X86_64 "-arch x86_64 -Xarch_x86_64 -mmacosx-version-min=10.5"
6045 if echo "$CFG_MAC_ARCHS" | grep '\<ppc64\>' > /dev/null 2>&1; then
6046 QMakeVar add QMAKE_CFLAGS "-Xarch_ppc64 -mmacosx-version-min=10.5"
6047 QMakeVar add QMAKE_CXXFLAGS "-Xarch_ppc64 -mmacosx-version-min=10.5"
6048 QMakeVar add QMAKE_LFLAGS "-Xarch_ppc64 -mmacosx-version-min=10.5"
6049 QMakeVar add QMAKE_OBJECTIVE_CFLAGS_PPC_64 "-arch ppc64 -Xarch_ppc64 -mmacosx-version-min=10.5"
6053 #-------------------------------------------------------------------------------
6054 # generate QT_BUILD_KEY
6055 #-------------------------------------------------------------------------------
6057 # some compilers generate binary incompatible code between different versions,
6058 # so we need to generate a build key that is different between these compilers
6059 case "$COMPILER" in
6060 g++*)
6061 # GNU C++
6062 COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null`
6064 case "$COMPILER_VERSION" in
6065 *.*.*)
6066 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'`
6067 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'`
6068 QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'`
6070 *.*)
6071 QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'`
6072 QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'`
6073 QT_GCC_PATCH_VERSION=0
6075 esac
6077 case "$COMPILER_VERSION" in
6078 2.95.*)
6079 COMPILER_VERSION="2.95.*"
6081 3.*)
6082 COMPILER_VERSION="3.*"
6084 4.*)
6085 COMPILER_VERSION="4"
6089 esac
6090 [ '!' -z "$COMPILER_VERSION" ] && COMPILER="g++-${COMPILER_VERSION}"
6095 esac
6097 # QT_CONFIG can contain the following:
6099 # Things that affect the Qt API/ABI:
6101 # Options:
6102 # minimal-config small-config medium-config large-config full-config
6104 # Different edition modules:
6105 # network canvas table xml opengl sql
6107 # Options:
6108 # stl
6110 # Things that do not affect the Qt API/ABI:
6111 # system-jpeg no-jpeg jpeg
6112 # system-mng no-mng mng
6113 # system-png no-png png
6114 # system-zlib no-zlib zlib
6115 # system-libtiff no-libtiff
6116 # no-gif gif
6117 # debug release
6118 # dll staticlib
6120 # internal
6121 # nocrosscompiler
6122 # GNUmake
6123 # largefile
6124 # nis
6125 # nas
6126 # tablet
6127 # ipv6
6129 # X11 : x11sm xinerama xcursor xfixes xrandr xrender mitshm fontconfig xkb
6130 # Embedded: embedded freetype
6132 ALL_OPTIONS="stl"
6133 BUILD_CONFIG=
6134 BUILD_OPTIONS=
6136 # determine the build options
6137 for config_option in $QMAKE_CONFIG $QT_CONFIG; do
6138 SKIP="yes"
6139 case "$config_option" in
6140 *-config)
6141 # take the last *-config setting. this is the highest config being used,
6142 # and is the one that we will use for tagging plugins
6143 BUILD_CONFIG="$config_option"
6146 stl)
6147 # these config options affect the Qt API/ABI. they should influence
6148 # the generation of the buildkey, so we don't skip them
6149 SKIP="no"
6152 *) # skip all other options since they don't affect the Qt API/ABI.
6154 esac
6156 if [ "$SKIP" = "no" ]; then
6157 BUILD_OPTIONS="$BUILD_OPTIONS $config_option"
6159 done
6161 # put the options that we are missing into .options
6162 rm -f .options
6163 for opt in `echo $ALL_OPTIONS`; do
6164 SKIP="no"
6165 if echo $BUILD_OPTIONS | grep $opt >/dev/null 2>&1; then
6166 SKIP="yes"
6168 if [ "$SKIP" = "no" ]; then
6169 echo "$opt" >> .options
6171 done
6173 # reconstruct BUILD_OPTIONS with a sorted negative feature list
6174 # (ie. only things that are missing are will be put into the build key)
6175 BUILD_OPTIONS=
6176 if [ -f .options ]; then
6177 for opt in `sort -f .options | uniq`; do
6178 BUILD_OPTIONS="$BUILD_OPTIONS no-$opt"
6179 done
6181 rm -f .options
6183 # QT_NO* defines affect the Qt API (and binary compatibility). they need
6184 # to be included in the build key
6185 for build_option in $D_FLAGS; do
6186 build_option=`echo $build_option | cut -d \" -f 2 -`
6187 case "$build_option" in
6188 QT_NO*)
6189 echo "$build_option" >> .options
6192 # skip all other compiler defines
6194 esac
6195 done
6197 # sort the compile time defines (helps ensure that changes in this configure
6198 # script don't affect the QT_BUILD_KEY generation)
6199 if [ -f .options ]; then
6200 for opt in `sort -f .options | uniq`; do
6201 BUILD_OPTIONS="$BUILD_OPTIONS $opt"
6202 done
6204 rm -f .options
6206 BUILD_OPTIONS="$BUILD_CONFIG $BUILD_OPTIONS"
6207 # extract the operating system from the XPLATFORM
6208 TARGET_OPERATING_SYSTEM=`echo $XPLATFORM | cut -f 2- -d/ | cut -f -1 -d-`
6210 # when cross-compiling, don't include build-host information (build key is target specific)
6211 QT_BUILD_KEY="$CFG_USER_BUILD_KEY $CFG_ARCH $TARGET_OPERATING_SYSTEM $COMPILER $BUILD_OPTIONS"
6212 if [ -n "$QT_NAMESPACE" ]; then
6213 QT_BUILD_KEY="$QT_BUILD_KEY $QT_NAMESPACE"
6215 MAC_NEED_TWO_BUILD_KEYS="no"
6216 if [ "$PLATFORM_MAC" = "yes" -a "$CFG_MAC_COCOA" = "yes" ]; then
6217 QT_BUILD_KEY_CARBON=$QT_BUILD_KEY
6218 TARGET_OPERATING_SYSTEM="$TARGET_OPERATING_SYSTEM-cocoa"
6219 QT_BUILD_KEY_COCOA="$CFG_USER_BUILD_KEY $CFG_ARCH $TARGET_OPERATING_SYSTEM $COMPILER $BUILD_OPTIONS"
6220 if [ "$CFG_MAC_CARBON" = "no" ]; then
6221 QT_BUILD_KEY=$QT_BUILD_KEY_COCOA
6222 else
6223 MAC_NEED_TWO_BUILD_KEYS="yes"
6226 # don't break loading plugins build with an older version of Qt
6227 QT_BUILD_KEY_COMPAT=
6228 if [ "$QT_CROSS_COMPILE" = "no" ]; then
6229 # previous versions of Qt used a build key built from the uname
6230 QT_BUILD_KEY_COMPAT="$CFG_USER_BUILD_KEY $UNAME_MACHINE $UNAME_SYSTEM $COMPILER $BUILD_OPTIONS"
6231 if [ -n "$QT_NAMESPACE" ]; then
6232 QT_BUILD_KEY_COMPAT="$QT_BUILD_KEY_COMPAT $QT_NAMESPACE"
6235 # strip out leading/trailing/extra whitespace
6236 QT_BUILD_KEY=`echo $QT_BUILD_KEY | sed -e "s, *, ,g" -e "s,^ *,," -e "s, *$,,"`
6237 QT_BUILD_KEY_COMPAT=`echo $QT_BUILD_KEY_COMPAT | sed -e "s, *, ,g" -e "s,^ *,," -e "s, *$,,"`
6239 #-------------------------------------------------------------------------------
6240 # part of configuration information goes into qconfig.h
6241 #-------------------------------------------------------------------------------
6243 case "$CFG_QCONFIG" in
6244 full)
6245 echo "/* Everything */" >"$outpath/src/corelib/global/qconfig.h.new"
6248 tmpconfig="$outpath/src/corelib/global/qconfig.h.new"
6249 echo "#ifndef QT_BOOTSTRAPPED" >"$tmpconfig"
6250 cat "$relpath/src/corelib/global/qconfig-$CFG_QCONFIG.h" >>"$tmpconfig"
6251 echo "#endif" >>"$tmpconfig"
6253 esac
6255 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
6257 /* Qt Edition */
6258 #ifndef QT_EDITION
6259 # define QT_EDITION $QT_EDITION
6260 #endif
6262 /* Machine byte-order */
6263 #define Q_BIG_ENDIAN 4321
6264 #define Q_LITTLE_ENDIAN 1234
6267 if [ "$MAC_NEED_TWO_BUILD_KEYS" = "no" ]; then
6268 echo "#define QT_BUILD_KEY \"$QT_BUILD_KEY\"" \
6269 >> "$outpath/src/corelib/global/qconfig.h.new"
6270 else
6271 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
6273 #define QT_BUILD_KEY_CARBON "$QT_BUILD_KEY_CARBON"
6274 #define QT_BUILD_KEY_COCOA "$QT_BUILD_KEY_COCOA"
6278 if [ -n "$QT_BUILD_KEY_COMPAT" ]; then
6279 echo "#define QT_BUILD_KEY_COMPAT \"$QT_BUILD_KEY_COMPAT\"" \
6280 >> "$outpath/src/corelib/global/qconfig.h.new"
6282 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
6284 echo "#ifdef QT_BOOTSTRAPPED" >>"$outpath/src/corelib/global/qconfig.h.new"
6285 if [ "$CFG_HOST_ENDIAN" = "auto" ]; then
6286 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
6287 #if defined(__BIG_ENDIAN__)
6288 # define Q_BYTE_ORDER Q_BIG_ENDIAN
6289 #elif defined(__LITTLE_ENDIAN__)
6290 # define Q_BYTE_ORDER Q_LITTLE_ENDIAN
6291 #else
6292 # error "Unable to determine byte order!"
6293 #endif
6295 else
6296 echo "#define Q_BYTE_ORDER $CFG_HOST_ENDIAN" >>"$outpath/src/corelib/global/qconfig.h.new"
6298 echo "#else" >>"$outpath/src/corelib/global/qconfig.h.new"
6299 if [ "$CFG_ENDIAN" = "auto" ]; then
6300 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
6301 #if defined(__BIG_ENDIAN__)
6302 # define Q_BYTE_ORDER Q_BIG_ENDIAN
6303 #elif defined(__LITTLE_ENDIAN__)
6304 # define Q_BYTE_ORDER Q_LITTLE_ENDIAN
6305 #else
6306 # error "Unable to determine byte order!"
6307 #endif
6309 else
6310 echo "#define Q_BYTE_ORDER $CFG_ENDIAN" >>"$outpath/src/corelib/global/qconfig.h.new"
6312 echo "#endif" >>"$outpath/src/corelib/global/qconfig.h.new"
6314 if [ "$CFG_DOUBLEFORMAT" != "normal" ]; then
6315 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
6316 /* Non-IEEE double format */
6317 #define Q_DOUBLE_LITTLE "01234567"
6318 #define Q_DOUBLE_BIG "76543210"
6319 #define Q_DOUBLE_LITTLE_SWAPPED "45670123"
6320 #define Q_DOUBLE_BIG_SWAPPED "32107654"
6321 #define Q_DOUBLE_FORMAT $CFG_DOUBLEFORMAT
6324 if [ "$CFG_ARMFPA" = "yes" ]; then
6325 if [ "$CFG_ARCH" != "$CFG_HOST_ARCH" ]; then
6326 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
6327 #ifndef QT_BOOTSTRAPPED
6328 # define QT_ARMFPA
6329 #endif
6331 else
6332 echo "#define QT_ARMFPA" >>"$outpath/src/corelib/global/qconfig.h.new"
6336 CFG_ARCH_STR=`echo $CFG_ARCH | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
6337 CFG_HOST_ARCH_STR=`echo $CFG_HOST_ARCH | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
6338 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
6339 /* Machine Architecture */
6340 #ifndef QT_BOOTSTRAPPED
6341 # define QT_ARCH_${CFG_ARCH_STR}
6342 #else
6343 # define QT_ARCH_${CFG_HOST_ARCH_STR}
6344 #endif
6347 echo '/* Compile time features */' >>"$outpath/src/corelib/global/qconfig.h.new"
6348 [ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" >>"$outpath/src/corelib/global/qconfig.h.new"
6350 if [ "$CFG_LARGEFILE" = "yes" ]; then
6351 echo "#define QT_LARGEFILE_SUPPORT 64" >>"$outpath/src/corelib/global/qconfig.h.new"
6354 # if both carbon and cocoa are specified, enable the autodetection code.
6355 if [ "$CFG_MAC_COCOA" = "yes" -a "$CFG_MAC_CARBON" = "yes" ]; then
6356 echo "#define AUTODETECT_COCOA 1" >>"$outpath/src/corelib/global/qconfig.h.new"
6357 elif [ "$CFG_MAC_COCOA" = "yes" ]; then
6358 echo "#define QT_MAC_USE_COCOA 1" >>"$outpath/src/corelib/global/qconfig.h.new"
6361 if [ "$CFG_FRAMEWORK" = "yes" ]; then
6362 echo "#define QT_MAC_FRAMEWORK_BUILD" >>"$outpath/src/corelib/global/qconfig.h.new"
6365 if [ "$PLATFORM_MAC" = "yes" ]; then
6366 cat >>"$outpath/src/corelib/global/qconfig.h.new" <<EOF
6367 #if defined(__LP64__)
6368 # define QT_POINTER_SIZE 8
6369 #else
6370 # define QT_POINTER_SIZE 4
6371 #endif
6373 else
6374 "$unixtests/ptrsize.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath"
6375 echo "#define QT_POINTER_SIZE $?" >>"$outpath/src/corelib/global/qconfig.h.new"
6379 echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
6381 if [ "$CFG_DEV" = "yes" ]; then
6382 echo "#define QT_BUILD_INTERNAL" >>"$outpath/src/corelib/global/qconfig.h.new"
6385 # Embedded compile time options
6386 if [ "$PLATFORM_QWS" = "yes" ]; then
6387 # Add QWS to config.h
6388 QCONFIG_FLAGS="$QCONFIG_FLAGS Q_WS_QWS"
6390 # Add excluded decorations to $QCONFIG_FLAGS
6391 decors=`grep '^decorations -= ' "$QMAKE_VARS_FILE" | ${AWK} '{print $3}'`
6392 for decor in $decors; do
6393 NODECORATION=`echo $decor | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
6394 QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_NO_QWS_DECORATION_${NODECORATION}"
6395 done
6397 # Figure which embedded drivers which are turned off
6398 CFG_GFX_OFF="$CFG_GFX_AVAILABLE"
6399 for ADRIVER in $CFG_GFX_ON; do
6400 CFG_GFX_OFF=`echo "${CFG_GFX_OFF} " | sed "s,${ADRIVER} ,,g"`
6401 done
6403 CFG_KBD_OFF="$CFG_KBD_AVAILABLE"
6404 # the um driver is currently not in the available list for external builds
6405 if [ "$CFG_DEV" = "no" ]; then
6406 CFG_KBD_OFF="$CFG_KBD_OFF um"
6408 for ADRIVER in $CFG_KBD_ON; do
6409 CFG_KBD_OFF=`echo "${CFG_KBD_OFF} " | sed "s,${ADRIVER} ,,g"`
6410 done
6412 CFG_MOUSE_OFF="$CFG_MOUSE_AVAILABLE"
6413 for ADRIVER in $CFG_MOUSE_ON; do
6414 CFG_MOUSE_OFF=`echo "${CFG_MOUSE_OFF} " | sed "s,${ADRIVER} ,,g"`
6415 done
6417 for DRIVER in $CFG_GFX_OFF; do
6418 NODRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
6419 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_QWS_$NODRIVER"
6420 done
6422 for DRIVER in $CFG_KBD_OFF; do
6423 NODRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
6424 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_QWS_KBD_$NODRIVER"
6425 done
6427 for DRIVER in $CFG_MOUSE_OFF; do
6428 NODRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
6429 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_QWS_MOUSE_$NODRIVER"
6430 done
6431 fi # QWS
6433 if [ "${CFG_USE_FLOATMATH}" = "yes" ]; then
6434 QCONFIG_FLAGS="${QCONFIG_FLAGS} QT_USE_MATH_H_FLOATS"
6437 # Add turned on SQL drivers
6438 for DRIVER in $CFG_SQL_AVAILABLE; do
6439 eval "VAL=\$CFG_SQL_$DRIVER"
6440 case "$VAL" in
6442 ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
6443 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER"
6444 SQL_DRIVERS="$SQL_DRIVERS $DRIVER"
6446 plugin)
6447 SQL_PLUGINS="$SQL_PLUGINS $DRIVER"
6449 esac
6450 done
6453 QMakeVar set sql-drivers "$SQL_DRIVERS"
6454 QMakeVar set sql-plugins "$SQL_PLUGINS"
6456 # Add other configuration options to the qconfig.h file
6457 [ "$CFG_GIF" = "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1"
6458 [ "$CFG_TIFF" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_TIFF"
6459 [ "$CFG_PNG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG"
6460 [ "$CFG_JPEG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG"
6461 [ "$CFG_MNG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_MNG"
6462 [ "$CFG_ZLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB"
6463 [ "$CFG_EXCEPTIONS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EXCEPTIONS"
6464 [ "$CFG_IPV6" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6"
6465 [ "$CFG_SXE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SXE"
6466 [ "$CFG_DBUS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS"
6468 if [ "$PLATFORM_QWS" != "yes" ]; then
6469 [ "$CFG_GRAPHICS_SYSTEM" = "raster" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_GRAPHICSSYSTEM_RASTER"
6470 [ "$CFG_GRAPHICS_SYSTEM" = "opengl" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_GRAPHICSSYSTEM_OPENGL"
6473 # X11/Unix/Mac only configs
6474 [ "$CFG_CUPS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS"
6475 [ "$CFG_ICONV" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV"
6476 [ "$CFG_GLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB"
6477 [ "$CFG_GSTREAMER" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GSTREAMER"
6478 [ "$CFG_QGTKSTYLE" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_STYLE_GTK"
6479 [ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC"
6480 [ "$CFG_MREMAP" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP"
6481 [ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO"
6482 [ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME"
6483 [ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS"
6484 [ "$CFG_INOTIFY" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY"
6485 [ "$CFG_NAS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NAS"
6486 [ "$CFG_NIS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NIS"
6487 [ "$CFG_OPENSSL" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL"
6488 [ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL"
6490 [ "$CFG_SM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER"
6491 [ "$CFG_XCURSOR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR"
6492 [ "$CFG_XFIXES" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES"
6493 [ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG"
6494 [ "$CFG_XINERAMA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINERAMA"
6495 [ "$CFG_XKB" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB"
6496 [ "$CFG_XRANDR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR"
6497 [ "$CFG_XRENDER" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER"
6498 [ "$CFG_MITSHM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM"
6499 [ "$CFG_XSHAPE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE"
6500 [ "$CFG_XINPUT" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XINPUT QT_NO_TABLET"
6502 [ "$CFG_XCURSOR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR"
6503 [ "$CFG_XINERAMA" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINERAMA"
6504 [ "$CFG_XFIXES" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES"
6505 [ "$CFG_XRANDR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR"
6506 [ "$CFG_XINPUT" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XINPUT"
6508 # sort QCONFIG_FLAGS for neatness if we can
6509 [ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq`
6510 QCONFIG_FLAGS=`echo $QCONFIG_FLAGS`
6512 if [ -n "$QCONFIG_FLAGS" ]; then
6513 for cfg in $QCONFIG_FLAGS; do
6514 cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines
6515 cfg=`echo $cfg | sed 's/=/ /'` # turn first '=' into a space
6516 # figure out define logic, so we can output the correct
6517 # ifdefs to override the global defines in a project
6518 cfgdNeg=
6519 if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then
6520 # QT_NO_option can be forcefully turned on by QT_option
6521 cfgdNeg=`echo $cfgd | sed "s,QT_NO_,QT_,"`
6522 elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then
6523 # QT_option can be forcefully turned off by QT_NO_option
6524 cfgdNeg=`echo $cfgd | sed "s,QT_,QT_NO_,"`
6527 if [ -z $cfgdNeg ]; then
6528 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
6529 #ifndef $cfgd
6530 # define $cfg
6531 #endif
6534 else
6535 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
6536 #if defined($cfgd) && defined($cfgdNeg)
6537 # undef $cfgd
6538 #elif !defined($cfgd) && !defined($cfgdNeg)
6539 # define $cfg
6540 #endif
6544 done
6547 if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then
6548 cat >>"$outpath/src/corelib/global/qconfig.h.new" << EOF
6549 #define QT_VISIBILITY_AVAILABLE
6554 # avoid unecessary rebuilds by copying only if qconfig.h has changed
6555 if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then
6556 rm -f "$outpath/src/corelib/global/qconfig.h.new"
6557 else
6558 [ -f "$outpath/src/corelib/global/qconfig.h" ] && chmod +w "$outpath/src/corelib/global/qconfig.h"
6559 mv "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h"
6560 chmod -w "$outpath/src/corelib/global/qconfig.h"
6561 for conf in "$outpath/include/QtCore/qconfig.h" "$outpath/include/Qt/qconfig.h"; do
6562 if [ '!' -f "$conf" ]; then
6563 ln -s "$outpath/src/corelib/global/qconfig.h" "$conf"
6565 done
6568 #-------------------------------------------------------------------------------
6569 # save configuration into qconfig.pri
6570 #-------------------------------------------------------------------------------
6572 QTCONFIG="$outpath/mkspecs/qconfig.pri"
6573 QTCONFIG_CONFIG="$QTCONFIG_CONFIG no_mocdepend"
6574 [ -f "$QTCONFIG.tmp" ] && rm -f "$QTCONFIG.tmp"
6575 if [ "$CFG_DEBUG" = "yes" ]; then
6576 QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug"
6577 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6578 QT_CONFIG="$QT_CONFIG release"
6580 QT_CONFIG="$QT_CONFIG debug"
6581 elif [ "$CFG_DEBUG" = "no" ]; then
6582 QTCONFIG_CONFIG="$QTCONFIG_CONFIG release"
6583 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6584 QT_CONFIG="$QT_CONFIG debug"
6586 QT_CONFIG="$QT_CONFIG release"
6588 if [ "$CFG_STL" = "yes" ]; then
6589 QTCONFIG_CONFIG="$QTCONFIG_CONFIG stl"
6591 if [ "$CFG_FRAMEWORK" = "no" ]; then
6592 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework"
6593 else
6594 QT_CONFIG="$QT_CONFIG qt_framework"
6595 QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework"
6597 if [ "$PLATFORM_MAC" = "yes" ]; then
6598 QT_CONFIG="$QT_CONFIG $CFG_MAC_ARCHS"
6601 # Make the application arch follow the Qt arch for single arch builds.
6602 # (for multiple-arch builds, set CONFIG manually in the application .pro file)
6603 if [ `echo "$CFG_MAC_ARCHS" | wc -w` -eq 1 ]; then
6604 QTCONFIG_CONFIG="$QTCONFIG_CONFIG $CFG_MAC_ARCHS"
6607 cat >>"$QTCONFIG.tmp" <<EOF
6608 #configuration
6609 CONFIG += $QTCONFIG_CONFIG
6610 QT_ARCH = $CFG_ARCH
6611 QT_EDITION = $Edition
6612 QT_CONFIG += $QT_CONFIG
6614 #versioning
6615 QT_VERSION = $QT_VERSION
6616 QT_MAJOR_VERSION = $QT_MAJOR_VERSION
6617 QT_MINOR_VERSION = $QT_MINOR_VERSION
6618 QT_PATCH_VERSION = $QT_PATCH_VERSION
6620 #namespaces
6621 QT_LIBINFIX = $QT_LIBINFIX
6622 QT_NAMESPACE = $QT_NAMESPACE
6623 QT_NAMESPACE_MAC_CRC = $QT_NAMESPACE_MAC_CRC
6626 if [ "$CFG_RPATH" = "yes" ]; then
6627 echo "QMAKE_RPATHDIR += \"$QT_INSTALL_LIBS\"" >> "$QTCONFIG.tmp"
6629 if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
6630 echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" >> "$QTCONFIG.tmp"
6631 echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
6632 echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
6634 # replace qconfig.pri if it differs from the newly created temp file
6635 if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
6636 rm -f "$QTCONFIG.tmp"
6637 else
6638 mv -f "$QTCONFIG.tmp" "$QTCONFIG"
6641 #-------------------------------------------------------------------------------
6642 # save configuration into .qmake.cache
6643 #-------------------------------------------------------------------------------
6645 CACHEFILE="$outpath/.qmake.cache"
6646 [ -f "$CACHEFILE.tmp" ] && rm -f "$CACHEFILE.tmp"
6647 cat >>"$CACHEFILE.tmp" <<EOF
6648 CONFIG += $QMAKE_CONFIG dylib create_prl link_prl depend_includepath fix_output_dirs QTDIR_build
6649 QT_SOURCE_TREE = \$\$quote($relpath)
6650 QT_BUILD_TREE = \$\$quote($outpath)
6651 QT_BUILD_PARTS = $CFG_BUILD_PARTS
6652 QMAKE_ABSOLUTE_SOURCE_ROOT = \$\$QT_SOURCE_TREE
6653 QMAKE_MOC_SRC = \$\$QT_BUILD_TREE/src/moc
6655 #local paths that cannot be queried from the QT_INSTALL_* properties while building QTDIR
6656 QMAKE_MOC = \$\$QT_BUILD_TREE/bin/moc
6657 QMAKE_UIC = \$\$QT_BUILD_TREE/bin/uic
6658 QMAKE_UIC3 = \$\$QT_BUILD_TREE/bin/uic3
6659 QMAKE_RCC = \$\$QT_BUILD_TREE/bin/rcc
6660 QMAKE_QDBUSXML2CPP = \$\$QT_BUILD_TREE/bin/qdbusxml2cpp
6661 QMAKE_INCDIR_QT = \$\$QT_BUILD_TREE/include
6662 QMAKE_LIBDIR_QT = \$\$QT_BUILD_TREE/lib
6666 if [ -n "$QT_CFLAGS_PSQL" ]; then
6667 echo "QT_CFLAGS_PSQL = $QT_CFLAGS_PSQL" >> "$CACHEFILE.tmp"
6669 if [ -n "$QT_LFLAGS_PSQL" ]; then
6670 echo "QT_LFLAGS_PSQL = $QT_LFLAGS_PSQL" >> "$CACHEFILE.tmp"
6672 if [ -n "$QT_CFLAGS_MYSQL" ]; then
6673 echo "QT_CFLAGS_MYSQL = $QT_CFLAGS_MYSQL" >> "$CACHEFILE.tmp"
6675 if [ -n "$QT_LFLAGS_MYSQL" ]; then
6676 echo "QT_LFLAGS_MYSQL = $QT_LFLAGS_MYSQL" >> "$CACHEFILE.tmp"
6678 if [ -n "$QT_CFLAGS_SQLITE" ]; then
6679 echo "QT_CFLAGS_SQLITE = $QT_CFLAGS_SQLITE" >> "$CACHEFILE.tmp"
6681 if [ -n "$QT_LFLAGS_SQLITE" ]; then
6682 echo "QT_LFLAGS_SQLITE = $QT_LFLAGS_SQLITE" >> "$CACHEFILE.tmp"
6685 if [ "$QT_EDITION" != "QT_EDITION_OPENSOURCE" ]; then
6686 echo "DEFINES *= QT_EDITION=QT_EDITION_DESKTOP" >> "$CACHEFILE.tmp"
6689 #dump in the OPENSSL_LIBS info
6690 if [ '!' -z "$OPENSSL_LIBS" ]; then
6691 echo "OPENSSL_LIBS = $OPENSSL_LIBS" >> "$CACHEFILE.tmp"
6692 elif [ "$CFG_OPENSSL" = "linked" ]; then
6693 echo "OPENSSL_LIBS = -lssl -lcrypto" >> "$CACHEFILE.tmp"
6696 #dump in the SDK info
6697 if [ '!' -z "$CFG_SDK" ]; then
6698 echo "QMAKE_MAC_SDK = $CFG_SDK" >> "$CACHEFILE.tmp"
6701 # mac gcc -Xarch support
6702 if [ "$CFG_MAC_XARCH" = "no" ]; then
6703 echo "QMAKE_MAC_XARCH = no" >> "$CACHEFILE.tmp"
6706 #dump the qmake spec
6707 if [ -d "$outpath/mkspecs/$XPLATFORM" ]; then
6708 echo "QMAKESPEC = \$\$QT_BUILD_TREE/mkspecs/$XPLATFORM" >> "$CACHEFILE.tmp"
6709 else
6710 echo "QMAKESPEC = $XPLATFORM" >> "$CACHEFILE.tmp"
6713 # cmdline args
6714 cat "$QMAKE_VARS_FILE" >> "$CACHEFILE.tmp"
6715 rm -f "$QMAKE_VARS_FILE" 2>/dev/null
6717 # incrementals
6718 INCREMENTAL=""
6719 [ "$CFG_INCREMENTAL" = "auto" ] && "$WHICH" p4 >/dev/null 2>&1 && [ "$CFG_DEV" = "yes" ] && CFG_INCREMENTAL="yes"
6720 if [ "$CFG_INCREMENTAL" = "yes" ]; then
6721 find "$relpath" -perm u+w -mtime -3 | grep 'cpp$' | while read f; do
6722 # don't need to worry about generated files
6723 [ -r `echo $f | sed "s,cpp$,ui,"` ] && continue
6724 basename "$f" | grep '^moc_' >/dev/null 2>&1 && continue
6725 # done
6726 INCREMENTAL="$INCREMENTAL `basename \"$f\" | sed 's,.cpp,.o,'`"
6727 done
6728 [ '!' -z "$INCREMENTAL" ] && echo "QMAKE_INCREMENTAL += $INCREMENTAL" >> "$CACHEFILE.tmp"
6729 [ -r "$outpath/.qmake.incremental" ] && echo "include($outpath/.qmake.incremental)" >> "$CACHEFILE.tmp"
6732 # replace .qmake.cache if it differs from the newly created temp file
6733 if cmp -s "$CACHEFILE.tmp" "$CACHEFILE"; then
6734 rm -f "$CACHEFILE.tmp"
6735 else
6736 mv -f "$CACHEFILE.tmp" "$CACHEFILE"
6739 #-------------------------------------------------------------------------------
6740 # give feedback on configuration
6741 #-------------------------------------------------------------------------------
6743 case "$COMPILER" in
6744 g++*)
6745 if [ "$CFG_EXCEPTIONS" != "no" ]; then
6746 cat <<EOF
6748 This target is using the GNU C++ compiler ($PLATFORM).
6750 Recent versions of this compiler automatically include code for
6751 exceptions, which increase both the size of the Qt libraries and
6752 the amount of memory taken by your applications.
6754 You may choose to re-run `basename $0` with the -no-exceptions
6755 option to compile Qt without exceptions. This is completely binary
6756 compatible, and existing applications will continue to work.
6761 cc*)
6762 case "$PLATFORM" in
6763 irix-cc*)
6764 if [ "$CFG_EXCEPTIONS" != "no" ]; then
6765 cat <<EOF
6767 This target is using the MIPSpro C++ compiler ($PLATFORM).
6769 You may choose to re-run `basename $0` with the -no-exceptions
6770 option to compile Qt without exceptions. This will make the
6771 size of the Qt library smaller and reduce the amount of memory
6772 taken by your applications.
6777 *) ;;
6778 esac
6780 *) ;;
6781 esac
6783 if [ "$PLATFORM_MAC" = "yes" ] && [ "$CFG_MAC_DWARF2" == "no" ] && [ "$CFG_WEBKIT" = "yes" ] && [ "$CFG_DEBUG_RELEASE" == "yes" ]; then
6784 cat <<EOF
6785 WARNING: DWARF2 debug symbols are not enabled. Linking webkit
6786 in debug mode will run out of memory on systems with 2GB or less.
6787 Install Xcode 2.4.1 or higher to enable DWARF2, or configure with
6788 -no-webkit or -release to skip webkit debug.
6792 echo
6793 if [ "$XPLATFORM" = "$PLATFORM" ]; then
6794 echo "Build type: $PLATFORM"
6795 else
6796 echo "Building on: $PLATFORM"
6797 echo "Building for: $XPLATFORM"
6800 if [ "$PLATFORM_MAC" = "yes" ]; then
6801 echo "Architecture: $CFG_ARCH ($CFG_MAC_ARCHS )"
6802 else
6803 echo "Architecture: $CFG_ARCH"
6806 if [ "$PLATFORM_QWS" = "yes" ]; then
6807 echo "Host architecture: $CFG_HOST_ARCH"
6810 if [ "$PLATFORM_MAC" = "yes" ]; then
6811 if [ "$CFG_MAC_COCOA" = "yes" ]; then
6812 if [ "$CFG_MAC_CARBON" = "yes" ]; then
6813 echo "Using framework: Carbon for 32-bit, Cocoa for 64-bit"
6814 else
6815 echo "Using framework: Cocoa"
6817 else
6818 echo "Using framework: Carbon"
6822 if [ -n "$PLATFORM_NOTES" ]; then
6823 echo "Platform notes:"
6824 echo "$PLATFORM_NOTES"
6825 else
6826 echo
6829 if [ "$OPT_VERBOSE" = "yes" ]; then
6830 if echo '\c' | grep '\c' >/dev/null; then
6831 echo -n "qmake vars .......... "
6832 else
6833 echo "qmake vars .......... \c"
6835 cat "$QMAKE_VARS_FILE" | tr '\n' ' '
6836 echo "qmake switches ...... $QMAKE_SWITCHES"
6839 [ "$CFG_INCREMENTAL" = "yes" ] && [ '!' -z "$INCREMENTAL" ] && echo "Incremental ......... $INCREMENTAL"
6840 echo "Build ............... $CFG_BUILD_PARTS"
6841 echo "Configuration ....... $QMAKE_CONFIG $QT_CONFIG"
6842 if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
6843 echo "Debug ............... yes (combined)"
6844 if [ "$CFG_DEBUG" = "yes" ]; then
6845 echo "Default Link ........ debug"
6846 else
6847 echo "Default Link ........ release"
6849 else
6850 echo "Debug ............... $CFG_DEBUG"
6852 echo "Qt 3 compatibility .. $CFG_QT3SUPPORT"
6853 [ "$CFG_DBUS" = "no" ] && echo "QtDBus module ....... no"
6854 [ "$CFG_DBUS" = "yes" ] && echo "QtDBus module ....... yes (run-time)"
6855 [ "$CFG_DBUS" = "linked" ] && echo "QtDBus module ....... yes (linked)"
6856 echo "QtScriptTools module $CFG_SCRIPTTOOLS"
6857 echo "QtXmlPatterns module $CFG_XMLPATTERNS"
6858 echo "Phonon module ....... $CFG_PHONON"
6859 echo "SVG module .......... $CFG_SVG"
6860 echo "WebKit module ....... $CFG_WEBKIT"
6861 echo "STL support ......... $CFG_STL"
6862 echo "PCH support ......... $CFG_PRECOMPILE"
6863 echo "MMX/3DNOW/SSE/SSE2.. ${CFG_MMX}/${CFG_3DNOW}/${CFG_SSE}/${CFG_SSE2}"
6864 if [ "${CFG_ARCH}" = "arm" ]; then
6865 echo "iWMMXt support ...... ${CFG_IWMMXT}"
6867 [ "${PLATFORM_QWS}" != "yes" ] && echo "Graphics System ..... $CFG_GRAPHICS_SYSTEM"
6868 echo "IPv6 support ........ $CFG_IPV6"
6869 echo "IPv6 ifname support . $CFG_IPV6IFNAME"
6870 echo "getaddrinfo support . $CFG_GETADDRINFO"
6871 echo "getifaddrs support .. $CFG_GETIFADDRS"
6872 echo "Accessibility ....... $CFG_ACCESSIBILITY"
6873 echo "NIS support ......... $CFG_NIS"
6874 echo "CUPS support ........ $CFG_CUPS"
6875 echo "Iconv support ....... $CFG_ICONV"
6876 echo "Glib support ........ $CFG_GLIB"
6877 echo "GStreamer support ... $CFG_GSTREAMER"
6878 echo "Large File support .. $CFG_LARGEFILE"
6879 echo "GIF support ......... $CFG_GIF"
6880 if [ "$CFG_TIFF" = "no" ]; then
6881 echo "TIFF support ........ $CFG_TIFF"
6882 else
6883 echo "TIFF support ........ $CFG_TIFF ($CFG_LIBTIFF)"
6885 if [ "$CFG_JPEG" = "no" ]; then
6886 echo "JPEG support ........ $CFG_JPEG"
6887 else
6888 echo "JPEG support ........ $CFG_JPEG ($CFG_LIBJPEG)"
6890 if [ "$CFG_PNG" = "no" ]; then
6891 echo "PNG support ......... $CFG_PNG"
6892 else
6893 echo "PNG support ......... $CFG_PNG ($CFG_LIBPNG)"
6895 if [ "$CFG_MNG" = "no" ]; then
6896 echo "MNG support ......... $CFG_MNG"
6897 else
6898 echo "MNG support ......... $CFG_MNG ($CFG_LIBMNG)"
6900 echo "zlib support ........ $CFG_ZLIB"
6901 echo "Session management .. $CFG_SM"
6902 if [ "$PLATFORM_QWS" = "yes" ]; then
6903 echo "Embedded support .... $CFG_EMBEDDED"
6904 if [ "$CFG_QWS_FREETYPE" = "auto" ]; then
6905 echo "Freetype2 support ... $CFG_QWS_FREETYPE ($CFG_LIBFREETYPE)"
6906 else
6907 echo "Freetype2 support ... $CFG_QWS_FREETYPE"
6909 # Normalize the decoration output first
6910 CFG_GFX_ON=`echo ${CFG_GFX_ON}`
6911 CFG_GFX_PLUGIN=`echo ${CFG_GFX_PLUGIN}`
6912 echo "Graphics (qt) ....... ${CFG_GFX_ON}"
6913 echo "Graphics (plugin) ... ${CFG_GFX_PLUGIN}"
6914 CFG_DECORATION_ON=`echo ${CFG_DECORATION_ON}`
6915 CFG_DECORATION_PLUGIN=`echo ${CFG_DECORATION_PLUGIN}`
6916 echo "Decorations (qt) .... $CFG_DECORATION_ON"
6917 echo "Decorations (plugin) $CFG_DECORATION_PLUGIN"
6918 CFG_KBD_ON=`echo ${CFG_KBD_ON}`
6919 CFG_KBD_PLUGIN=`echo ${CFG_KBD_PLUGIN}`
6920 echo "Keyboard driver (qt). ${CFG_KBD_ON}"
6921 echo "Keyboard driver (plugin) ${CFG_KBD_PLUGIN}"
6922 CFG_MOUSE_ON=`echo ${CFG_MOUSE_ON}`
6923 CFG_MOUSE_PLUGIN=`echo ${CFG_MOUSE_PLUGIN}`
6924 echo "Mouse driver (qt) ... $CFG_MOUSE_ON"
6925 echo "Mouse driver (plugin) $CFG_MOUSE_PLUGIN"
6927 if [ "$CFG_OPENGL" = "desktop" ]; then
6928 echo "OpenGL support ...... yes (Desktop OpenGL)"
6929 elif [ "$CFG_OPENGL" = "es1" ]; then
6930 echo "OpenGL support ...... yes (OpenGL ES 1.x Common profile)"
6931 elif [ "$CFG_OPENGL" = "es1cl" ]; then
6932 echo "OpenGL support ...... yes (OpenGL ES 1.x Common Lite profile)"
6933 elif [ "$CFG_OPENGL" = "es2" ]; then
6934 echo "OpenGL support ...... yes (OpenGL ES 2.x)"
6935 else
6936 echo "OpenGL support ...... no"
6938 if [ "$PLATFORM_X11" = "yes" ]; then
6939 echo "NAS sound support ... $CFG_NAS"
6940 echo "XShape support ...... $CFG_XSHAPE"
6941 echo "Xinerama support .... $CFG_XINERAMA"
6942 echo "Xcursor support ..... $CFG_XCURSOR"
6943 echo "Xfixes support ...... $CFG_XFIXES"
6944 echo "Xrandr support ...... $CFG_XRANDR"
6945 echo "Xrender support ..... $CFG_XRENDER"
6946 echo "Xi support .......... $CFG_XINPUT"
6947 echo "MIT-SHM support ..... $CFG_MITSHM"
6948 echo "FontConfig support .. $CFG_FONTCONFIG"
6949 echo "XKB Support ......... $CFG_XKB"
6950 echo "immodule support .... $CFG_IM"
6951 echo "GTK theme support ... $CFG_QGTKSTYLE"
6953 [ "$CFG_SQL_mysql" != "no" ] && echo "MySQL support ....... $CFG_SQL_mysql"
6954 [ "$CFG_SQL_psql" != "no" ] && echo "PostgreSQL support .. $CFG_SQL_psql"
6955 [ "$CFG_SQL_odbc" != "no" ] && echo "ODBC support ........ $CFG_SQL_odbc"
6956 [ "$CFG_SQL_oci" != "no" ] && echo "OCI support ......... $CFG_SQL_oci"
6957 [ "$CFG_SQL_tds" != "no" ] && echo "TDS support ......... $CFG_SQL_tds"
6958 [ "$CFG_SQL_db2" != "no" ] && echo "DB2 support ......... $CFG_SQL_db2"
6959 [ "$CFG_SQL_ibase" != "no" ] && echo "InterBase support ... $CFG_SQL_ibase"
6960 [ "$CFG_SQL_sqlite2" != "no" ] && echo "SQLite 2 support .... $CFG_SQL_sqlite2"
6961 [ "$CFG_SQL_sqlite" != "no" ] && echo "SQLite support ...... $CFG_SQL_sqlite ($CFG_SQLITE)"
6963 OPENSSL_LINKAGE=""
6964 if [ "$CFG_OPENSSL" = "yes" ]; then
6965 OPENSSL_LINKAGE="(run-time)"
6966 elif [ "$CFG_OPENSSL" = "linked" ]; then
6967 OPENSSL_LINKAGE="(linked)"
6969 echo "OpenSSL support ..... $CFG_OPENSSL $OPENSSL_LINKAGE"
6971 [ "$CFG_PTMALLOC" != "no" ] && echo "Use ptmalloc ........ $CFG_PTMALLOC"
6973 # complain about not being able to use dynamic plugins if we are using a static build
6974 if [ "$CFG_SHARED" = "no" ]; then
6975 echo
6976 echo "WARNING: Using static linking will disable the use of dynamically"
6977 echo "loaded plugins. Make sure to import all needed static plugins,"
6978 echo "or compile needed modules into the library."
6979 echo
6981 if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then
6982 echo
6983 echo "NOTE: When linking against OpenSSL, you can override the default"
6984 echo "library names through OPENSSL_LIBS."
6985 echo "For example:"
6986 echo " ./configure -openssl-linked OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto'"
6987 echo
6989 if [ "$PLATFORM_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then
6990 echo
6991 echo "NOTE: Mac OS X frameworks implicitly build debug and release Qt libraries."
6992 echo
6994 echo
6996 sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'`
6997 PROCS=1
6998 EXEC=""
7001 #-------------------------------------------------------------------------------
7002 # build makefiles based on the configuration
7003 #-------------------------------------------------------------------------------
7005 echo "Finding project files. Please wait..."
7006 "$outpath/bin/qmake" -prl -r "${relpath}/projects.pro"
7007 if [ -f "${relpath}/projects.pro" ]; then
7008 mkfile="${outpath}/Makefile"
7009 [ -f "$mkfile" ] && chmod +w "$mkfile"
7010 QTDIR="$outpath" "$outpath/bin/qmake" -spec "$XQMAKESPEC" "${relpath}/projects.pro" -o "$mkfile"
7013 # .projects -> projects to process
7014 # .projects.1 -> qt and moc
7015 # .projects.2 -> subdirs and libs
7016 # .projects.3 -> the rest
7017 rm -f .projects .projects.1 .projects.2 .projects.3
7019 QMAKE_PROJECTS=`find "$relpath/." -name '*.pro' -print | sed 's-/\./-/-'`
7020 if [ -z "$AWK" ]; then
7021 for p in `echo $QMAKE_PROJECTS`; do
7022 echo "$p" >> .projects
7023 done
7024 else
7025 cat >projects.awk <<EOF
7026 BEGIN {
7027 files = 0
7028 target_file = ""
7029 input_file = ""
7031 first = "./.projects.1.tmp"
7032 second = "./.projects.2.tmp"
7033 third = "./.projects.3.tmp"
7036 FNR == 1 {
7037 if ( input_file ) {
7038 if ( ! target_file )
7039 target_file = third
7040 print input_file >target_file
7043 matched_target = 0
7044 template_lib = 0
7045 input_file = FILENAME
7046 target_file = ""
7049 /^(TARGET.*=)/ {
7050 if ( \$3 == "moc" || \$3 ~ /^Qt/ ) {
7051 target_file = first
7052 matched_target = 1
7056 matched_target == 0 && /^(TEMPLATE.*=)/ {
7057 if ( \$3 == "subdirs" )
7058 target_file = second
7059 else if ( \$3 == "lib" )
7060 template_lib = 1
7061 else
7062 target_file = third
7065 matched_target == 0 && template_lib == 1 && /^(CONFIG.*=)/ {
7066 if ( \$0 ~ /plugin/ )
7067 target_file = third
7068 else
7069 target_file = second
7072 END {
7073 if ( input_file ) {
7074 if ( ! target_file )
7075 target_file = third
7076 print input_file >>target_file
7082 rm -f .projects.all
7083 for p in `echo $QMAKE_PROJECTS`; do
7084 echo "$p" >> .projects.all
7085 done
7087 # if you get errors about the length of the command line to awk, change the -l arg
7088 # to split below
7089 split -l 100 .projects.all .projects.all.
7090 for p in .projects.all.*; do
7091 "$AWK" -f projects.awk `cat $p`
7092 [ -f .projects.1.tmp ] && cat .projects.1.tmp >> .projects.1
7093 [ -f .projects.2.tmp ] && cat .projects.2.tmp >> .projects.2
7094 [ -f .projects.3.tmp ] && cat .projects.3.tmp >> .projects.3
7095 rm -f .projects.1.tmp .projects.2.tmp .projects.3.tmp $p
7096 done
7097 rm -f .projects.all* projects.awk
7099 [ -f .projects.1 ] && cat .projects.1 >>.projects
7100 [ -f .projects.2 ] && cat .projects.2 >>.projects
7101 rm -f .projects.1 .projects.2
7102 if [ -f .projects.3 ] && [ "$OPT_FAST" = "no" ]; then
7103 cat .projects.3 >>.projects
7104 rm -f .projects.3
7107 # don't sort Qt and MOC in with the other project files
7108 # also work around a segfaulting uniq(1)
7109 if [ -f .sorted.projects.2 ]; then
7110 sort .sorted.projects.2 > .sorted.projects.2.new
7111 mv -f .sorted.projects.2.new .sorted.projects.2
7112 cat .sorted.projects.2 >> .sorted.projects.1
7114 [ -f .sorted.projects.1 ] && sort .sorted.projects.1 >> .sorted.projects
7115 rm -f .sorted.projects.2 .sorted.projects.1
7117 NORM_PROJECTS=0
7118 FAST_PROJECTS=0
7119 if [ -f .projects ]; then
7120 uniq .projects >.tmp
7121 mv -f .tmp .projects
7122 NORM_PROJECTS=`cat .projects | wc -l | sed -e "s, ,,g"`
7124 if [ -f .projects.3 ]; then
7125 uniq .projects.3 >.tmp
7126 mv -f .tmp .projects.3
7127 FAST_PROJECTS=`cat .projects.3 | wc -l | sed -e "s, ,,g"`
7129 echo " `expr $NORM_PROJECTS + $FAST_PROJECTS` projects found."
7130 echo
7132 PART_ROOTS=
7133 for part in $CFG_BUILD_PARTS; do
7134 case "$part" in
7135 tools) PART_ROOTS="$PART_ROOTS tools" ;;
7136 libs) PART_ROOTS="$PART_ROOTS src" ;;
7137 examples) PART_ROOTS="$PART_ROOTS examples demos" ;;
7138 *) ;;
7139 esac
7140 done
7142 if [ "$CFG_DEV" = "yes" ]; then
7143 PART_ROOTS="$PART_ROOTS tests"
7146 echo "Creating makefiles. Please wait..."
7147 for file in .projects .projects.3; do
7148 [ '!' -f "$file" ] && continue
7149 for a in `cat $file`; do
7150 IN_ROOT=no
7151 for r in $PART_ROOTS; do
7152 if echo "$a" | grep "^$r" >/dev/null 2>&1 || echo "$a" | grep "^$relpath/$r" >/dev/null 2>&1; then
7153 IN_ROOT=yes
7154 break
7156 done
7157 [ "$IN_ROOT" = "no" ] && continue
7159 case $a in
7160 *winmain/winmain.pro) continue ;;
7161 */qmake/qmake.pro) continue ;;
7162 *tools/bootstrap*|*tools/moc*|*tools/rcc*|*tools/uic*) SPEC=$QMAKESPEC ;;
7163 *) SPEC=$XQMAKESPEC ;;
7164 esac
7165 dir=`dirname $a | sed -e "s;$sepath;.;g"`
7166 test -d "$dir" || mkdir -p "$dir"
7167 OUTDIR="$outpath/$dir"
7168 if [ -f "${OUTDIR}/Makefile" ] && [ "$OPT_FAST" = "yes" ]; then
7169 # fast configure - the makefile exists, skip it
7170 # since the makefile exists, it was generated by qmake, which means we
7171 # can skip it, since qmake has a rule to regenerate the makefile if the .pro
7172 # file changes...
7173 [ "$OPT_VERBOSE" = "yes" ] && echo " skipping $a"
7174 continue;
7176 QMAKE_SPEC_ARGS="-spec $SPEC"
7177 if echo '\c' | grep '\c' >/dev/null; then
7178 echo -n " for $a"
7179 else
7180 echo " for $a\c"
7183 QMAKE="$outpath/bin/qmake"
7184 QMAKE_ARGS="$QMAKE_SWITCHES $QMAKE_SPEC_ARGS"
7185 if [ "$file" = ".projects.3" ]; then
7186 if echo '\c' | grep '\c' >/dev/null; then
7187 echo -n " (fast)"
7188 else
7189 echo " (fast)\c"
7191 echo
7193 cat >"${OUTDIR}/Makefile" <<EOF
7194 # ${OUTDIR}/Makefile: generated by configure
7196 # WARNING: This makefile will be replaced with a real makefile.
7197 # All changes made to this file will be lost.
7199 [ "$CFG_DEBUG_RELEASE" = "no" ] && echo "first_target: first" >>${OUTDIR}/Makefile
7201 cat >>"${OUTDIR}/Makefile" <<EOF
7202 QMAKE = "$QMAKE"
7203 all clean install qmake first Makefile: FORCE
7204 \$(QMAKE) $QMAKE_ARGS -o "$OUTDIR" "$a"
7205 cd "$OUTDIR"
7206 \$(MAKE) \$@
7208 FORCE:
7211 else
7212 if [ "$OPT_VERBOSE" = "yes" ]; then
7213 echo " (`basename $SPEC`)"
7214 echo "$QMAKE" $QMAKE_ARGS -o "$OUTDIR" "$a"
7215 else
7216 echo
7219 [ -f "${OUTDIR}/Makefile" ] && chmod +w "${OUTDIR}/Makefile"
7220 QTDIR="$outpath" "$QMAKE" $QMAKE_ARGS -o "$OUTDIR" "$a"
7222 done
7223 done
7224 rm -f .projects .projects.3
7226 #-------------------------------------------------------------------------------
7227 # XShape is important, DnD in the Designer doens't work without it
7228 #-------------------------------------------------------------------------------
7229 if [ "$PLATFORM_X11" = "yes" ] && [ "$CFG_XSHAPE" = "no" ]; then
7230 cat <<EOF
7232 NOTICE: Qt will not be built with XShape support.
7234 As a result, drag-and-drop in the Qt Designer will NOT
7235 work. We recommend that you enable XShape support by passing
7236 the -xshape switch to $0.
7240 #-------------------------------------------------------------------------------
7241 # check for platforms that we don't yet know about
7242 #-------------------------------------------------------------------------------
7243 if [ "$CFG_ARCH" = "generic" ]; then
7244 cat <<EOF
7246 NOTICE: Atomic operations are not yet supported for this
7247 architecture.
7249 Qt will use the 'generic' architecture instead, which uses a
7250 single pthread_mutex_t to protect all atomic operations. This
7251 implementation is the slow (but safe) fallback implementation
7252 for architectures Qt does not yet support.
7256 #-------------------------------------------------------------------------------
7257 # check if the user passed the -no-zlib option, which is no longer supported
7258 #-------------------------------------------------------------------------------
7259 if [ -n "$ZLIB_FORCED" ]; then
7260 which_zlib="supplied"
7261 if [ "$CFG_ZLIB" = "system" ]; then
7262 which_zlib="system"
7265 cat <<EOF
7267 NOTICE: The -no-zlib option was supplied but is no longer
7268 supported.
7270 Qt now requires zlib support in all builds, so the -no-zlib
7271 option was ignored. Qt will be built using the $which_zlib
7272 zlib.
7276 #-------------------------------------------------------------------------------
7277 # finally save the executed command to another script
7278 #-------------------------------------------------------------------------------
7279 if [ `basename $0` != "config.status" ]; then
7280 CONFIG_STATUS="$relpath/$relconf $OPT_CMDLINE"
7282 # add the system variables
7283 for varname in $SYSTEM_VARIABLES; do
7284 cmd=`echo \
7285 'if [ -n "\$'${varname}'" ]; then
7286 CONFIG_STATUS="'${varname}'='"'\\\$${varname}'"' \$CONFIG_STATUS"
7287 fi'`
7288 eval "$cmd"
7289 done
7291 echo "$CONFIG_STATUS" | grep '\-confirm\-license' >/dev/null 2>&1 || CONFIG_STATUS="$CONFIG_STATUS -confirm-license"
7293 [ -f "$outpath/config.status" ] && rm -f "$outpath/config.status"
7294 echo "#!/bin/sh" > "$outpath/config.status"
7295 echo "if [ \"\$#\" -gt 0 ]; then" >> "$outpath/config.status"
7296 echo " $CONFIG_STATUS \"\$@\"" >> "$outpath/config.status"
7297 echo "else" >> "$outpath/config.status"
7298 echo " $CONFIG_STATUS" >> "$outpath/config.status"
7299 echo "fi" >> "$outpath/config.status"
7300 chmod +x "$outpath/config.status"
7303 if [ -n "$RPATH_MESSAGE" ]; then
7304 echo
7305 echo "$RPATH_MESSAGE"
7308 MAKE=`basename $MAKE`
7309 echo
7310 echo Qt is now configured for building. Just run \'$MAKE\'.
7311 if [ "$relpath" = "$QT_INSTALL_PREFIX" ]; then
7312 echo Once everything is built, Qt is installed.
7313 echo You should not run \'$MAKE install\'.
7314 else
7315 echo Once everything is built, you must run \'$MAKE install\'.
7316 echo Qt will be installed into $QT_INSTALL_PREFIX
7318 echo
7319 echo To reconfigure, run \'$MAKE confclean\' and \'configure\'.
7320 echo