source: trunk/configure@ 315

Last change on this file since 315 was 2, checked in by Dmitry A. Kuminov, 16 years ago

Initially imported qt-all-opensource-src-4.5.1 from Trolltech.

  • Property svn:executable set to *
File size: 247.0 KB
Line 
1#!/bin/sh
2#
3# Configures to build the Qt library
4#
5# Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
6# Contact: Qt Software Information ([email protected])
7#
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.
10#
11
12#-------------------------------------------------------------------------------
13# script initialization
14#-------------------------------------------------------------------------------
15
16# the name of this script
17relconf=`basename $0`
18# the directory of this script is the "source tree"
19relpath=`dirname $0`
20relpath=`(cd "$relpath"; /bin/pwd)`
21# the current directory is the "build tree" or "object tree"
22outpath=`/bin/pwd`
23
24#license file location
25LICENSE_FILE="$QT_LICENSE_FILE"
26[ -z "$LICENSE_FILE" ] && LICENSE_FILE="$HOME/.qt-license"
27if [ -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"
30fi
31
32# later cache the command line in config.status
33OPT_CMDLINE=`echo $@ | sed "s,-v ,,g; s,-v$,,g"`
34
35# initialize global variables
36QMAKE_SWITCHES=
37QMAKE_VARS=
38QMAKE_CONFIG=
39QTCONFIG_CONFIG=
40QT_CONFIG=
41SUPPORTED=
42QMAKE_VARS_FILE=.qmake.vars
43
44:> "$QMAKE_VARS_FILE"
45
46#-------------------------------------------------------------------------------
47# utility functions
48#-------------------------------------------------------------------------------
49
50# Adds a new qmake variable to the cache
51# Usage: QMakeVar mode varname contents
52# where mode is one of: set, add, del
53QMakeVar()
54{
55 case "$1" in
56 set)
57 eq="="
58 ;;
59 add)
60 eq="+="
61 ;;
62 del)
63 eq="-="
64 ;;
65 *)
66 echo >&2 "BUG: wrong command to QMakeVar: $1"
67 ;;
68 esac
69
70 echo "$2" "$eq" "$3" >> "$QMAKE_VARS_FILE"
71}
72
73# relies on $QMAKESPEC being set correctly. parses include statements in
74# qmake.conf and prints out the expanded file
75getQMakeConf()
76{
77 tmpSPEC="$QMAKESPEC"
78 if [ -n "$1" ]; then
79 tmpSPEC="$1"
80 fi
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
88}
89{ print }' "$tmpSPEC/qmake.conf"
90}
91
92#-------------------------------------------------------------------------------
93# operating system detection
94#-------------------------------------------------------------------------------
95
96# need that throughout the script
97UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
98UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
99UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
100UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
101
102
103#-------------------------------------------------------------------------------
104# window system detection
105#-------------------------------------------------------------------------------
106
107PLATFORM_X11=no
108PLATFORM_MAC=no
109PLATFORM_QWS=no
110
111if [ -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
117elif [ -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
128 fi
129fi
130
131#-----------------------------------------------------------------------------
132# Qt version detection
133#-----------------------------------------------------------------------------
134QT_VERSION=`grep '^# *define *QT_VERSION_STR' "$relpath"/src/corelib/global/qglobal.h`
135QT_MAJOR_VERSION=
136QT_MINOR_VERSION=0
137QT_PATCH_VERSION=0
138if [ -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"
147 fi
148fi
149if [ -z "$QT_MAJOR_VERSION" ]; then
150 echo "Cannot process version from qglobal.h: $QT_VERSION"
151 echo "Cannot proceed."
152 exit 1
153fi
154
155QT_PACKAGEDATE=`grep '^# *define *QT_PACKAGEDATE_STR' "$relpath"/src/corelib/global/qglobal.h | sed -e 's,^# *define *QT_PACKAGEDATE_STR *"\([^ ]*\)"$,\1,' -e s,-,,g`
156if [ -z "$QT_PACKAGEDATE" ]; then
157 echo "Unable to determine package date from qglobal.h: '$QT_PACKAGEDATE'"
158 echo "Cannot proceed"
159 exit 1
160fi
161
162#-------------------------------------------------------------------------------
163# check the license
164#-------------------------------------------------------------------------------
165COMMERCIAL_USER=ask
166CFG_DEV=no
167CFG_NOKIA=no
168CFG_EMBEDDED=no
169EditionString=Commercial
170
171earlyArgParse()
172{
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
182 ;;
183 --disable-*)
184 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
185 VAL=no
186 ;;
187 --*=*)
188 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
189 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
190 ;;
191 --no-*)
192 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
193 VAL=no
194 ;;
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
203 fi
204 ;;
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
212 fi
213 ;;
214 --*)
215 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
216 VAL=yes
217 ;;
218 -*)
219 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
220 VAL="unknown"
221 ;;
222 *)
223 UNKNOWN_ARG=yes
224 ;;
225 esac
226 if [ "$UNKNOWN_ARG" = "yes" ]; then
227 shift
228 continue
229 fi
230 shift
231
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
241 fi
242 else
243 echo "No license exists to enable Qt for Embedded Linux. Disabling."
244 CFG_EMBEDDED=no
245 fi
246 ;;
247 developer-build)
248 CFG_DEV="yes"
249 ;;
250 nokia-developer)
251 CFG_DEV="yes"
252 CFG_NOKIA="yes"
253 COMMERCIAL_USER="no"
254 ;;
255 commercial)
256 COMMERCIAL_USER="yes"
257 ;;
258 opensource)
259 COMMERCIAL_USER="no"
260 ;;
261 *)
262 UNKNOWN_OPT=yes
263 ;;
264 esac
265 done
266}
267
268earlyArgParse "$@"
269
270if [ "$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 else [ "$commercial" = "o" ];
283 COMMERCIAL_USER="no"
284 break
285 fi
286 done
287fi
288
289if [ "$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
295elif [ -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"
302elif [ $COMMERCIAL_USER = "yes" ]; then
303 # one of commercial editions
304 [ "$PLATFORM_MAC" = "maybe" ] && PLATFORM_MAC=yes
305 [ "$PLATFORM_QWS" = "maybe" ] && PLATFORM_QWS=yes
306
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
318 fi
319 if [ -z "$Licensee" ]; then
320 echo
321 echo "Invalid license key. Please check the license key."
322 exit 1
323 fi
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"
331 fi
332 read LicenseKeyExt
333 Licensee="Unknown user"
334 fi
335 fi
336
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
345 fi
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`
350
351 # determine which edition we are licensed to use
352 case "$LicenseTypeCode" in
353 F4M)
354 LicenseType="Commercial"
355 case $ProductCode in
356 F)
357 Edition="Universal"
358 QT_EDITION="QT_EDITION_UNIVERSAL"
359 ;;
360 B)
361 Edition="FullFramework"
362 EditionString="Full Framework"
363 QT_EDITION="QT_EDITION_DESKTOP"
364 ;;
365 L)
366 Edition="GUIFramework"
367 EditionString="GUI Framework"
368 QT_EDITION="QT_EDITION_DESKTOPLIGHT"
369 ;;
370 esac
371 ;;
372 Z4M|R4M|Q4M)
373 LicenseType="Evaluation"
374 case $ProductCode in
375 B)
376 Edition="Evaluation"
377 QT_EDITION="QT_EDITION_EVALUATION"
378 ;;
379 esac
380 ;;
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
386 fi
387
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"
398 ;;
399 *)
400 echo
401 echo "You are not licensed for Qt for Embedded Linux."
402 echo
403 echo "Please contact [email protected] 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
407 ;;
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"
414 ;;
415 3|6|8|A|D|H|J|K|P|Q|S|V)
416 # Embedded no-deploy
417 LICENSE_EXTENSION="-EMBEDDED"
418 ;;
419 *)
420 echo
421 echo "You are not licensed for the Qt/Mac platform."
422 echo
423 echo "Please contact [email protected] to upgrade your license"
424 echo "to include the Qt/Mac platform."
425 exit 1
426 ;;
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"
433 ;;
434 6|8|9|A|B|C|G|H|K|P|U|W)
435 # Embedded no-deploy
436 LICENSE_EXTENSION="-EMBEDDED"
437 ;;
438 *)
439 echo
440 echo "You are not licensed for the Qt/X11 platform."
441 echo
442 echo "Please contact [email protected] 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
446 ;;
447 esac
448 fi
449
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
457 ;;
458 *TECHNOLOGY?PREVIEW*)
459 Edition=Preview
460 ;;
461 *EVALUATION*)
462 Edition=Evaluation
463 ;;
464 *)
465 echo >&2 "Invalid license files; cannot continue"
466 exit 1
467 ;;
468 esac
469 Licensee="$Edition"
470 EditionString="$Edition"
471 QT_EDITION="QT_EDITION_DESKTOP"
472 fi
473
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"
480 ;;
481 Evaluation)
482 cp -f "$relpath/.LICENSE-EVALUATION-US" "$outpath/LICENSE"
483 ;;
484 esac
485 ;;
486 2|5)
487 # non-US
488 case "$LicenseType" in
489 Commercial)
490 cp -f "$relpath/.LICENSE${LICENSE_EXTENSION}" "$outpath/LICENSE"
491 ;;
492 Evaluation)
493 cp -f "$relpath/.LICENSE-EVALUATION" "$outpath/LICENSE"
494 ;;
495 esac
496 ;;
497 *)
498 echo
499 echo "Invalid license key. Please check the license key."
500 exit 1
501 ;;
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
511 fi
512elif [ $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"
519fi
520
521#-------------------------------------------------------------------------------
522# initalize variables
523#-------------------------------------------------------------------------------
524
525SYSTEM_VARIABLES="CC CXX CFLAGS CXXFLAGS LDFLAGS"
526for 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"
531 fi
532 cmd=`echo \
533'if [ -n "\$'${varname}'" ]; then
534 QMakeVar set QMAKE_'${qmakevarname}' "\$'${varname}'"
535fi'`
536 eval "$cmd"
537done
538# Use CC/CXX to run config.tests
539mkdir -p "$outpath/config.tests"
540rm -f "$outpath/config.tests/.qmake.cache"
541cp "$QMAKE_VARS_FILE" "$outpath/config.tests/.qmake.cache"
542
543QMakeVar add styles "cde mac motif plastique cleanlooks windows"
544QMakeVar add decorations "default windows styled"
545QMakeVar add gfx-drivers "linuxfb"
546QMakeVar add kbd-drivers "tty"
547QMakeVar add mouse-drivers "pc linuxtp"
548
549if [ "$CFG_DEV" = "yes" ]; then
550 QMakeVar add kbd-drivers "um"
551fi
552
553# QTDIR may be set and point to an old or system-wide Qt installation
554unset QTDIR
555
556# the minimum version of libdbus-1 that we require:
557MIN_DBUS_1_VERSION=0.62
558
559# initalize internal variables
560CFG_CONFIGURE_EXIT_ON_ERROR=yes
561CFG_PROFILE=no
562CFG_EXCEPTIONS=unspecified
563CFG_SCRIPTTOOLS=auto # (yes|no|auto)
564CFG_XMLPATTERNS=auto # (yes|no|auto)
565CFG_INCREMENTAL=auto
566CFG_QCONFIG=full
567CFG_DEBUG=auto
568CFG_MYSQL_CONFIG=
569CFG_DEBUG_RELEASE=no
570CFG_SHARED=yes
571CFG_SM=auto
572CFG_XSHAPE=auto
573CFG_XINERAMA=runtime
574CFG_XFIXES=runtime
575CFG_ZLIB=auto
576CFG_SQLITE=qt
577CFG_GIF=auto
578CFG_TIFF=auto
579CFG_LIBTIFF=auto
580CFG_PNG=yes
581CFG_LIBPNG=auto
582CFG_JPEG=auto
583CFG_LIBJPEG=auto
584CFG_MNG=auto
585CFG_LIBMNG=auto
586CFG_XCURSOR=runtime
587CFG_XRANDR=runtime
588CFG_XRENDER=auto
589CFG_MITSHM=auto
590CFG_OPENGL=auto
591CFG_SSE=auto
592CFG_FONTCONFIG=auto
593CFG_QWS_FREETYPE=auto
594CFG_LIBFREETYPE=auto
595CFG_SQL_AVAILABLE=
596QT_DEFAULT_BUILD_PARTS="libs tools examples demos docs translations"
597CFG_BUILD_PARTS=""
598CFG_NOBUILD_PARTS=""
599CFG_RELEASE_QMAKE=no
600CFG_PHONON=auto
601CFG_PHONON_BACKEND=yes
602CFG_SVG=yes
603CFG_WEBKIT=auto # (yes|no|auto)
604
605CFG_GFX_AVAILABLE="linuxfb transformed qvfb vnc multiscreen"
606CFG_GFX_ON="linuxfb multiscreen"
607CFG_GFX_PLUGIN_AVAILABLE=
608CFG_GFX_PLUGIN=
609CFG_GFX_OFF=
610CFG_KBD_AVAILABLE="tty usb sl5000 yopy vr41xx qvfb"
611CFG_KBD_ON="tty" #default, see QMakeVar above
612CFG_MOUSE_AVAILABLE="pc bus linuxtp yopy vr41xx tslib qvfb"
613CFG_MOUSE_ON="pc linuxtp" #default, see QMakeVar above
614
615CFG_ARCH=
616CFG_HOST_ARCH=
617CFG_KBD_PLUGIN_AVAILABLE=
618CFG_KBD_PLUGIN=
619CFG_KBD_OFF=
620CFG_MOUSE_PLUGIN_AVAILABLE=
621CFG_MOUSE_PLUGIN=
622CFG_MOUSE_OFF=
623CFG_USE_GNUMAKE=no
624CFG_IM=yes
625CFG_DECORATION_AVAILABLE="styled windows default"
626CFG_DECORATION_ON="${CFG_DECORATION_AVAILABLE}" # all on by default
627CFG_DECORATION_PLUGIN_AVAILABLE=
628CFG_DECORATION_PLUGIN=
629CFG_XINPUT=runtime
630CFG_XKB=auto
631CFG_NIS=auto
632CFG_CUPS=auto
633CFG_ICONV=auto
634CFG_DBUS=auto
635CFG_GLIB=auto
636CFG_GSTREAMER=auto
637CFG_QGTKSTYLE=auto
638CFG_LARGEFILE=auto
639CFG_OPENSSL=auto
640CFG_PTMALLOC=no
641CFG_STL=auto
642CFG_PRECOMPILE=auto
643CFG_SEPARATE_DEBUG_INFO=auto
644CFG_REDUCE_EXPORTS=auto
645CFG_MMX=auto
646CFG_3DNOW=auto
647CFG_SSE=auto
648CFG_SSE2=auto
649CFG_REDUCE_RELOCATIONS=no
650CFG_IPV6=auto
651CFG_NAS=no
652CFG_QWS_DEPTHS=all
653CFG_USER_BUILD_KEY=
654CFG_ACCESSIBILITY=auto
655CFG_QT3SUPPORT=yes
656CFG_ENDIAN=auto
657CFG_HOST_ENDIAN=auto
658CFG_DOUBLEFORMAT=auto
659CFG_ARMFPA=auto
660CFG_IWMMXT=no
661CFG_CLOCK_GETTIME=auto
662CFG_CLOCK_MONOTONIC=auto
663CFG_MREMAP=auto
664CFG_GETADDRINFO=auto
665CFG_IPV6IFNAME=auto
666CFG_GETIFADDRS=auto
667CFG_INOTIFY=auto
668CFG_RPATH=yes
669CFG_FRAMEWORK=auto
670CFG_MAC_ARCHS=
671CFG_MAC_DWARF2=auto
672CFG_MAC_XARCH=auto
673CFG_MAC_CARBON=yes
674CFG_MAC_COCOA=auto
675COMMANDLINE_MAC_COCOA=no
676CFG_SXE=no
677CFG_PREFIX_INSTALL=yes
678CFG_SDK=
679D_FLAGS=
680I_FLAGS=
681L_FLAGS=
682RPATH_FLAGS=
683l_FLAGS=
684QCONFIG_FLAGS=
685XPLATFORM= # This seems to be the QMAKESPEC, like "linux-g++"
686PLATFORM=$QMAKESPEC
687QT_CROSS_COMPILE=no
688OPT_CONFIRM_LICENSE=no
689OPT_SHADOW=maybe
690OPT_FAST=auto
691OPT_VERBOSE=no
692OPT_HELP=
693CFG_SILENT=no
694CFG_GRAPHICS_SYSTEM=default
695
696# initalize variables used for installation
697QT_INSTALL_PREFIX=
698QT_INSTALL_DOCS=
699QT_INSTALL_HEADERS=
700QT_INSTALL_LIBS=
701QT_INSTALL_BINS=
702QT_INSTALL_PLUGINS=
703QT_INSTALL_DATA=
704QT_INSTALL_TRANSLATIONS=
705QT_INSTALL_SETTINGS=
706QT_INSTALL_EXAMPLES=
707QT_INSTALL_DEMOS=
708QT_HOST_PREFIX=
709
710#flags for SQL drivers
711QT_CFLAGS_PSQL=
712QT_LFLAGS_PSQL=
713QT_CFLAGS_MYSQL=
714QT_LFLAGS_MYSQL=
715QT_LFLAGS_MYSQL_R=
716QT_CFLAGS_SQLITE=
717QT_LFLAGS_SQLITE=
718
719# flags for libdbus-1
720QT_CFLAGS_DBUS=
721QT_LIBS_DBUS=
722
723# flags for Glib (X11 only)
724QT_CFLAGS_GLIB=
725QT_LIBS_GLIB=
726
727# flags for GStreamer (X11 only)
728QT_CFLAGS_GSTREAMER=
729QT_LIBS_GSTREAMER=
730
731#-------------------------------------------------------------------------------
732# check SQL drivers, mouse drivers and decorations available in this package
733#-------------------------------------------------------------------------------
734
735# opensource version removes some drivers, so force them to be off
736CFG_SQL_tds=no
737CFG_SQL_oci=no
738CFG_SQL_db2=no
739
740CFG_SQL_AVAILABLE=
741if [ -d "$relpath/src/plugins/sqldrivers" ]; then
742 for a in "$relpath/src/plugins/sqldrivers/"*; do
743 if [ -d "$a" ]; then
744 base_a=`basename $a`
745 CFG_SQL_AVAILABLE="${CFG_SQL_AVAILABLE} ${base_a}"
746 eval "CFG_SQL_${base_a}=auto"
747 fi
748 done
749fi
750
751CFG_DECORATION_PLUGIN_AVAILABLE=
752if [ -d "$relpath/src/plugins/decorations" ]; then
753 for a in "$relpath/src/plugins/decorations/"*; do
754 if [ -d "$a" ]; then
755 base_a=`basename $a`
756 CFG_DECORATION_PLUGIN_AVAILABLE="${CFG_DECORATION_PLUGIN_AVAILABLE} ${base_a}"
757 fi
758 done
759fi
760
761CFG_KBD_PLUGIN_AVAILABLE=
762if [ -d "$relpath/src/plugins/kbddrivers" ]; then
763 for a in "$relpath/src/plugins/kbddrivers/"*; do
764 if [ -d "$a" ]; then
765 base_a=`basename $a`
766 CFG_KBD_PLUGIN_AVAILABLE="${CFG_KBD_PLUGIN_AVAILABLE} ${base_a}"
767 fi
768 done
769fi
770
771CFG_MOUSE_PLUGIN_AVAILABLE=
772if [ -d "$relpath/src/plugins/mousedrivers" ]; then
773 for a in "$relpath/src/plugins/mousedrivers/"*; do
774 if [ -d "$a" ]; then
775 base_a=`basename $a`
776 CFG_MOUSE_PLUGIN_AVAILABLE="${CFG_MOUSE_PLUGIN_AVAILABLE} ${base_a}"
777 fi
778 done
779fi
780
781CFG_GFX_PLUGIN_AVAILABLE=
782if [ -d "$relpath/src/plugins/gfxdrivers" ]; then
783 for a in "$relpath/src/plugins/gfxdrivers/"*; do
784 if [ -d "$a" ]; then
785 base_a=`basename $a`
786 CFG_GFX_PLUGIN_AVAILABLE="${CFG_GFX_PLUGIN_AVAILABLE} ${base_a}"
787 fi
788 done
789 CFG_GFX_OFF="$CFG_GFX_AVAILABLE" # assume all off
790fi
791
792#-------------------------------------------------------------------------------
793# parse command line arguments
794#-------------------------------------------------------------------------------
795
796# parse the arguments, setting things to "yes" or "no"
797while [ "$#" -gt 0 ]; do
798 CURRENT_OPT="$1"
799 UNKNOWN_ARG=no
800 case "$1" in
801 #Autoconf style options
802 --enable-*)
803 VAR=`echo $1 | sed "s,^--enable-\(.*\),\1,"`
804 VAL=yes
805 ;;
806 --disable-*)
807 VAR=`echo $1 | sed "s,^--disable-\(.*\),\1,"`
808 VAL=no
809 ;;
810 --*=*)
811 VAR=`echo $1 | sed "s,^--\(.*\)=.*,\1,"`
812 VAL=`echo $1 | sed "s,^--.*=\(.*\),\1,"`
813 ;;
814 --no-*)
815 VAR=`echo $1 | sed "s,^--no-\(.*\),\1,"`
816 VAL=no
817 ;;
818 --*)
819 VAR=`echo $1 | sed "s,^--\(.*\),\1,"`
820 VAL=yes
821 ;;
822 #Qt plugin options
823 -no-*-*|-plugin-*-*|-qt-*-*)
824 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
825 VAL=`echo $1 | sed "s,^-\([^-]*\).*,\1,"`
826 ;;
827 #Qt style no options
828 -no-*)
829 VAR=`echo $1 | sed "s,^-no-\(.*\),\1,"`
830 VAL=no
831 ;;
832 #Qt style yes options
833 -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)
834 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
835 VAL=yes
836 ;;
837 #Qt style options that pass an argument
838 -qconfig)
839 if [ "$PLATFORM_QWS" = "yes" ]; then
840 CFG_QCONFIG="$VAL"
841 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
842 shift
843 VAL=$1
844 else
845 UNKNOWN_ARG=yes
846 fi
847 ;;
848 -prefix|-docdir|-headerdir|-plugindir|-datadir|-libdir|-bindir|-translationdir|-sysconfdir|-examplesdir|-demosdir|-depths|-make|-nomake|-platform|-xplatform|-buildkey|-sdk|-arch|-host-arch|-mysql_config)
849 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
850 shift
851 VAL="$1"
852 ;;
853 #Qt style complex options in one command
854 -enable-*|-disable-*)
855 VAR=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
856 VAL=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
857 ;;
858 #Qt Builtin/System style options
859 -no-*|-system-*|-qt-*)
860 VAR=`echo $1 | sed "s,^-[^-]*-\(.*\),\1,"`
861 VAL=`echo $1 | sed "s,^-\([^-]*\)-.*,\1,"`
862 ;;
863 #Options that cannot be generalized
864 -k|-continue)
865 VAR=fatal_error
866 VAL=no
867 ;;
868 -embedded)
869 VAR=embedded
870 # this option may or may not be followed by an argument
871 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
872 VAL=auto
873 else
874 shift;
875 VAL=$1
876 fi
877 ;;
878 -opengl)
879 VAR=opengl
880 # this option may or may not be followed by an argument
881 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
882 VAL=yes
883 else
884 shift;
885 VAL=$1
886 fi
887 ;;
888 -hostprefix)
889 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
890 # this option may or may not be followed by an argument
891 if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
892 VAL=$outpath
893 else
894 shift;
895 VAL=$1
896 fi
897 ;;
898 -host-*-endian)
899 VAR=host_endian
900 VAL=`echo $1 | sed "s,^-.*-\(.*\)-.*,\1,"`
901 ;;
902 -*-endian)
903 VAR=endian
904 VAL=`echo $1 | sed "s,^-\(.*\)-.*,\1,"`
905 ;;
906 -qtnamespace)
907 VAR="qtnamespace"
908 shift
909 VAL="$1"
910 ;;
911 -graphicssystem)
912 VAR="graphicssystem"
913 shift
914 VAL=$1
915 ;;
916 -qtlibinfix)
917 VAR="qtlibinfix"
918 shift
919 VAL="$1"
920 ;;
921 -D?*|-D)
922 VAR="add_define"
923 if [ "$1" = "-D" ]; then
924 shift
925 VAL="$1"
926 else
927 VAL=`echo $1 | sed 's,-D,,'`
928 fi
929 ;;
930 -I?*|-I)
931 VAR="add_ipath"
932 if [ "$1" = "-I" ]; then
933 shift
934 VAL="$1"
935 else
936 VAL=`echo $1 | sed 's,-I,,'`
937 fi
938 ;;
939 -L?*|-L)
940 VAR="add_lpath"
941 if [ "$1" = "-L" ]; then
942 shift
943 VAL="$1"
944 else
945 VAL=`echo $1 | sed 's,-L,,'`
946 fi
947 ;;
948 -R?*|-R)
949 VAR="add_rpath"
950 if [ "$1" = "-R" ]; then
951 shift
952 VAL="$1"
953 else
954 VAL=`echo $1 | sed 's,-R,,'`
955 fi
956 ;;
957 -l?*)
958 VAR="add_link"
959 VAL=`echo $1 | sed 's,-l,,'`
960 ;;
961 -F?*|-F)
962 VAR="add_fpath"
963 if [ "$1" = "-F" ]; then
964 shift
965 VAL="$1"
966 else
967 VAL=`echo $1 | sed 's,-F,,'`
968 fi
969 ;;
970 -fw?*|-fw)
971 VAR="add_framework"
972 if [ "$1" = "-fw" ]; then
973 shift
974 VAL="$1"
975 else
976 VAL=`echo $1 | sed 's,-fw,,'`
977 fi
978 ;;
979 -*)
980 VAR=`echo $1 | sed "s,^-\(.*\),\1,"`
981 VAL="unknown"
982 ;;
983 *)
984 UNKNOWN_ARG=yes
985 ;;
986 esac
987 if [ "$UNKNOWN_ARG" = "yes" ]; then
988 echo "$1: unknown argument"
989 OPT_HELP=yes
990 ERROR=yes
991 shift
992 continue
993 fi
994 shift
995
996 UNKNOWN_OPT=no
997 case "$VAR" in
998 qt3support)
999 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1000 CFG_QT3SUPPORT="$VAL"
1001 else
1002 UNKNOWN_OPT=yes
1003 fi
1004 ;;
1005 accessibility)
1006 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1007 CFG_ACCESSIBILITY="$VAL"
1008 else
1009 UNKNOWN_OPT=yes
1010 fi
1011 ;;
1012 license)
1013 LICENSE_FILE="$VAL"
1014 ;;
1015 gnumake)
1016 CFG_USE_GNUMAKE="$VAL"
1017 ;;
1018 mysql_config)
1019 CFG_MYSQL_CONFIG="$VAL"
1020 ;;
1021 prefix)
1022 QT_INSTALL_PREFIX="$VAL"
1023 ;;
1024 hostprefix)
1025 QT_HOST_PREFIX="$VAL"
1026 ;;
1027 force-pkg-config)
1028 QT_FORCE_PKGCONFIG=yes
1029 ;;
1030 docdir)
1031 QT_INSTALL_DOCS="$VAL"
1032 ;;
1033 headerdir)
1034 QT_INSTALL_HEADERS="$VAL"
1035 ;;
1036 plugindir)
1037 QT_INSTALL_PLUGINS="$VAL"
1038 ;;
1039 datadir)
1040 QT_INSTALL_DATA="$VAL"
1041 ;;
1042 libdir)
1043 QT_INSTALL_LIBS="$VAL"
1044 ;;
1045 qtnamespace)
1046 QT_NAMESPACE="$VAL"
1047 ;;
1048 qtlibinfix)
1049 QT_LIBINFIX="$VAL"
1050 ;;
1051 translationdir)
1052 QT_INSTALL_TRANSLATIONS="$VAL"
1053 ;;
1054 sysconfdir|settingsdir)
1055 QT_INSTALL_SETTINGS="$VAL"
1056 ;;
1057 examplesdir)
1058 QT_INSTALL_EXAMPLES="$VAL"
1059 ;;
1060 demosdir)
1061 QT_INSTALL_DEMOS="$VAL"
1062 ;;
1063 qconfig)
1064 CFG_QCONFIG="$VAL"
1065 ;;
1066 bindir)
1067 QT_INSTALL_BINS="$VAL"
1068 ;;
1069 buildkey)
1070 CFG_USER_BUILD_KEY="$VAL"
1071 ;;
1072 sxe)
1073 CFG_SXE="$VAL"
1074 ;;
1075 embedded)
1076 CFG_EMBEDDED="$VAL"
1077 if [ "$PLATFORM_QWS" != "no" ]; then
1078 if [ "$PLATFORM_QWS" = "maybe" ]; then
1079 PLATFORM_X11=no
1080 PLATFORM_MAC=no
1081 PLATFORM_QWS=yes
1082 fi
1083 else
1084 echo "No license exists to enable Qt for Embedded Linux. Disabling."
1085 CFG_EMBEDDED=no
1086 fi
1087 ;;
1088 sse)
1089 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1090 CFG_SSE="$VAL"
1091 else
1092 UNKNOWN_OPT=yes
1093 fi
1094 ;;
1095 endian)
1096 if [ "$VAL" = "little" ]; then
1097 CFG_ENDIAN="Q_LITTLE_ENDIAN"
1098 elif [ "$VAL" = "big" ]; then
1099 CFG_ENDIAN="Q_BIG_ENDIAN"
1100 else
1101 UNKNOWN_OPT=yes
1102 fi
1103 ;;
1104 host_endian)
1105 if [ "$VAL" = "little" ]; then
1106 CFG_HOST_ENDIAN="Q_LITTLE_ENDIAN"
1107 elif [ "$VAL" = "big" ]; then
1108 CFG_HOST_ENDIAN="Q_BIG_ENDIAN"
1109 else
1110 UNKNOWN_OPT=yes
1111 fi
1112 ;;
1113 armfpa)
1114 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1115 CFG_ARMFPA="$VAL"
1116 else
1117 UNKNOWN_OPT=yes
1118 fi
1119 ;;
1120 depths)
1121 CFG_QWS_DEPTHS="$VAL"
1122 ;;
1123 opengl)
1124 if [ "$VAL" = "auto" ] || [ "$VAL" = "desktop" ] ||
1125 [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] ||
1126 [ "$VAL" = "es1cl" ] || [ "$VAL" = "es1" ] || [ "$VAL" = "es2" ]; then
1127 CFG_OPENGL="$VAL"
1128 else
1129 UNKNOWN_OPT=yes
1130 fi
1131 ;;
1132 graphicssystem)
1133 if [ "$PLATFORM_QWS" = "yes" ]; then
1134 echo "Error: Graphics System plugins are not supported on QWS."
1135 echo " On QWS, the graphics system API is part of the QScreen plugin architecture "
1136 echo " rather than existing as a separate plugin."
1137 echo ""
1138 UNKNOWN_OPT=yes
1139 else
1140 if [ "$VAL" = "opengl" ]; then
1141 CFG_GRAPHICS_SYSTEM="opengl"
1142 elif [ "$VAL" = "raster" ]; then
1143 CFG_GRAPHICS_SYSTEM="raster"
1144 else
1145 UNKNOWN_OPT=yes
1146 fi
1147 fi
1148 ;;
1149
1150 qvfb) # left for commandline compatibility, not documented
1151 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1152 if [ "$VAL" = "yes" ]; then
1153 QMakeVar add gfx-drivers qvfb
1154 QMakeVar add kbd-drivers qvfb
1155 QMakeVar add mouse-drivers qvfb
1156 CFG_GFX_ON="$CFG_GFX_ON qvfb"
1157 CFG_KBD_ON="$CFG_KBD_ON qvfb"
1158 CFG_MOUSE_ON="$CFG_MOUSE_ON qvfb"
1159 fi
1160 else
1161 UNKNOWN_OPT=yes
1162 fi
1163 ;;
1164 nomake)
1165 CFG_NOBUILD_PARTS="$CFG_NOBUILD_PARTS $VAL"
1166 ;;
1167 make)
1168 CFG_BUILD_PARTS="$CFG_BUILD_PARTS $VAL"
1169 ;;
1170 x11)
1171 if [ "$PLATFORM_MAC" = "yes" ]; then
1172 PLATFORM_MAC=no
1173 elif [ "$PLATFORM_QWS" = "yes" ]; then
1174 PLATFORM_QWS=no
1175 fi
1176 if [ "$CFG_FRAMEWORK" = "auto" ]; then
1177 CFG_FRAMEWORK=no
1178 fi
1179 PLATFORM_X11=yes
1180 ;;
1181 sdk)
1182 if [ "$PLATFORM_MAC" = "yes" ]; then
1183 CFG_SDK="$VAL"
1184 else
1185 UNKNOWN_OPT=yes
1186 fi
1187 ;;
1188 dwarf2)
1189 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1190 CFG_MAC_DWARF2="$VAL"
1191 else
1192 UNKNOWN_OPT=yes
1193 fi
1194 ;;
1195 arch)
1196 if [ "$PLATFORM_MAC" = "yes" ]; then
1197 CFG_MAC_ARCHS="$CFG_MAC_ARCHS $VAL"
1198 else
1199 CFG_ARCH=$VAL
1200 fi
1201 ;;
1202 host-arch)
1203 CFG_HOST_ARCH=$VAL
1204 ;;
1205 universal)
1206 if [ "$PLATFORM_MAC" = "yes" ] && [ "$VAL" = "yes" ]; then
1207 CFG_MAC_ARCHS="$CFG_MAC_ARCHS x86 ppc"
1208 else
1209 UNKNOWN_OPT=yes
1210 fi
1211 ;;
1212 cocoa)
1213 if [ "$PLATFORM_MAC" = "yes" ] && [ "$VAL" = "yes" ]; then
1214 CFG_MAC_COCOA="$VAL"
1215 COMMANDLINE_MAC_COCOA="$VAL"
1216 else
1217 UNKNOWN_OPT=yes
1218 fi
1219 ;;
1220 framework)
1221 if [ "$PLATFORM_MAC" = "yes" ]; then
1222 CFG_FRAMEWORK="$VAL"
1223 else
1224 UNKNOWN_OPT=yes
1225 fi
1226 ;;
1227 profile)
1228 if [ "$VAL" = "yes" ]; then
1229 CFG_PROFILE=yes
1230 QMakeVar add QMAKE_CFLAGS -pg
1231 QMakeVar add QMAKE_CXXFLAGS -pg
1232 QMakeVar add QMAKE_LFLAGS -pg
1233 QMAKE_VARS="$QMAKE_VARS CONFIG+=nostrip"
1234 else
1235 UNKNOWN_OPT=yes
1236 fi
1237 ;;
1238 exceptions|g++-exceptions)
1239 if [ "$VAL" = "no" ]; then
1240 CFG_EXCEPTIONS=no
1241 elif [ "$VAL" = "yes" ]; then
1242 CFG_EXCEPTIONS=yes
1243 else
1244 UNKNOWN_OPT=yes
1245 fi
1246 ;;
1247 platform)
1248 PLATFORM="$VAL"
1249 # keep compatibility with old platform names
1250 case $PLATFORM in
1251 aix-64)
1252 PLATFORM=aix-xlc-64
1253 ;;
1254 hpux-o64)
1255 PLATFORM=hpux-acc-o64
1256 ;;
1257 hpux-n64)
1258 PLATFORM=hpux-acc-64
1259 ;;
1260 hpux-acc-n64)
1261 PLATFORM=hpux-acc-64
1262 ;;
1263 irix-n32)
1264 PLATFORM=irix-cc
1265 ;;
1266 irix-64)
1267 PLATFORM=irix-cc-64
1268 ;;
1269 irix-cc-n64)
1270 PLATFORM=irix-cc-64
1271 ;;
1272 reliant-64)
1273 PLATFORM=reliant-cds-64
1274 ;;
1275 solaris-64)
1276 PLATFORM=solaris-cc-64
1277 ;;
1278 solaris-64)
1279 PLATFORM=solaris-cc-64
1280 ;;
1281 openunix-cc)
1282 PLATFORM=unixware-cc
1283 ;;
1284 openunix-g++)
1285 PLATFORM=unixware-g++
1286 ;;
1287 unixware7-cc)
1288 PLATFORM=unixware-cc
1289 ;;
1290 unixware7-g++)
1291 PLATFORM=unixware-g++
1292 ;;
1293 macx-g++-64)
1294 PLATFORM=macx-g++
1295 NATIVE_64_ARCH=
1296 case `uname -p` in
1297 i386) NATIVE_64_ARCH="x86_64" ;;
1298 powerpc) NATIVE_64_ARCH="ppc64" ;;
1299 *) echo "WARNING: Can't detect CPU architecture for macx-g++-64" ;;
1300 esac
1301 if [ ! -z "$NATIVE_64_ARCH" ]; then
1302 QTCONFIG_CONFIG="$QTCONFIG_CONFIG $NATIVE_64_ARCH"
1303 CFG_MAC_ARCHS="$CFG_MAC_ARCHS $NATIVE_64_ARCH"
1304 fi
1305 ;;
1306 esac
1307 ;;
1308 xplatform)
1309 XPLATFORM="$VAL"
1310 ;;
1311 debug-and-release)
1312 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1313 CFG_DEBUG_RELEASE="$VAL"
1314 else
1315 UNKNOWN_OPT=yes
1316 fi
1317 ;;
1318 optimized-qmake)
1319 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1320 CFG_RELEASE_QMAKE="$VAL"
1321 else
1322 UNKNOWN_OPT=yes
1323 fi
1324 ;;
1325 release)
1326 if [ "$VAL" = "yes" ]; then
1327 CFG_DEBUG=no
1328 elif [ "$VAL" = "no" ]; then
1329 CFG_DEBUG=yes
1330 else
1331 UNKNOWN_OPT=yes
1332 fi
1333 ;;
1334 prefix-install)
1335 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1336 CFG_PREFIX_INSTALL="$VAL"
1337 else
1338 UNKNOWN_OPT=yes
1339 fi
1340 ;;
1341 debug)
1342 CFG_DEBUG="$VAL"
1343 ;;
1344 developer-build|commercial|opensource|nokia-developer)
1345 # These switches have been dealt with already
1346 ;;
1347 static)
1348 if [ "$VAL" = "yes" ]; then
1349 CFG_SHARED=no
1350 elif [ "$VAL" = "no" ]; then
1351 CFG_SHARED=yes
1352 else
1353 UNKNOWN_OPT=yes
1354 fi
1355 ;;
1356 incremental)
1357 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1358 CFG_INCREMENTAL="$VAL"
1359 else
1360 UNKNOWN_OPT=yes
1361 fi
1362 ;;
1363 fatal_error)
1364 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1365 CFG_CONFIGURE_EXIT_ON_ERROR="$VAL"
1366 else
1367 UNKNOWN_OPT=yes
1368 fi
1369 ;;
1370 feature-*)
1371 if [ "$PLATFORM_QWS" = "yes" ]; then
1372 FEATURE=`echo $VAR | sed "s,^[^-]*-\([^-]*\),\1," | tr 'abcdefghijklmnopqrstuvwxyz-' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'`
1373 if [ "$VAL" = "no" ]; then
1374 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_$FEATURE"
1375 elif [ "$VAL" = "yes" ] || [ "$VAL" = "unknown" ]; then
1376 QCONFIG_FLAGS="$QCONFIG_FLAGS QT_$FEATURE"
1377 else
1378 UNKNOWN_OPT=yes
1379 fi
1380 else
1381 UNKNOWN_OPT=yes
1382 fi
1383 ;;
1384 shared)
1385 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1386 CFG_SHARED="$VAL"
1387 else
1388 UNKNOWN_OPT=yes
1389 fi
1390 ;;
1391 gif)
1392 [ "$VAL" = "qt" ] && VAL=yes
1393 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1394 CFG_GIF="$VAL"
1395 else
1396 UNKNOWN_OPT=yes
1397 fi
1398 ;;
1399 sm)
1400 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1401 CFG_SM="$VAL"
1402 else
1403 UNKNOWN_OPT=yes
1404 fi
1405
1406 ;;
1407 xinerama)
1408 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1409 CFG_XINERAMA="$VAL"
1410 else
1411 UNKNOWN_OPT=yes
1412 fi
1413 ;;
1414 xshape)
1415 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1416 CFG_XSHAPE="$VAL"
1417 else
1418 UNKNOWN_OPT=yes
1419 fi
1420 ;;
1421 xinput)
1422 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1423 CFG_XINPUT="$VAL"
1424 else
1425 UNKNOWN_OPT=yes
1426 fi
1427 ;;
1428 stl)
1429 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1430 CFG_STL="$VAL"
1431 else
1432 UNKNOWN_OPT=yes
1433 fi
1434 ;;
1435 pch)
1436 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1437 CFG_PRECOMPILE="$VAL"
1438 else
1439 UNKNOWN_OPT=yes
1440 fi
1441 ;;
1442 separate-debug-info)
1443 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1444 CFG_SEPARATE_DEBUG_INFO="$VAL"
1445 else
1446 UNKNOWN_OPT=yes
1447 fi
1448 ;;
1449 reduce-exports)
1450 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1451 CFG_REDUCE_EXPORTS="$VAL"
1452 else
1453 UNKNOWN_OPT=yes
1454 fi
1455 ;;
1456 mmx)
1457 if [ "$VAL" = "no" ]; then
1458 CFG_MMX="$VAL"
1459 else
1460 UNKNOWN_OPT=yes
1461 fi
1462 ;;
1463 3dnow)
1464 if [ "$VAL" = "no" ]; then
1465 CFG_3DNOW="$VAL"
1466 else
1467 UNKNOWN_OPT=yes
1468 fi
1469 ;;
1470 sse)
1471 if [ "$VAL" = "no" ]; then
1472 CFG_SSE="$VAL"
1473 else
1474 UNKNOWN_OPT=yes
1475 fi
1476 ;;
1477 sse2)
1478 if [ "$VAL" = "no" ]; then
1479 CFG_SSE2="$VAL"
1480 else
1481 UNKNOWN_OPT=yes
1482 fi
1483 ;;
1484 iwmmxt)
1485 CFG_IWMMXT="yes"
1486 ;;
1487 reduce-relocations)
1488 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1489 CFG_REDUCE_RELOCATIONS="$VAL"
1490 else
1491 UNKNOWN_OPT=yes
1492 fi
1493 ;;
1494 freetype)
1495 [ "$VAL" = "qt" ] && VAL=yes
1496 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1497 CFG_QWS_FREETYPE="$VAL"
1498 else
1499 UNKNOWN_OPT=yes
1500 fi
1501 ;;
1502 zlib)
1503 [ "$VAL" = "qt" ] && VAL=yes
1504 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1505 CFG_ZLIB="$VAL"
1506 else
1507 UNKNOWN_OPT=yes
1508 fi
1509 # No longer supported:
1510 #[ "$VAL" = "no" ] && CFG_LIBPNG=no
1511 ;;
1512 sqlite)
1513 if [ "$VAL" = "system" ]; then
1514 CFG_SQLITE=system
1515 else
1516 UNKNOWN_OPT=yes
1517 fi
1518 ;;
1519 libpng)
1520 [ "$VAL" = "yes" ] && VAL=qt
1521 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1522 CFG_LIBPNG="$VAL"
1523 else
1524 UNKNOWN_OPT=yes
1525 fi
1526 ;;
1527 libjpeg)
1528 [ "$VAL" = "yes" ] && VAL=qt
1529 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1530 CFG_LIBJPEG="$VAL"
1531 else
1532 UNKNOWN_OPT=yes
1533 fi
1534 ;;
1535 libmng)
1536 [ "$VAL" = "yes" ] && VAL=qt
1537 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1538 CFG_LIBMNG="$VAL"
1539 else
1540 UNKNOWN_OPT=yes
1541 fi
1542 ;;
1543 libtiff)
1544 [ "$VAL" = "yes" ] && VAL=qt
1545 if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then
1546 CFG_LIBTIFF="$VAL"
1547 else
1548 UNKNOWN_OPT=yes
1549 fi
1550 ;;
1551 nas-sound)
1552 if [ "$VAL" = "system" ] || [ "$VAL" = "no" ]; then
1553 CFG_NAS="$VAL"
1554 else
1555 UNKNOWN_OPT=yes
1556 fi
1557 ;;
1558 xcursor)
1559 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1560 CFG_XCURSOR="$VAL"
1561 else
1562 UNKNOWN_OPT=yes
1563 fi
1564 ;;
1565 xfixes)
1566 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1567 CFG_XFIXES="$VAL"
1568 else
1569 UNKNOWN_OPT=yes
1570 fi
1571 ;;
1572 xrandr)
1573 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then
1574 CFG_XRANDR="$VAL"
1575 else
1576 UNKNOWN_OPT=yes
1577 fi
1578 ;;
1579 xrender)
1580 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1581 CFG_XRENDER="$VAL"
1582 else
1583 UNKNOWN_OPT=yes
1584 fi
1585 ;;
1586 mitshm)
1587 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1588 CFG_MITSHM="$VAL"
1589 else
1590 UNKNOWN_OPT=yes
1591 fi
1592 ;;
1593 fontconfig)
1594 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1595 CFG_FONTCONFIG="$VAL"
1596 else
1597 UNKNOWN_OPT=yes
1598 fi
1599 ;;
1600 xkb)
1601 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1602 CFG_XKB="$VAL"
1603 else
1604 UNKNOWN_OPT=yes
1605 fi
1606 ;;
1607 cups)
1608 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1609 CFG_CUPS="$VAL"
1610 else
1611 UNKNOWN_OPT=yes
1612 fi
1613 ;;
1614 iconv)
1615 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1616 CFG_ICONV="$VAL"
1617 else
1618 UNKNOWN_OPT=yes
1619 fi
1620 ;;
1621 glib)
1622 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1623 CFG_GLIB="$VAL"
1624 else
1625 UNKNOWN_OPT=yes
1626 fi
1627 ;;
1628 gstreamer)
1629 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1630 CFG_GSTREAMER="$VAL"
1631 else
1632 UNKNOWN_OPT=yes
1633 fi
1634 ;;
1635 gtkstyle)
1636 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1637 CFG_QGTKSTYLE="$VAL"
1638 else
1639 UNKNOWN_OPT=yes
1640 fi
1641 ;;
1642 qdbus|dbus)
1643 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "linked" ]; then
1644 CFG_DBUS="$VAL"
1645 elif [ "$VAL" = "runtime" ]; then
1646 CFG_DBUS="yes"
1647 else
1648 UNKNOWN_OPT=yes
1649 fi
1650 ;;
1651 dbus-linked)
1652 if [ "$VAL" = "yes" ]; then
1653 CFG_DBUS="linked"
1654 else
1655 UNKNOWN_OPT=yes
1656 fi
1657 ;;
1658 nis)
1659 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1660 CFG_NIS="$VAL"
1661 else
1662 UNKNOWN_OPT=yes
1663 fi
1664 ;;
1665 largefile)
1666 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1667 CFG_LARGEFILE="$VAL"
1668 else
1669 UNKNOWN_OPT=yes
1670 fi
1671 ;;
1672 openssl)
1673 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1674 CFG_OPENSSL="$VAL"
1675 else
1676 UNKNOWN_OPT=yes
1677 fi
1678 ;;
1679 openssl-linked)
1680 if [ "$VAL" = "yes" ]; then
1681 CFG_OPENSSL="linked"
1682 else
1683 UNKNOWN_OPT=yes
1684 fi
1685 ;;
1686 ptmalloc)
1687 if [ "$VAL" = "yes" ]; then
1688 CFG_PTMALLOC="yes"
1689 else
1690 UNKNOWN_OPT=yes
1691 fi
1692 ;;
1693
1694 xmlpatterns)
1695 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1696 CFG_XMLPATTERNS="yes"
1697 else
1698 if [ "$VAL" = "no" ]; then
1699 CFG_XMLPATTERNS="no"
1700 else
1701 UNKNOWN_OPT=yes
1702 fi
1703 fi
1704 ;;
1705 scripttools)
1706 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1707 CFG_SCRIPTTOOLS="yes"
1708 else
1709 if [ "$VAL" = "no" ]; then
1710 CFG_SCRIPTTOOLS="no"
1711 else
1712 UNKNOWN_OPT=yes
1713 fi
1714 fi
1715 ;;
1716 svg)
1717 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1718 CFG_SVG="yes"
1719 else
1720 if [ "$VAL" = "no" ]; then
1721 CFG_SVG="no"
1722 else
1723 UNKNOWN_OPT=yes
1724 fi
1725 fi
1726 ;;
1727 webkit)
1728 if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then
1729 CFG_WEBKIT="yes"
1730 else
1731 if [ "$VAL" = "no" ]; then
1732 CFG_WEBKIT="no"
1733 else
1734 UNKNOWN_OPT=yes
1735 fi
1736 fi
1737 ;;
1738 confirm-license)
1739 if [ "$VAL" = "yes" ]; then
1740 OPT_CONFIRM_LICENSE="$VAL"
1741 else
1742 UNKNOWN_OPT=yes
1743 fi
1744 ;;
1745 h|help)
1746 if [ "$VAL" = "yes" ]; then
1747 OPT_HELP="$VAL"
1748 else
1749 UNKNOWN_OPT=yes
1750 fi
1751 ;;
1752 sql-*|gfx-*|decoration-*|kbd-*|mouse-*)
1753 # if Qt style options were used, $VAL can be "no", "qt", or "plugin"
1754 # if autoconf style options were used, $VAL can be "yes" or "no"
1755 [ "$VAL" = "yes" ] && VAL=qt
1756 # now $VAL should be "no", "qt", or "plugin"... double-check
1757 if [ "$VAL" != "no" ] && [ "$VAL" != "qt" ] && [ "$VAL" != "plugin" ]; then
1758 UNKNOWN_OPT=yes
1759 fi
1760 # now $VAL is "no", "qt", or "plugin"
1761 OPT="$VAL"
1762 VAL=`echo $VAR | sed "s,^[^-]*-\([^-]*\).*,\1,"`
1763 VAR=`echo $VAR | sed "s,^\([^-]*\).*,\1,"`
1764
1765 # Grab the available values
1766 case "$VAR" in
1767 sql)
1768 avail="$CFG_SQL_AVAILABLE"
1769 ;;
1770 gfx)
1771 avail="$CFG_GFX_AVAILABLE"
1772 if [ "$OPT" = "plugin" ]; then
1773 avail="$CFG_GFX_PLUGIN_AVAILABLE"
1774 fi
1775 ;;
1776 decoration)
1777 avail="$CFG_DECORATION_AVAILABLE"
1778 if [ "$OPT" = "plugin" ]; then
1779 avail="$CFG_DECORATION_PLUGIN_AVAILABLE"
1780 fi
1781 ;;
1782 kbd)
1783 avail="$CFG_KBD_AVAILABLE"
1784 if [ "$OPT" = "plugin" ]; then
1785 avail="$CFG_KBD_PLUGIN_AVAILABLE"
1786 fi
1787 ;;
1788 mouse)
1789 avail="$CFG_MOUSE_AVAILABLE"
1790 if [ "$OPT" = "plugin" ]; then
1791 avail="$CFG_MOUSE_PLUGIN_AVAILABLE"
1792 fi
1793 ;;
1794 *)
1795 avail=""
1796 echo "BUG: Unhandled type $VAR used in $CURRENT_OPT"
1797 ;;
1798 esac
1799
1800 # Check that that user's value is available.
1801 found=no
1802 for d in $avail; do
1803 if [ "$VAL" = "$d" ]; then
1804 found=yes
1805 break
1806 fi
1807 done
1808 [ "$found" = yes ] || ERROR=yes
1809
1810 if [ "$VAR" = "sql" ]; then
1811 # set the CFG_SQL_driver
1812 eval "CFG_SQL_$VAL=\$OPT"
1813 continue
1814 fi
1815
1816 if [ "$OPT" = "plugin" ] || [ "$OPT" = "qt" ]; then
1817 if [ "$OPT" = "plugin" ]; then
1818 [ "$VAR" = "decoration" ] && QMakeVar del "${VAR}s" "$VAL"
1819 [ "$VAR" = "decoration" ] && CFG_DECORATION_ON=`echo "${CFG_DECORATION_ON} " | sed "s,${VAL} ,,g"` && CFG_DECORATION_PLUGIN="$CFG_DECORATION_PLUGIN ${VAL}"
1820 [ "$VAR" = "kbd" ] && QMakeVar del "${VAR}s" "$VAL"
1821 [ "$VAR" = "kbd" ] && CFG_KBD_ON=`echo "${CFG_MOUSE_ON} " | sed "s,${VAL} ,,g"` && CFG_KBD_PLUGIN="$CFG_KBD_PLUGIN ${VAL}"
1822 [ "$VAR" = "mouse" ] && QMakeVar del "${VAR}s" "$VAL"
1823 [ "$VAR" = "mouse" ] && CFG_MOUSE_ON=`echo "${CFG_MOUSE_ON} " | sed "s,${VAL} ,,g"` && CFG_MOUSE_PLUGIN="$CFG_MOUSE_PLUGIN ${VAL}"
1824 [ "$VAR" = "gfx" ] && QMakeVar del "${VAR}s" "$VAL"
1825 [ "$VAR" = "gfx" ] && CFG_GFX_ON=`echo "${CFG_GFX_ON} " | sed "s,${VAL} ,,g"` && CFG_GFX_PLUGIN="${CFG_GFX_PLUGIN} ${VAL}"
1826 VAR="${VAR}-${OPT}"
1827 else
1828 if [ "$VAR" = "gfx" ] || [ "$VAR" = "kbd" ] || [ "$VAR" = "decoration" ] || [ "$VAR" = "mouse" ]; then
1829 [ "$VAR" = "gfx" ] && CFG_GFX_ON="$CFG_GFX_ON $VAL"
1830 [ "$VAR" = "kbd" ] && CFG_KBD_ON="$CFG_KBD_ON $VAL"
1831 [ "$VAR" = "decoration" ] && CFG_DECORATION_ON="$CFG_DECORATION_ON $VAL"
1832 [ "$VAR" = "mouse" ] && CFG_MOUSE_ON="$CFG_MOUSE_ON $VAL"
1833 VAR="${VAR}-driver"
1834 fi
1835 fi
1836 QMakeVar add "${VAR}s" "${VAL}"
1837 elif [ "$OPT" = "no" ]; then
1838 PLUG_VAR="${VAR}-plugin"
1839 if [ "$VAR" = "gfx" ] || [ "$VAR" = "kbd" ] || [ "$VAR" = "mouse" ]; then
1840 IN_VAR="${VAR}-driver"
1841 else
1842 IN_VAR="${VAR}"
1843 fi
1844 [ "$VAR" = "decoration" ] && CFG_DECORATION_ON=`echo "${CFG_DECORATION_ON} " | sed "s,${VAL} ,,g"`
1845 [ "$VAR" = "gfx" ] && CFG_GFX_ON=`echo "${CFG_GFX_ON} " | sed "s,${VAL} ,,g"`
1846 [ "$VAR" = "kbd" ] && CFG_KBD_ON=`echo "${CFG_KBD_ON} " | sed "s,${VAL} ,,g"`
1847 [ "$VAR" = "mouse" ] && CFG_MOUSE_ON=`echo "${CFG_MOUSE_ON} " | sed "s,${VAL} ,,g"`
1848 QMakeVar del "${IN_VAR}s" "$VAL"
1849 QMakeVar del "${PLUG_VAR}s" "$VAL"
1850 fi
1851 if [ "$ERROR" = "yes" ]; then
1852 echo "$CURRENT_OPT: unknown argument"
1853 OPT_HELP=yes
1854 fi
1855 ;;
1856 v|verbose)
1857 if [ "$VAL" = "yes" ]; then
1858 if [ "$OPT_VERBOSE" = "$VAL" ]; then # takes two verboses to turn on qmake debugs
1859 QMAKE_SWITCHES="$QMAKE_SWITCHES -d"
1860 else
1861 OPT_VERBOSE=yes
1862 fi
1863 elif [ "$VAL" = "no" ]; then
1864 if [ "$OPT_VERBOSE" = "$VAL" ] && echo "$QMAKE_SWITCHES" | grep ' -d' >/dev/null 2>&1; then
1865 QMAKE_SWITCHES=`echo $QMAKE_SWITCHES | sed "s, -d,,"`
1866 else
1867 OPT_VERBOSE=no
1868 fi
1869 else
1870 UNKNOWN_OPT=yes
1871 fi
1872 ;;
1873 fast)
1874 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1875 OPT_FAST="$VAL"
1876 else
1877 UNKNOWN_OPT=yes
1878 fi
1879 ;;
1880 rpath)
1881 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1882 CFG_RPATH="$VAL"
1883 else
1884 UNKNOWN_OPT=yes
1885 fi
1886 ;;
1887 add_define)
1888 D_FLAGS="$D_FLAGS \"$VAL\""
1889 ;;
1890 add_ipath)
1891 I_FLAGS="$I_FLAGS -I\"${VAL}\""
1892 ;;
1893 add_lpath)
1894 L_FLAGS="$L_FLAGS -L\"${VAL}\""
1895 ;;
1896 add_rpath)
1897 RPATH_FLAGS="$RPATH_FLAGS \"${VAL}\""
1898 ;;
1899 add_link)
1900 l_FLAGS="$l_FLAGS -l\"${VAL}\""
1901 ;;
1902 add_fpath)
1903 if [ "$PLATFORM_MAC" = "yes" ]; then
1904 L_FLAGS="$L_FLAGS -F\"${VAL}\""
1905 I_FLAGS="$I_FLAGS -F\"${VAL}\""
1906 else
1907 UNKNOWN_OPT=yes
1908 fi
1909 ;;
1910 add_framework)
1911 if [ "$PLATFORM_MAC" = "yes" ]; then
1912 l_FLAGS="$l_FLAGS -framework \"${VAL}\""
1913 else
1914 UNKNOWN_OPT=yes
1915 fi
1916 ;;
1917 silent)
1918 CFG_SILENT="$VAL"
1919 ;;
1920 phonon)
1921 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1922 CFG_PHONON="$VAL"
1923 else
1924 UNKNOWN_OPT=yes
1925 fi
1926 ;;
1927 phonon-backend)
1928 if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
1929 CFG_PHONON_BACKEND="$VAL"
1930 else
1931 UNKNOWN_OPT=yes
1932 fi
1933 ;;
1934 *)
1935 UNKNOWN_OPT=yes
1936 ;;
1937 esac
1938 if [ "$UNKNOWN_OPT" = "yes" ]; then
1939 echo "${CURRENT_OPT}: invalid command-line switch"
1940 OPT_HELP=yes
1941 ERROR=yes
1942 fi
1943done
1944
1945if [ "$CFG_QCONFIG" != "full" ] && [ "$CFG_QT3SUPPORT" = "yes" ]; then
1946 echo "Warning: '-qconfig $CFG_QCONFIG' will disable the qt3support library."
1947 CFG_QT3SUPPORT="no"
1948fi
1949
1950# update QT_CONFIG to show our current predefined configuration
1951case "$CFG_QCONFIG" in
1952minimal|small|medium|large|full)
1953 # these are a sequence of increasing functionality
1954 for c in minimal small medium large full; do
1955 QT_CONFIG="$QT_CONFIG $c-config"
1956 [ "$CFG_QCONFIG" = $c ] && break
1957 done
1958 ;;
1959*)
1960 # not known to be sufficient for anything
1961 if [ '!' -f "$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h" ]; then
1962 echo >&2 "Error: configuration file not found:"
1963 echo >&2 " $relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h"
1964 OPT_HELP=yes
1965 fi
1966esac
1967
1968#-------------------------------------------------------------------------------
1969# build tree initialization
1970#-------------------------------------------------------------------------------
1971
1972# where to find which..
1973unixtests="$relpath/config.tests/unix"
1974mactests="$relpath/config.tests/mac"
1975WHICH="$unixtests/which.test"
1976
1977PERL=`$WHICH perl 2>/dev/null`
1978
1979# find out which awk we want to use, prefer gawk, then nawk, then regular awk
1980AWK=
1981for e in gawk nawk awk; do
1982 if "$WHICH" $e >/dev/null 2>&1 && ( $e -f /dev/null /dev/null ) >/dev/null 2>&1; then
1983 AWK=$e
1984 break
1985 fi
1986done
1987
1988### skip this if the user just needs help...
1989if [ "$OPT_HELP" != "yes" ]; then
1990
1991# is this a shadow build?
1992if [ "$OPT_SHADOW" = "maybe" ]; then
1993 OPT_SHADOW=no
1994 if [ "$relpath" != "$outpath" ] && [ '!' -f "$outpath/configure" ]; then
1995 if [ -h "$outpath" ]; then
1996 [ "$relpath" -ef "$outpath" ] || OPT_SHADOW=yes
1997 else
1998 OPT_SHADOW=yes
1999 fi
2000 fi
2001fi
2002if [ "$OPT_SHADOW" = "yes" ]; then
2003 if [ -f "$relpath/.qmake.cache" -o -f "$relpath/src/corelib/global/qconfig.h" ]; then
2004 echo >&2 "You cannot make a shadow build from a source tree containing a previous build."
2005 echo >&2 "Cannot proceed."
2006 exit 1
2007 fi
2008 [ "$OPT_VERBOSE" = "yes" ] && echo "Performing shadow build..."
2009fi
2010
2011if [ "$PLATFORM_X11" = "yes" -o "$PLATFORM_QWS" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2012 echo
2013 echo "WARNING: -debug-and-release is not supported anymore on Qt/X11 and Qt for Embedded Linux"
2014 echo "By default, Qt is built in release mode with separate debug information, so"
2015 echo "-debug-and-release is not necessary anymore"
2016 echo
2017fi
2018
2019# detect build style
2020if [ "$CFG_DEBUG" = "auto" ]; then
2021 if [ "$PLATFORM_MAC" = "yes" ]; then
2022 CFG_DEBUG_RELEASE=yes
2023 CFG_DEBUG=yes
2024 elif [ "$CFG_DEV" = "yes" ]; then
2025 CFG_DEBUG_RELEASE=no
2026 CFG_DEBUG=yes
2027 else
2028 CFG_DEBUG_RELEASE=no
2029 CFG_DEBUG=no
2030 fi
2031fi
2032if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then
2033 QMAKE_CONFIG="$QMAKE_CONFIG build_all"
2034fi
2035
2036if [ "$CFG_SILENT" = "yes" ]; then
2037 QMAKE_CONFIG="$QMAKE_CONFIG silent"
2038fi
2039
2040# if the source tree is different from the build tree,
2041# symlink or copy part of the sources
2042if [ "$OPT_SHADOW" = "yes" ]; then
2043 echo "Preparing build tree..."
2044
2045 if [ -z "$PERL" ]; then
2046 echo
2047 echo "You need perl in your PATH to make a shadow build."
2048 echo "Cannot proceed."
2049 exit 1
2050 fi
2051
2052 [ -d "$outpath/bin" ] || mkdir -p "$outpath/bin"
2053
2054 # symlink the qmake directory
2055 find "$relpath/qmake" | while read a; do
2056 my_a=`echo "$a" | sed "s,^${relpath}/,${outpath}/,"`
2057 if [ '!' -f "$my_a" ]; then
2058 if [ -d "$a" ]; then
2059 # directories are created...
2060 mkdir -p "$my_a"
2061 else
2062 a_dir=`dirname "$my_a"`
2063 [ -d "$a_dir" ] || mkdir -p "$a_dir"
2064 # ... and files are symlinked
2065 case `basename "$a"` in
2066 *.o|*.d|GNUmakefile*|qmake)
2067 ;;
2068 *)
2069 rm -f "$my_a"
2070 ln -s "$a" "$my_a"
2071 ;;
2072 esac
2073 fi
2074 fi
2075 done
2076
2077 # make a syncqt script that can be used in the shadow
2078 rm -f "$outpath/bin/syncqt"
2079 if [ -x "$relpath/bin/syncqt" ]; then
2080 mkdir -p "$outpath/bin"
2081 echo "#!/bin/sh" >"$outpath/bin/syncqt"
2082 echo "QTDIR=\"$relpath\"; export QTDIR" >>"$outpath/bin/syncqt"
2083 echo "perl \"$relpath/bin/syncqt\" -outdir \"$outpath\" $*" >>"$outpath/bin/syncqt"
2084 chmod 755 "$outpath/bin/syncqt"
2085 fi
2086
2087 # symlink the mkspecs directory
2088 mkdir -p "$outpath/mkspecs"
2089 rm -f "$outpath"/mkspecs/*
2090 ln -s "$relpath"/mkspecs/* "$outpath/mkspecs"
2091 rm -f "$outpath/mkspecs/default"
2092
2093 # symlink the doc directory
2094 rm -rf "$outpath/doc"
2095 ln -s "$relpath/doc" "$outpath/doc"
2096
2097 # make sure q3porting.xml can be found
2098 mkdir -p "$outpath/tools/porting/src"
2099 rm -f "$outpath/tools/porting/src/q3porting.xml"
2100 ln -s "$relpath/tools/porting/src/q3porting.xml" "$outpath/tools/porting/src"
2101fi
2102
2103# symlink files from src/gui/embedded neccessary to build qvfb
2104if [ "$CFG_DEV" = "yes" ]; then
2105 for f in qvfbhdr.h qlock_p.h qlock.cpp qwssignalhandler_p.h qwssignalhandler.cpp; do
2106 dest="${relpath}/tools/qvfb/${f}"
2107 rm -f "$dest"
2108 ln -s "${relpath}/src/gui/embedded/${f}" "${dest}"
2109 done
2110fi
2111
2112# symlink fonts to be able to run application from build directory
2113if [ "$PLATFORM_QWS" = "yes" ] && [ ! -e "${outpath}/lib/fonts" ]; then
2114 if [ "$PLATFORM" = "$XPLATFORM" ]; then
2115 mkdir -p "${outpath}/lib"
2116 ln -s "${relpath}/lib/fonts" "${outpath}/lib/fonts"
2117 fi
2118fi
2119
2120if [ "$OPT_FAST" = "auto" ]; then
2121 if [ '!' -z "$AWK" ] && [ "$CFG_DEV" = "yes" ]; then
2122 OPT_FAST=yes
2123 else
2124 OPT_FAST=no
2125 fi
2126fi
2127
2128# find a make command
2129if [ -z "$MAKE" ]; then
2130 MAKE=
2131 for mk in gmake make; do
2132 if "$WHICH" $mk >/dev/null 2>&1; then