1 dnl -*- Mode: Autoconf; tab-width: 4; indent-tabs-mode: nil; -*-
2 dnl vi: set tabstop=4 shiftwidth=4 expandtab:
3 dnl ***** BEGIN LICENSE BLOCK *****
4 dnl Version: MPL 1.1/GPL 2.0/LGPL 2.1
6 dnl The contents of this file are subject to the Mozilla Public License Version
7 dnl 1.1 (the "License"); you may not use this file except in compliance with
8 dnl the License. You may obtain a copy of the License at
9 dnl http://www.mozilla.org/MPL/
11 dnl Software distributed under the License is distributed on an "AS IS" basis,
12 dnl WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
13 dnl for the specific language governing rights and limitations under the
16 dnl The Original Code is this file as it was released upon August 6, 1998.
18 dnl The Initial Developer of the Original Code is
19 dnl Christopher Seawood.
20 dnl Portions created by the Initial Developer are Copyright (C) 1998-2001
21 dnl the Initial Developer. All Rights Reserved.
24 dnl Jamie Zawinski <jwz@jwz.org>
25 dnl gettimeofday args check
26 dnl Christopher Blizzard <blizzard@appliedtheory.com>
27 dnl gnomefe update & enable-pthreads
28 dnl Ramiro Estrugo <ramiro@netscape.com>
29 dnl X11 makedepend support
31 dnl Henry Sobotka <sobotka@axess.com>
33 dnl Dan Mosedale <dmose@mozilla.org>
35 dnl Seth Spitzer <sspitzer@netscape.com>
37 dnl Benjamin Smedberg <benjamin@smedbergs.us>
38 dnl Howard Chu <hyc@symas.com>
40 dnl Mark Mentovai <mark@moxienet.com>:
41 dnl Mac OS X 10.4 support
42 dnl Giorgio Maone <g.maone@informaction.com>
43 dnl MSVC l10n compatible version check
44 dnl Ben Turner <mozilla@songbirdnest.com>
45 dnl Windows x64 support
46 dnl Makoto Kato <m_kato@ga2.so-net.ne.jp>
48 dnl Alternatively, the contents of this file may be used under the terms of
49 dnl either the GNU General Public License Version 2 or later (the "GPL"), or
50 dnl the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
51 dnl in which case the provisions of the GPL or the LGPL are applicable instead
52 dnl of those above. If you wish to allow use of your version of this file only
53 dnl under the terms of either the GPL or the LGPL, and not to allow others to
54 dnl use your version of this file under the terms of the MPL, indicate your
55 dnl decision by deleting the provisions above and replace them with the notice
56 dnl and other provisions required by the GPL or the LGPL. If you do not delete
57 dnl the provisions above, a recipient may use your version of this file under
58 dnl the terms of any one of the MPL, the GPL or the LGPL.
60 dnl ***** END LICENSE BLOCK *****
62 dnl Process this file with autoconf to produce a configure script.
63 dnl ========================================================
66 AC_INIT(config/config.mk)
67 AC_CONFIG_AUX_DIR(${srcdir}/build/autoconf)
69 TARGET_CPU="${target_cpu}"
70 TARGET_VENDOR="${target_vendor}"
71 TARGET_OS="${target_os}"
74 MOZ_DEB_TIMESTAMP=`date +"%a, %d %b %Y %T %z" 2>&1`
75 AC_SUBST(MOZ_DEB_TIMESTAMP)
78 dnl ========================================================
80 dnl = Don't change the following two lines. Doing so breaks:
82 dnl = CFLAGS="-foo" ./configure
84 dnl ========================================================
86 CPPFLAGS="${CPPFLAGS=}"
87 CXXFLAGS="${CXXFLAGS=}"
89 HOST_CFLAGS="${HOST_CFLAGS=}"
90 HOST_CXXFLAGS="${HOST_CXXFLAGS=}"
91 HOST_LDFLAGS="${HOST_LDFLAGS=}"
93 dnl ========================================================
94 dnl = Preserve certain environment flags passed to configure
95 dnl = We want sub projects to receive the same flags
96 dnl = untainted by this configure script
97 dnl ========================================================
100 _SUBDIR_CFLAGS="$CFLAGS"
101 _SUBDIR_CPPFLAGS="$CPPFLAGS"
102 _SUBDIR_CXXFLAGS="$CXXFLAGS"
103 _SUBDIR_LDFLAGS="$LDFLAGS"
104 _SUBDIR_HOST_CC="$HOST_CC"
105 _SUBDIR_HOST_CFLAGS="$HOST_CFLAGS"
106 _SUBDIR_HOST_CXXFLAGS="$HOST_CXXFLAGS"
107 _SUBDIR_HOST_LDFLAGS="$HOST_LDFLAGS"
108 _SUBDIR_CONFIG_ARGS="$ac_configure_args"
110 dnl Set the version number of the libs included with mozilla
111 dnl ========================================================
118 dnl Set the minimum version of toolkit libs used by mozilla
119 dnl ========================================================
127 WINDRES_VERSION=2.14.90
130 GNOMEUI_VERSION=2.2.0
134 STARTUP_NOTIFICATION_VERSION=0.8
136 SQLITE_VERSION=3.6.18
137 LIBNOTIFY_VERSION=0.4
141 dnl Set various checks
142 dnl ========================================================
146 dnl Initialize the Pthread test variables early so they can be
147 dnl overridden by each platform.
148 dnl ========================================================
152 dnl Do not allow a separate objdir build if a srcdir build exists.
153 dnl ==============================================================
154 _topsrcdir=`cd \`dirname $0\`; pwd`
157 if test "$_topsrcdir" != "$_objdir"
159 # Check for a couple representative files in the source tree
161 for file in $_topsrcdir/Makefile $_topsrcdir/config/autoconf.mk; do
162 if test -f $file; then
163 _conflict_files="$_conflict_files $file"
166 if test "$_conflict_files"; then
168 echo "* Your source tree contains these files:"
169 for file in $_conflict_files; do
173 * This indicates that you previously built in the source tree.
174 * A source tree build can confuse the separate objdir build.
176 * To clean up the source tree:
187 dnl Default to MSVC for win32 and gcc-4.2 for darwin
188 dnl ==============================================================
189 if test -z "$CROSS_COMPILE"; then
191 *-cygwin*|*-mingw*|*-msvc*|*-mks*)
192 if test -z "$CC"; then CC=cl; fi
193 if test -z "$CXX"; then CXX=cl; fi
194 if test -z "$CPP"; then CPP="cl -E -nologo"; fi
195 if test -z "$CXXCPP"; then CXXCPP="cl -TP -E -nologo"; ac_cv_prog_CXXCPP="$CXXCPP"; fi
196 if test -z "$LD"; then LD=link; fi
197 if test -z "$AS"; then
198 case "${target_cpu}" in
207 if test -z "$MIDL"; then MIDL=midl; fi
210 if test -z "$CC"; then CC=gcc-4.2; fi
211 if test -z "$CXX"; then CXX=g++-4.2; fi
216 COMPILE_ENVIRONMENT=1
217 MOZ_ARG_ENABLE_BOOL(compile-environment,
218 [ --disable-compile-environment
219 Disable compiler/library checks.],
220 COMPILE_ENVIRONMENT=1,
221 COMPILE_ENVIRONMENT= )
222 AC_SUBST(COMPILE_ENVIRONMENT)
224 MOZ_ARG_WITH_STRING(l10n-base,
225 [ --with-l10n-base=DIR path to l10n repositories],
226 L10NBASEDIR=$withval)
227 if test ! -z "$L10NBASEDIR"; then
228 if test "$L10NBASEDIR" = "yes" -o "$L10NBASEDIR" = "no"; then
229 AC_MSG_ERROR([--with-l10n-base must specify a path])
230 elif test -d "$L10NBASEDIR"; then
231 L10NBASEDIR=`cd "$L10NBASEDIR" && pwd`
233 AC_MSG_ERROR([Invalid value --with-l10n-base, $L10NBASEDIR doesn't exist])
236 AC_SUBST(L10NBASEDIR)
238 dnl Check for Perl first -- needed for win32 SDK checks
239 MOZ_PATH_PROGS(PERL, $PERL perl5 perl )
240 if test -z "$PERL" || test "$PERL" = ":"; then
241 AC_MSG_ERROR([perl not found in \$PATH])
244 dnl ========================================================
245 dnl Checks for compilers.
246 dnl ========================================================
247 dnl Set CROSS_COMPILE in the environment when running configure
248 dnl to use the cross-compile setup for now
249 dnl ========================================================
251 if test "$COMPILE_ENVIRONMENT"; then
253 dnl Do some special WinCE toolchain stuff
257 MOZ_ARG_WITH_STRING(wince-sdk,
258 [ --with-wince-sdk=WINCE_SDK_DIR
259 The path to the Windows CE SDK],
260 WINCE_SDK_DIR=$withval)
262 MOZ_ARG_WITH_STRING(ogles-sdk,
263 [ --with-ogles-sdk=OGLES_SDK_DIR
264 The path to the OGLES SDK],
265 OGLES_SDK_DIR=$withval)
267 dnl Default to Windows Mobile components enabled
268 WINCE_WINDOWS_MOBILE=1
270 MOZ_ARG_DISABLE_BOOL(windows-mobile-components,
271 [ --disable-windows-mobile-components
272 Disable Windows Mobile specific components from CE build],
273 WINCE_WINDOWS_MOBILE=,
274 WINCE_WINDOWS_MOBILE=1)
276 if test "$WINCE_WINDOWS_MOBILE"; then
277 AC_DEFINE(WINCE_WINDOWS_MOBILE)
284 echo -----------------------------------------------------------------------------
285 echo Building Windows CE Shunt Library and Tool Chain
293 make OGLES_SDK_DIR="$OGLES_SDK_DIR" WINCE_SDK_DIR="$WINCE_SDK_DIR" TOPSRCDIR="$_topsrcdir" OBJDIR="$_pwdw" -C $srcdir/build/wince/tools
295 CC="$_pwd/dist/sdk/bin/arm-wince-gcc"
296 CXX="$_pwd/dist/sdk/bin/arm-wince-gcc"
297 CPP="$_pwd/dist/sdk/bin/arm-wince-gcc -E -nologo"
298 CXXCPP="$_pwd/dist/sdk/bin/arm-wince-gcc -TP -E -nologo"
299 LD="$_pwd/dist/sdk/bin/arm-wince-link"
300 AR="$_pwd/dist/sdk/bin/arm-wince-lib"
301 AS="$_pwd/dist/sdk/bin/arm-wince-as"
302 RC="$_pwd/dist/sdk/bin/arm-wince-res"
305 echo -----------------------------------------------------------------------------
310 if test -n "$CROSS_COMPILE" && test "$target" != "$host"; then
311 echo "cross compiling from $host to $target"
315 _SAVE_CFLAGS="$CFLAGS"
316 _SAVE_LDFLAGS="$LDFLAGS"
318 AC_MSG_CHECKING([for host c compiler])
319 AC_CHECK_PROGS(HOST_CC, $HOST_CC gcc cc /usr/ucb/cc cl icc, "")
320 if test -z "$HOST_CC"; then
321 AC_MSG_ERROR([no acceptable c compiler found in \$PATH])
323 AC_MSG_RESULT([$HOST_CC])
324 AC_MSG_CHECKING([for host c++ compiler])
325 AC_CHECK_PROGS(HOST_CXX, $HOST_CXX $CCC c++ g++ gcc CC cxx cc++ cl icc, "")
326 if test -z "$HOST_CXX"; then
327 AC_MSG_ERROR([no acceptable c++ compiler found in \$PATH])
329 AC_MSG_RESULT([$HOST_CXX])
331 if test -z "$HOST_CFLAGS"; then
332 HOST_CFLAGS="$CFLAGS"
334 if test -z "$HOST_CXXFLAGS"; then
335 HOST_CXXFLAGS="$CXXFLAGS"
337 if test -z "$HOST_LDFLAGS"; then
338 HOST_LDFLAGS="$LDFLAGS"
340 AC_CHECK_PROGS(HOST_RANLIB, $HOST_RANLIB ranlib, ranlib, :)
341 AC_CHECK_PROGS(HOST_AR, $HOST_AR ar, ar, :)
343 CFLAGS="$HOST_CFLAGS"
344 LDFLAGS="$HOST_LDFLAGS"
346 AC_MSG_CHECKING([whether the host c compiler ($HOST_CC $HOST_CFLAGS $HOST_LDFLAGS) works])
347 AC_TRY_COMPILE([], [return(0);],
348 [ac_cv_prog_hostcc_works=1 AC_MSG_RESULT([yes])],
349 AC_MSG_ERROR([installation or configuration problem: host compiler $HOST_CC cannot create executables.]) )
352 CFLAGS="$HOST_CXXFLAGS"
354 AC_MSG_CHECKING([whether the host c++ compiler ($HOST_CXX $HOST_CXXFLAGS $HOST_LDFLAGS) works])
355 AC_TRY_COMPILE([], [return(0);],
356 [ac_cv_prog_hostcxx_works=1 AC_MSG_RESULT([yes])],
357 AC_MSG_ERROR([installation or configuration problem: host compiler $HOST_CXX cannot create executables.]) )
361 LDFLAGS=$_SAVE_LDFLAGS
363 case "$build:$target" in
364 powerpc-apple-darwin8*:i?86-apple-darwin*)
365 dnl The Darwin cross compiler doesn't necessarily point itself at a
366 dnl root that has libraries for the proper architecture, it defaults
367 dnl to the system root. The libraries in the system root on current
368 dnl versions of PPC OS X 10.4 aren't fat, so these target compiler
369 dnl checks will fail. Fake a working SDK in that case.
371 _SAVE_CXXFLAGS=$CXXLAGS
372 CFLAGS="-isysroot /Developer/SDKs/MacOSX10.5.sdk $CFLAGS"
373 CXXFLAGS="-isysroot /Developer/SDKs/MacOSX10.5.sdk $CXXFLAGS"
377 AC_CHECK_PROGS(CC, $CC "${target_alias}-gcc" "${target}-gcc", :)
380 AC_CHECK_PROGS(CXX, $CXX "${target_alias}-g++" "${target}-g++", :)
384 case "$build:$target" in
385 powerpc-apple-darwin8*:i?86-apple-darwin*)
386 dnl Revert the changes made above. From this point on, the target
387 dnl compiler will never be used without applying the SDK to CFLAGS
388 dnl (see --with-macos-sdk below).
390 CXXFLAGS=$_SAVE_CXXFLAGS
394 AC_CHECK_PROGS(RANLIB, $RANLIB "${target_alias}-ranlib" "${target}-ranlib", :)
395 AC_CHECK_PROGS(AR, $AR "${target_alias}-ar" "${target}-ar", :)
396 MOZ_PATH_PROGS(AS, $AS "${target_alias}-as" "${target}-as", :)
397 AC_CHECK_PROGS(LD, $LD "${target_alias}-ld" "${target}-ld", :)
398 AC_CHECK_PROGS(STRIP, $STRIP "${target_alias}-strip" "${target}-strip", :)
399 AC_CHECK_PROGS(WINDRES, $WINDRES "${target_alias}-windres" "${target}-windres", :)
400 AC_DEFINE(CROSS_COMPILE)
405 MOZ_PATH_PROGS(AS, $AS as, $CC)
406 AC_CHECK_PROGS(AR, ar, :)
407 AC_CHECK_PROGS(LD, ld, :)
408 AC_CHECK_PROGS(STRIP, strip, :)
409 AC_CHECK_PROGS(WINDRES, windres, :)
410 if test -z "$HOST_CC"; then
413 if test -z "$HOST_CFLAGS"; then
414 HOST_CFLAGS="$CFLAGS"
416 if test -z "$HOST_CXX"; then
419 if test -z "$HOST_CXXFLAGS"; then
420 HOST_CXXFLAGS="$CXXFLAGS"
422 if test -z "$HOST_LDFLAGS"; then
423 HOST_LDFLAGS="$LDFLAGS"
425 if test -z "$HOST_RANLIB"; then
426 HOST_RANLIB="$RANLIB"
428 if test -z "$HOST_AR"; then
439 if test "$GCC" = "yes"; then
441 CC_VERSION=`$CC -v 2>&1 | grep 'gcc version'`
443 if test "$GXX" = "yes"; then
445 CXX_VERSION=`$CXX -v 2>&1 | grep 'gcc version'`
447 if test "`echo | $AS -v 2>&1 | grep -c GNU`" != "0"; then
450 if test "`echo | $LD -v 2>&1 | grep -c GNU`" != "0"; then
453 if test "$GNU_CC"; then
454 if `$CC -print-prog-name=ld` -v 2>&1 | grep -c GNU >/dev/null; then
461 if test "$GCC" = yes; then
462 if test "`$CC -help 2>&1 | grep -c 'Intel(R) C++ Compiler'`" != "0"; then
467 if test "$GXX" = yes; then
468 if test "`$CXX -help 2>&1 | grep -c 'Intel(R) C++ Compiler'`" != "0"; then
473 dnl Special win32 checks
474 dnl ========================================================
480 if test -n "$GNU_CC"; then
488 dnl Target the Windows 7 SDK by default
491 MOZ_ARG_WITH_STRING(windows-version,
492 [ --with-windows-version=WINSDK_TARGETVER
493 Highest Windows version to target using this SDK
494 502: Windows Server 2003
497 WINSDK_TARGETVER=$withval)
499 case "$WINSDK_TARGETVER" in
501 MOZ_WINSDK_TARGETVER=0${WINSDK_TARGETVER}0000
505 AC_MSG_ERROR([Invalid value for --with-windows-version ($WINSDK_TARGETVER), must be 502, 600 or 601]);
510 dnl Vista SDK specific api (deprecated)
511 MOZ_ARG_DISABLE_BOOL(vista-sdk-requirements,
512 [ --disable-vista-sdk-requirements
513 Do not build Vista SDK specific code],
514 MOZ_DISABLE_VISTA_SDK_REQUIREMENTS=1,
515 MOZ_DISABLE_VISTA_SDK_REQUIREMENTS=)
516 if test -n "$COMPILE_ENVIRONMENT"; then
517 if test -n "$MOZ_DISABLE_VISTA_SDK_REQUIREMENTS"; then
518 AC_MSG_WARN([--disable-vista-sdk-requirements is deprecated, use --with-windows-version=502 instead])
519 MOZ_WINSDK_TARGETVER=05020000
522 if test "$MOZ_WINSDK_TARGETVER" -lt "06000000"; then
523 MOZ_DISABLE_VISTA_SDK_REQUIREMENTS=1
524 AC_DEFINE(MOZ_DISABLE_VISTA_SDK_REQUIREMENTS)
525 # We can't build parental controls either
526 MOZ_DISABLE_PARENTAL_CONTROLS=1
530 AC_SUBST(MOZ_DISABLE_VISTA_SDK_REQUIREMENTS)
533 *-cygwin*|*-mingw*|*-msvc*|*-mks*|*-wince)
534 if test "$GCC" != "yes"; then
535 # Check to see if we are really running in a msvc environemnt
537 AC_CHECK_PROGS(MIDL, midl)
539 # Make sure compilers are valid
540 CFLAGS="$CFLAGS -TC -nologo"
541 CXXFLAGS="$CXXFLAGS -TP -nologo"
544 AC_TRY_COMPILE([#include <stdio.h>],
545 [ printf("Hello World\n"); ],,
546 AC_MSG_ERROR([\$(CC) test failed. You must have MS VC++ in your path to build.]) )
549 AC_TRY_COMPILE([#include <new.h>],
550 [ unsigned *test = new unsigned(42); ],,
551 AC_MSG_ERROR([\$(CXX) test failed. You must have MS VC++ in your path to build.]) )
555 _MSVC_VER_FILTER='s|.* ([0-9]+\.[0-9]+\.[0-9]+(\.[0-9]+)?).*|\1|p'
558 # Determine compiler version
559 CC_VERSION=`"${CC}" -v 2>&1 | sed -nre "$_MSVC_VER_FILTER"`
560 _CC_MAJOR_VERSION=`echo ${CC_VERSION} | $AWK -F\. '{ print $1 }'`
561 _CC_MINOR_VERSION=`echo ${CC_VERSION} | $AWK -F\. '{ print $2 }'`
562 _CC_RELEASE=`echo ${CC_VERSION} | $AWK -F\. '{ print $3 }'`
563 _CC_BUILD=`echo ${CC_VERSION} | $AWK -F\. '{ print $4 }'`
564 _MSC_VER=${_CC_MAJOR_VERSION}${_CC_MINOR_VERSION}
566 CXX_VERSION=`"${CXX}" -v 2>&1 | sed -nre "$_MSVC_VER_FILTER"`
567 _CXX_MAJOR_VERSION=`echo ${CXX_VERSION} | $AWK -F\. '{ print $1 }'`
569 if test "$_CC_MAJOR_VERSION" != "$_CXX_MAJOR_VERSION"; then
570 AC_MSG_ERROR([The major versions of \$CC and \$CXX do not match.])
572 if test "$_CC_MAJOR_VERSION" = "13"; then
574 elif test "$_CC_MAJOR_VERSION" = "14"; then
576 CXXFLAGS="$CXXFLAGS -Zc:wchar_t-"
577 dnl -DYNAMICBASE is only supported on VC8SP1 or newer,
578 dnl so be very specific here!
579 dnl VC8 is 14.00.50727.42, VC8SP1 is 14.00.50727.762
580 if test $_CC_RELEASE -gt 50727; then
582 elif test $_CC_BUILD -ge 762; then
585 AC_DEFINE(_CRT_SECURE_NO_DEPRECATE)
586 AC_DEFINE(_CRT_NONSTDC_NO_DEPRECATE)
587 elif test "$_CC_MAJOR_VERSION" = "15"; then
589 CXXFLAGS="$CXXFLAGS -Zc:wchar_t-"
590 LDFLAGS="$LDFLAGS -MANIFESTUAC:NO"
592 AC_DEFINE(_CRT_SECURE_NO_WARNINGS)
593 AC_DEFINE(_CRT_NONSTDC_NO_WARNINGS)
595 AC_MSG_ERROR([This version of the MSVC compiler, $CC_VERSION , is unsupported.])
598 _MOZ_RTTI_FLAGS_ON='-GR'
599 _MOZ_RTTI_FLAGS_OFF='-GR-'
600 _MOZ_EXCEPTIONS_FLAGS_ON='-EHsc'
601 _MOZ_EXCEPTIONS_FLAGS_OFF=''
603 if test -n "$WIN32_REDIST_DIR"; then
604 WIN32_REDIST_DIR=`cd "$WIN32_REDIST_DIR" && pwd`
608 # ensure that mt.exe is Microsoft (R) Manifest Tool and not magnetic tape manipulation utility (or something else)
609 if test "$_CC_SUITE" -ge "8"; then
611 _MSMT_VER_FILTER='s|.* \([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*|\1|p'
614 MSMT_TOOL=`mt 2>&1|grep 'Microsoft (R) Manifest Tool'`
615 if test -n "$MSMT_TOOL"; then
616 MSMANIFEST_TOOL_VERSION=`echo ${MSMT_TOOL}|sed -ne "$_MSMT_VER_FILTER"`
617 if test -z "$MSMANIFEST_TOOL_VERSION"; then
618 AC_MSG_WARN([Unknown version of the Microsoft (R) Manifest Tool.])
623 AC_MSG_ERROR([Microsoft (R) Manifest Tool must be in your \$PATH.])
627 # Check linker version
628 _LD_FULL_VERSION=`"${LD}" -v 2>&1 | sed -nre "$_MSVC_VER_FILTER"`
629 _LD_MAJOR_VERSION=`echo ${_LD_FULL_VERSION} | $AWK -F\. '{ print $1 }'`
630 if test "$_LD_MAJOR_VERSION" != "$_CC_SUITE"; then
631 AC_MSG_ERROR([The linker major version, $_LD_FULL_VERSION, does not match the compiler suite version, $_CC_SUITE.])
636 _MIDL_FULL_VERSION=`"${MIDL}" -v 2>&1 | sed -nre "$_MSVC_VER_FILTER"`
637 _MIDL_MAJOR_VERSION=`echo ${_MIDL_FULL_VERSION} | $AWK -F\. '{ print $1 }'`
638 _MIDL_MINOR_VERSION=`echo ${_MIDL_FULL_VERSION} | $AWK -F\. '{ print $2 }'`
639 _MIDL_REV_VERSION=`echo ${_MIDL_FULL_VERSION} | $AWK -F\. '{ print $3 }'`
640 # Add flags if necessary
641 AC_MSG_CHECKING([for midl flags])
644 if test \( "$_MIDL_MAJOR_VERSION" = "7" -a "$_MIDL_MINOR_VERSION" = "00" -a "$_MIDL_REV_VERSION" = "0499" \); then
645 # MIDL version 7.00.0499 defaults /env win64 on x64 platforms.
646 # MIDL version 7.00.0500 or later has no problem.
647 MIDL_FLAGS="${MIDL_FLAGS} -env win32"
648 AC_MSG_RESULT([need -env win32])
650 AC_MSG_RESULT([none needed])
654 MIDL_FLAGS="${MIDL_FLAGS} -env x64"
657 AC_MSG_RESULT([none needed])
661 # Identify which version of the SDK we're building with
662 # Windows Server 2008 and newer SDKs have WinSDKVer.h, get the version
664 AC_CHECK_HEADERS([winsdkver.h])
665 if test "$ac_cv_header_winsdkver_h" = "yes"; then
666 # Get the highest _WIN32_WINNT and NTDDI versions supported
667 # Take the higher of the two
668 # This is done because the Windows 7 beta SDK reports its
669 # NTDDI_MAXVER to be 0x06000100 instead of 0x06010000, as it should
670 AC_CACHE_CHECK(for highest Windows version supported by this SDK,
672 [cat > conftest.h <<EOF
673 #include <winsdkver.h>
674 #include <sdkddkver.h>
676 #if (NTDDI_VERSION_FROM_WIN32_WINNT(_WIN32_WINNT_MAXVER) > NTDDI_MAXVER)
677 #define WINSDK_MAXVER NTDDI_VERSION_FROM_WIN32_WINNT(_WIN32_WINNT_MAXVER)
679 #define WINSDK_MAXVER NTDDI_MAXVER
684 ac_cv_winsdk_maxver=`$CPP conftest.h 2>/dev/null | tail -n1`
687 MOZ_WINSDK_MAXVER=${ac_cv_winsdk_maxver}
689 # The Vista SDK is the only one to have sdkddkver.h but not
691 AC_CHECK_HEADERS([sdkddkver.h])
692 if test "$ac_cv_header_sdkddkver_h" = "yes"; then
693 MOZ_WINSDK_MAXVER=0x06000000
695 # Assume the Server 2003 Platform SDK
696 MOZ_WINSDK_MAXVER=0x05020000
700 unset _MSVC_VER_FILTER
703 # Check w32api version
704 _W32API_MAJOR_VERSION=`echo $W32API_VERSION | $AWK -F\. '{ print $1 }'`
705 _W32API_MINOR_VERSION=`echo $W32API_VERSION | $AWK -F\. '{ print $2 }'`
706 AC_MSG_CHECKING([for w32api version >= $W32API_VERSION])
707 AC_TRY_COMPILE([#include <w32api.h>],
708 #if (__W32API_MAJOR_VERSION < $_W32API_MAJOR_VERSION) || \
709 (__W32API_MAJOR_VERSION == $_W32API_MAJOR_VERSION && \
710 __W32API_MINOR_VERSION < $_W32API_MINOR_VERSION)
711 #error "test failed."
713 , [ res=yes ], [ res=no ])
714 AC_MSG_RESULT([$res])
715 if test "$res" != "yes"; then
716 AC_MSG_ERROR([w32api version $W32API_VERSION or higher required.])
718 # Check windres version
719 AC_MSG_CHECKING([for windres version >= $WINDRES_VERSION])
720 _WINDRES_VERSION=`${WINDRES} --version 2>&1 | grep -i windres 2>/dev/null | $AWK '{ print $3 }'`
721 AC_MSG_RESULT([$_WINDRES_VERSION])
722 _WINDRES_MAJOR_VERSION=`echo $_WINDRES_VERSION | $AWK -F\. '{ print $1 }'`
723 _WINDRES_MINOR_VERSION=`echo $_WINDRES_VERSION | $AWK -F\. '{ print $2 }'`
724 _WINDRES_RELEASE_VERSION=`echo $_WINDRES_VERSION | $AWK -F\. '{ print $3 }'`
725 WINDRES_MAJOR_VERSION=`echo $WINDRES_VERSION | $AWK -F\. '{ print $1 }'`
726 WINDRES_MINOR_VERSION=`echo $WINDRES_VERSION | $AWK -F\. '{ print $2 }'`
727 WINDRES_RELEASE_VERSION=`echo $WINDRES_VERSION | $AWK -F\. '{ print $3 }'`
728 if test "$_WINDRES_MAJOR_VERSION" -lt "$WINDRES_MAJOR_VERSION" -o \
729 "$_WINDRES_MAJOR_VERSION" -eq "$WINDRES_MAJOR_VERSION" -a \
730 "$_WINDRES_MINOR_VERSION" -lt "$WINDRES_MINOR_VERSION" -o \
731 "$_WINDRES_MAJOR_VERSION" -eq "$WINDRES_MAJOR_VERSION" -a \
732 "$_WINDRES_MINOR_VERSION" -eq "$WINDRES_MINOR_VERSION" -a \
733 "$_WINDRES_RELEASE_VERSION" -lt "$WINDRES_RELEASE_VERSION"
735 AC_MSG_ERROR([windres version $WINDRES_VERSION or higher is required to build.])
738 # Server 2003 is the highest version supported
739 MOZ_WINSDK_MAXVER=0x05020000
742 AC_DEFINE_UNQUOTED(WINVER,0x$WINVER)
743 AC_DEFINE_UNQUOTED(_WIN32_WINNT,0x$WINVER)
744 # Require OS features provided by IE 5.0
745 AC_DEFINE_UNQUOTED(_WIN32_IE,0x0500)
747 # If the maximum version supported by this SDK is lower than the target
749 AC_MSG_CHECKING([for Windows SDK being recent enough])
750 if $PERL -e "exit(0x$MOZ_WINSDK_TARGETVER > $MOZ_WINSDK_MAXVER)"; then
754 AC_MSG_ERROR([You are targeting Windows version 0x$MOZ_WINSDK_TARGETVER, but your SDK only supports up to version $MOZ_WINSDK_MAXVER. Install and use an updated SDK, or target a lower version using --with-windows-version. See https://developer.mozilla.org/En/Windows_SDK_versions for more details on fixing this.])
757 AC_DEFINE_UNQUOTED(MOZ_WINSDK_TARGETVER,0x$MOZ_WINSDK_TARGETVER)
758 # Definitions matching sdkddkver.h
759 AC_DEFINE_UNQUOTED(MOZ_NTDDI_WS03, 0x05020000)
760 AC_DEFINE_UNQUOTED(MOZ_NTDDI_LONGHORN, 0x06000000)
761 AC_DEFINE_UNQUOTED(MOZ_NTDDI_WIN7, 0x06010000)
765 dnl Test breaks icc on OS/2 && MSVC
766 if test "$CC" != "icc" -a -z "$_WIN32_MSVC"; then
768 if grep "NO_MINUS_C_MINUS_O 1" ./confdefs.h >/dev/null; then
772 CC="${srcdir}/build/hcc '$CC'"
773 CXX="${srcdir}/build/hcpp '$CXX'"
780 if test -n "$_WIN32_MSVC"; then
782 SKIP_COMPILER_CHECKS=1
783 SKIP_LIBRARY_CHECKS=1
785 # Since we're skipping compiler and library checks, hard-code
792 AC_DEFINE(HAVE_SETBUF)
793 AC_DEFINE(HAVE_ISATTY)
798 fi # COMPILE_ENVIRONMENT
810 dnl ========================================================
811 dnl Checks for programs.
812 dnl ========================================================
816 if test -z "$TINDERBOX_SKIP_PERL_VERSION_CHECK"; then
817 AC_MSG_CHECKING([for minimum required perl version >= $PERL_VERSION])
818 _perl_version=`PERL_VERSION=$PERL_VERSION $PERL -e 'print "$]"; if ($] >= $ENV{PERL_VERSION}) { exit(0); } else { exit(1); }' 2>&5`
820 AC_MSG_RESULT([$_perl_version])
822 if test "$_perl_res" != 0; then
823 AC_MSG_ERROR([Perl $PERL_VERSION or higher is required.])
827 AC_MSG_CHECKING([for full perl installation])
828 _perl_archlib=`$PERL -e 'use Config; if ( -d $Config{archlib} ) { exit(0); } else { exit(1); }' 2>&5`
830 if test "$_perl_res" != 0; then
832 AC_MSG_ERROR([Cannot find Config.pm or \$Config{archlib}. A full perl installation is required.])
837 MOZ_PATH_PROGS(PYTHON, $PYTHON python2.5 python2.4 python)
838 if test -z "$PYTHON"; then
839 AC_MSG_ERROR([python was not found in \$PATH])
842 if test -z "$COMPILE_ENVIRONMENT"; then
843 NSINSTALL_BIN='$(PYTHON) $(topsrcdir)/config/nsinstall.py'
845 AC_SUBST(NSINSTALL_BIN)
847 MOZ_PATH_PROG(DOXYGEN, doxygen, :)
848 MOZ_PATH_PROG(WHOAMI, whoami, :)
849 MOZ_PATH_PROG(AUTOCONF, autoconf, :)
850 MOZ_PATH_PROG(UNZIP, unzip, :)
851 MOZ_PATH_PROGS(ZIP, zip)
852 if test -z "$ZIP" || test "$ZIP" = ":"; then
853 AC_MSG_ERROR([zip not found in \$PATH])
855 MOZ_PATH_PROG(SYSTEM_MAKEDEPEND, makedepend)
856 MOZ_PATH_PROG(XARGS, xargs)
857 if test -z "$XARGS" || test "$XARGS" = ":"; then
858 AC_MSG_ERROR([xargs not found in \$PATH .])
861 if test "$COMPILE_ENVIRONMENT"; then
863 dnl ========================================================
864 dnl = Mac OS X toolchain support
865 dnl ========================================================
869 dnl Current known valid versions for GCC_VERSION are 2.95.2 3.1 3.3 4.0.
870 dnl 4.0 identifies itself as 4.0.x, so strip the decidecimal for
871 dnl the environment and includedir purposes (when using an SDK, below),
872 dnl but remember the full version number for the libdir (SDK).
874 GCC_VERSION_FULL=`echo $CXX_VERSION | $PERL -pe 's/^.*gcc version ([^ ]*).*/$1/'`
875 GCC_VERSION=`echo $GCC_VERSION_FULL | $PERL -pe '(split(/\./))[0]>=4&&s/(^\d*\.\d*).*/$1/;'`
877 if test "$GCC_VERSION_FULL" = "4.0.0" ; then
878 dnl Bug 280479, but this keeps popping up in bug 292530 too because
879 dnl 4.0.0/4061 is the default compiler in Tiger.
881 GCC_BUILD=`echo $CXX_VERSION | $PERL -pe 's/^.*build ([^ )]*).*/$1/'`
883 if test "$GCC_BUILD" = "4061" ; then
884 AC_MSG_ERROR([You are attempting to use Apple gcc 4.0 build 4061.
885 This compiler was supplied with Xcode 2.0, and contains bugs that prevent it
886 from building Mozilla. Upgrade to Xcode 2.1 or later.])
890 dnl xcodebuild needs GCC_VERSION defined in the environment, since it
891 dnl doesn't respect the CC/CXX setting. With GCC_VERSION set, it will use
892 dnl /usr/bin/g(cc|++)-$GCC_VERSION.
893 MOZ_PATH_PROGS(PBBUILD, pbbuild xcodebuild pbxbuild)
898 XCODEBUILD_VERSION=`$PBBUILD -version 2>/dev/null | xargs | sed -e 's/.*DevToolsCore-\([0-9]*\).*/\1/'`
900 if test -n "$XCODEBUILD_VERSION" && test "$XCODEBUILD_VERSION" -ge 620 ; then
906 dnl sdp was formerly in /Developer/Tools. As of Mac OS X 10.4 (Darwin 8),
907 dnl it has moved into /usr/bin.
908 MOZ_PATH_PROG(SDP, sdp, :, [$PATH:/usr/bin:/Developer/Tools])
912 AC_SUBST(GCC_VERSION)
913 AC_SUBST(XCODEBUILD_VERSION)
914 AC_SUBST(HAS_XCODE_2_1)
916 dnl The universal machinery sets UNIVERSAL_BINARY to inform packager.mk
917 dnl that a universal binary is being produced.
918 AC_SUBST(UNIVERSAL_BINARY)
920 dnl ========================================================
921 dnl Check for MacOS deployment target version
922 dnl ========================================================
924 MOZ_ARG_ENABLE_STRING(macos-target,
925 [ --enable-macos-target=VER (default=10.5)
926 Set the minimum MacOS version needed at runtime],
927 [_MACOSX_DEPLOYMENT_TARGET=$enableval])
931 if test -n "$_MACOSX_DEPLOYMENT_TARGET" ; then
932 dnl Use the specified value
933 export MACOSX_DEPLOYMENT_TARGET=$_MACOSX_DEPLOYMENT_TARGET
934 AC_DEFINE_UNQUOTED(__ENVIRONMENT_MAC_OS_X_VERION_MIN_REQUIRED__,$_MACOSX_DEPLOYMENT_TARGET)
935 elif test -z "$MACOSX_DEPLOYMENT_TARGET" ; then
936 dnl No value specified on the command line or in the environment,
937 dnl use architecture minimum.
938 export MACOSX_DEPLOYMENT_TARGET=10.5
943 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
945 dnl ========================================================
946 dnl = Mac OS X SDK support
947 dnl ========================================================
950 MOZ_ARG_WITH_STRING(macos-sdk,
951 [ --with-macos-sdk=dir Location of platform SDK to use (Mac OS X only)],
952 MACOS_SDK_DIR=$withval)
954 dnl MACOS_SDK_DIR will be set to the SDK location whenever one is in use.
955 dnl NEXT_ROOT will be set and exported only if it's needed.
956 AC_SUBST(MACOS_SDK_DIR)
959 if test "$MACOS_SDK_DIR"; then
960 dnl Sync this section with the ones in NSPR and NSS.
961 dnl Changes to the cross environment here need to be accounted for in
962 dnl the libIDL checks (below) and xpidl build.
964 if test ! -d "$MACOS_SDK_DIR"; then
965 AC_MSG_ERROR([SDK not found. When using --with-macos-sdk, you must
966 specify a valid SDK. SDKs are installed when the optional cross-development
967 tools are selected during the Xcode/Developer Tools installation.])
970 GCC_VERSION_MAJOR=`echo $GCC_VERSION_FULL | $PERL -pe 's/(^\d*).*/$1/;'`
971 if test "$GCC_VERSION_MAJOR" -lt "4" ; then
972 AC_MSG_ERROR([You need to upgrade the compiler version to 4.x])
974 CFLAGS="$CFLAGS -isysroot ${MACOS_SDK_DIR}"
975 CXXFLAGS="$CXXFLAGS -isysroot ${MACOS_SDK_DIR}"
977 dnl CPP/CXXCPP needs to be set for AC_CHECK_HEADER.
978 CPP="$CPP -isysroot ${MACOS_SDK_DIR}"
979 CXXCPP="$CXXCPP -isysroot ${MACOS_SDK_DIR}"
981 if test "$GCC_VERSION_FULL" = "4.0.0" ; then
982 dnl If gcc >= 4.0, we're guaranteed to be on Tiger, which has an ld
983 dnl that supports -syslibroot. Don't set NEXT_ROOT because it will
984 dnl be ignored and cause warnings when -syslibroot is specified.
985 dnl gcc 4.0.1 will pass -syslibroot to ld automatically based on
986 dnl the -isysroot it receives, so this is only needed with 4.0.0.
987 LDFLAGS="$LDFLAGS -Wl,-syslibroot,${MACOS_SDK_DIR}"
992 AC_MSG_CHECKING([for valid compiler/Mac OS X SDK combination])
994 AC_TRY_COMPILE([#include <new>
995 int main() { return 0; }],
999 AC_MSG_RESULT($result)
1001 if test "$result" = "no" ; then
1002 AC_MSG_ERROR([The selected compiler and Mac OS X SDK are incompatible.])
1006 fi # COMPILE_ENVIRONMENT
1008 dnl Be sure the make we use is GNU make.
1009 dnl on win32, gmake.exe is the generally the wrong version
1010 if test -n "$MAKE"; then
1011 if test `echo $MAKE | grep -c make.py` != 1; then
1017 cygwin*|mingw*|mks*|msvc*)
1018 MOZ_PATH_PROGS(GMAKE, $GMAKE $NOT_PYMAKE make gmake, :)
1021 MOZ_PATH_PROGS(GMAKE, $GMAKE $NOT_PYMAKE gmake make, :)
1024 if test "$GMAKE" = ":"; then
1025 AC_MSG_ERROR([GNU make not found])
1029 if test "$COMPILE_ENVIRONMENT"; then
1035 fi # COMPILE_ENVIRONMENT
1037 dnl ========================================================
1038 dnl set the defaults first
1039 dnl ========================================================
1043 AR_EXTRACT='$(AR) x'
1058 MOZ_USER_DIR=".mozilla"
1060 HOST_AR_FLAGS='$(AR_FLAGS)'
1063 MOZ_JPEG_LIBS='$(call EXPAND_LIBNAME_PATH,mozjpeg,$(DEPTH)/jpeg)'
1065 MOZ_ZLIB_LIBS='$(call EXPAND_LIBNAME_PATH,mozz,$(DEPTH)/modules/zlib/src)'
1067 MOZ_BZ2_LIBS='$(call EXPAND_LIBNAME_PATH,bz2,$(DEPTH)/modules/libbz2/src)'
1069 MOZ_PNG_LIBS='$(call EXPAND_LIBNAME_PATH,mozpng,$(DEPTH)/modules/libimg/png)'
1071 MOZ_JS_LIBS='-L$(LIBXUL_DIST)/bin -lmozjs'
1072 DYNAMIC_XPCOM_LIBS='-L$(LIBXUL_DIST)/bin -lxpcom -lxpcom_core'
1073 MOZ_FIX_LINK_PATHS='-Wl,-rpath-link,$(LIBXUL_DIST)/bin -Wl,-rpath-link,$(prefix)/lib'
1074 XPCOM_FROZEN_LDOPTS='-L$(LIBXUL_DIST)/bin -lxpcom'
1075 LIBXUL_LIBS='$(XPCOM_FROZEN_LDOPTS) -lxul'
1076 XPCOM_GLUE_LDOPTS='$(LIBXUL_DIST)/lib/$(LIB_PREFIX)xpcomglue_s.$(LIB_SUFFIX) $(XPCOM_FROZEN_LDOPTS)'
1077 XPCOM_STANDALONE_GLUE_LDOPTS='$(LIBXUL_DIST)/lib/$(LIB_PREFIX)xpcomglue.$(LIB_SUFFIX)'
1081 MOZ_COMPONENT_NSPR_LIBS='-L$(LIBXUL_DIST)/bin $(NSPR_LIBS)'
1083 USE_DEPENDENT_LIBS=1
1085 _PLATFORM_DEFAULT_TOOLKIT=cairo-gtk2
1087 MOZ_ENABLE_POSTSCRIPT=1
1089 if test -n "$CROSS_COMPILE"; then
1090 OS_TARGET="${target_os}"
1091 OS_ARCH=`echo $target_os | sed -e 's|/|_|g'`
1093 case "${target_os}" in
1094 linux*) OS_ARCH=Linux OS_TARGET=Linux ;;
1095 kfreebsd*-gnu) OS_ARCH=GNU_kFreeBSD OS_TARGET=GNU_kFreeBSD ;;
1096 solaris*) OS_ARCH=SunOS OS_RELEASE=5 ;;
1097 mingw*) OS_ARCH=WINNT ;;
1098 wince*) OS_ARCH=WINCE ;;
1099 darwin*) OS_ARCH=Darwin OS_TARGET=Darwin ;;
1102 OS_TARGET=`uname -s`
1103 OS_ARCH=`uname -s | sed -e 's|/|_|g'`
1104 OS_RELEASE=`uname -r`
1107 # Before this used `uname -m` when not cross compiling
1108 # but that breaks when you have a 64 bit kernel with a 32 bit userland.
1109 OS_TEST="${target_cpu}"
1113 HOST_OS_ARCH=`echo $host_os | sed -e 's|/|_|g'`
1115 #######################################################################
1116 # Master "Core Components" macros for getting the OS target #
1117 #######################################################################
1120 # If OS_TARGET is not specified, it defaults to $(OS_ARCH), i.e., no
1121 # cross-compilation.
1125 # Define and override various archtecture-specific variables, including
1134 case "$HOST_OS_ARCH" in
1135 cygwin*|mingw*|mks*|msvc*)
1145 if test -z "$GNU_CC"; then
1146 if test "`$CC -V 2>&1 | egrep -c 'Sun.*C '`" != "0"; then
1151 if test -z "$GNU_CXX"; then
1152 if test "`$CXX -V 2>&1 | egrep -c 'Sun.*C\+\+ '`" != "0"; then
1153 SOLARIS_SUNPRO_CXX=1
1156 AC_SUBST(SOLARIS_SUNPRO_CC)
1157 AC_SUBST(SOLARIS_SUNPRO_CXX)
1169 if "`cat /etc/bcheckrc | grep -c NCR 2>/dev/null`" != "0"; then
1172 HOST_OS_ARCH=UNIXWARE
1184 HOST_OS_ARCH=OpenVMS
1194 SINIX-N | SINIX-Y | SINIX-Z |ReliantUNIX-M)
1198 HOST_OS_ARCH=UNIXWARE
1208 # If uname -s returns "Windows_NT", we assume that we are using
1209 # the uname.exe in MKS toolkit.
1211 # The -r option of MKS uname only returns the major version number.
1212 # So we need to use its -v option to get the minor version number.
1213 # Moreover, it doesn't have the -p option, so we need to use uname -m.
1217 OS_MINOR_RELEASE=`uname -v`
1218 if test "$OS_MINOR_RELEASE" = "00"; then
1221 OS_RELEASE="${OS_RELEASE}.${OS_MINOR_RELEASE}"
1223 CYGWIN32_NT|CYGWIN_NT*|MINGW*_NT*)
1225 # If uname -s returns "CYGWIN_NT-4.0", we assume that we are using
1226 # the uname.exe in the Cygwin tools.
1227 # Prior to the Beta 20 release, Cygwin was called GNU-Win32.
1228 # If uname -s returns "CYGWIN32/NT", we assume that we are using
1229 # the uname.exe in the GNU-Win32 tools.
1230 # If uname -s returns MINGW32_NT-5.1, we assume that we are using
1231 # the uname.exe in the MSYS tools.
1233 OS_RELEASE=`expr $OS_ARCH : '.*NT-\(.*\)'`
1238 OS_RELEASE=`uname -v`.`uname -r`
1239 OS_TEST=${target_cpu}
1251 if "`cat /etc/bcheckrc | grep -c NCR 2>/dev/null`" != "0"; then
1255 OS_RELEASE=`uname -v`
1279 OS_RELEASE=`uname -v`
1285 OS_RELEASE=`uname -v`
1288 if test "$OS_TARGET" != "NTO"; then
1290 OS_RELEASE=`uname -v | sed 's/^\([0-9]\)\([0-9]*\)$/\1.\2/'`
1299 SINIX-N | SINIX-Y | SINIX-Z |ReliantUNIX-M)
1305 OS_RELEASE=`uname -v`
1312 case "${target_cpu}" in
1323 if test -z "$CROSS_COMPILE" ; then
1331 if test "$OS_ARCH" = "NCR"; then
1333 OS_RELEASE=`awk '{print $3}' /etc/.relid | sed 's/^\([0-9]\)\(.\)\(..\)\(.*\)$/\2.\3/'`
1337 # Only set CPU_ARCH if we recognize the value of OS_TEST
1348 powerpc | ppc | rs6000)
1352 Alpha | alpha | ALPHA)
1377 if test "$OS_TARGET" = "WINCE"; then
1383 if test -z "$OS_TARGET"; then
1386 OS_CONFIG="${OS_TARGET}${OS_RELEASE}"
1388 dnl ========================================================
1389 dnl GNU specific defaults
1390 dnl ========================================================
1391 if test "$GNU_CC"; then
1392 # FIXME: Let us build with strict aliasing. bug 414641.
1393 CFLAGS="$CFLAGS -fno-strict-aliasing"
1394 MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-h,$@ -o $@'
1395 MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-h,$@ -o $@'
1396 DSO_LDOPTS='-shared'
1397 if test "$GCC_USE_GNU_LD"; then
1398 # Don't allow undefined symbols in libraries
1399 DSO_LDOPTS="$DSO_LDOPTS -Wl,-z,defs"
1401 WARNINGS_AS_ERRORS='-Werror'
1403 DSO_PIC_CFLAGS='-fPIC'
1404 ASFLAGS="$ASFLAGS -fPIC"
1405 _MOZ_RTTI_FLAGS_ON=${_COMPILER_PREFIX}-frtti
1406 _MOZ_RTTI_FLAGS_OFF=${_COMPILER_PREFIX}-fno-rtti
1407 _MOZ_EXCEPTIONS_FLAGS_ON='-fhandle-exceptions'
1408 _MOZ_EXCEPTIONS_FLAGS_OFF='-fno-handle-exceptions'
1410 # Turn on GNU specific features
1411 # -Wall - turn on all warnings
1412 # -pedantic - make compiler warn about non-ANSI stuff, and
1413 # be a little bit stricter
1414 # Warnings slamm took out for now (these were giving more noise than help):
1415 # -Wbad-function-cast - warns when casting a function to a new return type
1416 # -Wshadow - removed because it generates more noise than help --pete
1417 _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wall -W -Wno-unused -Wpointer-arith"
1418 if test -z "$INTEL_CC"; then
1419 # Don't use -Wcast-align with ICC
1421 # And don't use it on hppa, ia64, sparc, since it's noisy there
1422 hppa | ia64 | sparc)
1425 _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wcast-align"
1430 dnl Turn pedantic on but disable the warnings for long long
1433 if test -z "$INTEL_CC"; then
1434 _IGNORE_LONG_LONG_WARNINGS=1
1435 _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -W"
1437 _IGNORE_LONG_LONG_WARNINGS=
1441 _DEFINES_CFLAGS='-include $(DEPTH)/mozilla-config.h -DMOZILLA_CLIENT'
1442 _USE_CPP_INCLUDE_FLAG=1
1443 elif test "$SOLARIS_SUNPRO_CC"; then
1444 MKSHLIB='$(LD) $(DSO_LDOPTS) -h $@ -o $@'
1445 MKCSHLIB='$(LD) $(DSO_LDOPTS) -h $@ -o $@'
1447 DSO_LDOPTS='-shared'
1448 if test "$GNU_LD"; then
1449 # Don't allow undefined symbols in libraries
1450 DSO_LDOPTS="$DSO_LDOPTS -z defs"
1454 if test "$CPU_ARCH" = "sparc"; then
1455 # for Sun Studio on Solaris/SPARC
1456 DSO_PIC_CFLAGS='-xcode=pic32'
1458 DSO_PIC_CFLAGS='-KPIC'
1460 _DEFINES_CFLAGS='$(ACDEFINES) -D_MOZILLA_CONFIG_H_ -DMOZILLA_CLIENT'
1462 MKSHLIB='$(LD) $(DSO_LDOPTS) -h $@ -o $@'
1463 MKCSHLIB='$(LD) $(DSO_LDOPTS) -h $@ -o $@'
1465 DSO_LDOPTS='-shared'
1466 if test "$GNU_LD"; then
1467 # Don't allow undefined symbols in libraries
1468 DSO_LDOPTS="$DSO_LDOPTS -z defs"
1472 DSO_PIC_CFLAGS='-KPIC'
1473 _DEFINES_CFLAGS='$(ACDEFINES) -D_MOZILLA_CONFIG_H_ -DMOZILLA_CLIENT'
1476 if test "$GNU_CXX"; then
1477 # FIXME: Let us build with strict aliasing. bug 414641.
1478 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
1479 # Turn on GNU specific features
1480 _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wall -Wpointer-arith -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor"
1481 if test -z "$INTEL_CC"; then
1482 # Don't use -Wcast-align with ICC
1484 # And don't use it on hppa, ia64, sparc, since it's noisy there
1485 hppa | ia64 | sparc)
1488 _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wcast-align"
1493 _DEFINES_CXXFLAGS='-DMOZILLA_CLIENT -include $(DEPTH)/mozilla-config.h'
1494 _USE_CPP_INCLUDE_FLAG=1
1496 AC_CACHE_CHECK(whether the compiler supports -Wno-invalid-offsetof,
1497 ac_has_wno_invalid_offsetof,
1501 _SAVE_CXXFLAGS="$CXXFLAGS"
1502 CXXFLAGS="$CXXFLAGS ${_COMPILER_PREFIX}-Wno-invalid-offsetof"
1505 ac_has_wno_invalid_offsetof="yes",
1506 ac_has_wno_invalid_offsetof="no")
1507 CXXFLAGS="$_SAVE_CXXFLAGS"
1510 if test "$ac_has_wno_invalid_offsetof" = "yes"; then
1511 _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} ${_COMPILER_PREFIX}-Wno-invalid-offsetof"
1514 _DEFINES_CXXFLAGS='-DMOZILLA_CLIENT -D_MOZILLA_CONFIG_H_ $(ACDEFINES)'
1517 dnl gcc can come with its own linker so it is better to use the pass-thru calls
1518 dnl MKSHLIB_FORCE_ALL is used to force the linker to include all object
1519 dnl files present in an archive. MKSHLIB_UNFORCE_ALL reverts the linker to
1520 dnl normal behavior.
1521 dnl ========================================================
1523 MKSHLIB_UNFORCE_ALL=
1525 if test "$COMPILE_ENVIRONMENT"; then
1526 if test "$GNU_CC"; then
1527 AC_MSG_CHECKING(whether ld has archive extraction flags)
1528 AC_CACHE_VAL(ac_cv_mkshlib_force_and_unforce,
1529 [_SAVE_LDFLAGS=$LDFLAGS; _SAVE_LIBS=$LIBS
1530 ac_cv_mkshlib_force_and_unforce="no"
1531 exec 3<&0 <<LOOP_INPUT
1532 force="-Wl,--whole-archive"; unforce="-Wl,--no-whole-archive"
1533 force="-Wl,-z -Wl,allextract"; unforce="-Wl,-z -Wl,defaultextract"
1534 force="-Wl,-all"; unforce="-Wl,-none"
1541 AC_TRY_LINK(,, ac_cv_mkshlib_force_and_unforce=$line; break)
1544 LDFLAGS=$_SAVE_LDFLAGS; LIBS=$_SAVE_LIBS
1546 if test "$ac_cv_mkshlib_force_and_unforce" = "no"; then
1550 eval $ac_cv_mkshlib_force_and_unforce
1551 MKSHLIB_FORCE_ALL=$force
1552 MKSHLIB_UNFORCE_ALL=$unforce
1555 fi # COMPILE_ENVIRONMENT
1557 dnl =================================================================
1558 dnl Set up and test static assertion macros used to avoid AC_TRY_RUN,
1559 dnl which is bad when cross compiling.
1560 dnl =================================================================
1561 if test "$COMPILE_ENVIRONMENT"; then
1562 configure_static_assert_macros='
1563 #define CONFIGURE_STATIC_ASSERT(condition) CONFIGURE_STATIC_ASSERT_IMPL(condition, __LINE__)
1564 #define CONFIGURE_STATIC_ASSERT_IMPL(condition, line) CONFIGURE_STATIC_ASSERT_IMPL2(condition, line)
1565 #define CONFIGURE_STATIC_ASSERT_IMPL2(condition, line) typedef int static_assert_line_##line[(condition) ? 1 : -1]
1568 dnl test that the macros actually work:
1569 AC_MSG_CHECKING(that static assertion macros used in autoconf tests work)
1570 AC_CACHE_VAL(ac_cv_static_assertion_macros_work,
1573 ac_cv_static_assertion_macros_work="yes"
1574 AC_TRY_COMPILE([$configure_static_assert_macros],
1575 [CONFIGURE_STATIC_ASSERT(1)],
1577 ac_cv_static_assertion_macros_work="no")
1578 AC_TRY_COMPILE([$configure_static_assert_macros],
1579 [CONFIGURE_STATIC_ASSERT(0)],
1580 ac_cv_static_assertion_macros_work="no",
1583 AC_TRY_COMPILE([$configure_static_assert_macros],
1584 [CONFIGURE_STATIC_ASSERT(1)],
1586 ac_cv_static_assertion_macros_work="no")
1587 AC_TRY_COMPILE([$configure_static_assert_macros],
1588 [CONFIGURE_STATIC_ASSERT(0)],
1589 ac_cv_static_assertion_macros_work="no",
1593 AC_MSG_RESULT("$ac_cv_static_assertion_macros_work")
1594 if test "$ac_cv_static_assertion_macros_work" = "no"; then
1595 AC_MSG_ERROR([Compiler cannot compile macros used in autoconf tests.])
1597 fi # COMPILE_ENVIRONMENT
1599 dnl ========================================================
1600 dnl Checking for 64-bit OS
1601 dnl ========================================================
1602 if test "$COMPILE_ENVIRONMENT"; then
1605 AC_MSG_CHECKING(for 64-bit OS)
1606 AC_TRY_COMPILE([$configure_static_assert_macros],
1607 [CONFIGURE_STATIC_ASSERT(sizeof(void*) == 8)],
1608 result="yes", result="no")
1609 AC_MSG_RESULT("$result")
1610 if test "$result" = "yes"; then
1611 AC_DEFINE(HAVE_64BIT_OS)
1614 AC_SUBST(HAVE_64BIT_OS)
1616 fi # COMPILE_ENVIRONMENT
1618 dnl ========================================================
1619 dnl Enable high-memory support on OS/2 by default.
1620 dnl ========================================================
1621 MOZ_OS2_HIGH_MEMORY=1
1622 MOZ_ARG_DISABLE_BOOL(os2-high-mem,
1623 [ --disable-os2-high-mem Disable high-memory support on OS/2],
1624 MOZ_OS2_HIGH_MEMORY=,
1625 MOZ_OS2_HIGH_MEMORY=1 )
1626 AC_SUBST(MOZ_OS2_HIGH_MEMORY)
1628 dnl ========================================================
1629 dnl System overrides of the defaults for host
1630 dnl ========================================================
1633 HOST_CFLAGS="$HOST_CFLAGS -DXP_BEOS -DBeOS -DBEOS -D_POSIX_SOURCE -DNO_X11"
1634 HOST_NSPR_MDCPUCFG='\"md/_beos.cfg\"'
1635 HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}"
1638 *cygwin*|*mingw*|*mks*|*msvc*|*wince)
1639 # we need Python 2.5 on Windows
1641 if test -n "$_WIN32_MSVC"; then
1643 HOST_AR_FLAGS='-NOLOGO -OUT:"$@"'
1644 HOST_CFLAGS="$HOST_CFLAGS -TC -nologo -Fd\$(HOST_PDBFILE)"
1645 HOST_RANLIB='echo ranlib'
1647 HOST_CFLAGS="$HOST_CFLAGS -mno-cygwin"
1649 HOST_CFLAGS="$HOST_CFLAGS -DXP_WIN32 -DXP_WIN -DWIN32 -D_WIN32 -DNO_X11"
1650 HOST_NSPR_MDCPUCFG='\"md/_winnt.cfg\"'
1651 HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O2}"
1652 HOST_BIN_SUFFIX=.exe
1655 dnl MinGW/MSYS does not need CYGWIN_WRAPPER
1656 PERL="/bin/sh ${_topsrcdir}/build/msys-perl-wrapper"
1659 CYGWIN_WRAPPER="${srcdir}/build/cygwin-wrapper"
1660 if test "`echo ${srcdir} | grep -c ^/ 2>/dev/null`" = 0; then
1662 CYGWIN_WRAPPER="${_pwd}/${srcdir}/build/cygwin-wrapper"
1664 if test "`${PERL} -v | grep -c cygwin 2>/dev/null`" = 0; then
1666 PERL="${CYGWIN_WRAPPER} $PERL"
1669 if test "`${PYTHON} -c 'import sys; print sys.platform;'`" != "cygwin"; then
1670 PYTHON="${CYGWIN_WRAPPER} $PYTHON"
1675 case "${host_cpu}" in
1677 HOST_CFLAGS="$HOST_CFLAGS -D_AMD64_"
1683 HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX -DXP_MACOSX -DNO_X11"
1684 HOST_NSPR_MDCPUCFG='\"md/_darwin.cfg\"'
1685 HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}"
1686 MOZ_FIX_LINK_PATHS='-Wl,-executable_path,$(LIBXUL_DIST)/bin'
1689 *-linux*|*-kfreebsd*-gnu)
1690 HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX"
1691 HOST_NSPR_MDCPUCFG='\"md/_linux.cfg\"'
1692 HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}"
1696 HOST_CFLAGS="$HOST_CFLAGS -DXP_OS2 -DNO_X11 -Zomf"
1697 HOST_NSPR_MDCPUCFG='\"md/_os2.cfg\"'
1698 HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O2}"
1699 HOST_BIN_SUFFIX=.exe
1704 HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX"
1705 HOST_NSPR_MDCPUCFG='\"md/_osf1.cfg\"'
1706 HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O2}"
1710 HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX"
1711 HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O2}"
1715 dnl We require version 2.4 or newer of Python to build,
1716 dnl and 2.5 or newer on Windows.
1717 AC_MSG_CHECKING([for minimum required Python version >= $PYTHON_VERSION])
1719 $PYTHON -c "import sys; sys.exit(sys.version[:3] < sys.argv[1])" $PYTHON_VERSION
1722 if test "$_python_res" != 0; then
1723 AC_MSG_ERROR([Python $PYTHON_VERSION or higher is required.])
1725 AC_MSG_RESULT([yes])
1727 dnl Get mozilla version from central milestone file
1728 MOZILLA_VERSION=`$PERL $srcdir/config/milestone.pl -topsrcdir $srcdir`
1730 dnl Get version of various core apps from the version files.
1731 FIREFOX_VERSION=`cat $topsrcdir/browser/config/version.txt`
1733 AC_DEFINE_UNQUOTED(MOZILLA_VERSION,"$MOZILLA_VERSION")
1734 AC_DEFINE_UNQUOTED(MOZILLA_VERSION_U,$MOZILLA_VERSION)
1736 dnl ========================================================
1737 dnl System overrides of the defaults for target
1738 dnl ========================================================
1743 if test ! "$GNU_CC"; then
1744 if test ! "$HAVE_64BIT_OS"; then
1745 # Compiling with Visual Age C++ object model compat is the
1746 # default. To compile with object model ibm, add
1747 # AIX_OBJMODEL=ibm to .mozconfig.
1748 if test "$AIX_OBJMODEL" = "ibm"; then
1749 CXXFLAGS="$CXXFLAGS -qobjmodel=ibm"
1756 AC_SUBST(AIX_OBJMODEL)
1757 DSO_LDOPTS='-qmkshrobj=1'
1758 DSO_CFLAGS='-qflag=w:w'
1760 LDFLAGS="$LDFLAGS -Wl,-brtl -blibpath:/usr/lib:/lib"
1761 AC_MSG_WARN([Clearing MOZ_FIX_LINK_PATHS till we can fix bug 332075.])
1763 MKSHLIB='$(CXX) $(DSO_LDOPTS) -o $@'
1764 MKCSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
1765 if test "$COMPILE_ENVIRONMENT"; then
1768 AC_MSG_CHECKING([for VisualAge C++ compiler version >= 6.0.0.3])
1770 [#if (__IBMCPP__ < 600)
1771 #error "Bad compiler"
1773 _BAD_COMPILER=,_BAD_COMPILER=1)
1774 if test -n "$_BAD_COMPILER"; then
1776 AC_MSG_ERROR([VisualAge C++ version 6.0.0.3 or higher is required to build.])
1778 AC_MSG_RESULT([yes])
1781 TARGET_COMPILER_ABI="ibmc"
1782 CC_VERSION=`lslpp -Lcq vac.C 2>/dev/null | awk -F: '{ print $3 }'`
1783 CXX_VERSION=`lslpp -Lcq vacpp.cmp.core 2>/dev/null | awk -F: '{ print $3 }'`
1786 case "${target_os}" in
1791 if test "$COMPILE_ENVIRONMENT"; then
1792 AC_CHECK_HEADERS(sys/inttypes.h)
1794 AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
1799 MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_LDOPTS) -Wl,-h,$@ -o $@'
1800 _PLATFORM_DEFAULT_TOOLKIT="cairo-beos"
1801 DSO_LDOPTS='-nostart'
1802 TK_LIBS='-lbe -lroot'
1804 if test "$COMPILE_ENVIRONMENT"; then
1805 AC_CHECK_LIB(bind,main,LIBS="$LIBS -lbind")
1806 AC_CHECK_LIB(zeta,main,LIBS="$LIBS -lzeta")
1808 _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wno-multichar"
1809 _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wno-multichar"
1812 MOZ_USER_DIR="Mozilla"
1816 dnl -pedantic doesn't play well with BSDI's _very_ modified gcc (shlicc2)
1818 _IGNORE_LONG_LONG_WARNINGS=
1826 _WARNINGS_CFLAGS="-Wall"
1827 _WARNINGS_CXXFLAGS="-Wall"
1828 # The test above doesn't work properly, at least on 3.1.
1829 MKSHLIB_FORCE_ALL=''
1830 MKSHLIB_UNFORCE_ALL=''
1836 MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
1837 MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
1838 MOZ_OPTIMIZE_FLAGS="-O3"
1840 CFLAGS="$CFLAGS -fpascal-strings -fno-common"
1841 CXXFLAGS="$CXXFLAGS -fpascal-strings -fno-common"
1844 STRIP="$STRIP -x -S"
1845 _PLATFORM_DEFAULT_TOOLKIT='cairo-cocoa'
1846 MOZ_ENABLE_POSTSCRIPT=
1847 TARGET_NSPR_MDCPUCFG='\"md/_darwin.cfg\"'
1848 # The ExceptionHandling framework is needed for Objective-C exception
1849 # logging code in nsObjCExceptions.h. Currently we only use that in debug
1851 MOZ_DEBUG_LDFLAGS="$MOZ_DEBUG_LDFLAGS -framework ExceptionHandling"
1853 dnl DTrace and -dead_strip don't interact well. See bug 403132.
1854 dnl ===================================================================
1855 if test "x$enable_dtrace" = "xyes"; then
1856 echo "Skipping -dead_strip because DTrace is enabled. See bug 403132."
1858 dnl check for the presence of the -dead_strip linker flag
1859 AC_MSG_CHECKING([for -dead_strip option to ld])
1860 _SAVE_LDFLAGS=$LDFLAGS
1861 LDFLAGS="$LDFLAGS -Wl,-dead_strip"
1862 AC_TRY_LINK(,[return 0;],_HAVE_DEAD_STRIP=1,_HAVE_DEAD_STRIP=)
1863 if test -n "$_HAVE_DEAD_STRIP" ; then
1864 AC_MSG_RESULT([yes])
1865 MOZ_OPTIMIZE_LDFLAGS="-Wl,-dead_strip"
1870 LDFLAGS=$_SAVE_LDFLAGS
1875 if test `test -x /usr/bin/objformat && /usr/bin/objformat || echo elf` != "elf"; then
1876 DLL_SUFFIX=".so.1.0"
1877 DSO_LDOPTS="-shared"
1879 if test ! "$GNU_CC"; then
1880 DSO_LDOPTS="-Bshareable $DSO_LDOPTS"
1882 # Can't have force w/o an unforce.
1883 # # Hack for FreeBSD 2.2
1884 # if test -z "$MKSHLIB_FORCE_ALL"; then
1885 # MKSHLIB_FORCE_ALL='-Wl,-Bforcearchive'
1886 # MKSHLIB_UNFORCE_ALL=''
1892 if test ! "$GNU_CC"; then
1893 DSO_LDOPTS='-b -Wl,+s'
1896 MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_LDOPTS) -L$(LIBXUL_DIST)/bin -o $@'
1897 MKCSHLIB='$(LD) -b +s -L$(LIBXUL_DIST)/bin -o $@'
1898 CXXFLAGS="$CXXFLAGS -Wc,-ansi_for_scope,on"
1900 DSO_LDOPTS='-b -E +s'
1901 MKSHLIB='$(LD) $(DSO_LDOPTS) -L$(LIBXUL_DIST)/bin -L$(LIBXUL_DIST)/lib -o $@'
1902 MKCSHLIB='$(LD) $(DSO_LDOPTS) -L$(LIBXUL_DIST)/bin -L$(LIBXUL_DIST)/lib -o $@'
1904 MOZ_POST_PROGRAM_COMMAND='chatr +s enable'
1905 AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
1910 DSO_LDOPTS='-elf -shared'
1912 if test "$GNU_CC"; then
1913 MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
1914 MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
1915 MKSHLIB_FORCE_ALL='-Wl,-all'
1916 MKSHLIB_UNFORCE_ALL='-Wl,-none'
1917 CXXFLAGS="$CXXFLAGS -D_LANGUAGE_C_PLUS_PLUS"
1919 MKSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
1920 MKCSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
1921 MKSHLIB_FORCE_ALL='-all'
1922 MKSHLIB_UNFORCE_ALL='-none'
1928 dnl the irix specific xptcinvoke code is written against the n32 ABI so we *must*
1929 dnl compile and link using -n32
1931 TARGET_COMPILER_ABI=n32
1932 DSO_LDOPTS='-elf -shared'
1933 MKSHLIB='$(CCC) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
1934 MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
1935 _MOZ_EXCEPTIONS_FLAGS_OFF="-LANG:exceptions=OFF"
1936 _MOZ_EXCEPTIONS_FLAGS_ON="-LANG:exceptions=ON"
1937 if test "$GNU_CC"; then
1938 MKSHLIB_FORCE_ALL='-Wl,-all'
1939 MKSHLIB_UNFORCE_ALL='-Wl,-none'
1940 _WARNINGS_CFLAGS="-Wall"
1941 _WARNINGS_CXXFLAGS="-Wall"
1942 CXXFLAGS="$CXXFLAGS -D_LANGUAGE_C_PLUS_PLUS"
1944 MKSHLIB_FORCE_ALL='-all'
1945 MKSHLIB_UNFORCE_ALL='-none'
1951 CFLAGS="$CFLAGS -woff 3262 -G 4"
1952 CXXFLAGS="$CXXFLAGS -woff 3262 -G 4"
1953 if test -n "$USE_N32"; then
1954 ASFLAGS="$ASFLAGS -n32"
1955 CFLAGS="$CFLAGS -n32"
1956 CXXFLAGS="$CXXFLAGS -n32"
1957 LDFLAGS="$LDFLAGS -n32"
1959 AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
1960 AC_MSG_WARN([Clearing MOZ_FIX_LINK_PATHS for OSF/1 as fix for bug 333545 (till the reference bug 332075 is fixed.])
1963 if test -z "$GNU_CXX"; then
1969 # Note: both GNU_CC and INTEL_CC are set when using Intel's C compiler.
1970 # Similarly for GNU_CXX and INTEL_CXX.
1971 if test "$INTEL_CC" || test "$INTEL_CXX"; then
1972 # -Os has been broken on Intel's C/C++ compilers for quite a
1973 # while; Intel recommends against using it.
1974 MOZ_OPTIMIZE_FLAGS="-O2"
1975 MOZ_DEBUG_FLAGS="-g -fno-inline"
1976 elif test "$GNU_CC" || test "$GNU_CXX"; then
1977 GCC_VERSION=`$CC -v 2>&1 | awk '/^gcc version/ { print $3 }'`
1978 case $GCC_VERSION in
1980 # -Os is broken on gcc 4.1.x and 4.2.x, we need to tweak it to get good results.
1981 MOZ_OPTIMIZE_SIZE_TWEAK="-finline-limit=50"
1983 MOZ_OPTIMIZE_FLAGS="-Os -freorder-blocks -fno-reorder-functions $MOZ_OPTIMIZE_SIZE_TWEAK"
1984 MOZ_DEBUG_FLAGS="-g -fno-inline" # most people on linux use gcc/gdb,
1985 # and that combo is not yet good at
1986 # debugging inlined functions (even
1987 # when using DWARF2 as the debugging
1991 TARGET_NSPR_MDCPUCFG='\"md/_linux.cfg\"'
1995 case "${target_cpu}" in
1997 CFLAGS="$CFLAGS -mieee"
1998 CXXFLAGS="$CXXFLAGS -mieee"
2004 MOZ_DEBUG_FLAGS="-g" # We want inlining
2010 TARGET_COMPILER_ABI=msvc
2011 MOZ_TOOLS_DIR=`echo $MOZ_TOOLS`
2013 AR_EXTRACT="$AR -extract"
2015 AR_FLAGS='-OUT:"$@"'
2017 if test "$AS_BIN"; then
2024 if test -z "$RC"; then
2027 # certain versions of cygwin's makedepend barf on the
2028 # #include <string> vs -I./dist/include/string issue so don't use it
2034 HOST_AR='lib -OUT:$@'
2035 HOST_RANLIB='echo ranlib'
2036 HOST_CFLAGS="$HOST_CFLAGS -D_X86_"
2039 WARNINGS_AS_ERRORS='-WX'
2040 MOZ_OPTIMIZE_FLAGS='-Ox'
2041 AR_FLAGS='-NOLOGO -OUT:"$@"'
2043 CFLAGS="$CFLAGS -W3 -Gy -Fd\$(COMPILE_PDBFILE)"
2044 CXXFLAGS="$CXXFLAGS -W3 -Gy -Fd\$(COMPILE_PDBFILE)"
2047 DSO_LDOPTS=-SUBSYSTEM:WINDOWSCE
2048 DYNAMIC_XPCOM_LIBS='$(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/xpcom_core.lib'
2050 IMPORT_LIB_SUFFIX=lib
2052 LIBXUL_LIBS='$(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/xul.lib'
2055 MKCSHLIB='$(LD) -NOLOGO -DLL -OUT:$@ $(DSO_LDOPTS)'
2056 MKSHLIB='$(LD) -NOLOGO -DLL -OUT:$@ $(DSO_LDOPTS)'
2058 MKSHLIB_UNFORCE_ALL=
2059 MOZ_COMPONENT_NSPR_LIBS='$(NSPR_LIBS)'
2060 MOZ_COMPONENT_NSPR_LIBS='$(NSPR_LIBS)'
2061 MOZ_DEBUG_FLAGS='-Zi'
2062 MOZ_DEBUG_LDFLAGS='-DEBUG -DEBUGTYPE:CV'
2064 MOZ_JS_LIBS='$(LIBXUL_DIST)/lib/mozjs.lib'
2066 RANLIB='echo not_ranlib'
2067 STRIP='echo not_strip'
2068 TARGET_NSPR_MDCPUCFG='\"md/_wince.cfg\"'
2071 XPCOM_FROZEN_LDOPTS='$(LIBXUL_DIST)/lib/xpcom.lib'
2073 LIBIDL_CFLAGS="-I$MOZ_TOOLS_DIR/include ${GLIB_CFLAGS}"
2074 LIBIDL_LIBS="$MOZ_TOOLS_DIR/lib/libidl-0.6_s.lib $MOZ_TOOLS_DIR/lib/glib-1.2_s.lib"
2078 AC_DEFINE(HAVE_SNPRINTF)
2083 AC_DEFINE(HW_THREADS)
2084 AC_DEFINE(STDC_HEADERS)
2085 AC_DEFINE(NEW_H, <new>)
2086 AC_DEFINE(WIN32_LEAN_AND_MEAN)
2087 AC_DEFINE(HAVE_LOCALTIME_R)
2089 TARGET_MD_ARCH=win32
2090 _PLATFORM_DEFAULT_TOOLKIT='cairo-windows'
2092 MOZ_ENABLE_POSTSCRIPT=
2093 MOZ_USER_DIR="Mozilla"
2095 MOZ_GFX_OPTIMIZE_MOBILE=1
2097 # Sanity check for WINCE_WINDOWS_MOBILE
2098 # XXX disabled until we can fix the mobile tinderbox
2099 ##if test "$WINCE_WINDOWS_MOBILE"; then
2100 ## AC_CHECK_HEADER(tpcshell.h, [],
2101 ## AC_MSG_ERROR([Can't find tpcshell.h in your SDK; are you sure you don't need --disable-windows-mobile-components?]))
2106 *-mingw*|*-cygwin*|*-msvc*|*-mks*)
2111 # certain versions of cygwin's makedepend barf on the
2112 # #include <string> vs -I./dist/include/string issue so don't use it
2114 if test -n "$GNU_CC"; then
2115 CC="$CC -mno-cygwin"
2116 CXX="$CXX -mno-cygwin"
2117 CPP="$CPP -mno-cygwin"
2118 CFLAGS="$CFLAGS -mms-bitfields"
2119 CXXFLAGS="$CXXFLAGS -mms-bitfields"
2120 DSO_LDOPTS='-shared'
2121 MKSHLIB='$(CXX) $(DSO_LDOPTS) -o $@'
2122 MKCSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
2124 # Use temp file for windres (bug 213281)
2125 RCFLAGS='-O coff --use-temp-file'
2126 # mingw doesn't require kernel32, user32, and advapi32 explicitly
2127 LIBS="$LIBS -lgdi32 -lwinmm -lwsock32"
2128 MOZ_JS_LIBS='-L$(LIBXUL_DIST)/lib -lmozjs'
2130 DYNAMIC_XPCOM_LIBS='-L$(LIBXUL_DIST)/lib -lxpcom -lxpcom_core'
2131 XPCOM_FROZEN_LDOPTS='-L$(LIBXUL_DIST)/lib -lxpcom'
2133 IMPORT_LIB_SUFFIX=dll.a
2135 TARGET_COMPILER_ABI=msvc
2139 if test "$AS_BIN"; then
2140 AS="$(basename "$AS_BIN")"
2142 AR='lib -NOLOGO -OUT:"$@"'
2144 RANLIB='echo not_ranlib'
2145 STRIP='echo not_strip'
2150 GARBAGE='$(OBJDIR)/vc20.pdb $(OBJDIR)/vc40.pdb'
2156 IMPORT_LIB_SUFFIX=lib
2157 MKSHLIB='$(LD) -NOLOGO -DLL -OUT:$@ -PDB:$(LINK_PDBFILE) $(DSO_LDOPTS)'
2158 MKCSHLIB='$(LD) -NOLOGO -DLL -OUT:$@ -PDB:$(LINK_PDBFILE) $(DSO_LDOPTS)'
2160 MKSHLIB_UNFORCE_ALL=
2161 DSO_LDOPTS=-SUBSYSTEM:WINDOWS
2162 _USE_CPP_INCLUDE_FLAG=1
2163 _DEFINES_CFLAGS='-FI $(DEPTH)/dist/include/mozilla-config.h -DMOZILLA_CLIENT'
2164 _DEFINES_CXXFLAGS='-FI $(DEPTH)/dist/include/mozilla-config.h -DMOZILLA_CLIENT'
2165 CFLAGS="$CFLAGS -W3 -Gy -Fd\$(COMPILE_PDBFILE)"
2166 CXXFLAGS="$CXXFLAGS -W3 -Gy -Fd\$(COMPILE_PDBFILE)"
2167 LIBS="$LIBS kernel32.lib user32.lib gdi32.lib winmm.lib wsock32.lib advapi32.lib"
2168 MOZ_DEBUG_FLAGS='-Zi'
2169 MOZ_DEBUG_LDFLAGS='-DEBUG -DEBUGTYPE:CV'
2170 WARNINGS_AS_ERRORS='-WX'
2171 MOZ_OPTIMIZE_FLAGS='-O1'
2172 MOZ_JS_LIBS='$(LIBXUL_DIST)/lib/mozjs.lib'
2174 DYNAMIC_XPCOM_LIBS='$(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/xpcom_core.lib'
2175 XPCOM_FROZEN_LDOPTS='$(LIBXUL_DIST)/lib/xpcom.lib'
2176 LIBXUL_LIBS='$(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/xul.lib'
2177 MOZ_COMPONENT_NSPR_LIBS='$(NSPR_LIBS)'
2178 if test $_MSC_VER -ge 1400; then
2179 LDFLAGS="$LDFLAGS -NXCOMPAT"
2180 dnl For profile-guided optimization
2181 PROFILE_GEN_CFLAGS="-GL"
2182 PROFILE_GEN_LDFLAGS="-LTCG:PGINSTRUMENT"
2183 dnl XXX: PGO builds can fail with warnings treated as errors,
2184 dnl specifically "no profile data available" appears to be
2185 dnl treated as an error sometimes. This might be a consequence
2186 dnl of using WARNINGS_AS_ERRORS in some modules, combined
2187 dnl with the linker doing most of the work in the whole-program
2188 dnl optimization/PGO case. I think it's probably a compiler bug,
2189 dnl but we work around it here.
2190 PROFILE_USE_CFLAGS="-GL -wd4624 -wd4952"
2191 dnl XXX: should be -LTCG:PGOPTIMIZE, but that fails on libxul.
2192 dnl Probably also a compiler bug, but what can you do?
2193 PROFILE_USE_LDFLAGS="-LTCG:PGUPDATE"
2194 if test -n "$_USE_DYNAMICBASE"; then
2195 LDFLAGS="$LDFLAGS -DYNAMICBASE"
2199 MOZ_JPEG_LIBS='$(call EXPAND_LIBNAME_PATH,jpeg$(MOZ_BITS)$(VERSION_NUMBER),$(DEPTH)/jpeg)'
2200 MOZ_PNG_LIBS='$(call EXPAND_LIBNAME_PATH,png,$(DEPTH)/modules/libimg/png)'
2201 AC_DEFINE(HAVE_SNPRINTF)
2206 AC_DEFINE(HW_THREADS)
2207 AC_DEFINE(STDC_HEADERS)
2208 AC_DEFINE(NEW_H, <new>)
2209 AC_DEFINE(WIN32_LEAN_AND_MEAN)
2210 TARGET_MD_ARCH=win32
2211 _PLATFORM_DEFAULT_TOOLKIT='cairo-windows'
2213 MOZ_ENABLE_POSTSCRIPT=
2214 MOZ_USER_DIR="Mozilla"
2216 dnl Hardcode to win95 for now - cls
2217 TARGET_NSPR_MDCPUCFG='\"md/_win95.cfg\"'
2219 dnl set NO_X11 defines here as the general check is skipped on win32
2223 dnl MinGW/MSYS doesn't provide or need cygpath
2228 MOZ_BUILD_ROOT=`cd $MOZ_BUILD_ROOT && pwd -W`
2230 *-cygwin*|*-msvc*|*-mks*)
2231 CYGPATH_W="cygpath -a -w"
2232 CYGPATH_S="sed -e s|\\\\|/|g"
2233 MOZ_BUILD_ROOT=`$CYGPATH_W $MOZ_BUILD_ROOT | $CYGPATH_S`
2237 *-mingw*|*-cygwin*|*-msvc*|*-mks*)
2239 if test -z "$MOZ_TOOLS"; then
2240 AC_MSG_ERROR([MOZ_TOOLS is not set])
2243 MOZ_TOOLS_DIR=`cd $MOZ_TOOLS && pwd -W`
2244 if test "$?" != "0" || test -z "$MOZ_TOOLS_DIR"; then
2245 AC_MSG_ERROR([cd \$MOZ_TOOLS failed. MOZ_TOOLS ==? $MOZ_TOOLS])
2247 MOZ_TOOLS_BIN_DIR="$(cd "$MOZ_TOOLS_DIR/bin" && pwd)"
2248 if test `echo ${PATH}: | grep -ic "$MOZ_TOOLS_BINDIR:"` = 0; then
2249 AC_MSG_ERROR([\$MOZ_TOOLS\\bin must be in your path.])
2251 MOZ_TOOLS_DIR=`$CYGPATH_W $MOZ_TOOLS_DIR | $CYGPATH_S`
2253 if test -n "$GLIB_PREFIX"; then
2254 _GLIB_PREFIX_DIR=`cd $GLIB_PREFIX && pwd -W`
2255 if test "$?" = "0"; then
2256 if test `echo ${PATH}: | grep -ic "$_GLIB_PREFIX_DIR/bin:"` = 0; then
2257 AC_MSG_ERROR([GLIB_PREFIX must be in your \$PATH.])
2259 _GLIB_PREFIX_DIR=`$CYGPATH_W $_GLIB_PREFIX_DIR | $CYGPATH_S`
2261 AC_MSG_ERROR([GLIB_PREFIX is set but "${GLIB_PREFIX}" is not a directory.])
2264 _GLIB_PREFIX_DIR=$MOZ_TOOLS_DIR
2266 if test ! -f "${_GLIB_PREFIX_DIR}/include/glib.h"; then
2267 AC_MSG_ERROR([Cannot find $_GLIB_PREFIX_DIR/include/glib.h .])
2269 GLIB_CFLAGS="-I${_GLIB_PREFIX_DIR}/include"
2270 if test -f "${_GLIB_PREFIX_DIR}/lib/glib-1.2_s.lib"; then
2271 GLIB_LIBS="${_GLIB_PREFIX_DIR}/lib/glib-1.2_s.lib"
2272 elif test -f "${_GLIB_PREFIX_DIR}/lib/glib-1.2.lib"; then
2273 GLIB_LIBS="${_GLIB_PREFIX_DIR}/lib/glib-1.2.lib"
2275 AC_MSG_ERROR([Cannot find $_GLIB_PREFIX_DIR/lib/glib-1.2.lib or $_GLIB_PREFIX_DIR/lib/glib-1.2_s.lib])
2278 if test -n "$LIBIDL_PREFIX"; then
2279 _LIBIDL_PREFIX_DIR=`cd $LIBIDL_PREFIX && pwd -W`
2280 if test "$?" = "0"; then
2281 if test `echo ${PATH}: | grep -ic "$_LIBIDL_PREFIX_DIR/bin:"` = 0; then
2282 AC_MSG_ERROR([LIBIDL_PREFIX must be in your \$PATH.])
2284 _LIBIDL_PREFIX_DIR=`$CYGPATH_W $_LIBIDL_PREFIX_DIR | $CYGPATH_S`
2286 AC_MSG_ERROR([LIBIDL_PREFIX is set but "${LIBIDL_PREFIX}" is not a directory.])
2289 _LIBIDL_PREFIX_DIR=$MOZ_TOOLS_DIR
2291 if test ! -f "${_LIBIDL_PREFIX_DIR}/include/libIDL/IDL.h"; then
2292 AC_MSG_ERROR([Cannot find $_LIBIDL_PREFIX_DIR/include/libIDL/IDL.h .])
2294 LIBIDL_CFLAGS="-I${_LIBIDL_PREFIX_DIR}/include ${GLIB_CFLAGS}"
2295 if test -f "${_LIBIDL_PREFIX_DIR}/lib/libidl-0.6_s.lib"; then
2296 LIBIDL_LIBS="${_LIBIDL_PREFIX_DIR}/lib/libidl-0.6_s.lib"
2298 elif test -f "${_LIBIDL_PREFIX_DIR}/lib/libidl-0.6.lib"; then
2299 LIBIDL_LIBS="${_LIBIDL_PREFIX_DIR}/lib/libidl-0.6.lib"
2301 AC_MSG_ERROR([Cannot find $_LIBIDL_PREFIX_DIR/lib/libidl-0.6.lib or $_LIBIDL_PREFIX_DIR/lib/libidl-0.6_s.lib])
2303 LIBIDL_LIBS="${LIBIDL_LIBS} ${GLIB_LIBS}"
2306 *) # else cross-compiling
2307 if test -n "$GLIB_PREFIX"; then
2308 GLIB_CFLAGS="-I${GLIB_PREFIX}/include"
2309 if test -f "${GLIB_PREFIX}/lib/glib-1.2_s.lib"; then
2310 GLIB_LIBS="${GLIB_PREFIX}/lib/glib-1.2_s.lib"
2311 elif test -f "${GLIB_PREFIX}/lib/glib-1.2.lib"; then
2312 GLIB_LIBS="${GLIB_PREFIX}/lib/glib-1.2.lib"
2314 AC_MSG_ERROR([Cannot find $GLIB_PREFIX/lib/glib-1.2.lib or $GLIB_PREFIX/lib/glib-1.2_s.lib])
2317 if test -n "$LIBIDL_PREFIX"; then
2318 LIBIDL_CFLAGS="-I${LIBIDL_PREFIX}/include ${GLIB_CFLAGS}"
2319 if test -f "${LIBIDL_PREFIX}/lib/libIDL-0.6_s.lib"; then
2320 LIBIDL_LIBS="${LIBIDL_PREFIX}/lib/libIDL-0.6_s.lib"
2322 elif test -f "${LIBIDL_PREFIX}/lib/libIDL-0.6.lib"; then
2323 LIBIDL_LIBS="${LIBIDL_PREFIX}/lib/libIDL-0.6.lib"
2325 AC_MSG_ERROR([Cannot find $LIBIDL_PREFIX/lib/libIDL-0.6.lib or $LIBIDL_PREFIX/lib/libIDL-0.6_s.lib])
2328 LIBIDL_LIBS="${LIBIDL_LIBS} ${GLIB_LIBS}"
2335 AC_MSG_WARN([Using a cygwin build environment is unsupported. Configure cannot check for the presence of necessary headers. Please upgrade to MozillaBuild; see http://developer.mozilla.org/en/docs/Windows_Build_Prerequisites])
2339 AC_CHECK_HEADERS(oleacc.idl)
2343 AC_CHECK_HEADERS(atlbase.h)
2350 if test "$HAVE_64BIT_OS"; then
2351 AC_MSG_ERROR([You are targeting i386 but using the 64-bit compiler.])
2354 if test $_MSC_VER -ge 1400; then
2355 LDFLAGS="$LDFLAGS -SAFESEH"
2357 AC_CHECK_HEADERS(mmintrin.h)
2370 AC_DEFINE(_CPU_ARCH_NOT_DEFINED)
2374 if test "$HAVE_64BIT_OS"; then
2381 CFLAGS="$CFLAGS -Dunix"
2382 CXXFLAGS="$CXXFLAGS -Dunix"
2383 if $CC -E - -dM </dev/null | grep __ELF__ >/dev/null; then
2385 DSO_PIC_CFLAGS='-fPIC -DPIC'
2386 DSO_LDOPTS='-shared'
2387 BIN_FLAGS='-Wl,--export-dynamic'
2389 DSO_PIC_CFLAGS='-fPIC -DPIC'
2390 DLL_SUFFIX=".so.1.0"
2391 DSO_LDOPTS='-shared'
2393 # This will fail on a.out systems prior to 1.5.1_ALPHA.
2394 MKSHLIB_FORCE_ALL='-Wl,--whole-archive'
2395 MKSHLIB_UNFORCE_ALL='-Wl,--no-whole-archive'
2396 if test "$LIBRUNPATH"; then
2397 DSO_LDOPTS="-Wl,-R$LIBRUNPATH $DSO_LDOPTS"
2399 MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-soname,lib$(LIBRARY_NAME)$(DLL_SUFFIX) -o $@'
2400 MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-soname,lib$(LIBRARY_NAME)$(DLL_SUFFIX) -o $@'
2405 AC_DEFINE(_QNX_SOURCE)
2408 WARNINGS_AS_ERRORS=''
2409 MOZ_OPTIMIZE_FLAGS="-O"
2410 MOZ_DEBUG_FLAGS="-gstabs"
2413 LIBS="$LIBS -lsocket -lstdc++"
2414 _DEFINES_CFLAGS='-Wp,-include -Wp,$(DEPTH)/mozilla-config.h -DMOZILLA_CLIENT -D_POSIX_C_SOURCE=199506'
2415 _DEFINES_CXXFLAGS='-DMOZILLA_CLIENT -Wp,-include -Wp,$(DEPTH)/mozilla-config.h -D_POSIX_C_SOURCE=199506'
2416 if test "$with_x" != "yes"
2418 _PLATFORM_DEFAULT_TOOLKIT="photon"
2419 TK_CFLAGS='-I/usr/include/photon'
2422 case "${target_cpu}" in
2424 AC_DEFINE(HAVE_VA_LIST_AS_ARRAY)
2427 case "${host_cpu}" in
2435 DLL_SUFFIX=".so.1.0"
2437 DSO_PIC_CFLAGS='-fPIC'
2438 DSO_LDOPTS='-shared -fPIC'
2439 if test "$LIBRUNPATH"; then
2440 DSO_LDOPTS="-R$LIBRUNPATH $DSO_LDOPTS"
2445 AC_DEFINE(NO_PW_GECOS)
2446 AC_DEFINE(NO_UDSOCK)
2447 AC_DEFINE(POLL_WITH_XCONNECTIONNUMBER)
2449 MKSHLIB_FORCE_ALL='-all'
2450 MKSHLIB_UNFORCE_ALL='-none'
2452 AS_DASH_C_FLAG='-Wc/names=as_is'
2454 DSO_LDOPTS='-shared -auto_symvec'
2456 MOZ_DEBUG_LDFLAGS='-g'
2458 CC_VERSION=`$CC -V 2>&1 | awk '/ C / { print $3 }'`
2459 CXX_VERSION=`$CXX -V 2>&1 | awk '/ C\+\+ / { print $3 }'`
2464 MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
2465 MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
2468 AC_DEFINE(OS2EMX_PLAIN_CHAR)
2469 AC_DEFINE(TCPV40HDRS)
2475 IMPORT_LIB_SUFFIX=lib
2479 CFLAGS="$CFLAGS -Zomf"
2480 CXXFLAGS="$CXXFLAGS -Zomf"
2482 BIN_FLAGS='-Zlinker /ST:0x100000'
2486 WARNINGS_AS_ERRORS='-Werror'
2487 MOZ_DEBUG_FLAGS="-g -fno-inline"
2488 MOZ_OPTIMIZE_FLAGS="-O2"
2489 MOZ_OPTIMIZE_LDFLAGS="-s -Zlinker /EXEPACK:2 -Zlinker /PACKCODE -Zlinker /PACKDATA"
2490 DYNAMIC_XPCOM_LIBS='-L$(LIBXUL_DIST)/lib $(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/xpcomcor.lib'
2491 LIBXUL_LIBS='-L$(LIBXUL_DIST)/lib $(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/xul.lib'
2493 _PLATFORM_DEFAULT_TOOLKIT="cairo-os2"
2494 MOZ_ENABLE_POSTSCRIPT=
2497 MOZ_USER_DIR="Mozilla"
2499 if test "$MOZTOOLS"; then
2500 MOZ_TOOLS_DIR=`echo $MOZTOOLS | sed -e 's|\\\\|/|g'`
2502 AC_MSG_ERROR([MOZTOOLS is not set])
2504 if test -n "$MOZ_OS2_HIGH_MEMORY"; then
2505 DSO_LDOPTS="$DSO_LDOPTS -Zhigh-mem"
2506 LDFLAGS="$LDFLAGS -Zhigh-mem"
2507 MOZ_OPTIMIZE_LDFLAGS="$MOZ_OPTIMIZE_LDFLAGS -Zhigh-mem"
2508 AC_DEFINE(MOZ_OS2_HIGH_MEMORY)
2511 # GCC for OS/2 currently predefines these, but we don't want them
2512 _DEFINES_CFLAGS="$_DEFINES_CFLAGS -Uunix -U__unix -U__unix__"
2513 _DEFINES_CXXFLAGS="$_DEFINES_CXXFLAGS -Uunix -U__unix -U__unix__"
2515 AC_CACHE_CHECK(for __declspec(dllexport),
2517 [AC_TRY_COMPILE([__declspec(dllexport) void ac_os2_declspec(void) {}],
2519 ac_os2_declspec="yes",
2520 ac_os2_declspec="no")])
2521 if test "$ac_os2_declspec" = "yes"; then
2523 MOZ_OS2_USE_DECLSPEC='1'
2528 if test "$GNU_CC"; then
2529 MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-soname,$@ -o $@'
2530 MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-soname,$@ -o $@'
2533 MOZ_DEBUG_FLAGS='-g'
2534 ASFLAGS='-I$(topsrcdir)/xpcom/reflect/xptcall/public -g'
2535 CFLAGS="$CFLAGS -ieee"
2536 CXXFLAGS="$CXXFLAGS "'-noexceptions -ieee -ptr $(DIST)/cxx_repository'
2537 DSO_LDOPTS='-shared -msym -expect_unresolved \* -update_registry $(DIST)/so_locations'
2540 MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -soname $@ -o $@'
2541 MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -soname $@ -o $@'
2542 MKSHLIB_FORCE_ALL='-all'
2543 MKSHLIB_UNFORCE_ALL='-none'
2544 dnl Might fix the libxpcom.so breakage on this platform as well....
2545 AC_DEFINE(NSCAP_DISABLE_TEST_DONTQUERY_CASES)
2546 AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
2548 if test -z "$GNU_CXX"; then
2551 AC_DEFINE(NEED_USLEEP_PROTOTYPE)
2555 DIRENT_INO=d_stat.st_ino
2556 dnl Solves the problems the QNX compiler has with nsCOMPtr.h.
2557 AC_DEFINE(NSCAP_DISABLE_TEST_DONTQUERY_CASES)
2558 AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
2559 dnl Explicit set STDC_HEADERS to workaround QNX 6.0's failing of std test
2560 AC_DEFINE(STDC_HEADERS)
2561 if test "$no_x" = "yes"; then
2562 _PLATFORM_DEFAULT_TOOLKIT='photon'
2563 TK_CFLAGS='-I/usr/nto/include/photon'
2564 TK_LIBS='-lphoton -lphrender'
2569 AC_DEFINE(NSCAP_DISABLE_TEST_DONTQUERY_CASES)
2570 AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
2571 CXXFLAGS="$CXXFLAGS -I/usr/include/CC"
2572 if test ! "$GNU_CC"; then
2577 dnl the qsort routine under solaris is faulty
2580 TARGET_NSPR_MDCPUCFG='\"md/_solaris.cfg\"'
2582 # $ORIGIN/.. is for shared libraries under components/ to locate shared
2583 # libraries one level up (e.g. libnspr4.so)
2584 LDFLAGS="$LDFLAGS -z ignore -R '\$\$ORIGIN:\$\$ORIGIN/..'"
2586 if test "$SOLARIS_SUNPRO_CC"; then
2587 LIBS="-lCrun -lCstd $LIBS"
2590 AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
2591 CFLAGS="$CFLAGS -xlibmieee -xstrconst -xbuiltin=%all"
2592 CXXFLAGS="$CXXFLAGS -xlibmieee -xbuiltin=%all -features=tmplife -norunpath"
2593 LDFLAGS="-xildoff -z lazyload -z combreloc $LDFLAGS"
2594 if test -z "$CROSS_COMPILE" && test -f /usr/lib/ld/map.noexstk; then
2595 _SAVE_LDFLAGS=$LDFLAGS
2596 LDFLAGS="-M /usr/lib/ld/map.noexstk $LDFLAGS"
2597 AC_TRY_LINK([#include <stdio.h>],
2598 [printf("Hello World\n");],
2600 [LDFLAGS=$_SAVE_LDFLAGS])
2602 WARNINGS_AS_ERRORS='-Werror'
2603 MOZ_OPTIMIZE_FLAGS="-xO4"
2604 MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_FLAGS) $(DSO_LDOPTS) -h $@ -o $@'
2605 MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_FLAGS) -G -z muldefs -h $@ -o $@'
2606 MKSHLIB_FORCE_ALL='-z allextract'
2607 MKSHLIB_UNFORCE_ALL='-z defaultextract'
2608 DSO_LDOPTS='-G -z muldefs'
2614 AS='/usr/ccs/bin/as'
2615 ASFLAGS="$ASFLAGS -K PIC -L -P -D_ASM -D__STDC__=0"
2617 TARGET_COMPILER_ABI="sunc"
2618 CC_VERSION=`$CC -V 2>&1 | grep '^cc:' 2>/dev/null | $AWK -F\: '{ print $2 }'`
2619 CXX_VERSION=`$CXX -V 2>&1 | grep '^CC:' 2>/dev/null | $AWK -F\: '{ print $2 }'`
2620 AC_MSG_CHECKING([for Sun C++ compiler version >= 5.9])
2624 [#if (__SUNPRO_CC < 0x590)
2627 _BAD_COMPILER=,_BAD_COMPILER=1)
2628 if test -n "$_BAD_COMPILER"; then
2630 AC_MSG_ERROR([Sun C++ 5.9 (Sun Studio 12) or higher is required to build. Your compiler version is $CXX_VERSION .])
2634 AC_MSG_RESULT([$_res])
2637 ASFLAGS="$ASFLAGS -fPIC"
2640 _WARNINGS_CXXFLAGS=''
2641 if test "$OS_RELEASE" = "5.3"; then
2642 AC_DEFINE(MUST_UNDEF_HAVE_BOOLEAN_AFTER_INCLUDES)
2645 if test "$OS_RELEASE" = "5.5.1"; then
2646 AC_DEFINE(NEED_USLEEP_PROTOTYPE)
2651 DSO_LDOPTS='-Bdynamic'
2652 MKSHLIB='-$(LD) $(DSO_LDOPTS) -o $@'
2653 MKCSHLIB='-$(LD) $(DSO_LDOPTS) -o $@'
2655 AC_DEFINE(SPRINTF_RETURNS_STRING)
2656 case "$(target_os)" in
2658 DLL_SUFFIX='.so.1.0'
2664 NSPR_LIBS="-lnspr$NSPR_VERSION -lplc$NSPR_VERSION -lplds$NSPR_VERSION -L/usr/ccs/lib -lcrt"
2668 HOST_NSPR_MDCPUCFG='\"md/_os2.cfg\"'
2673 dnl Only one oddball right now (QNX), but this gives us flexibility
2674 dnl if any other platforms need to override this in the future.
2675 AC_DEFINE_UNQUOTED(D_INO,$DIRENT_INO)
2677 dnl ========================================================
2678 dnl Any platform that doesn't have MKSHLIB_FORCE_ALL defined
2679 dnl by now will not have any way to link most binaries (tests
2680 dnl as well as viewer, apprunner, etc.), because some symbols
2681 dnl will be left out of the "composite" .so's by ld as unneeded.
2682 dnl So, by defining NO_LD_ARCHIVE_FLAGS for these platforms,
2683 dnl they can link in the static libs that provide the missing
2685 dnl ========================================================
2686 NO_LD_ARCHIVE_FLAGS=
2687 if test -z "$MKSHLIB_FORCE_ALL" || test -z "$MKSHLIB_UNFORCE_ALL"; then
2688 NO_LD_ARCHIVE_FLAGS=1
2692 NO_LD_ARCHIVE_FLAGS=
2695 NO_LD_ARCHIVE_FLAGS=
2698 NO_LD_ARCHIVE_FLAGS=
2700 *-msvc*|*-mks*|*-mingw*|*-cygwin*|*-wince)
2701 if test -z "$GNU_CC"; then
2702 NO_LD_ARCHIVE_FLAGS=
2706 AC_SUBST(NO_LD_ARCHIVE_FLAGS)
2708 dnl ========================================================
2709 dnl = Flags to strip unused symbols from .so components
2710 dnl ========================================================
2712 *-linux*|*-kfreebsd*-gnu)
2713 MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,--version-script -Wl,$(BUILD_TOOLS)/gnu-ld-scripts/components-version-script'
2716 if test -z "$GNU_CC"; then
2717 MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-M $(BUILD_TOOLS)/gnu-ld-scripts/components-mapfile'
2719 if test -z "$GCC_USE_GNU_LD"; then
2720 MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,-M -Wl,$(BUILD_TOOLS)/gnu-ld-scripts/components-mapfile'
2722 MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,--version-script -Wl,$(BUILD_TOOLS)/gnu-ld-scripts/components-version-script'
2727 MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,--version-script,$(BUILD_TOOLS)/gnu-ld-scripts/components-version-script'
2730 MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,-exported_symbols_list -Wl,$(BUILD_TOOLS)/gnu-ld-scripts/components-export-list'
2732 *-cygwin*|*-mingw*|*-mks*|*-msvc|*-wince)
2733 if test -n "$GNU_CC"; then
2734 MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,--version-script,$(BUILD_TOOLS)/gnu-ld-scripts/components-version-script'
2739 if test -z "$COMPILE_ENVIRONMENT"; then
2740 SKIP_COMPILER_CHECKS=1
2741 SKIP_LIBRARY_CHECKS=1
2744 if test -z "$SKIP_COMPILER_CHECKS"; then
2745 dnl Checks for typedefs, structures, and compiler characteristics.
2746 dnl ========================================================
2754 AC_STRUCT_ST_BLKSIZE
2755 AC_MSG_CHECKING(for siginfo_t)
2756 AC_CACHE_VAL(ac_cv_siginfo_t,
2757 [AC_TRY_COMPILE([#define _POSIX_C_SOURCE 199506L
2758 #include <signal.h>],
2760 [ac_cv_siginfo_t=true],
2761 [ac_cv_siginfo_t=false])])
2762 if test "$ac_cv_siginfo_t" = true ; then
2763 AC_DEFINE(HAVE_SIGINFO_T)
2769 dnl Check for int16_t, int32_t, int64_t, int64, uint, uint_t, and uint16_t.
2770 dnl ========================================================
2771 AC_MSG_CHECKING(for int16_t)
2772 AC_CACHE_VAL(ac_cv_int16_t,
2773 [AC_TRY_COMPILE([#include <stdio.h>
2774 #include <sys/types.h>],
2776 [ac_cv_int16_t=true],
2777 [ac_cv_int16_t=false])])
2778 if test "$ac_cv_int16_t" = true ; then
2779 AC_DEFINE(HAVE_INT16_T)
2784 AC_MSG_CHECKING(for int32_t)
2785 AC_CACHE_VAL(ac_cv_int32_t,
2786 [AC_TRY_COMPILE([#include <stdio.h>
2787 #include <sys/types.h>],
2789 [ac_cv_int32_t=true],
2790 [ac_cv_int32_t=false])])
2791 if test "$ac_cv_int32_t" = true ; then
2792 AC_DEFINE(HAVE_INT32_T)
2797 AC_MSG_CHECKING(for int64_t)
2798 AC_CACHE_VAL(ac_cv_int64_t,
2799 [AC_TRY_COMPILE([#include <stdio.h>
2800 #include <sys/types.h>],
2802 [ac_cv_int64_t=true],
2803 [ac_cv_int64_t=false])])
2804 if test "$ac_cv_int64_t" = true ; then
2805 AC_DEFINE(HAVE_INT64_T)
2810 AC_MSG_CHECKING(for int64)
2811 AC_CACHE_VAL(ac_cv_int64,
2812 [AC_TRY_COMPILE([#include <stdio.h>
2813 #include <sys/types.h>],
2816 [ac_cv_int64=false])])
2817 if test "$ac_cv_int64" = true ; then
2818 AC_DEFINE(HAVE_INT64)
2823 AC_MSG_CHECKING(for uint)
2824 AC_CACHE_VAL(ac_cv_uint,
2825 [AC_TRY_COMPILE([#include <stdio.h>
2826 #include <sys/types.h>],
2829 [ac_cv_uint=false])])
2830 if test "$ac_cv_uint" = true ; then
2831 AC_DEFINE(HAVE_UINT)
2836 AC_MSG_CHECKING(for uint_t)
2837 AC_CACHE_VAL(ac_cv_uint_t,
2838 [AC_TRY_COMPILE([#include <stdio.h>
2839 #include <sys/types.h>],
2841 [ac_cv_uint_t=true],
2842 [ac_cv_uint_t=false])])
2843 if test "$ac_cv_uint_t" = true ; then
2844 AC_DEFINE(HAVE_UINT_T)
2849 AC_MSG_CHECKING(for uint16_t)
2850 AC_CACHE_VAL(ac_cv_uint16_t,
2851 [AC_TRY_COMPILE([#include <stdio.h>
2852 #include <sys/types.h>],
2853 [uint16_t foo = 0;],
2854 [ac_cv_uint16_t=true],
2855 [ac_cv_uint16_t=false])])
2856 if test "$ac_cv_uint16_t" = true ; then
2857 AC_DEFINE(HAVE_UINT16_T)
2863 dnl On the gcc trunk (as of 2001-02-09) _GNU_SOURCE, and thus __USE_GNU,
2864 dnl are defined when compiling C++ but not C. Since the result of this
2865 dnl test is used only in C++, do it in C++.
2868 AC_MSG_CHECKING(for uname.domainname)
2869 AC_CACHE_VAL(ac_cv_have_uname_domainname_field,
2870 [AC_TRY_COMPILE([#include <sys/utsname.h>],
2871 [ struct utsname *res; char *domain;
2872 (void)uname(res); if (res != 0) { domain = res->domainname; } ],
2873 [ac_cv_have_uname_domainname_field=true],
2874 [ac_cv_have_uname_domainname_field=false])])
2876 if test "$ac_cv_have_uname_domainname_field" = "true"; then
2877 AC_DEFINE(HAVE_UNAME_DOMAINNAME_FIELD)
2883 AC_MSG_CHECKING(for uname.__domainname)
2884 AC_CACHE_VAL(ac_cv_have_uname_us_domainname_field,
2885 [AC_TRY_COMPILE([#include <sys/utsname.h>],
2886 [ struct utsname *res; char *domain;
2887 (void)uname(res); if (res != 0) { domain = res->__domainname; } ],
2888 [ac_cv_have_uname_us_domainname_field=true],
2889 [ac_cv_have_uname_us_domainname_field=false])])
2891 if test "$ac_cv_have_uname_us_domainname_field" = "true"; then
2892 AC_DEFINE(HAVE_UNAME_US_DOMAINNAME_FIELD)
2900 dnl Check for usable char16_t (2 bytes, unsigned)
2901 dnl (we might not need the unsignedness check anymore)
2902 AC_CACHE_CHECK(for usable char16_t (2 bytes, unsigned),
2903 ac_cv_have_usable_char16_t,
2904 [AC_TRY_COMPILE([$configure_static_assert_macros],
2905 [CONFIGURE_STATIC_ASSERT(sizeof(char16_t) == 2);
2906 CONFIGURE_STATIC_ASSERT(char16_t(-1) > char16_t(0));
2907 CONFIGURE_STATIC_ASSERT(sizeof((u"hello")[0]) == 2);
2908 CONFIGURE_STATIC_ASSERT(sizeof(u'a') == 2);
2909 CONFIGURE_STATIC_ASSERT(u'\xFFFF' > u'\x0')],
2910 ac_cv_have_usable_char16_t="yes",
2911 ac_cv_have_usable_char16_t="no")])
2912 if test "$ac_cv_have_usable_char16_t" = "yes"; then
2913 AC_DEFINE(HAVE_CPP_CHAR16_T)
2917 dnl Check for usable wchar_t (2 bytes, unsigned)
2918 dnl (we really don't need the unsignedness check anymore)
2919 dnl ========================================================
2921 AC_CACHE_CHECK(for usable wchar_t (2 bytes, unsigned),
2922 ac_cv_have_usable_wchar_v2,
2923 [AC_TRY_COMPILE([#include <stddef.h>
2924 $configure_static_assert_macros],
2925 [CONFIGURE_STATIC_ASSERT(sizeof(wchar_t) == 2);
2926 CONFIGURE_STATIC_ASSERT((wchar_t)-1 > (wchar_t) 0)],
2927 ac_cv_have_usable_wchar_v2="yes",
2928 ac_cv_have_usable_wchar_v2="no")])
2929 if test "$ac_cv_have_usable_wchar_v2" = "yes"; then
2930 AC_DEFINE(HAVE_CPP_2BYTE_WCHAR_T)
2931 HAVE_CPP_2BYTE_WCHAR_T=1
2932 elif test "$ac_cv_have_usable_char16_t" != "yes"; then
2933 dnl This is really gcc-only
2934 dnl Do this test using CXX only since some versions of gcc
2935 dnl 2.95-2.97 have a signed wchar_t in c++ only and some versions
2936 dnl only have short-wchar support for c++.
2937 dnl Note that we assume that mac & win32 have short wchar (see nscore.h)
2939 _SAVE_CXXFLAGS=$CXXFLAGS
2940 CXXFLAGS="$CXXFLAGS -fshort-wchar"
2942 AC_CACHE_CHECK(for compiler -fshort-wchar option,
2943 ac_cv_have_usable_wchar_option_v2,
2944 [AC_TRY_LINK([#include <stddef.h>
2945 $configure_static_assert_macros],
2946 [CONFIGURE_STATIC_ASSERT(sizeof(wchar_t) == 2);
2947 CONFIGURE_STATIC_ASSERT((wchar_t)-1 > (wchar_t) 0)],
2948 ac_cv_have_usable_wchar_option_v2="yes",
2949 ac_cv_have_usable_wchar_option_v2="no")])
2951 if test "$ac_cv_have_usable_wchar_option_v2" = "yes"; then
2952 AC_DEFINE(HAVE_CPP_2BYTE_WCHAR_T)
2953 HAVE_CPP_2BYTE_WCHAR_T=1
2954 WCHAR_CFLAGS="-fshort-wchar"
2956 CXXFLAGS=$_SAVE_CXXFLAGS
2962 dnl Check for .hidden assembler directive and visibility attribute.
2963 dnl Borrowed from glibc configure.in
2964 dnl ===============================================================
2965 if test "$GNU_CC"; then
2966 AC_CACHE_CHECK(for visibility(hidden) attribute,
2967 ac_cv_visibility_hidden,
2968 [cat > conftest.c <<EOF
2969 int foo __attribute__ ((visibility ("hidden"))) = 1;
2971 ac_cv_visibility_hidden=no
2972 if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
2973 if egrep '\.(hidden|private_extern).*foo' conftest.s >/dev/null; then
2974 ac_cv_visibility_hidden=yes
2979 if test "$ac_cv_visibility_hidden" = "yes"; then
2980 AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE)
2982 AC_CACHE_CHECK(for visibility(default) attribute,
2983 ac_cv_visibility_default,
2984 [cat > conftest.c <<EOF
2985 int foo __attribute__ ((visibility ("default"))) = 1;
2987 ac_cv_visibility_default=no
2988 if ${CC-cc} -fvisibility=hidden -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
2989 if ! egrep '\.(hidden|private_extern).*foo' conftest.s >/dev/null; then
2990 ac_cv_visibility_default=yes
2995 if test "$ac_cv_visibility_default" = "yes"; then
2996 AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
2998 AC_CACHE_CHECK(for visibility pragma support,
2999 ac_cv_visibility_pragma,
3000 [cat > conftest.c <<EOF
3001 #pragma GCC visibility push(hidden)
3003 #pragma GCC visibility push(default)
3004 int foo_default = 1;
3006 ac_cv_visibility_pragma=no
3007 if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
3008 if egrep '\.(hidden|private_extern).*foo_hidden' conftest.s >/dev/null; then
3009 if ! egrep '\.(hidden|private_extern).*foo_default' conftest.s > /dev/null; then
3010 ac_cv_visibility_pragma=yes
3016 if test "$ac_cv_visibility_pragma" = "yes"; then
3017 AC_CACHE_CHECK(For gcc visibility bug with class-level attributes (GCC bug 26905),
3018 ac_cv_have_visibility_class_bug,
3019 [cat > conftest.c <<EOF
3020 #pragma GCC visibility push(hidden)
3021 struct __attribute__ ((visibility ("default"))) TestStruct {
3024 __attribute__ ((visibility ("default"))) void TestFunc() {
3028 ac_cv_have_visibility_class_bug=no
3029 if ! ${CXX-g++} ${CXXFLAGS} ${DSO_PIC_CFLAGS} ${DSO_LDOPTS} -S -o conftest.S conftest.c > /dev/null 2>&1 ; then
3030 ac_cv_have_visibility_class_bug=yes
3032 if test `egrep -c '@PLT|\\$stub' conftest.S` = 0; then
3033 ac_cv_have_visibility_class_bug=yes
3036 rm -rf conftest.{c,S}
3039 AC_CACHE_CHECK(For x86_64 gcc visibility bug with builtins (GCC bug 20297),
3040 ac_cv_have_visibility_builtin_bug,
3041 [cat > conftest.c <<EOF
3042 #pragma GCC visibility push(hidden)
3043 #pragma GCC visibility push(default)
3045 #pragma GCC visibility pop
3047 __attribute__ ((visibility ("default"))) void Func() {
3049 memset(c, 0, sizeof(c));
3052 ac_cv_have_visibility_builtin_bug=no
3053 if ! ${CC-cc} ${CFLAGS} ${DSO_PIC_CFLAGS} ${DSO_LDOPTS} -O2 -S -o conftest.S conftest.c > /dev/null 2>&1 ; then
3054 ac_cv_have_visibility_builtin_bug=yes
3056 if test `grep -c "@PLT" conftest.S` = 0; then
3057 ac_cv_visibility_builtin_bug=yes
3060 rm -f conftest.{c,S}
3062 if test "$ac_cv_have_visibility_builtin_bug" = "no" -a \
3063 "$ac_cv_have_visibility_class_bug" = "no"; then
3064 VISIBILITY_FLAGS='-I$(DIST)/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h'
3065 WRAP_SYSTEM_INCLUDES=1
3067 VISIBILITY_FLAGS='-fvisibility=hidden'
3068 fi # have visibility pragma bug
3069 fi # have visibility pragma
3070 fi # have visibility(default) attribute
3071 fi # have visibility(hidden) attribute
3074 # visibility hidden flag for Sun Studio on Solaris
3075 if test "$SOLARIS_SUNPRO_CC"; then
3076 VISIBILITY_FLAGS='-xldscope=hidden'
3077 fi # Sun Studio on Solaris
3079 AC_SUBST(WRAP_SYSTEM_INCLUDES)
3080 AC_SUBST(VISIBILITY_FLAGS)
3082 dnl Checks for header files.
3083 dnl ========================================================
3085 case "$target_os" in
3087 # for stuff like -lXshm
3088 CPPFLAGS="${CPPFLAGS} ${X_CFLAGS}"
3091 AC_CHECK_HEADERS(sys/byteorder.h compat.h getopt.h)
3092 AC_CHECK_HEADERS(sys/bitypes.h memory.h unistd.h)
3093 AC_CHECK_HEADERS(gnu/libc-version.h nl_types.h)
3094 AC_CHECK_HEADERS(malloc.h)
3095 AC_CHECK_HEADERS(X11/XKBlib.h)
3096 AC_CHECK_HEADERS(io.h)
3098 dnl These are all the places some variant of statfs can be hiding.
3099 AC_CHECK_HEADERS(sys/statvfs.h sys/statfs.h sys/vfs.h sys/mount.h)
3102 AC_CHECK_HEADERS(sys/quota.h)
3104 dnl Try for MMX support
3105 dnl NB - later gcc versions require -mmmx for this header to be successfully
3106 dnl included (or another option which implies it, such as -march=pentium-mmx)
3107 AC_CHECK_HEADERS(mmintrin.h)
3109 dnl Check whether the compiler supports the new-style C++ standard
3110 dnl library headers (i.e. <new>) or needs the old "new.h"
3113 AC_CHECK_HEADER(new, [NEW_H=new])
3114 AC_DEFINE_UNQUOTED(NEW_H, <$NEW_H>)
3117 AC_ARG_ENABLE(dtrace,
3118 [ --enable-dtrace build with dtrace support if available (default=no)],
3119 [enable_dtrace="yes"],)
3120 if test "x$enable_dtrace" = "xyes"; then
3121 AC_CHECK_HEADER(sys/sdt.h, HAVE_DTRACE=1)
3122 if test -n "$HAVE_DTRACE"; then
3123 AC_DEFINE(INCLUDE_MOZILLA_DTRACE)
3125 AC_MSG_ERROR([dtrace enabled but sys/sdt.h not found]);
3128 AC_SUBST(HAVE_DTRACE)
3134 AC_CHECK_HEADERS(sys/cdefs.h)
3138 dnl Checks for libraries.
3139 dnl ========================================================
3144 AC_CHECK_LIB(c_r, gethostbyname_r)
3148 dnl We don't want to link with libdl even if it's present on OS X, since
3149 dnl it's not used and not part of the default installation.
3150 dnl The same goes for BeOS. OS/2 has dlfcn in libc.
3151 dnl We don't want to link against libm or libpthread on Darwin since
3152 dnl they both are just symlinks to libSystem and explicitly linking
3153 dnl against libSystem causes issues when debugging (see bug 299601).
3162 AC_CHECK_LIB(m, atan)
3163 AC_CHECK_LIB(dl, dlopen,
3164 AC_CHECK_HEADER(dlfcn.h,
3166 AC_DEFINE(HAVE_LIBDL)))
3170 _SAVE_CFLAGS="$CFLAGS"
3171 CFLAGS="$CFLAGS -D_GNU_SOURCE"
3172 AC_CHECK_FUNCS(dladdr)
3173 CFLAGS="$_SAVE_CFLAGS"
3175 if test ! "$GNU_CXX"; then
3179 AC_CHECK_LIB(C_r, demangle)
3182 AC_CHECK_LIB(C, demangle)
3187 dnl OS/2 has socket in libc.
3192 AC_CHECK_LIB(socket, socket)
3195 dnl ========================================================
3196 dnl Check whether we can compile code for Core Text and
3198 dnl (Mac OS X 10.5 or later)
3199 dnl ========================================================
3202 AC_MSG_CHECKING([for Core Text])
3203 AC_TRY_COMPILE([#include <ApplicationServices/ApplicationServices.h>],
3204 [CTLineRef lineRef;],
3205 ac_cv_have_leopard="yes",
3206 ac_cv_have_leopard="no")
3207 AC_MSG_RESULT([$ac_cv_have_leopard])
3211 MOZ_ARG_DISABLE_BOOL(coretext,
3212 [ --disable-coretext Use ATSUI instead of Core Text for text rendering],
3216 if test -n "$MOZ_CORETEXT"; then
3217 if test "$ac_cv_have_leopard" = "no"; then
3218 AC_MSG_ERROR([--enable-coretext requires MacOS SDK 10.5 or newer])
3220 AC_DEFINE(MOZ_CORETEXT)
3223 MOZ_COCOA_PRINTING=1
3225 MOZ_ARG_DISABLE_BOOL(cocoa-printing,
3226 [ --disable-cocoa-printing
3227 Use a Carbon print dialog instead of a Cocoa one],
3228 MOZ_COCOA_PRINTING=,
3229 MOZ_COCOA_PRINTING=1)
3231 if test -n "$MOZ_COCOA_PRINTING"; then
3232 if test "$ac_cv_have_leopard" = "no"; then
3233 AC_MSG_ERROR([--enable-cocoa-printing requires MacOS SDK 10.5 or newer])
3235 AC_DEFINE(MOZ_COCOA_PRINTING)
3240 AC_SUBST(MOZ_COCOA_PRINTING)
3243 XLIBS="$X_EXTRA_LIBS"
3245 dnl ========================================================
3246 dnl Checks for X libraries.
3247 dnl Ordering is important.
3248 dnl Xt is dependent upon SM as of X11R6
3249 dnl ========================================================
3250 if test "$no_x" = "yes"; then
3253 AC_DEFINE_UNQUOTED(FUNCPROTO,15)
3254 XLIBS="-lX11 $XLIBS"
3255 _SAVE_LDFLAGS="$LDFLAGS"
3256 LDFLAGS="$XLDFLAGS $LDFLAGS"
3257 AC_CHECK_LIB(X11, XDrawLines, [X11_LIBS="-lX11"],
3258 [MISSING_X="$MISSING_X -lX11"], $XLIBS)
3259 AC_CHECK_LIB(Xext, XextAddDisplay, [XEXT_LIBS="-lXext"],
3260 [MISSING_X="$MISSING_X -lXext"], $XLIBS)
3262 AC_CHECK_LIB(Xt, XtFree, [ XT_LIBS="-lXt"], [
3263 unset ac_cv_lib_Xt_XtFree
3264 AC_CHECK_LIB(ICE, IceFlush, [XT_LIBS="-lICE $XT_LIBS"],, $XT_LIBS $XLIBS)
3265 AC_CHECK_LIB(SM, SmcCloseConnection, [XT_LIBS="-lSM $XT_LIBS"],, $XT_LIBS $XLIBS)
3266 AC_CHECK_LIB(Xt, XtFree, [ XT_LIBS="-lXt $XT_LIBS"],
3267 [MISSING_X="$MISSING_X -lXt"], $X_PRE_LIBS $XT_LIBS $XLIBS)
3270 # AIX needs the motif library linked before libXt to prevent
3271 # crashes in plugins linked against Motif - Bug #98892
3272 case "${target_os}" in
3274 XT_LIBS="-lXm $XT_LIBS"
3278 dnl ========================================================
3279 dnl = Check for XShm
3280 dnl ========================================================
3281 AC_CHECK_LIB(Xext, XShmCreateImage, _HAVE_XSHM_XEXT=1,,
3283 AC_CHECK_HEADER(X11/extensions/XShm.h)
3284 if test "$ac_cv_header_X11_extensions_XShm_h" = "yes" &&
3285 test -n "$_HAVE_XSHM_XEXT"; then
3286 AC_DEFINE(HAVE_XSHM)
3289 dnl ========================================================
3291 dnl ========================================================
3292 AC_CHECK_LIB(XIE, XieFloGeometry, [MOZ_XIE_LIBS="-lXIE"],,
3294 AC_CHECK_HEADER(X11/extensions/XIElib.h)
3296 if test "$MOZ_XIE_LIBS"; then
3297 dnl ====================================================
3298 dnl = If XIE is present and is desired, turn it on
3299 dnl ====================================================
3309 LDFLAGS="$_SAVE_LDFLAGS"
3311 dnl ========================================================
3312 dnl = Check for freetype2 and its functionality
3313 dnl ========================================================
3314 AC_CHECK_FT2(6.1.0, [_HAVE_FREETYPE2=1], [_HAVE_FREETYPE2=])
3316 if test "$_HAVE_FREETYPE2"; then
3318 _SAVE_CFLAGS="$CFLAGS"
3319 LIBS="$LIBS $FT2_LIBS"
3320 CFLAGS="$CFLAGS $FT2_CFLAGS"
3322 AC_CACHE_CHECK(for FT_Bitmap_Size.y_ppem,
3323 ac_cv_member_FT_Bitmap_Size_y_ppem,
3324 [AC_TRY_COMPILE([#include <ft2build.h>
3325 #include FT_FREETYPE_H],
3327 if (sizeof s.y_ppem) return 0;
3329 ac_cv_member_FT_Bitmap_Size_y_ppem=yes,
3330 ac_cv_member_FT_Bitmap_Size_y_ppem=no)])
3331 if test "$ac_cv_member_FT_Bitmap_Size_y_ppem" = yes; then
3332 HAVE_FT_BITMAP_SIZE_Y_PPEM=1
3334 HAVE_FT_BITMAP_SIZE_Y_PPEM=0
3336 AC_DEFINE_UNQUOTED(HAVE_FT_BITMAP_SIZE_Y_PPEM,
3337 $HAVE_FT_BITMAP_SIZE_Y_PPEM,
3338 [FT_Bitmap_Size structure includes y_ppem field])
3340 AC_CHECK_FUNCS(FT_GlyphSlot_Embolden FT_Load_Sfnt_Table FT_Select_Size)
3343 CFLAGS="$_SAVE_CFLAGS"
3354 AC_MSG_CHECKING(for ARM SIMD support in compiler)
3356 [asm("uqadd8 r1, r1, r2");],
3357 result="yes", result="no")
3358 AC_MSG_RESULT("$result")
3359 if test "$result" = "yes"; then
3360 AC_DEFINE(HAVE_ARM_SIMD)
3363 AC_SUBST(HAVE_ARM_SIMD)
3365 AC_MSG_CHECKING(for ARM NEON support in compiler)
3366 _SAVE_CFLAGS="$CFLAGS"
3367 if test "$GNU_CC"; then
3368 # gcc needs -mfpu=neon to recognize NEON instructions
3369 CFLAGS="$CFLAGS -mfpu=neon"
3372 [asm("vadd.i8 d0, d0, d0");],
3373 result="yes", result="no")
3374 AC_MSG_RESULT("$result")
3375 if test "$result" = "yes"; then
3376 AC_DEFINE(HAVE_ARM_NEON)
3379 CFLAGS="$_SAVE_CFLAGS"
3380 AC_SUBST(HAVE_ARM_NEON)
3382 dnl ========================================================
3383 dnl = pthread support
3384 dnl = Start by checking whether the system support pthreads
3385 dnl ========================================================
3386 case "$target_os" in
3391 MOZ_CHECK_PTHREADS(pthreads,
3392 USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lpthreads",
3393 MOZ_CHECK_PTHREADS(pthread,
3394 USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lpthread",
3395 MOZ_CHECK_PTHREADS(c_r,
3396 USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lc_r",
3397 MOZ_CHECK_PTHREADS(c,
3406 dnl ========================================================
3407 dnl Check the command line for --with-pthreads
3408 dnl ========================================================
3409 MOZ_ARG_WITH_BOOL(pthreads,
3410 [ --with-pthreads Force use of system pthread library with NSPR ],
3411 [ if test "$USE_PTHREADS"x = x; then
3412 AC_MSG_ERROR([ --with-pthreads specified for a system without pthread support ]);
3418 dnl ========================================================
3419 dnl Do the platform specific pthread hackery
3420 dnl ========================================================
3421 if test "$USE_PTHREADS"x != x
3424 dnl See if -pthread is supported.
3427 ac_cv_have_dash_pthread=no
3428 AC_MSG_CHECKING(whether ${CC-cc} accepts -pthread)
3429 echo 'int main() { return 0; }' | cat > conftest.c
3430 ${CC-cc} -pthread -o conftest conftest.c > conftest.out 2>&1
3431 if test $? -eq 0; then
3432 if test -z "`egrep -i '(unrecognize|unknown)' conftest.out | grep pthread`" && test -z "`egrep -i '(error|incorrect)' conftest.out`" ; then
3433 ac_cv_have_dash_pthread=yes
3434 case "$target_os" in
3436 # Freebsd doesn't use -pthread for compiles, it uses them for linking
3439 CFLAGS="$CFLAGS -pthread"
3440 CXXFLAGS="$CXXFLAGS -pthread"
3446 AC_MSG_RESULT($ac_cv_have_dash_pthread)
3449 dnl See if -pthreads is supported.
3451 ac_cv_have_dash_pthreads=no
3452 if test "$ac_cv_have_dash_pthread" = "no"; then
3453 AC_MSG_CHECKING(whether ${CC-cc} accepts -pthreads)
3454 echo 'int main() { return 0; }' | cat > conftest.c
3455 ${CC-cc} -pthreads -o conftest conftest.c > conftest.out 2>&1
3456 if test $? -eq 0; then
3457 if test -z "`egrep -i '(unrecognize|unknown)' conftest.out | grep pthreads`" && test -z "`egrep -i '(error|incorrect)' conftest.out`" ; then
3458 ac_cv_have_dash_pthreads=yes
3459 CFLAGS="$CFLAGS -pthreads"
3460 CXXFLAGS="$CXXFLAGS -pthreads"
3464 AC_MSG_RESULT($ac_cv_have_dash_pthreads)
3469 AC_DEFINE(_REENTRANT)
3470 AC_DEFINE(_THREAD_SAFE)
3471 dnl -pthread links in -lc_r, so don't specify it explicitly.
3472 if test "$ac_cv_have_dash_pthread" = "yes"; then
3473 _PTHREAD_LDFLAGS="-pthread"
3475 _PTHREAD_LDFLAGS="-lc_r"
3479 *-*-openbsd*|*-*-bsdi*)
3480 AC_DEFINE(_REENTRANT)
3481 AC_DEFINE(_THREAD_SAFE)
3482 dnl -pthread links in -lc_r, so don't specify it explicitly.
3483 if test "$ac_cv_have_dash_pthread" = "yes"; then
3484 _PTHREAD_LDFLAGS="-pthread"
3488 *-*-linux*|*-*-kfreebsd*-gnu)
3489 AC_DEFINE(_REENTRANT)
3493 AC_DEFINE(_REENTRANT)
3497 AC_DEFINE(_REENTRANT)
3501 AC_DEFINE(_REENTRANT)
3505 AC_DEFINE(_REENTRANT)
3509 AC_DEFINE(_REENTRANT)
3510 if test "$SOLARIS_SUNPRO_CC"; then
3511 CFLAGS="$CFLAGS -mt"
3512 CXXFLAGS="$CXXFLAGS -mt"
3516 LDFLAGS="${_PTHREAD_LDFLAGS} ${LDFLAGS}"
3519 dnl ========================================================
3520 dnl See if mmap sees writes
3521 dnl For cross compiling, just define it as no, which is a safe default
3522 dnl ========================================================
3523 AC_MSG_CHECKING(whether mmap() sees write()s)
3529 #include <sys/mman.h>
3530 #include <sys/types.h>
3531 #include <sys/stat.h>
3534 char fname[] = "conftest.file";
3535 char zbuff[1024]; /* Fractional page is probably worst case */
3542 fd = open(fname, O_RDWR | O_CREAT, 0660);
3545 write(fd, zbuff, sizeof(zbuff));
3546 lseek(fd, 0, SEEK_SET);
3547 map = (char*)mmap(0, sizeof(zbuff), PROT_READ, MAP_SHARED, fd, 0);
3548 if(map==(char*)-1) return 2;
3549 for(i=0; fname[i]; i++) {
3550 int rc = write(fd, &fname[i], 1);
3551 if(map[i]!=fname[i]) return 4;
3558 AC_TRY_RUN($mmap_test_prog , result="yes", result="no", result="yes")
3560 AC_MSG_RESULT("$result")
3562 if test "$result" = "no"; then
3563 AC_DEFINE(MMAP_MISSES_WRITES)
3567 dnl Checks for library functions.
3568 dnl ========================================================
3569 AC_PROG_GCC_TRADITIONAL
3571 AC_CHECK_FUNCS(random strerror lchown fchmod snprintf statvfs memmove rint stat64 lstat64 truncate64 statvfs64 setbuf isatty)
3572 AC_CHECK_FUNCS(flockfile getpagesize)
3573 AC_CHECK_FUNCS(localtime_r strtok_r)
3575 dnl check for wcrtomb/mbrtowc
3576 dnl =======================================================================
3577 if test -z "$MACOS_DEPLOYMENT_TARGET" || test "$MACOS_DEPLOYMENT_TARGET" -ge "100300"; then
3580 AC_CACHE_CHECK(for wcrtomb,
3582 [AC_TRY_LINK([#include <wchar.h>],
3583 [mbstate_t ps={0};wcrtomb(0,'f',&ps);],
3584 ac_cv_have_wcrtomb="yes",
3585 ac_cv_have_wcrtomb="no")])
3586 if test "$ac_cv_have_wcrtomb" = "yes"; then
3587 AC_DEFINE(HAVE_WCRTOMB)
3589 AC_CACHE_CHECK(for mbrtowc,
3591 [AC_TRY_LINK([#include <wchar.h>],
3592 [mbstate_t ps={0};mbrtowc(0,0,0,&ps);],
3593 ac_cv_have_mbrtowc="yes",
3594 ac_cv_have_mbrtowc="no")])
3595 if test "$ac_cv_have_mbrtowc" = "yes"; then
3596 AC_DEFINE(HAVE_MBRTOWC)
3603 ac_cv_func_res_ninit,
3606 #define _BSD_SOURCE 1
3610 [int foo = res_ninit(&_res);],
3611 [ac_cv_func_res_ninit=yes],
3612 [ac_cv_func_res_ninit=no])
3615 if test "$ac_cv_func_res_ninit" = "yes"; then
3616 AC_DEFINE(HAVE_RES_NINIT)
3617 dnl must add the link line we do something as foolish as this... dougt
3619 dnl AC_CHECK_LIB(bind, res_ninit, AC_DEFINE(HAVE_RES_NINIT),
3620 dnl AC_CHECK_LIB(resolv, res_ninit, AC_DEFINE(HAVE_RES_NINIT)))
3625 [for gnu_get_libc_version()],
3626 ac_cv_func_gnu_get_libc_version,
3628 #ifdef HAVE_GNU_LIBC_VERSION_H
3629 #include <gnu/libc-version.h>
3632 [const char *glibc_version = gnu_get_libc_version();],
3633 [ac_cv_func_gnu_get_libc_version=yes],
3634 [ac_cv_func_gnu_get_libc_version=no]
3638 if test "$ac_cv_func_gnu_get_libc_version" = "yes"; then
3639 AC_DEFINE(HAVE_GNU_GET_LIBC_VERSION)
3643 os2*|msvc*|mks*|cygwin*|mingw*|darwin*|wince*|beos*)
3647 AC_CHECK_LIB(c, iconv, [_ICONV_LIBS="$_ICONV_LIBS"],
3648 AC_CHECK_LIB(iconv, iconv, [_ICONV_LIBS="$_ICONV_LIBS -liconv"],
3649 AC_CHECK_LIB(iconv, libiconv, [_ICONV_LIBS="$_ICONV_LIBS -liconv"])))
3651 LIBS="$LIBS $_ICONV_LIBS"
3660 iconv_t h = iconv_open("", "");
3661 iconv(h, NULL, NULL, NULL, NULL);
3664 [ac_cv_func_iconv=yes],
3665 [ac_cv_func_iconv=no]
3668 if test "$ac_cv_func_iconv" = "yes"; then
3669 AC_DEFINE(HAVE_ICONV)
3670 DYNAMIC_XPCOM_LIBS="$DYNAMIC_XPCOM_LIBS $_ICONV_LIBS"
3671 LIBXUL_LIBS="$LIBXUL_LIBS $_ICONV_LIBS"
3672 LIBICONV="$_ICONV_LIBS"
3674 [for iconv() with const input],
3675 ac_cv_func_const_iconv,
3681 const char *input = "testing";
3682 iconv_t h = iconv_open("", "");
3683 iconv(h, &input, NULL, NULL, NULL);
3686 [ac_cv_func_const_iconv=yes],
3687 [ac_cv_func_const_iconv=no]
3690 if test "$ac_cv_func_const_iconv" = "yes"; then
3691 AC_DEFINE(HAVE_ICONV_WITH_CONST_INPUT)
3703 dnl **********************
3704 dnl *** va_copy checks ***
3705 dnl **********************
3706 dnl we currently check for all three va_copy possibilities, so we get
3707 dnl all results in config.log for bug reports.
3708 AC_MSG_CHECKING(for an implementation of va_copy())
3709 AC_CACHE_VAL(ac_cv_va_copy,[
3712 void f (int i, ...) {
3713 va_list args1, args2;
3714 va_start (args1, i);
3715 va_copy (args2, args1);
3716 if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
3718 va_end (args1); va_end (args2);
3720 int main() { f (0, 42); return 0; }],
3726 AC_MSG_RESULT($ac_cv_va_copy)
3727 AC_MSG_CHECKING(for an implementation of __va_copy())
3728 AC_CACHE_VAL(ac_cv___va_copy,[
3731 void f (int i, ...) {
3732 va_list args1, args2;
3733 va_start (args1, i);
3734 __va_copy (args2, args1);
3735 if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
3737 va_end (args1); va_end (args2);
3739 int main() { f (0, 42); return 0; }],
3740 ac_cv___va_copy=yes,
3745 AC_MSG_RESULT($ac_cv___va_copy)
3746 AC_MSG_CHECKING(whether va_lists can be copied by value)
3747 AC_CACHE_VAL(ac_cv_va_val_copy,[
3750 void f (int i, ...) {
3751 va_list args1, args2;
3752 va_start (args1, i);
3754 if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
3756 va_end (args1); va_end (args2);
3758 int main() { f (0, 42); return 0; }],
3759 ac_cv_va_val_copy=yes,
3760 ac_cv_va_val_copy=no,
3761 ac_cv_va_val_copy=yes
3764 if test "x$ac_cv_va_copy" = "xyes"; then
3765 AC_DEFINE(VA_COPY, va_copy)
3766 AC_DEFINE(HAVE_VA_COPY)
3767 elif test "x$ac_cv___va_copy" = "xyes"; then
3768 AC_DEFINE(VA_COPY, __va_copy)
3769 AC_DEFINE(HAVE_VA_COPY)
3772 if test "x$ac_cv_va_val_copy" = "xno"; then
3773 AC_DEFINE(HAVE_VA_LIST_AS_ARRAY)
3775 AC_MSG_RESULT($ac_cv_va_val_copy)
3777 dnl Check for dll-challenged libc's.
3778 dnl This check is apparently only needed for Linux.
3781 dnl ===================================================================
3784 rm -rf conftest* _conftest
3786 cat >> conftest.C <<\EOF
3791 void __dump_link_map(void) {
3792 struct link_map *map = _dl_loaded;
3793 while (NULL != map) {printf("0x%08x %s\n", map->l_addr, map->l_name); map = map->l_next;}
3796 dlopen("./conftest1.so",RTLD_LAZY);
3797 dlopen("./../_conftest/conftest1.so",RTLD_LAZY);
3798 dlopen("CURDIR/_conftest/conftest1.so",RTLD_LAZY);
3799 dlopen("CURDIR/_conftest/../_conftest/conftest1.so",RTLD_LAZY);
3803 /* _dl_loaded isn't defined, so this should be either a libc5 (glibc1) system, or a glibc2 system that doesn't have the multiple load bug (i.e., RH6.0).*/
3804 int main() { printf("./conftest1.so\n"); }
3808 $PERL -p -i -e "s/CURDIR/\$ENV{_curdir}/g;" conftest.C
3810 cat >> conftest1.C <<\EOF
3812 void foo(void) {printf("foo in dll called\n");}
3814 ${CXX-g++} -fPIC -c -g conftest1.C
3815 ${CXX-g++} -shared -Wl,-h -Wl,conftest1.so -o conftest1.so conftest1.o
3816 ${CXX-g++} -g conftest.C -o conftest -ldl
3817 cp -f conftest1.so conftest _conftest
3819 if test `./conftest | grep conftest1.so | wc -l` -gt 1
3822 echo "*** Your libc has a bug that can result in loading the same dynamic"
3823 echo "*** library multiple times. This bug is known to be fixed in glibc-2.0.7-32"
3824 echo "*** or later. However, if you choose not to upgrade, the only effect"
3825 echo "*** will be excessive memory usage at runtime."
3829 rm -rf conftest* _conftest
3830 dnl ===================================================================
3834 dnl ===================================================================
3835 dnl ========================================================
3836 dnl By default, turn rtti and exceptions off on g++/egcs
3837 dnl ========================================================
3838 if test "$GNU_CXX"; then
3840 AC_MSG_CHECKING(for C++ exceptions flag)
3842 dnl They changed -f[no-]handle-exceptions to -f[no-]exceptions in g++ 2.8
3843 AC_CACHE_VAL(ac_cv_cxx_exceptions_flags,
3844 [echo "int main() { return 0; }" | cat > conftest.C
3846 ${CXX-g++} ${CXXFLAGS} -c -fno-handle-exceptions conftest.C > conftest.out 2>&1
3848 if egrep "warning.*renamed" conftest.out >/dev/null; then
3849 ac_cv_cxx_exceptions_flags=${_COMPILER_PREFIX}-fno-exceptions
3851 ac_cv_cxx_exceptions_flags=${_COMPILER_PREFIX}-fno-handle-exceptions
3856 AC_MSG_RESULT($ac_cv_cxx_exceptions_flags)
3857 _MOZ_EXCEPTIONS_FLAGS_OFF=$ac_cv_cxx_exceptions_flags
3858 _MOZ_EXCEPTIONS_FLAGS_ON=`echo $ac_cv_cxx_exceptions_flags | sed 's|no-||'`
3861 dnl ========================================================
3862 dnl Put your C++ language/feature checks below
3863 dnl ========================================================
3867 if test "$GNU_CC"; then
3868 AC_CACHE_CHECK(for gcc 3.0 ABI,
3869 ac_cv_gcc_three_abi,
3872 #if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */
3878 ac_cv_gcc_three_abi="yes",
3879 ac_cv_gcc_three_abi="no")])
3880 if test "$ac_cv_gcc_three_abi" = "yes"; then
3881 TARGET_COMPILER_ABI="${TARGET_COMPILER_ABI-gcc3}"
3884 TARGET_COMPILER_ABI="${TARGET_COMPILER_ABI-gcc2}"
3887 AC_SUBST(HAVE_GCC3_ABI)
3890 AC_CACHE_CHECK(for C++ \"explicit\" keyword,
3892 [AC_TRY_COMPILE(class X {
3893 public: explicit X(int i) : i_(i) {}
3897 ac_cv_cpp_explicit=yes,
3898 ac_cv_cpp_explicit=no)])
3899 if test "$ac_cv_cpp_explicit" = yes ; then
3900 AC_DEFINE(HAVE_CPP_EXPLICIT)
3903 AC_CACHE_CHECK(for C++ \"typename\" keyword,
3905 [AC_TRY_COMPILE(class param {
3907 typedef unsigned long num_type;
3910 template <class T> class tplt {
3912 typedef typename T::num_type t_num_type;
3913 t_num_type foo(typename T::num_type num) {
3919 ac_cv_cpp_typename=yes,
3920 ac_cv_cpp_typename=no)])
3921 if test "$ac_cv_cpp_typename" = yes ; then
3922 AC_DEFINE(HAVE_CPP_TYPENAME)
3925 dnl Check for support of modern template specialization syntax
3926 dnl Test code and requirement from scc@netscape.com.
3927 dnl Autoconf cut-and-paste job by waterson@netscape.com
3928 AC_CACHE_CHECK(for modern C++ template specialization syntax support,
3929 ac_cv_cpp_modern_specialize_template_syntax,
3930 [AC_TRY_COMPILE(template <class T> struct X { int a; };
3932 template <> struct X<Y> { double a; };,
3935 ac_cv_cpp_modern_specialize_template_syntax=yes,
3936 ac_cv_cpp_modern_specialize_template_syntax=no)])
3937 if test "$ac_cv_cpp_modern_specialize_template_syntax" = yes ; then
3938 AC_DEFINE(HAVE_CPP_MODERN_SPECIALIZE_TEMPLATE_SYNTAX)
3942 dnl Some compilers support only full specialization, and some don't.
3943 AC_CACHE_CHECK(whether partial template specialization works,
3944 ac_cv_cpp_partial_specialization,
3945 [AC_TRY_COMPILE(template <class T> class Foo {};
3946 template <class T> class Foo<T*> {};,
3948 ac_cv_cpp_partial_specialization=yes,
3949 ac_cv_cpp_partial_specialization=no)])
3950 if test "$ac_cv_cpp_partial_specialization" = yes ; then
3951 AC_DEFINE(HAVE_CPP_PARTIAL_SPECIALIZATION)
3954 dnl Some compilers have limited support for operators with templates;
3955 dnl specifically, it is necessary to define derived operators when a base
3956 dnl class's operator declaration should suffice.
3957 AC_CACHE_CHECK(whether operators must be re-defined for templates derived from templates,
3958 ac_cv_need_derived_template_operators,
3959 [AC_TRY_COMPILE([template <class T> class Base { };
3961 Base<T> operator+(const Base<T>& lhs, const Base<T>& rhs) { return lhs; }
3962 template <class T> class Derived : public Base<T> { };],
3963 [Derived<char> a, b;
3964 Base<char> c = a + b;
3966 ac_cv_need_derived_template_operators=no,
3967 ac_cv_need_derived_template_operators=yes)])
3968 if test "$ac_cv_need_derived_template_operators" = yes ; then
3969 AC_DEFINE(NEED_CPP_DERIVED_TEMPLATE_OPERATORS)
3973 dnl Some compilers have trouble detecting that a template class
3974 dnl that derives from another template is actually an instance
3975 dnl of the base class. This test checks for that.
3976 AC_CACHE_CHECK(whether we need to cast a derived template to pass as its base class,
3977 ac_cv_need_cpp_template_cast_to_base,
3978 [AC_TRY_COMPILE([template <class T> class Base { };
3979 template <class T> class Derived : public Base<T> { };
3980 template <class T> int foo(const Base<T>&) { return 0; }],
3981 [Derived<char> bar; return foo(bar);],
3982 ac_cv_need_cpp_template_cast_to_base=no,
3983 ac_cv_need_cpp_template_cast_to_base=yes)])
3984 if test "$ac_cv_need_cpp_template_cast_to_base" = yes ; then
3985 AC_DEFINE(NEED_CPP_TEMPLATE_CAST_TO_BASE)
3988 dnl Some compilers have trouble resolving the ambiguity between two
3989 dnl functions whose arguments differ only by cv-qualifications.
3990 AC_CACHE_CHECK(whether the compiler can resolve const ambiguities for templates,
3991 ac_cv_can_resolve_const_ambiguity,
3993 template <class T> class ptrClass {
3997 template <class T> T* a(ptrClass<T> *arg) {
4002 const T* a(const ptrClass<T> *arg) {
4008 ac_cv_can_resolve_const_ambiguity=yes,
4009 ac_cv_can_resolve_const_ambiguity=no)])
4010 if test "$ac_cv_can_resolve_const_ambiguity" = no ; then
4011 AC_DEFINE(CANT_RESOLVE_CPP_CONST_AMBIGUITY)
4015 dnl We don't do exceptions on unix. The only reason this used to be here
4016 dnl is that mozilla/xpcom/tests/TestCOMPtr.cpp has a test which uses
4017 dnl exceptions. But, we turn exceptions off by default and this test breaks.
4018 dnl So im commenting this out until someone writes some artificial
4019 dnl intelligence to detect not only if the compiler has exceptions, but if
4020 dnl they are enabled as well.
4022 dnl AC_CACHE_CHECK(for C++ \"exceptions\",
4023 dnl ac_cv_cpp_exceptions,
4024 dnl [AC_TRY_COMPILE(class X { public: X() {} };
4025 dnl static void F() { throw X(); },
4026 dnl try { F(); } catch(X & e) { },
4027 dnl ac_cv_cpp_exceptions=yes,
4028 dnl ac_cv_cpp_exceptions=no)])
4029 dnl if test $ac_cv_cpp_exceptions = yes ; then
4030 dnl AC_DEFINE(HAVE_CPP_EXCEPTIONS)
4033 dnl Some compilers have marginal |using| support; for example, gcc-2.7.2.3
4034 dnl supports it well enough to allow us to use it to change access, but not
4035 dnl to resolve ambiguity. The next two tests determine how well the |using|
4036 dnl keyword is supported.
4038 dnl Check to see if we can change access with |using|. Test both a
4039 dnl legal and an illegal example.
4040 AC_CACHE_CHECK(whether the C++ \"using\" keyword can change access,
4041 ac_cv_cpp_access_changing_using2,
4043 class A { protected: int foo() { return 0; } };
4044 class B : public A { public: using A::foo; };,
4045 B b; return b.foo();,
4047 class A { public: int foo() { return 1; } };
4048 class B : public A { private: using A::foo; };,
4049 B b; return b.foo();,
4050 ac_cv_cpp_access_changing_using2=no,
4051 ac_cv_cpp_access_changing_using2=yes)],
4052 ac_cv_cpp_access_changing_using2=no)])
4053 if test "$ac_cv_cpp_access_changing_using2" = yes ; then
4054 AC_DEFINE(HAVE_CPP_ACCESS_CHANGING_USING)
4057 dnl Check to see if we can resolve ambiguity with |using|.
4058 AC_CACHE_CHECK(whether the C++ \"using\" keyword resolves ambiguity,
4059 ac_cv_cpp_ambiguity_resolving_using,
4060 [AC_TRY_COMPILE(class X {
4061 public: int go(const X&) {return 3;}
4062 int jo(const X&) {return 3;}
4064 class Y : public X {
4065 public: int go(int) {return 2;}
4066 int jo(int) {return 2;}
4068 private: using X::go;
4071 ac_cv_cpp_ambiguity_resolving_using=yes,
4072 ac_cv_cpp_ambiguity_resolving_using=no)])
4073 if test "$ac_cv_cpp_ambiguity_resolving_using" = yes ; then
4074 AC_DEFINE(HAVE_CPP_AMBIGUITY_RESOLVING_USING)
4077 dnl Check to see if the |std| namespace is supported. If so, we'll want
4078 dnl to qualify any standard library calls with "std::" to ensure that
4079 dnl those functions can be resolved.
4080 AC_CACHE_CHECK(for \"std::\" namespace,
4081 ac_cv_cpp_namespace_std,
4082 [AC_TRY_COMPILE([#include <algorithm>],
4083 [return std::min(0, 1);],
4084 ac_cv_cpp_namespace_std=yes,
4085 ac_cv_cpp_namespace_std=no)])
4086 if test "$ac_cv_cpp_namespace_std" = yes ; then
4087 AC_DEFINE(HAVE_CPP_NAMESPACE_STD)
4090 dnl Older compilers are overly ambitious with respect to using the standard
4091 dnl template library's |operator!=()| when |operator==()| is defined. In
4092 dnl which case, defining |operator!=()| in addition to |operator==()| causes
4093 dnl ambiguity at compile-time. This test checks for that case.
4094 AC_CACHE_CHECK(whether standard template operator!=() is ambiguous,
4095 ac_cv_cpp_unambiguous_std_notequal,
4096 [AC_TRY_COMPILE([#include <algorithm>
4098 int operator==(const T1&, const T1&) { return 0; }
4099 int operator!=(const T1&, const T1&) { return 0; }],
4100 [T1 a,b; return a != b;],
4101 ac_cv_cpp_unambiguous_std_notequal=unambiguous,
4102 ac_cv_cpp_unambiguous_std_notequal=ambiguous)])
4103 if test "$ac_cv_cpp_unambiguous_std_notequal" = unambiguous ; then
4104 AC_DEFINE(HAVE_CPP_UNAMBIGUOUS_STD_NOTEQUAL)
4108 AC_CACHE_CHECK(for C++ reinterpret_cast,
4109 ac_cv_cpp_reinterpret_cast,
4110 [AC_TRY_COMPILE(struct X { int i; };
4111 struct Y { int i; };,
4112 X x; X*const z = &x;Y*y = reinterpret_cast<Y*>(z);,
4113 ac_cv_cpp_reinterpret_cast=yes,
4114 ac_cv_cpp_reinterpret_cast=no)])
4115 if test "$ac_cv_cpp_reinterpret_cast" = yes ; then
4116 AC_DEFINE(HAVE_CPP_NEW_CASTS)
4119 dnl See if a dynamic_cast to void* gives the most derived object.
4120 AC_CACHE_CHECK(for C++ dynamic_cast to void*,
4121 ac_cv_cpp_dynamic_cast_void_ptr,
4122 [AC_TRY_RUN([class X { int i; public: virtual ~X() { } };
4123 class Y { int j; public: virtual ~Y() { } };
4124 class Z : public X, public Y { int k; };
4130 return !((((void*)&mdo != (void*)subx) &&
4131 ((void*)&mdo == dynamic_cast<void*>(subx))) ||
4132 (((void*)&mdo != (void*)suby) &&
4133 ((void*)&mdo == dynamic_cast<void*>(suby))));
4135 ac_cv_cpp_dynamic_cast_void_ptr=yes,
4136 ac_cv_cpp_dynamic_cast_void_ptr=no,
4137 ac_cv_cpp_dynamic_cast_void_ptr=no)])
4138 if test "$ac_cv_cpp_dynamic_cast_void_ptr" = yes ; then
4139 AC_DEFINE(HAVE_CPP_DYNAMIC_CAST_TO_VOID_PTR)
4143 dnl note that this one is reversed - if the test fails, then
4144 dnl we require implementations of unused virtual methods. Which
4145 dnl really blows because it means we'll have useless vtable
4147 AC_CACHE_CHECK(whether C++ requires implementation of unused virtual methods,
4148 ac_cv_cpp_unused_required,
4149 [AC_TRY_LINK(class X {private: virtual void never_called();};,
4151 ac_cv_cpp_unused_required=no,
4152 ac_cv_cpp_unused_required=yes)])
4153 if test "$ac_cv_cpp_unused_required" = yes ; then
4154 AC_DEFINE(NEED_CPP_UNUSED_IMPLEMENTATIONS)
4158 dnl Some compilers have trouble comparing a constant reference to a templatized
4159 dnl class to zero, and require an explicit operator==() to be defined that takes
4160 dnl an int. This test separates the strong from the weak.
4162 AC_CACHE_CHECK(for trouble comparing to zero near std::operator!=(),
4163 ac_cv_trouble_comparing_to_zero,
4164 [AC_TRY_COMPILE([#include <algorithm>
4165 template <class T> class Foo {};
4167 template <class T> int operator==(const T2*, const T&) { return 0; }
4168 template <class T> int operator!=(const T2*, const T&) { return 0; }],
4169 [Foo<int> f; return (0 != f);],
4170 ac_cv_trouble_comparing_to_zero=no,
4171 ac_cv_trouble_comparing_to_zero=yes)])
4172 if test "$ac_cv_trouble_comparing_to_zero" = yes ; then
4173 AC_DEFINE(HAVE_CPP_TROUBLE_COMPARING_TO_ZERO)
4178 dnl End of C++ language/feature checks
4181 dnl ========================================================
4182 dnl = Internationalization checks
4183 dnl ========================================================
4185 dnl Internationalization and Locale support is different
4186 dnl on various UNIX platforms. Checks for specific i18n
4187 dnl features go here.
4189 dnl check for LC_MESSAGES
4190 AC_CACHE_CHECK(for LC_MESSAGES,
4191 ac_cv_i18n_lc_messages,
4192 [AC_TRY_COMPILE([#include <locale.h>],
4193 [int category = LC_MESSAGES;],
4194 ac_cv_i18n_lc_messages=yes,
4195 ac_cv_i18n_lc_messages=no)])
4196 if test "$ac_cv_i18n_lc_messages" = yes; then
4197 AC_DEFINE(HAVE_I18N_LC_MESSAGES)
4200 fi # SKIP_COMPILER_CHECKS
4203 if test -n "${CPU_ARCH}" -a -n "${TARGET_COMPILER_ABI}"; then
4204 TARGET_XPCOM_ABI="${CPU_ARCH}-${TARGET_COMPILER_ABI}"
4207 dnl Mozilla specific options
4208 dnl ========================================================
4209 dnl The macros used for command line options
4210 dnl are defined in build/autoconf/altoptions.m4.
4213 dnl ========================================================
4215 dnl = Check for external package dependencies
4217 dnl ========================================================
4218 MOZ_ARG_HEADER(External Packages)
4222 MOZ_ARG_WITH_STRING(libxul-sdk,
4223 [ --with-libxul-sdk=PFX Use the libXUL SDK at <PFX>],
4224 LIBXUL_SDK_DIR=$withval)
4226 if test "$LIBXUL_SDK_DIR" = "yes"; then
4227 AC_MSG_ERROR([--with-libxul-sdk must specify a path])
4228 elif test -n "$LIBXUL_SDK_DIR" -a "$LIBXUL_SDK_DIR" != "no"; then
4229 LIBXUL_SDK=`cd "$LIBXUL_SDK_DIR" && pwd`
4231 if test ! -f "$LIBXUL_SDK/include/xpcom-config.h"; then
4232 AC_MSG_ERROR([$LIBXUL_SDK/include/xpcom-config.h doesn't exist])
4237 AC_SUBST(LIBXUL_SDK)
4239 if test -n "$LIBXUL_SDK"; then
4240 LIBXUL_DIST="$LIBXUL_SDK"
4242 LIBXUL_DIST="$MOZ_BUILD_ROOT/dist"
4244 AC_SUBST(LIBXUL_DIST)
4248 MOZ_ARG_WITH_BOOL(system-libxul,
4249 [ --with-system-libxul Use system installed libxul SDK],
4252 if test -n "$SYSTEM_LIBXUL" && test -z "$MOZ_ENABLE_LIBXUL"; then
4253 AC_MSG_ERROR([--with-system-libxul needs --with-libxul-sdk])
4256 dnl ========================================================
4257 dnl = If NSPR was not detected in the system,
4258 dnl = use the one in the source tree (mozilla/nsprpub)
4259 dnl ========================================================
4260 MOZ_ARG_WITH_BOOL(system-nspr,
4261 [ --with-system-nspr Use system installed NSPR],
4262 _USE_SYSTEM_NSPR=1 )
4264 if test -n "$_USE_SYSTEM_NSPR"; then
4265 AM_PATH_NSPR(4.8.0, [MOZ_NATIVE_NSPR=1], [MOZ_NATIVE_NSPR=])
4268 if test -n "$MOZ_NATIVE_NSPR"; then
4269 _SAVE_CFLAGS=$CFLAGS
4270 CFLAGS="$CFLAGS $NSPR_CFLAGS"
4271 AC_TRY_COMPILE([#include "prlog.h"],
4272 [#ifndef PR_STATIC_ASSERT
4273 #error PR_STATIC_ASSERT not defined
4275 [MOZ_NATIVE_NSPR=1],
4276 AC_MSG_ERROR([system NSPR does not support PR_STATIC_ASSERT]))
4277 CFLAGS=$_SAVE_CFLAGS
4279 if test "$OS_ARCH" = "WINCE"; then
4280 NSPR_CFLAGS="-I${LIBXUL_DIST}/include/nspr"
4281 NSPR_LIBS="${LIBXUL_DIST}/lib/nspr${NSPR_VERSION}.lib ${LIBXUL_DIST}/lib/plc${NSPR_VERSION}.lib ${LIBXUL_DIST}/lib/plds${NSPR_VERSION}.lib "
4282 elif test "$OS_ARCH" = "WINNT"; then
4283 NSPR_CFLAGS="-I${LIBXUL_DIST}/include/nspr"
4284 if test -n "$GNU_CC"; then
4285 NSPR_LIBS="-L${LIBXUL_DIST}/lib -lnspr${NSPR_VERSION} -lplc${NSPR_VERSION} -lplds${NSPR_VERSION}"
4287 NSPR_LIBS="${LIBXUL_DIST}/lib/nspr${NSPR_VERSION}.lib ${LIBXUL_DIST}/lib/plc${NSPR_VERSION}.lib ${LIBXUL_DIST}/lib/plds${NSPR_VERSION}.lib "
4290 NSPR_CFLAGS='`$(LIBXUL_DIST)/bin/nspr-config --prefix='${LIBXUL_DIST}' --includedir='${LIBXUL_DIST}'/include/nspr --cflags`'
4291 NSPR_LIBS='`$(LIBXUL_DIST)/bin/nspr-config --prefix='${LIBXUL_DIST}' --libdir='${LIBXUL_DIST}'/lib --libs`'
4295 dnl ========================================================
4296 dnl = If NSS was not detected in the system,
4297 dnl = use the one in the source tree (mozilla/security/nss)
4298 dnl ========================================================
4300 MOZ_ARG_WITH_BOOL(system-nss,
4301 [ --with-system-nss Use system installed NSS],
4304 if test -n "$_USE_SYSTEM_NSS"; then
4305 AM_PATH_NSS(3.12.0, [MOZ_NATIVE_NSS=1], [MOZ_NATIVE_NSS=])
4308 if test -n "$MOZ_NATIVE_NSS"; then
4309 NSS_LIBS="$NSS_LIBS -lcrmf"
4311 NSS_CFLAGS='-I$(LIBXUL_DIST)/include/nss'
4313 \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)crmf.\$(LIB_SUFFIX) \
4314 \$(LIBXUL_DIST)/lib/\$(DLL_PREFIX)smime$NSS_VERSION\$(DLL_SUFFIX) \
4315 \$(LIBXUL_DIST)/lib/\$(DLL_PREFIX)ssl$NSS_VERSION\$(DLL_SUFFIX) \
4316 \$(LIBXUL_DIST)/lib/\$(DLL_PREFIX)nss$NSS_VERSION\$(DLL_SUFFIX) \
4317 \$(LIBXUL_DIST)/lib/\$(DLL_PREFIX)nssutil$NSS_VERSION\$(DLL_SUFFIX)"
4319 if test -z "$GNU_CC" && test "$OS_ARCH" = "WINNT" -o "$OS_ARCH" = "WINCE" -o "$OS_ARCH" = "OS2"; then
4321 \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)crmf.\$(LIB_SUFFIX) \
4322 \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)smime$NSS_VERSION.\$(IMPORT_LIB_SUFFIX) \
4323 \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)ssl$NSS_VERSION.\$(IMPORT_LIB_SUFFIX) \
4324 \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)nss$NSS_VERSION.\$(IMPORT_LIB_SUFFIX) \
4325 \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)nssutil$NSS_VERSION.\$(IMPORT_LIB_SUFFIX)"
4327 NSS_LIBS='$(LIBS_DIR)'" -lcrmf -lsmime$NSS_VERSION -lssl$NSS_VERSION -lnss$NSS_VERSION -lnssutil$NSS_VERSION"
4331 if test -z "$SKIP_LIBRARY_CHECKS"; then
4332 dnl system JPEG support
4333 dnl ========================================================
4334 MOZ_ARG_WITH_STRING(system-jpeg,
4335 [ --with-system-jpeg[=PFX]
4336 Use system libjpeg [installed at prefix PFX]],
4339 _SAVE_CFLAGS=$CFLAGS
4340 _SAVE_LDFLAGS=$LDFLAGS
4342 if test -n "${JPEG_DIR}" -a "${JPEG_DIR}" != "yes"; then
4343 CFLAGS="-I${JPEG_DIR}/include $CFLAGS"
4344 LDFLAGS="-L${JPEG_DIR}/lib $LDFLAGS"
4346 if test -z "$JPEG_DIR" -o "$JPEG_DIR" = no; then
4349 AC_CHECK_LIB(jpeg, jpeg_destroy_compress, [SYSTEM_JPEG=1 JPEG_LIBS="-ljpeg $JPEG_LIBS"], SYSTEM_JPEG=, $JPEG_LIBS)
4352 if test "$SYSTEM_JPEG" = 1; then
4353 LIBS="$JPEG_LIBS $LIBS"
4354 AC_TRY_COMPILE([ #include <stdio.h>
4355 #include <sys/types.h>
4356 #include <jpeglib.h> ],
4357 [ #if JPEG_LIB_VERSION < $MOZJPEG
4358 #error "Insufficient JPEG library version ($MOZJPEG required)."
4361 [SYSTEM_JPEG= JPEG_CFLAGS= JPEG_LIBS=])
4363 CFLAGS=$_SAVE_CFLAGS
4364 LDFLAGS=$_SAVE_LDFLAGS
4367 if test -n "${JPEG_DIR}" -a -d "${JPEG_DIR}" -a "$SYSTEM_JPEG" = 1; then
4368 JPEG_CFLAGS="-I${JPEG_DIR}/include"
4369 JPEG_LIBS="-L${JPEG_DIR}/lib ${JPEG_LIBS}"
4372 dnl system ZLIB support
4373 dnl ========================================================
4374 MOZ_ARG_WITH_STRING(system-zlib,
4375 [ --with-system-zlib[=PFX]
4376 Use system libz [installed at prefix PFX]],
4379 _SAVE_CFLAGS=$CFLAGS
4380 _SAVE_LDFLAGS=$LDFLAGS
4382 if test -n "${ZLIB_DIR}" -a "${ZLIB_DIR}" != "yes"; then
4383 CFLAGS="-I${ZLIB_DIR}/include $CFLAGS"
4384 LDFLAGS="-L${ZLIB_DIR}/lib $LDFLAGS"
4386 if test -z "$ZLIB_DIR" -o "$ZLIB_DIR" = no; then
4389 AC_CHECK_LIB(z, gzread, [SYSTEM_ZLIB=1 ZLIB_LIBS="-lz $ZLIB_LIBS"],
4390 [SYSTEM_ZLIB= ZLIB_CFLAGS= ZLIB_LIBS=], $ZLIB_LIBS)
4392 if test "$SYSTEM_ZLIB" = 1; then
4393 LIBS="$ZLIB_LIBS $LIBS"
4394 AC_TRY_COMPILE([ #include <stdio.h>
4396 #include <zlib.h> ],
4397 [ #if ZLIB_VERNUM < $MOZZLIB
4398 #error "Insufficient zlib version ($MOZZLIB required)."
4401 [SYSTEM_ZLIB= ZLIB_CFLAGS= ZLIB_LIBS=])
4403 CFLAGS=$_SAVE_CFLAGS
4404 LDFLAGS=$_SAVE_LDFLAGS
4407 if test "${ZLIB_DIR}" -a -d "${ZLIB_DIR}" -a "$SYSTEM_ZLIB" = 1; then
4408 ZLIB_CFLAGS="-I${ZLIB_DIR}/include"
4409 ZLIB_LIBS="-L${ZLIB_DIR}/lib ${ZLIB_LIBS}"
4412 dnl system BZIP2 Support
4413 dnl ========================================================
4414 MOZ_ARG_WITH_STRING(system-bz2,
4415 [ --with-system-bz2[=PFX]
4416 Use system libbz2 [installed at prefix PFX]],
4419 _SAVE_CFLAGS=$CFLAGS
4420 _SAVE_LDFLAGS=$LDFLAGS
4422 if test -n "${BZ2_DIR}" -a "${BZ2_DIR}" != "yes"; then
4423 CFLAGS="-I${BZ2_DIR}/include $CFLAGS"
4424 LDFLAGS="-L${BZ2_DIR}/lib $LDFLAGS"
4426 if test -z "$BZ2_DIR" -o "$BZ2_DIR" = no; then
4429 AC_CHECK_LIB(bz2, BZ2_bzread, [SYSTEM_BZ2=1 BZ2_LIBS="-lbz2"],
4430 [SYSTEM_BZ2= BZ2_CFLAGS= BZ2_LIBS=], $BZ2_LIBS)
4432 CFLAGS=$_SAVE_CFLAGS
4433 LDFLAGS=$_SAVE_LDFLAGS
4436 if test "${BZ2_DIR}" -a -d "${BZ2_DIR}" -a "$SYSTEM_BZ2" = 1; then
4437 BZ2_CFLAGS="-I${BZ2_DIR}/include"
4438 BZ2_LIBS="-L${BZ2_DIR}/lib ${MOZ_BZ2_LIBS}"
4441 dnl system PNG Support
4442 dnl ========================================================
4443 MOZ_ARG_WITH_STRING(system-png,
4444 [ --with-system-png[=PFX]
4445 Use system libpng [installed at prefix PFX]],
4448 _SAVE_CFLAGS=$CFLAGS
4449 _SAVE_LDFLAGS=$LDFLAGS
4451 CFLAGS="$ZLIB_CFLAGS $CFLAGS"
4452 LDFLAGS="$ZLIB_LIBS -lz $LDFLAGS"
4453 if test -n "${PNG_DIR}" -a "${PNG_DIR}" != "yes"; then
4454 CFLAGS="-I${PNG_DIR}/include $CFLAGS"
4455 LDFLAGS="-L${PNG_DIR}/lib $LDFLAGS"
4457 if test -z "$PNG_DIR" -o "$PNG_DIR" = no; then
4460 _SAVE_PNG_LIBS=$PNG_LIBS
4461 AC_CHECK_LIB(png, png_get_valid, [SYSTEM_PNG=1 PNG_LIBS="-lpng $PNG_LIBS"],
4462 AC_MSG_ERROR([--with-system-png requested but no working libpng found]),
4464 AC_CHECK_LIB(png, png_get_acTL, ,
4465 AC_MSG_ERROR([--with-system-png won't work because the system's libpng doesn't have APNG support]),
4468 if test "$SYSTEM_PNG" = 1; then
4469 LIBS="$PNG_LIBS $LIBS"
4470 AC_TRY_COMPILE([ #include <stdio.h>
4471 #include <sys/types.h>
4473 [ #if PNG_LIBPNG_VER < $MOZPNG
4474 #error "Insufficient libpng version ($MOZPNG required)."
4476 #ifndef PNG_UINT_31_MAX
4477 #error "Insufficient libpng version."
4480 AC_MSG_ERROR([--with-system-png requested but no working libpng found]))
4482 CFLAGS=$_SAVE_CFLAGS
4483 LDFLAGS=$_SAVE_LDFLAGS
4486 if test "${PNG_DIR}" -a -d "${PNG_DIR}" -a "$SYSTEM_PNG" = 1; then
4487 PNG_CFLAGS="-I${PNG_DIR}/include"
4488 PNG_LIBS="-L${PNG_DIR}/lib ${PNG_LIBS}"
4491 fi # SKIP_LIBRARY_CHECKS
4493 dnl system HunSpell Support
4494 dnl ========================================================
4495 MOZ_ARG_ENABLE_BOOL(system-hunspell,
4496 [ --enable-system-hunspell Use system hunspell (located with pkgconfig)],
4499 if test -n "$SYSTEM_HUNSPELL"; then
4500 PKG_CHECK_MODULES(MOZ_HUNSPELL, hunspell)
4503 AC_SUBST(SYSTEM_HUNSPELL)
4505 dnl ========================================================
4506 dnl Java SDK support
4507 dnl ========================================================
4509 MOZ_ARG_WITH_STRING(java-include-path,
4510 [ --with-java-include-path=dir Location of Java SDK headers],
4511 JAVA_INCLUDE_PATH=$withval)
4514 MOZ_ARG_WITH_STRING(java-bin-path,
4515 [ --with-java-bin-path=dir Location of Java binaries (java, javac, jar)],
4516 JAVA_BIN_PATH=$withval)
4518 dnl ========================================================
4519 dnl Use ARM userspace kernel helpers; tell NSPR to enable
4520 dnl their usage and use them in spidermonkey.
4521 dnl ========================================================
4522 MOZ_ARG_WITH_BOOL(arm-kuser,
4523 [ --with-arm-kuser Use kuser helpers (Linux/ARM only -- requires kernel 2.6.13 or later)],
4526 if test -n "$USE_ARM_KUSER"; then
4527 AC_DEFINE(USE_ARM_KUSER)
4530 dnl ========================================================
4534 dnl ========================================================
4536 MOZ_ARG_HEADER(Application)
4540 MOZ_ACTIVEX_SCRIPTING_SUPPORT=
4541 MOZ_BRANDING_DIRECTORY=
4542 MOZ_OFFICIAL_BRANDING=
4543 MOZ_DBGRINFO_MODULES=
4545 MOZ_IMG_DECODERS_DEFAULT="png gif jpeg bmp icon"
4546 MOZ_IMG_ENCODERS_DEFAULT="png jpeg"
4553 MOZ_AUTH_EXTENSION=1
4554 MOZ_NO_ACTIVEX_SUPPORT=1
4555 MOZ_NO_INSPECTOR_APIS=
4563 MOZ_PLAINTEXT_EDITOR_ONLY=
4565 MOZ_PREF_EXTENSIONS=1
4566 MOZ_PROFILELOCKING=1
4575 MOZ_STATIC_MAIL_BUILD=
4580 MOZ_UNIVERSALCHARDET=1
4582 MOZ_USE_NATIVE_UCONV=
4584 MOZ_XPFE_COMPONENTS=1
4586 MOZ_XSLT_STANDALONE=
4594 NECKO_PROTOCOLS_DEFAULT="about data file ftp gopher http res viewsource"
4595 NECKO_SMALL_BUFFERS=
4596 XPC_IDISPATCH_SUPPORT=
4599 case "$target_os" in
4608 case "$target_os" in
4609 msvc*|mks*|cygwin*|mingw*)
4611 if test -z "$GNU_CC"; then
4612 if test "$MOZ_WINSDK_TARGETVER" -lt "06000000"; then
4615 XPC_IDISPATCH_SUPPORT=1
4616 MOZ_NO_ACTIVEX_SUPPORT=
4618 if test -n "$NS_ENABLE_TSF"; then
4619 AC_DEFINE(NS_ENABLE_TSF)
4624 MOZ_ARG_ENABLE_STRING(application,
4625 [ --enable-application=APP
4629 content/xslt (Standalone Transformiix XSLT)
4630 netwerk (Standalone Necko)
4631 tools/update-packaging (AUS-related packaging tools)
4632 standalone (use this for standalone
4633 xpcom/xpconnect or to manually drive a build)],
4634 [ MOZ_BUILD_APP=$enableval ] )
4636 MOZ_ARG_WITH_STRING(xulrunner-stub-name,
4637 [ --with-xulrunner-stub-name=appname Create the xulrunner stub with the given name],
4638 XULRUNNER_STUB_NAME=$withval)
4640 if test -z "$XULRUNNER_STUB_NAME"; then
4641 case "$target_os" in
4643 XULRUNNER_STUB_NAME=xulrunner
4646 XULRUNNER_STUB_NAME=xulrunner-stub
4649 AC_SUBST(XULRUNNER_STUB_NAME)
4651 if test -z "$MOZ_BUILD_APP"; then
4652 AC_MSG_ERROR([--enable-application=APP was not specified and is required.])
4654 # We have a valid application only if it has a build.mk file in its top
4656 if test ! -f "${srcdir}/${MOZ_BUILD_APP}/build.mk" ; then
4657 AC_MSG_ERROR([--enable-application value not recognized (${MOZ_BUILD_APP}/build.mk does not exist).])
4661 # Allow the application to influence configure with a confvars.sh script.
4663 AC_MSG_CHECKING([if app-specific confvars.sh exists])
4664 if test -f "${srcdir}/${MOZ_BUILD_APP}/confvars.sh" ; then
4665 AC_MSG_RESULT([${srcdir}/${MOZ_BUILD_APP}/confvars.sh])
4666 . "${srcdir}/${MOZ_BUILD_APP}/confvars.sh"
4671 # Now is a good time to test for logic errors, define mismatches, etc.
4672 case "$MOZ_BUILD_APP" in
4674 if test "$LIBXUL_SDK"; then
4675 AC_MSG_ERROR([Building XULRunner --with-libxul-sdk doesn't make sense; XULRunner provides the libxul SDK.])
4680 # Special cases where we need to AC_DEFINE something. Also a holdover for apps
4681 # that haven't made a confvars.sh yet. Don't add new stuff here, use
4683 case "$MOZ_BUILD_APP" in
4685 AC_DEFINE(MOZ_PHOENIX)
4689 AC_DEFINE(MOZ_XULRUNNER)
4697 MOZ_APP_NAME=mozilla
4698 MOZ_APP_DISPLAYNAME=Mozilla
4699 MOZ_APP_VERSION=$MOZILLA_VERSION
4704 AC_SUBST(MOZ_BUILD_APP)
4705 AC_SUBST(MOZ_PHOENIX)
4706 AC_SUBST(MOZ_XULRUNNER)
4708 AC_DEFINE_UNQUOTED(MOZ_BUILD_APP,$MOZ_BUILD_APP)
4710 dnl ========================================================
4712 dnl = Toolkit Options
4714 dnl ========================================================
4715 MOZ_ARG_HEADER(Toolkit Options)
4717 dnl ========================================================
4718 dnl = Select the default toolkit
4719 dnl ========================================================
4720 MOZ_ARG_ENABLE_STRING(default-toolkit,
4721 [ --enable-default-toolkit=TK
4722 Select default toolkit
4723 Platform specific defaults:
4725 Mac OS X - cairo-cocoa
4726 Neutrino/QNX - photon
4728 Win32/WinCE - cairo-windows
4729 Gtk2 with DirectFB - cairo-gtk2-dfb
4732 [ _DEFAULT_TOOLKIT=$enableval ],
4733 [ _DEFAULT_TOOLKIT=$_PLATFORM_DEFAULT_TOOLKIT])
4735 if test "$_DEFAULT_TOOLKIT" = "photon" \
4736 -o "$_DEFAULT_TOOLKIT" = "cairo-windows" \
4737 -o "$_DEFAULT_TOOLKIT" = "cairo-gtk2" \
4738 -o "$_DEFAULT_TOOLKIT" = "cairo-gtk2-dfb" \
4739 -o "$_DEFAULT_TOOLKIT" = "cairo-gtk2-x11" \
4740 -o "$_DEFAULT_TOOLKIT" = "cairo-qt" \
4741 -o "$_DEFAULT_TOOLKIT" = "cairo-beos" \
4742 -o "$_DEFAULT_TOOLKIT" = "cairo-os2" \
4743 -o "$_DEFAULT_TOOLKIT" = "cairo-cocoa"
4745 dnl nglayout only supports building with one toolkit,
4746 dnl so ignore everything after the first comma (",").
4747 MOZ_WIDGET_TOOLKIT=`echo "$_DEFAULT_TOOLKIT" | sed -e "s/,.*$//"`
4749 AC_MSG_ERROR([You must specify a default toolkit (perhaps $_PLATFORM_DEFAULT_TOOLKIT).])
4752 AC_DEFINE_UNQUOTED(MOZ_DEFAULT_TOOLKIT,"$MOZ_WIDGET_TOOLKIT")
4754 dnl ========================================================
4755 dnl = Enable the toolkit as needed =
4756 dnl ========================================================
4758 case "$MOZ_WIDGET_TOOLKIT" in
4761 AC_DEFINE(MOZ_WIDGET_PHOTON)
4765 MOZ_WIDGET_TOOLKIT=windows
4768 cairo-gtk2|cairo-gtk2-x11)
4769 MOZ_WIDGET_TOOLKIT=gtk2
4771 MOZ_ENABLE_XREMOTE=1
4776 TK_CFLAGS='$(MOZ_GTK2_CFLAGS)'
4777 TK_LIBS='$(MOZ_GTK2_LIBS)'
4778 AC_DEFINE(MOZ_WIDGET_GTK2)
4782 MOZ_WIDGET_TOOLKIT=gtk2
4788 TK_CFLAGS='$(MOZ_GTK2_CFLAGS)'
4789 TK_LIBS='$(MOZ_GTK2_LIBS)'
4790 AC_DEFINE(MOZ_WIDGET_GTK2)
4791 if test "$no_x" != "yes"; then
4792 AC_MSG_WARN([Disabling X when DirectFB is specified.])
4798 MOZ_WIDGET_TOOLKIT=qt
4800 MOZ_ENABLE_XREMOTE=1
4807 TK_CFLAGS='$(MOZ_QT_CFLAGS)'
4808 TK_LIBS='$(MOZ_QT_LIBS)'
4809 AC_DEFINE(MOZ_WIDGET_QT)
4813 MOZ_WIDGET_TOOLKIT=beos
4814 TK_CFLAGS='$(MOZ_CAIRO_CFLAGS)'
4815 TK_LIBS='$(MOZ_CAIRO_LIBS)'
4819 MOZ_WIDGET_TOOLKIT=os2
4820 TK_CFLAGS='$(MOZ_CAIRO_CFLAGS)'
4821 TK_LIBS='$(MOZ_CAIRO_LIBS)'
4825 MOZ_WIDGET_TOOLKIT=cocoa
4826 AC_DEFINE(MOZ_WIDGET_COCOA)
4827 MOZ_USER_DIR="Mozilla"
4828 AC_DEFINE(XP_MACOSX)
4829 TK_LIBS='-framework Carbon -framework CoreAudio -framework AudioToolbox -framework AudioUnit -framework AddressBook'
4830 TK_CFLAGS="-DNO_X11"
4831 LDFLAGS="$LDFLAGS -framework Cocoa"
4832 CFLAGS="$CFLAGS $TK_CFLAGS"
4833 CXXFLAGS="$CXXFLAGS $TK_CFLAGS"
4834 LIBXUL_LIBS='$(XPCOM_FROZEN_LDOPTS) $(LIBXUL_DIST)/bin/XUL -lobjc'
4835 MOZ_FS_LAYOUT=bundle
4839 if test "$MOZ_ENABLE_XREMOTE"; then
4840 AC_DEFINE(MOZ_ENABLE_XREMOTE)
4843 if test "$COMPILE_ENVIRONMENT"; then
4844 if test "$MOZ_ENABLE_GTK2"; then
4845 if test "$MOZ_X11"; then
4846 GDK_PACKAGES=gdk-x11-2.0
4847 elif test "$MOZ_DFB"; then
4848 PKG_CHECK_MODULES(MOZ_DFB, directfb >= 1.1.0)
4849 GDK_PACKAGES=directfb
4852 PKG_CHECK_MODULES(MOZ_GTK2, gtk+-2.0 >= $GTK2_VERSION gtk+-unix-print-2.0 glib-2.0 gobject-2.0 $GDK_PACKAGES)
4855 fi # COMPILE_ENVIRONMENT
4857 AC_SUBST(MOZ_DEFAULT_TOOLKIT)
4858 AC_SUBST(MOZ_FS_LAYOUT)
4860 dnl ========================================================
4861 dnl = startup-notification support module
4862 dnl ========================================================
4864 if test "$MOZ_ENABLE_GTK2"
4866 MOZ_ENABLE_STARTUP_NOTIFICATION=
4868 MOZ_ARG_ENABLE_BOOL(startup-notification,
4869 [ --enable-startup-notification Enable startup-notification support (default: disabled) ],
4870 MOZ_ENABLE_STARTUP_NOTIFICATION=force,
4871 MOZ_ENABLE_STARTUP_NOTIFICATION=)
4872 if test "$MOZ_ENABLE_STARTUP_NOTIFICATION"
4874 PKG_CHECK_MODULES(MOZ_STARTUP_NOTIFICATION,
4875 libstartup-notification-1.0 >= $STARTUP_NOTIFICATION_VERSION,
4876 [MOZ_ENABLE_STARTUP_NOTIFICATION=1], [
4877 if test "$MOZ_ENABLE_STARTUP_NOTIFICATION" = "force"
4879 AC_MSG_ERROR([* * * Could not find startup-notification >= $STARTUP_NOTIFICATION_VERSION])
4881 MOZ_ENABLE_STARTUP_NOTIFICATION=
4885 if test "$MOZ_ENABLE_STARTUP_NOTIFICATION"; then
4886 AC_DEFINE(MOZ_ENABLE_STARTUP_NOTIFICATION)
4889 TK_LIBS="$TK_LIBS $MOZ_STARTUP_NOTIFICATION_LIBS"
4891 AC_SUBST(MOZ_ENABLE_STARTUP_NOTIFICATION)
4892 AC_SUBST(MOZ_STARTUP_NOTIFICATION_CFLAGS)
4893 AC_SUBST(MOZ_STARTUP_NOTIFICATION_LIBS)
4895 dnl ========================================================
4897 dnl ========================================================
4898 if test "$MOZ_ENABLE_QT"
4900 PKG_CHECK_MODULES(MOZ_QT, QtGui QtNetwork QtUiTools QtCore)
4901 AC_SUBST(MOZ_QT_CFLAGS)
4902 AC_SUBST(MOZ_QT_LIBS)
4904 MOZ_ARG_WITH_STRING(qtdir,
4905 [ --with-qtdir=\$dir Specify Qt directory ],
4908 if test -z "$QTDIR"; then
4911 QTINCDIR="/include/qt"
4912 if test ! -d "$QTDIR$QTINCDIR"; then
4913 QTINCDIR="/include/X11/qt"
4915 if test ! -d "$QTDIR$QTINCDIR"; then
4919 if test -x "$QTDIR/bin/moc-qt4"; then
4920 HOST_MOC="$QTDIR/bin/moc-qt4"
4922 if test -x "$QTDIR/bin/moc"; then
4923 HOST_MOC="$QTDIR/bin/moc"
4925 AC_CHECK_PROGS(HOST_MOC, moc, "")
4928 if test -z "$HOST_MOC"; then
4929 AC_MSG_ERROR([no acceptable moc preprocessor found])
4934 AC_SUBST(GTK_CONFIG)
4938 AC_SUBST(MOZ_ENABLE_GTK2)
4939 AC_SUBST(MOZ_ENABLE_PHOTON)
4940 AC_SUBST(MOZ_ENABLE_QT)
4941 AC_SUBST(MOZ_ENABLE_XREMOTE)
4942 AC_SUBST(MOZ_GTK2_CFLAGS)
4943 AC_SUBST(MOZ_GTK2_LIBS)
4944 AC_SUBST(MOZ_QT_CFLAGS)
4945 AC_SUBST(MOZ_QT_LIBS)
4952 dnl ========================================================
4954 dnl = Components & Features
4956 dnl ========================================================
4957 MOZ_ARG_HEADER(Components and Features)
4959 dnl ========================================================
4961 dnl ========================================================
4962 MOZ_ARG_ENABLE_STRING(ui-locale,
4963 [ --enable-ui-locale=ab-CD
4964 Select the user interface locale (default: en-US)],
4965 MOZ_UI_LOCALE=$enableval )
4966 AC_SUBST(MOZ_UI_LOCALE)
4968 dnl ========================================================
4969 dnl = Trademarked Branding
4970 dnl ========================================================
4971 MOZ_ARG_ENABLE_BOOL(official-branding,
4972 [ --enable-official-branding Enable Official mozilla.org Branding
4973 Do not distribute builds with
4974 --enable-official-branding unless you have
4975 permission to use trademarks per
4976 http://www.mozilla.org/foundation/trademarks/ .],
4978 if test -z "$MOZ_OFFICIAL_BRANDING_DIRECTORY"; then
4979 AC_MSG_ERROR([You must specify MOZ_OFFICIAL_BRANDING_DIRECTORY to use --enable-official-branding.])
4981 MOZ_BRANDING_DIRECTORY=${MOZ_OFFICIAL_BRANDING_DIRECTORY}
4982 MOZ_OFFICIAL_BRANDING=1
4984 ], MOZ_OFFICIAL_BRANDING=)
4986 AC_SUBST(MOZ_OFFICIAL_BRANDING)
4987 if test -n "$MOZ_OFFICIAL_BRANDING"; then
4988 AC_DEFINE(MOZ_OFFICIAL_BRANDING)
4991 MOZ_ARG_WITH_STRING(branding,
4992 [ --with-branding=dir Use branding from the specified directory.],
4993 MOZ_BRANDING_DIRECTORY=$withval)
4995 REAL_BRANDING_DIRECTORY="${MOZ_BRANDING_DIRECTORY}"
4996 if test -z "$REAL_BRANDING_DIRECTORY"; then
4997 REAL_BRANDING_DIRECTORY=${MOZ_BUILD_APP}/branding/nightly
5000 if test -f "$topsrcdir/$REAL_BRANDING_DIRECTORY/configure.sh"; then
5001 . "$topsrcdir/$REAL_BRANDING_DIRECTORY/configure.sh"
5004 AC_SUBST(MOZ_BRANDING_DIRECTORY)
5006 dnl ========================================================
5007 dnl = Distribution ID
5008 dnl ========================================================
5009 MOZ_ARG_WITH_STRING(distribution-id,
5010 [ --with-distribution-id=ID Set distribution-specific id (default=org.mozilla)],
5011 [ val=`echo $withval`
5012 MOZ_DISTRIBUTION_ID="$val"])
5014 if test -z "$MOZ_DISTRIBUTION_ID"; then
5015 MOZ_DISTRIBUTION_ID="org.mozilla"
5018 AC_DEFINE_UNQUOTED(MOZ_DISTRIBUTION_ID,"$MOZ_DISTRIBUTION_ID")
5019 AC_SUBST(MOZ_DISTRIBUTION_ID)
5022 dnl ========================================================
5023 dnl complex text support off by default
5024 dnl ========================================================
5026 MOZ_ARG_DISABLE_BOOL(pango,
5027 [ --disable-pango Disable usage of Pango ],
5032 dnl ========================================================
5034 dnl ========================================================
5035 if test "$MOZ_ENABLE_GTK2"
5039 PKG_CHECK_MODULES(_PANGOCHK, pango >= $PANGO_VERSION)
5041 if test "$MOZ_PANGO"
5043 PKG_CHECK_MODULES(MOZ_PANGO, pango >= $PANGO_VERSION pangoft2 >= $PANGO_VERSION)
5044 AC_SUBST(MOZ_PANGO_CFLAGS)
5045 AC_SUBST(MOZ_PANGO_LIBS)
5046 AC_DEFINE(MOZ_PANGO)
5048 PKG_CHECK_MODULES(MOZ_PANGO, pango >= $PANGO_VERSION pangoft2 >= $PANGO_VERSION)
5049 AC_SUBST(MOZ_PANGO_CFLAGS)
5050 AC_SUBST(MOZ_PANGO_LIBS)
5052 PKG_CHECK_MODULES(FT2, freetype2 > 6.1.0 fontconfig)
5053 AC_SUBST(FT2_CFLAGS)
5058 dnl ========================================================
5059 dnl = GnomeVFS support module
5060 dnl ========================================================
5064 dnl build the gnomevfs extension by default only when the
5065 dnl GTK2 toolkit is in use.
5066 if test "$MOZ_ENABLE_GTK2"
5068 MOZ_ENABLE_GNOMEVFS=1
5072 MOZ_ARG_DISABLE_BOOL(gnomevfs,
5073 [ --disable-gnomevfs Disable GnomeVFS support ],
5074 MOZ_ENABLE_GNOMEVFS=,
5075 MOZ_ENABLE_GNOMEVFS=force)
5077 if test "$MOZ_ENABLE_GNOMEVFS"
5079 PKG_CHECK_MODULES(MOZ_GNOMEVFS, gnome-vfs-2.0 >= $GNOMEVFS_VERSION gnome-vfs-module-2.0 >= $GNOMEVFS_VERSION,[
5080 MOZ_GNOMEVFS_LIBS=`echo $MOZ_GNOMEVFS_LIBS | sed 's/-llinc\>//'`
5081 MOZ_ENABLE_GNOMEVFS=1
5082 AC_DEFINE(MOZ_ENABLE_GNOMEVFS)
5084 if test "$MOZ_ENABLE_GNOMEVFS" = "force"
5086 AC_MSG_ERROR([* * * Could not find gnome-vfs-module-2.0 >= $GNOMEVFS_VERSION])
5088 MOZ_ENABLE_GNOMEVFS=
5092 AC_SUBST(MOZ_ENABLE_GNOMEVFS)
5093 AC_SUBST(MOZ_GNOMEVFS_CFLAGS)
5094 AC_SUBST(MOZ_GNOMEVFS_LIBS)
5096 if test "$MOZ_ENABLE_GCONF"
5098 PKG_CHECK_MODULES(MOZ_GCONF, gconf-2.0 >= $GCONF_VERSION,[
5099 MOZ_GCONF_LIBS=`echo $MOZ_GCONF_LIBS | sed 's/-llinc\>//'`
5106 if test "$MOZ_ENABLE_GCONF"; then
5107 AC_DEFINE(MOZ_ENABLE_GCONF)
5110 AC_SUBST(MOZ_ENABLE_GCONF)
5111 AC_SUBST(MOZ_GCONF_CFLAGS)
5112 AC_SUBST(MOZ_GCONF_LIBS)
5114 dnl ========================================================
5115 dnl = GIO support module
5116 dnl ========================================================
5117 MOZ_ARG_ENABLE_BOOL(gio,
5118 [ --enable-gio Enable GIO support (default: disabled)],
5119 MOZ_ENABLE_GIO=force,
5122 if test "$MOZ_ENABLE_GIO" -a "$MOZ_ENABLE_GTK2"
5124 PKG_CHECK_MODULES(MOZ_GIO, gio-2.0 >= $GIO_VERSION,[
5125 MOZ_GIO_LIBS=`echo $MOZ_GIO_LIBS | sed 's/-llinc\>//'`
5127 AC_DEFINE(MOZ_ENABLE_GIO)
5129 if test "$MOZ_ENABLE_GIO" = "force"
5131 AC_MSG_ERROR([* * * Could not find gio-2.0 >= $GIO_VERSION])
5137 AC_SUBST(MOZ_ENABLE_GIO)
5138 AC_SUBST(MOZ_GIO_CFLAGS)
5139 AC_SUBST(MOZ_GIO_LIBS)
5142 dnl ========================================================
5143 dnl = libgnomeui support module
5144 dnl ========================================================
5146 if test "$MOZ_ENABLE_GTK2"
5148 MOZ_ENABLE_GNOMEUI=1
5150 MOZ_ARG_DISABLE_BOOL(gnomeui,
5151 [ --disable-gnomeui Disable libgnomeui support (default: auto, optional at runtime) ],
5152 MOZ_ENABLE_GNOMEUI=,
5153 MOZ_ENABLE_GNOMEUI=force)
5155 if test "$MOZ_ENABLE_GNOMEUI"
5157 PKG_CHECK_MODULES(MOZ_GNOMEUI, libgnomeui-2.0 >= $GNOMEUI_VERSION,
5159 MOZ_GNOMEUI_LIBS=`echo $MOZ_GNOMEUI_LIBS | sed 's/-llinc\>//'`
5160 MOZ_ENABLE_GNOMEUI=1
5162 if test "$MOZ_ENABLE_GNOMEUI" = "force"
5164 AC_MSG_ERROR([* * * Could not find libgnomeui-2.0 >= $GNOMEUI_VERSION])
5170 if test "$MOZ_ENABLE_GNOMEUI"; then
5171 AC_DEFINE(MOZ_ENABLE_GNOMEUI)
5174 # The GNOME component is built if gtk2, gconf and gnome-vfs
5175 # are all available.
5177 if test "$MOZ_ENABLE_GTK2" -a "$MOZ_ENABLE_GCONF" && \
5178 (test "$MOZ_ENABLE_GNOMEVFS" || test "$MOZ_ENABLE_GIO"); then
5179 MOZ_ENABLE_GNOME_COMPONENT=1
5181 MOZ_ENABLE_GNOME_COMPONENT=
5184 AC_SUBST(MOZ_ENABLE_GNOME_COMPONENT)
5186 AC_SUBST(MOZ_ENABLE_GNOMEUI)
5187 AC_SUBST(MOZ_GNOMEUI_CFLAGS)
5188 AC_SUBST(MOZ_GNOMEUI_LIBS)
5190 dnl ========================================================
5192 dnl ========================================================
5194 if test "$MOZ_ENABLE_GTK2" || test "$MOZ_ENABLE_QT"
5198 MOZ_ARG_DISABLE_BOOL(dbus,
5199 [ --disable-dbus Disable dbus support ],
5203 if test "$MOZ_ENABLE_DBUS"
5205 PKG_CHECK_MODULES(MOZ_DBUS_GLIB, dbus-glib-1 >= $DBUS_VERSION)
5206 AC_DEFINE(MOZ_ENABLE_DBUS)
5209 AC_SUBST(MOZ_ENABLE_DBUS)
5210 AC_SUBST(MOZ_DBUS_GLIB_CFLAGS)
5211 AC_SUBST(MOZ_DBUS_GLIB_LIBS)
5213 dnl ========================================================
5214 dnl = libnotify support
5215 dnl ========================================================
5217 if test "$MOZ_ENABLE_GTK2"
5219 MOZ_ENABLE_LIBNOTIFY=1
5221 MOZ_ARG_DISABLE_BOOL(libnotify,
5222 [ --disable-libnotify Disable libnotify support ],
5223 MOZ_ENABLE_LIBNOTIFY=,
5224 MOZ_ENABLE_LIBNOTIFY=1)
5226 if test "$MOZ_ENABLE_LIBNOTIFY"
5228 AC_DEFINE(MOZ_ENABLE_LIBNOTIFY)
5232 if test -z "$SKIP_LIBRARY_CHECKS"
5234 if test "$MOZ_ENABLE_GTK2"
5236 if test "$MOZ_ENABLE_LIBNOTIFY"
5238 PKG_CHECK_MODULES(MOZ_LIBNOTIFY, libnotify >= $LIBNOTIFY_VERSION)
5242 AC_SUBST(MOZ_ENABLE_LIBNOTIFY)
5243 AC_SUBST(MOZ_LIBNOTIFY_CFLAGS)
5244 AC_SUBST(MOZ_LIBNOTIFY_LIBS)
5246 dnl ========================================================
5247 dnl = Build Personal Security Manager
5248 dnl ========================================================
5249 MOZ_ARG_DISABLE_BOOL(crypto,
5250 [ --disable-crypto Disable crypto support (Personal Security Manager)],
5254 dnl ========================================================
5255 dnl = JS Debugger XPCOM component (js/jsd)
5256 dnl ========================================================
5257 MOZ_ARG_DISABLE_BOOL(jsd,
5258 [ --disable-jsd Disable JavaScript debug library],
5263 dnl ========================================================
5264 dnl = Disable plugin support
5265 dnl ========================================================
5266 MOZ_ARG_DISABLE_BOOL(plugins,
5267 [ --disable-plugins Disable plugins support],
5271 dnl ========================================================
5272 dnl = Disable building dbm
5273 dnl ========================================================
5274 MOZ_ARG_DISABLE_BOOL(dbm,
5275 [ --disable-dbm Disable building dbm],
5279 dnl bi-directional support always on
5283 dnl ========================================================
5284 dnl view source support on by default
5285 dnl ========================================================
5286 if test "$MOZ_VIEW_SOURCE"; then
5287 AC_DEFINE(MOZ_VIEW_SOURCE)
5290 dnl ========================================================
5291 dnl accessibility support on by default on all platforms
5293 dnl ========================================================
5294 MOZ_ARG_DISABLE_BOOL(accessibility,
5295 [ --disable-accessibility Disable accessibility support (off by default on OS X)],
5298 if test "$ACCESSIBILITY"; then
5299 AC_DEFINE(ACCESSIBILITY)
5302 if test -n "$ACCESSIBILITY" -a "$COMPILE_ENVIRONMENT" = "1"; then
5304 *-mingw*|*-cygwin*|*-msvc*|*-mks*)
5305 if test "$ac_cv_header_atlbase_h" = "no"; then
5306 AC_MSG_ERROR([System header atlbase.h is not available. See http://developer.mozilla.org/en/docs/atlbase.h for details on fixing this problem.])
5308 if test "$ac_cv_header_oleacc_idl" = "no"; then
5309 AC_MSG_ERROR([System header oleacc.idl is not available. See http://developer.mozilla.org/en/docs/oleacc.idl for details on fixing this problem.])
5315 dnl ========================================================
5316 dnl xpfe/components on by default
5317 dnl ========================================================
5318 MOZ_ARG_DISABLE_BOOL(xpfe-components,
5319 [ --disable-xpfe-components
5320 Disable xpfe components],
5321 MOZ_XPFE_COMPONENTS=,
5322 MOZ_XPFE_COMPONENTS=1 )
5324 dnl ========================================================
5325 dnl xpinstall support on by default
5326 dnl ========================================================
5327 MOZ_ARG_DISABLE_BOOL(xpinstall,
5328 [ --disable-xpinstall Disable xpinstall support],
5331 if test "$MOZ_XPINSTALL"; then
5332 AC_DEFINE(MOZ_XPINSTALL)
5335 dnl ========================================================
5336 dnl xpcom js loader support on by default
5337 dnl ========================================================
5338 if test "$MOZ_JSLOADER"; then
5339 AC_DEFINE(MOZ_JSLOADER)
5342 dnl ========================================================
5343 dnl Disable printing
5344 dnl ========================================================
5345 MOZ_ARG_DISABLE_BOOL(printing,
5346 [ --disable-printing Disable printing support],
5350 if test "$MOZ_WIDGET_TOOLKIT" = "qt"; then
5351 AC_MSG_WARN([Printing does not work with Qt at this time. Omitting printing support.])
5355 if test "$NS_PRINTING"; then
5356 AC_DEFINE(NS_PRINTING)
5357 AC_DEFINE(NS_PRINT_PREVIEW)
5360 dnl ========================================================
5361 dnl use native unicode converters
5362 dnl ========================================================
5363 MOZ_ARG_ENABLE_BOOL(native-uconv,
5364 [ --enable-native-uconv Enable iconv support],
5365 MOZ_USE_NATIVE_UCONV=1,
5366 MOZ_USE_NATIVE_UCONV= )
5367 if test "$MOZ_USE_NATIVE_UCONV"; then
5368 AC_DEFINE(MOZ_USE_NATIVE_UCONV)
5370 if test "$OS_ARCH" != "WINCE" -a "$OS_ARCH" != "WINNT" -a "$MOZ_USE_NATIVE_UCONV" -a "$ac_cv_func_iconv" != "yes"; then
5371 AC_MSG_ERROR([iconv() not found. Cannot enable native uconv support.])
5375 dnl ========================================================
5376 dnl Libeditor can be build as plaintext-only,
5377 dnl or as a full html and text editing component.
5378 dnl We build both by default.
5379 dnl ========================================================
5380 MOZ_ARG_ENABLE_BOOL(plaintext-editor-only,
5381 [ --enable-plaintext-editor-only
5382 Allow only plaintext editing],
5383 MOZ_PLAINTEXT_EDITOR_ONLY=1,
5384 MOZ_PLAINTEXT_EDITOR_ONLY= )
5385 dnl Note the #define is MOZILLA, not MOZ, for compat with the Mac build.
5386 AC_SUBST(MOZ_PLAINTEXT_EDITOR_ONLY)
5388 dnl ========================================================
5389 dnl = Disable Fast Load
5390 dnl ========================================================
5391 MOZ_ARG_DISABLE_BOOL(xpcom-fastload,
5392 [ --disable-xpcom-fastload Disable XPCOM fastload support],
5396 AC_SUBST(MOZ_NO_FAST_LOAD)
5398 if test -n "$MOZ_NO_FAST_LOAD"; then
5399 AC_DEFINE(MOZ_NO_FAST_LOAD)
5402 dnl ========================================================
5403 dnl = Disable Ogg Codecs
5404 dnl ========================================================
5405 MOZ_ARG_DISABLE_BOOL(ogg,
5406 [ --disable-ogg Disable Ogg Codec support],
5412 if test -n "$MOZ_OGG"; then
5417 dnl Checks for __attribute__(aligned()) directive
5418 AC_CACHE_CHECK([__attribute__ ((aligned ())) support],
5419 [ac_cv_c_attribute_aligned],
5420 [ac_cv_c_attribute_aligned=0
5421 CFLAGS_save="${CFLAGS}"
5422 CFLAGS="${CFLAGS} -Werror"
5423 for ac_cv_c_attr_align_try in 64 32 16 8; do
5424 echo "trying $ac_cv_c_attr_align_try"
5426 [static char c __attribute__ ((aligned(${ac_cv_c_attr_align_try}))) = 0; return c;],
5427 [ac_cv_c_attribute_aligned="${ac_cv_c_attr_align_try}"])
5428 if test "$ac_cv_c_attribute_aligned" != 0; then
5432 CFLAGS="${CFLAGS_save}"])
5433 if test "${ac_cv_c_attribute_aligned}" != "0"; then
5434 AC_DEFINE_UNQUOTED([ATTRIBUTE_ALIGNED_MAX],
5435 [${ac_cv_c_attribute_aligned}],[Maximum supported data alignment])
5439 dnl ========================================================
5440 dnl = Disable Wave decoder support
5441 dnl ========================================================
5442 MOZ_ARG_DISABLE_BOOL(wave,
5443 [ --disable-wave Disable Wave decoder support],
5449 if test -n "$MOZ_WAVE"; then
5455 dnl ========================================================
5456 dnl = Handle dependent SYDNEYAUDIO and MEDIA defines
5457 dnl ========================================================
5459 AC_SUBST(MOZ_SYDNEYAUDIO)
5461 if test -n "$MOZ_SYDNEYAUDIO"; then
5462 AC_DEFINE(MOZ_SYDNEYAUDIO)
5467 if test -n "$MOZ_MEDIA"; then
5468 AC_DEFINE(MOZ_MEDIA)
5471 dnl ========================================================
5472 dnl = Check alsa availability on Linux if using sydneyaudio
5473 dnl ========================================================
5475 dnl If using sydneyaudio with Linux, ensure that the alsa library is available
5476 if test -n "$MOZ_SYDNEYAUDIO"; then
5477 case "$target_os" in
5479 PKG_CHECK_MODULES(MOZ_ALSA, alsa, ,
5480 [echo "$MOZ_ALSA_PKG_ERRORS"
5481 AC_MSG_ERROR([Need alsa for Ogg or Wave decoding on Linux. Disable with --disable-ogg --disable-wave.])])
5485 AC_SUBST(MOZ_ALSA_LIBS)
5487 dnl ========================================================
5489 dnl ========================================================
5490 AC_ARG_ENABLE(splashscreen,
5491 [ --enable-splashscreen display splashscreen while loading (default=no)],
5492 [enable_splash="yes"],[enable_splash=""])
5493 if test "x$enable_splash" = "xyes"; then
5495 AC_DEFINE(MOZ_SPLASHSCREEN)
5497 AC_SUBST(MOZ_SPLASHSCREEN)
5499 dnl ========================================================
5500 dnl Permissions System
5501 dnl ========================================================
5502 MOZ_ARG_DISABLE_BOOL(permissions,
5503 [ --disable-permissions Disable permissions (popup and cookie blocking)],
5508 dnl ========================================================
5510 dnl ========================================================
5511 MOZ_ARG_DISABLE_BOOL(negotiateauth,
5512 [ --disable-negotiateauth Disable GSS-API negotiation ],
5513 MOZ_AUTH_EXTENSION=,
5514 MOZ_AUTH_EXTENSION=1 )
5516 dnl ========================================================
5518 dnl ========================================================
5519 MOZ_ARG_DISABLE_BOOL(xtf,
5520 [ --disable-xtf Disable XTF (pluggable xml tags) support],
5523 if test "$MOZ_XTF"; then
5527 dnl ========================================================
5528 dnl Pref extensions (autoconfig and system-pref)
5529 dnl ========================================================
5530 MOZ_ARG_DISABLE_BOOL(pref-extensions,
5531 [ --disable-pref-extensions
5532 Disable pref extensions such as autoconfig and
5534 MOZ_PREF_EXTENSIONS=,
5535 MOZ_PREF_EXTENSIONS=1 )
5537 dnl ========================================================
5538 dnl = Universalchardet
5539 dnl ========================================================
5540 MOZ_ARG_DISABLE_BOOL(universalchardet,
5541 [ --disable-universalchardet
5542 Disable universal encoding detection],
5543 MOZ_UNIVERSALCHARDET=,
5544 MOZ_UNIVERSALCHARDET=1 )
5546 dnl ========================================================
5548 dnl ========================================================
5549 MOZ_ARG_ENABLE_BOOL(javaxpcom,
5550 [ --enable-javaxpcom
5551 Enable Java-XPCOM bridge],
5555 if test -n "${MOZ_JAVAXPCOM}"; then
5558 if test -n "$JAVA_HOME"; then
5559 JAVA_HOME=`cygpath -u \`cygpath -m -s "$JAVA_HOME"\``
5563 if test -n "$JAVA_HOME"; then
5564 JAVA_HOME=`cd "$JAVA_HOME" && pwd`
5569 if test -n "${JAVA_INCLUDE_PATH}"; then
5570 dnl Make sure jni.h exists in the given include path.
5571 if test ! -f "$JAVA_INCLUDE_PATH/jni.h"; then
5572 AC_MSG_ERROR([jni.h was not found in given include path $JAVA_INCLUDE_PATH.])
5575 case "$target_os" in
5577 dnl Default to java system location
5578 JAVA_INCLUDE_PATH=/System/Library/Frameworks/JavaVM.framework/Headers
5582 JAVA_INCLUDE_PATH="$JAVA_HOME/include"
5585 if test ! -f "$JAVA_INCLUDE_PATH/jni.h"; then
5586 AC_MSG_ERROR([The header jni.h was not found. Set \$JAVA_HOME to your java sdk directory, use --with-java-bin-path={java-bin-dir}, or reconfigure with --disable-javaxpcom.])
5590 if test -n "${JAVA_BIN_PATH}"; then
5591 dnl Look for javac and jar in the specified path.
5592 JAVA_PATH="$JAVA_BIN_PATH"
5594 dnl No path specified, so look for javac and jar in $JAVA_HOME & $PATH.
5595 JAVA_PATH="$JAVA_HOME/bin:$PATH"
5598 MOZ_PATH_PROG(JAVA, java, :, [$JAVA_PATH])
5599 MOZ_PATH_PROG(JAVAC, javac, :, [$JAVA_PATH])
5600 MOZ_PATH_PROG(JAR, jar, :, [$JAVA_PATH])
5601 if test -z "$JAVA" || test "$JAVA" = ":" || test -z "$JAVAC" || test "$JAVAC" = ":" || test -z "$JAR" || test "$JAR" = ":"; then
5602 AC_MSG_ERROR([The programs java, javac and jar were not found. Set \$JAVA_HOME to your java sdk directory, use --with-java-bin-path={java-bin-dir}, or reconfigure with --disable-javaxpcom.])
5606 dnl ========================================================
5607 dnl = Breakpad crash reporting (on by default on supported platforms)
5608 dnl ========================================================
5610 if (test "$OS_ARCH" = "WINNT" -a -z "$GNU_CC" \
5611 || test "$OS_ARCH" = "Darwin" \
5612 || test "$OS_ARCH" = "Linux" -a "$CPU_ARCH" = "x86" \
5613 || test "$OS_ARCH" = "SunOS") \
5614 && test -z "$HAVE_64BIT_OS"; then
5618 MOZ_ARG_DISABLE_BOOL(crashreporter,
5619 [ --disable-crashreporter Disable breakpad crash reporting],
5621 MOZ_CRASHREPORTER=1)
5623 if test -n "$MOZ_CRASHREPORTER"; then
5624 AC_DEFINE(MOZ_CRASHREPORTER)
5626 if (test "$OS_ARCH" = "Linux" || test "$OS_ARCH" = "SunOS") && \
5627 test -z "$SKIP_LIBRARY_CHECKS"; then
5628 PKG_CHECK_MODULES(MOZ_GTHREAD, gthread-2.0)
5629 AC_SUBST(MOZ_GTHREAD_CFLAGS)
5630 AC_SUBST(MOZ_GTHREAD_LIBS)
5632 AC_CHECK_HEADERS([curl/curl.h], [], [AC_MSG_ERROR([Couldn't find curl/curl.h which is required for the crash reporter. Use --disable-crashreporter to disable the crash reporter.])])
5636 MOZ_ARG_WITH_STRING(crashreporter-enable-percent,
5637 [ --with-crashreporter-enable-percent=NN Enable sending crash reports by default on NN% of users. (default=100)],
5638 [ val=`echo $withval | sed 's/[^0-9]//g'`
5639 MOZ_CRASHREPORTER_ENABLE_PERCENT="$val"])
5641 if test -z "$MOZ_CRASHREPORTER_ENABLE_PERCENT"; then
5642 MOZ_CRASHREPORTER_ENABLE_PERCENT=100
5644 AC_DEFINE_UNQUOTED(MOZ_CRASHREPORTER_ENABLE_PERCENT, $MOZ_CRASHREPORTER_ENABLE_PERCENT)
5646 dnl ========================================================
5647 dnl = Enable compilation of specific extension modules
5648 dnl ========================================================
5650 MOZ_ARG_ENABLE_STRING(extensions,
5651 [ --enable-extensions Enable extensions],
5652 [ for option in `echo $enableval | sed 's/,/ /g'`; do
5653 if test "$option" = "yes" || test "$option" = "all"; then
5654 AC_MSG_ERROR([--enable-extensions=$option is no longer supported.])
5655 elif test "$option" = "no" || test "$option" = "none"; then
5657 elif test "$option" = "default"; then
5658 MOZ_EXTENSIONS="$MOZ_EXTENSIONS $MOZ_EXTENSIONS_DEFAULT"
5659 elif test `echo "$option" | grep -c \^-` != 0; then
5660 option=`echo $option | sed 's/^-//'`
5661 MOZ_EXTENSIONS=`echo "$MOZ_EXTENSIONS" | sed "s/ ${option}//"`
5663 MOZ_EXTENSIONS="$MOZ_EXTENSIONS $option"
5666 MOZ_EXTENSIONS="$MOZ_EXTENSIONS_DEFAULT")
5668 if test -z "$MOZ_ENABLE_GNOMEVFS" && test `echo "$MOZ_EXTENSIONS" | grep -c gnomevfs` -ne 0; then
5669 # Suppress warning on non-X11 platforms
5670 if test -n "$MOZ_X11"; then
5671 AC_MSG_WARN([Cannot build gnomevfs without required libraries. Removing gnomevfs from MOZ_EXTENSIONS.])
5673 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|gnomevfs||'`
5676 dnl Do not build gnomevfs with libxul based apps
5677 if test -n "$LIBXUL_SDK_DIR" && test `echo "$MOZ_EXTENSIONS" | grep -c gnomevfs` -ne 0; then
5678 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|gnomevfs||'`
5681 if test -z "$MOZ_ENABLE_GIO" && test `echo "$MOZ_EXTENSIONS" | grep -c gio` -ne 0; then
5682 # Suppress warning on non-X11 platforms
5683 if test -n "$MOZ_X11"; then
5684 AC_MSG_WARN([Cannot build gio without required libraries. Removing gio from MOZ_EXTENSIONS.])
5686 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|gio||'`
5689 dnl Do not build gio with libxul based apps
5690 if test -n "$LIBXUL_SDK_DIR" && test `echo "$MOZ_EXTENSIONS" | grep -c gio` -ne 0; then
5691 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|gio||'`
5694 if test -z "$MOZ_JSDEBUGGER" && test `echo "$MOZ_EXTENSIONS" | grep -c venkman` -ne 0; then
5695 AC_MSG_WARN([Cannot build venkman without JavaScript debug library. Removing venkman from MOZ_EXTENSIONS.])
5696 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|venkman||'`
5699 dnl This might be temporary: build tridentprofile only on Windows
5700 if test `echo "$MOZ_EXTENSIONS" | grep -c tridentprofile` -ne 0 && test "$OS_ARCH" != "WINNT"; then
5701 AC_MSG_WARN([tridentprofile extension works only on Windows at this time. Removing tridentprofile from MOZ_EXTENSIONS.])
5702 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|tridentprofile||'`
5705 dnl cookie must be built before tridentprofile. put it at list's end.
5706 if test `echo "$MOZ_EXTENSIONS" | grep -c tridentprofile` -ne 0; then
5707 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|tridentprofile||'`
5708 MOZ_EXTENSIONS="$MOZ_EXTENSIONS tridentprofile"
5711 dnl xforms requires xtf and schema-validation
5712 if test -z "$MOZ_XTF" && test `echo "$MOZ_EXTENSIONS" | grep -c xforms` -ne 0; then
5713 AC_MSG_WARN([Cannot build XForms without XTF support. Removing XForms from MOZ_EXTENSIONS.])
5714 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|xforms||g'`
5716 if test `echo "$MOZ_EXTENSIONS" | grep -c xforms` -ne 0 && test `echo "$MOZ_EXTENSIONS" | grep -c schema-validation` -eq 0; then
5717 AC_MSG_WARN([Cannot build XForms without schema validation. Removing XForms from MOZ_EXTENSIONS.])
5718 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|xforms||g'`
5721 if test `echo "$MOZ_EXTENSIONS" | grep -c auth` -ne 0; then
5722 AC_MSG_WARN([auth is no longer an extension, use --disable-negotiateauth to disable.])
5723 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|auth||g'`
5726 if test `echo "$MOZ_EXTENSIONS" | grep -c 'cookie\|permissions'` -ne 0; then
5727 AC_MSG_WARN([cookie and permissions are no longer extensions, use --disable-permissions to disable.])
5728 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|cookie||g; s|permissions||g'`
5731 if test `echo "$MOZ_EXTENSIONS" | grep -c pref` -ne 0; then
5732 AC_MSG_WARN([pref is no longer an extension, use --disable-pref-extensions to disable.])
5733 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|pref||g'`
5736 if test `echo "$MOZ_EXTENSIONS" | grep -c universalchardet` -ne 0; then
5737 AC_MSG_WARN([universalchardet is no longer an extension, use --disable-universalchardet to disable.])
5738 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|universalchardet||g'`
5741 if test `echo "$MOZ_EXTENSIONS" | grep -c java` -ne 0; then
5742 AC_MSG_WARN([java is no longer an extension, use --enable-javaxpcom to enable.])
5743 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|java||g'`
5746 if test `echo "$MOZ_EXTENSIONS" | grep -c spellcheck` -ne 0; then
5747 AC_MSG_WARN([spellcheck is no longer an extension.])
5748 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|spellcheck||g'`
5752 MOZ_EXTENSIONS=`${PERL} ${srcdir}/build/unix/uniq.pl ${MOZ_EXTENSIONS}`
5754 dnl Ensure every extension exists, to avoid mostly-inscrutable error messages
5755 dnl when trying to build a non-existent extension.
5756 for extension in $MOZ_EXTENSIONS; do
5757 if test ! -d "${srcdir}/extensions/${extension}"; then
5758 AC_MSG_ERROR([Unrecognized extension provided to --enable-extensions: ${extension}.])
5763 dnl ========================================================
5765 dnl ========================================================
5766 case "$MOZ_WIDGET_TOOLKIT" in
5767 beos|windows|os2|mac|cocoa)
5770 if test -z "$MOZ_ENABLE_GTK2" && test -z "$MOZ_ENABLE_QT"; then
5771 MOZ_IMG_DECODERS_DEFAULT=`echo $MOZ_IMG_DECODERS_DEFAULT | sed -e 's|icon||'`
5776 MOZ_ARG_ENABLE_STRING(image-decoders,
5777 [ --enable-image-decoders[={mod1,mod2,default,all,none}]
5778 Enable specific image decoders],
5779 [ for option in `echo $enableval | sed 's/,/ /g'`; do
5780 if test "$option" = "yes" || test "$option" = "all"; then
5781 MOZ_IMG_DECODERS="$MOZ_IMG_DECODERS $MOZ_IMG_DECODERS_DEFAULT"
5782 elif test "$option" = "no" || test "$option" = "none"; then
5784 elif test "$option" = "default"; then
5785 MOZ_IMG_DECODERS="$MOZ_IMG_DECODERS $MOZ_IMG_DECODERS_DEFAULT"
5786 elif test `echo "$option" | grep -c \^-` != 0; then
5787 option=`echo $option | sed 's/^-//'`
5788 MOZ_IMG_DECODERS=`echo "$MOZ_IMG_DECODERS" | sed "s/ ${option}//"`
5790 MOZ_IMG_DECODERS="$MOZ_IMG_DECODERS $option"
5793 MOZ_IMG_DECODERS="$MOZ_IMG_DECODERS_DEFAULT")
5795 dnl Dupes are removed in the encoder section because it will also add decoders
5797 dnl ========================================================
5799 dnl ========================================================
5800 MOZ_ARG_ENABLE_STRING(image-encoders,
5801 [ --enable-image-encoders[={mod1,mod2,default,all,none}]
5802 Enable specific image encoders],
5803 [ for option in `echo $enableval | sed 's/,/ /g'`; do
5804 if test "$option" = "yes" || test "$option" = "all"; then
5805 addencoder="$MOZ_IMG_ENCODERS_DEFAULT"
5806 elif test "$option" = "no" || test "$option" = "none"; then
5809 elif test "$option" = "default"; then
5810 addencoder="$MOZ_IMG_ENCODERS_DEFAULT"
5811 elif test `echo "$option" | grep -c \^-` != 0; then
5812 option=`echo $option | sed 's/^-//'`
5813 addencoder=`echo "$MOZ_IMG_ENCODERS" | sed "s/ ${option}//"`
5815 addencoder="$option"
5817 MOZ_IMG_ENCODERS="$MOZ_IMG_ENCODERS $addencoder"
5819 MOZ_IMG_ENCODERS="$MOZ_IMG_ENCODERS_DEFAULT")
5822 MOZ_IMG_DECODERS=`${PERL} ${srcdir}/build/unix/uniq.pl ${MOZ_IMG_DECODERS}`
5823 MOZ_IMG_ENCODERS=`${PERL} ${srcdir}/build/unix/uniq.pl ${MOZ_IMG_ENCODERS}`
5825 dnl ========================================================
5826 dnl MathML on by default
5827 dnl ========================================================
5828 MOZ_ARG_DISABLE_BOOL(mathml,
5829 [ --disable-mathml Disable MathML support],
5832 if test "$MOZ_MATHML"; then
5833 AC_DEFINE(MOZ_MATHML)
5836 dnl ========================================================
5838 dnl ========================================================
5839 MOZ_ARG_DISABLE_BOOL(svg,
5840 [ --disable-svg Disable SVG support],
5843 if test -n "$MOZ_SVG"; then
5847 dnl ========================================================
5849 dnl ========================================================
5851 MOZ_ARG_DISABLE_BOOL(smil,
5852 [ --disable-smil Disable SMIL animation support],
5855 # Automatically disable SMIL if SVG is disabled
5856 if test -z "$MOZ_SVG"; then
5859 if test -n "$MOZ_SMIL"; then
5863 dnl ========================================================
5864 dnl Build Freetype in the tree
5865 dnl ========================================================
5866 MOZ_ARG_ENABLE_BOOL(tree-freetype,
5867 [ --enable-tree-freetype Enable Tree FreeType],
5868 MOZ_TREE_FREETYPE=1,
5869 MOZ_TREE_FREETYPE= )
5870 if test -n "$MOZ_TREE_FREETYPE"; then
5871 AC_DEFINE(MOZ_TREE_FREETYPE)
5872 AC_SUBST(MOZ_TREE_FREETYPE)
5873 MOZ_ENABLE_CAIRO_FT=1
5874 FT_FONT_FEATURE="#define CAIRO_HAS_FT_FONT 1"
5875 FT2_CFLAGS='-I$(topsrcdir)/modules/freetype2/include'
5876 CAIRO_FT_CFLAGS='-I$(topsrcdir)/modules/freetype2/include'
5877 FT2_LIBS='$(LIBXUL_DIST)/lib/freetype2.lib'
5878 CAIRO_FT_LIBS='$(LIBXUL_DIST)/lib/freetype2.lib'
5879 AC_DEFINE(HAVE_FT_BITMAP_SIZE_Y_PPEM)
5880 AC_DEFINE(HAVE_FT_GLYPHSLOT_EMBOLDEN)
5881 AC_DEFINE(HAVE_FT_LOAD_SFNT_TABLE)
5882 AC_SUBST(CAIRO_FT_CFLAGS)
5886 dnl ========================================================
5888 dnl ========================================================
5889 case "$target_os" in
5890 aix*|solaris*|linux*|msvc*|mks*|cygwin*|mingw*|os2*|wince*)
5895 MOZ_ARG_DISABLE_BOOL(installer,
5896 [ --disable-installer Disable building of installer],
5899 if test -n "$MOZ_INSTALLER" -a "$OS_ARCH" = "WINNT"; then
5900 # Disable installer for Windows builds that use the new toolkit if NSIS
5901 # isn't in the path.
5902 MOZ_PATH_PROGS(MAKENSIS, makensis)
5903 if test -z "$MAKENSIS" || test "$MAKENSIS" = ":"; then
5904 AC_MSG_ERROR([To build the installer makensis is required in your path. To build without the installer reconfigure using --disable-installer.])
5906 # The Windows build for NSIS requires the iconv command line utility to
5907 # convert the charset of the locale files.
5908 MOZ_PATH_PROGS(HOST_ICONV, $HOST_ICONV "iconv", "")
5909 if test -z "$HOST_ICONV"; then
5910 AC_MSG_ERROR([To build the installer iconv is required in your path. To build without the installer reconfigure using --disable-installer.])
5914 # Automatically disable installer if xpinstall isn't built
5915 if test -z "$MOZ_XPINSTALL"; then
5918 AC_SUBST(MOZ_INSTALLER)
5920 AC_MSG_CHECKING([for tar archiver])
5921 AC_CHECK_PROGS(TAR, gnutar gtar tar, "")
5922 if test -z "$TAR"; then
5923 AC_MSG_ERROR([no tar archiver found in \$PATH])
5925 AC_MSG_RESULT([$TAR])
5928 AC_MSG_CHECKING([for wget])
5929 AC_CHECK_PROGS(WGET, wget, "")
5930 AC_MSG_RESULT([$WGET])
5933 dnl ========================================================
5935 dnl ========================================================
5937 MOZ_ARG_DISABLE_BOOL(updater,
5938 [ --disable-updater Disable building of updater],
5941 AC_SUBST(MOZ_UPDATER)
5943 # app update channel is 'default' when not supplied.
5944 MOZ_ARG_ENABLE_STRING([update-channel],
5945 [ --enable-update-channel=CHANNEL
5946 Select application update channel (default=default)],
5947 MOZ_UPDATE_CHANNEL=`echo $enableval | tr A-Z a-z`)
5949 if test -z "$MOZ_UPDATE_CHANNEL"; then
5950 MOZ_UPDATE_CHANNEL=default
5952 AC_DEFINE_UNQUOTED(MOZ_UPDATE_CHANNEL, $MOZ_UPDATE_CHANNEL)
5954 # tools/update-packaging is not checked out by default.
5955 MOZ_ARG_ENABLE_BOOL(update-packaging,
5956 [ --enable-update-packaging
5957 Enable tools/update-packaging],
5958 MOZ_UPDATE_PACKAGING=1,
5959 MOZ_UPDATE_PACKAGING= )
5960 AC_SUBST(MOZ_UPDATE_PACKAGING)
5962 dnl ========================================================
5964 dnl ========================================================
5966 MOZ_ARG_DISABLE_BOOL(xpconnect-idispatch,
5967 [ --disable-xpconnect-idispatch
5968 Disable building of xpconnect support for IDispatch
5970 XPC_IDISPATCH_SUPPORT=,
5971 XPC_IDISPATCH_SUPPORT=1)
5972 AC_SUBST(XPC_IDISPATCH_SUPPORT)
5974 MOZ_ARG_DISABLE_BOOL(activex,
5975 [ --disable-activex Disable building of ActiveX control (win32 only)],
5976 MOZ_NO_ACTIVEX_SUPPORT=1,
5977 MOZ_NO_ACTIVEX_SUPPORT= )
5978 AC_SUBST(MOZ_NO_ACTIVEX_SUPPORT)
5980 MOZ_ARG_ENABLE_BOOL(activex-scripting,
5981 [ --enable-activex-scripting
5982 Enable building of ActiveX scripting support (win32)],
5983 MOZ_ACTIVEX_SCRIPTING_SUPPORT=1,
5984 MOZ_ACTIVEX_SCRIPTING_SUPPORT=)
5985 AC_SUBST(MOZ_ACTIVEX_SCRIPTING_SUPPORT)
5987 if test -n "$MOZ_NO_ACTIVEX_SUPPORT" -a -n "$MOZ_ACTIVEX_SCRIPTING_SUPPORT";
5989 AC_MSG_ERROR([Cannot enable ActiveX scripting support when ActiveX support is disabled.])
5992 if test "$COMPILE_ENVIRONMENT" = "1"; then
5993 if test -n "$XPC_IDISPATCH_SUPPORT" -o -n "$MOZ_ACTIVEX_SCRIPTING_SUPPORT" -o -z "$MOZ_NO_ACTIVEX_SUPPORT"; then
5995 *-mingw*|*-cygwin*|*-msvc*|*-mks*)
5996 if test "$ac_cv_header_atlbase_h" = "no"; then
5997 AC_MSG_ERROR([System header atlbase.h is not available. See http://developer.mozilla.org/en/docs/atlbase.h for details on fixing this problem.])
6004 dnl ========================================================
6006 dnl ========================================================
6007 MOZ_ARG_ENABLE_BOOL(leaky,
6008 [ --enable-leaky Build leaky memory tool],
6013 dnl ========================================================
6015 dnl ========================================================
6016 MOZ_ARG_ENABLE_BOOL(xpctools,
6017 [ --enable-xpctools Build JS profiling tool],
6022 dnl ========================================================
6023 dnl build the tests by default
6024 dnl ========================================================
6025 MOZ_ARG_DISABLE_BOOL(tests,
6026 [ --disable-tests Do not build test libraries & programs],
6030 dnl ========================================================
6031 dnl parental controls (for Windows Vista)
6032 dnl ========================================================
6033 MOZ_ARG_DISABLE_BOOL(parental-controls,
6034 [ --disable-parental-controls
6035 Do not build parental controls],
6036 MOZ_DISABLE_PARENTAL_CONTROLS=1,
6037 MOZ_DISABLE_PARENTAL_CONTROLS=)
6038 if test -n "$MOZ_DISABLE_PARENTAL_CONTROLS"; then
6039 AC_DEFINE(MOZ_DISABLE_PARENTAL_CONTROLS)
6042 AC_SUBST(MOZ_DISABLE_PARENTAL_CONTROLS)
6044 dnl ========================================================
6046 dnl = Module specific options
6048 dnl ========================================================
6049 MOZ_ARG_HEADER(Individual module options)
6051 dnl ========================================================
6052 dnl = Enable places (new history/bookmarks)
6053 dnl ========================================================
6054 MOZ_ARG_ENABLE_BOOL(places,
6055 [ --enable-places Enable 'places' bookmark/history implementation],
6058 if test -n "$MOZ_PLACES"; then
6059 AC_DEFINE(MOZ_PLACES)
6060 if test -z "$MOZ_MAIL_NEWS"; then
6065 if test "$MOZ_BUILD_APP" = "browser"; then
6066 AC_MSG_ERROR([Cannot build Firefox with --disable-places.])
6070 dnl ========================================================
6071 dnl = Disable feed handling components
6072 dnl ========================================================
6073 MOZ_ARG_DISABLE_BOOL(feeds,
6074 [ --disable-feeds Disable feed handling and processing components],
6077 if test -n "$MOZ_FEEDS"; then
6078 AC_DEFINE(MOZ_FEEDS)
6080 if test "$MOZ_BUILD_APP" = "browser"; then
6081 AC_MSG_ERROR([Cannot build Firefox with --disable-feeds.])
6085 dnl ========================================================
6086 dnl = Enable mozStorage
6087 dnl ========================================================
6088 dnl Implicitly enabled by default if building calendar or places
6089 MOZ_ARG_ENABLE_BOOL(storage,
6090 [ --enable-storage Enable mozStorage module and related components],
6093 if test -n "$MOZ_STORAGE"; then
6094 AC_DEFINE(MOZ_STORAGE)
6097 dnl ========================================================
6098 dnl Check for sqlite
6099 dnl ========================================================
6102 MOZ_ARG_ENABLE_BOOL(system-sqlite,
6103 [ --enable-system-sqlite Use system sqlite (located with pkgconfig)],
6104 MOZ_NATIVE_SQLITE=1,
6105 MOZ_NATIVE_SQLITE= )
6107 if test -z "$MOZ_NATIVE_SQLITE"
6110 SQLITE_LIBS='$(call EXPAND_LIBNAME_PATH,sqlite3,$(DIST)/lib)'
6112 PKG_CHECK_MODULES(SQLITE, sqlite3 >= $SQLITE_VERSION)
6115 AC_SUBST(MOZ_NATIVE_SQLITE)
6117 dnl ========================================================
6118 dnl = Enable help viewer (off by default)
6119 dnl ========================================================
6120 MOZ_ARG_ENABLE_BOOL(help-viewer,
6121 [ --enable-help-viewer Enable help viewer],
6124 if test -n "$MOZ_HELP_VIEWER"; then
6125 AC_DEFINE(MOZ_HELP_VIEWER)
6127 AC_SUBST(MOZ_HELP_VIEWER)
6128 if test "$MOZ_BUILD_APP" = "browser" -a -n "$MOZ_HELP_VIEWER"; then
6129 AC_MSG_ERROR([Cannot build Firefox with --enable-help-viewer.])
6132 dnl ========================================================
6133 dnl = Enable safe browsing (anti-phishing)
6134 dnl ========================================================
6135 MOZ_ARG_ENABLE_BOOL(safe-browsing,
6136 [ --enable-safe-browsing Enable safe browsing (anti-phishing) implementation],
6137 MOZ_SAFE_BROWSING=1,
6138 MOZ_SAFE_BROWSING= )
6139 if test -n "$MOZ_SAFE_BROWSING"; then
6140 AC_DEFINE(MOZ_SAFE_BROWSING)
6142 AC_SUBST(MOZ_SAFE_BROWSING)
6144 dnl ========================================================
6145 dnl = Enable faststart component
6146 dnl ========================================================
6147 MOZ_ARG_ENABLE_BOOL(faststart,
6148 [ --enable-faststart Enable the faststart component],
6151 if test -n "$MOZ_FASTSTART"; then
6152 AC_DEFINE(MOZ_FASTSTART)
6154 AC_SUBST(MOZ_FASTSTART)
6156 dnl ========================================================
6157 dnl = Enable url-classifier
6158 dnl ========================================================
6159 dnl Implicitly enabled by default if building with safe-browsing
6160 if test -n "$MOZ_SAFE_BROWSING"; then
6161 MOZ_URL_CLASSIFIER=1
6163 MOZ_ARG_ENABLE_BOOL(url-classifier,
6164 [ --enable-url-classifier Enable url classifier module],
6165 MOZ_URL_CLASSIFIER=1,
6166 MOZ_URL_CLASSIFIER= )
6167 if test -n "$MOZ_URL_CLASSIFIER"; then
6168 AC_DEFINE(MOZ_URL_CLASSIFIER)
6170 AC_SUBST(MOZ_URL_CLASSIFIER)
6172 dnl ========================================================
6173 dnl = Disable zipwriter
6174 dnl ========================================================
6175 MOZ_ARG_DISABLE_BOOL(zipwriter,
6176 [ --disable-zipwriter Disable zipwriter component],
6179 AC_SUBST(MOZ_ZIPWRITER)
6181 dnl ========================================================
6182 dnl = Hildon and OSSO checks
6183 dnl ========================================================
6184 PKG_CHECK_MODULES(LIBHILDONMIME,libhildonmime,
6185 MOZ_PLATFORM_HILDON=1,
6186 MOZ_PLATFORM_HILDON=)
6187 if test $MOZ_PLATFORM_HILDON; then
6188 AC_DEFINE(MOZ_PLATFORM_HILDON)
6189 X11_COMPOSITED_PLUGINS="yes"
6191 AC_SUBST(LIBHILDONMIME_CFLAGS)
6192 AC_SUBST(LIBHILDONMIME_LIBS)
6194 if test "$X11_COMPOSITED_PLUGINS" = "yes"; then
6195 dnl if we have Xcomposite we should also have Xdamage and Xfixes
6196 AC_CHECK_HEADERS([X11/extensions/Xdamage.h], [],
6197 [AC_MSG_ERROR([Couldn't find X11/extentsions/Xdamage.h which is required for composited plugins.])])
6198 AC_CHECK_LIB(Xcomposite, XCompositeRedirectWindow, [XCOMPOSITE_LIBS="-lXcomposite -lXdamage -lXfixes"],
6199 [MISSING_X="$MISSING_X -lXcomposite"], $XLIBS)
6201 AC_SUBST(XCOMPOSITE_LIBS)
6203 PKG_CHECK_MODULES(LIBOSSO,libosso,
6207 if test $NS_OSSO; then
6208 if test -z "$MOZ_ENABLE_DBUS"; then
6209 AC_MSG_ERROR([DBus is required when building for OSSO])
6212 MOZ_GFX_OPTIMIZE_MOBILE=1
6214 AC_SUBST(LIBOSSO_CFLAGS)
6215 AC_SUBST(LIBOSSO_LIBS)
6217 dnl ========================================================
6218 dnl = faststripe theme
6219 dnl ========================================================
6220 MOZ_ARG_ENABLE_BOOL(faststripe,
6221 [ --enable-faststripe Use faststripe theme],
6222 MOZ_THEME_FASTSTRIPE=1,
6223 MOZ_THEME_FASTSTRIPE= )
6224 AC_SUBST(MOZ_THEME_FASTSTRIPE)
6226 dnl ========================================================
6228 dnl = Feature options that require extra sources to be pulled
6230 dnl ========================================================
6231 dnl MOZ_ARG_HEADER(Features that require extra sources)
6233 dnl ========================================================
6235 dnl = Debugging Options
6237 dnl ========================================================
6238 MOZ_ARG_HEADER(Debugging and Optimizations)
6240 dnl ========================================================
6241 dnl = Disable building with debug info.
6242 dnl = Debugging is OFF by default
6243 dnl ========================================================
6244 if test -z "$MOZ_DEBUG_FLAGS"
6248 if test "$GNU_CC"; then
6249 GCC_VERSION=`$CC -v 2>&1 | awk '/version/ { print $3 }'`
6250 case "$GCC_VERSION" in
6255 MOZ_DEBUG_FLAGS="-g"
6259 MOZ_DEBUG_FLAGS="-g"
6263 MOZ_DEBUG_FLAGS="-g"
6268 MOZ_ARG_ENABLE_STRING(debug,
6269 [ --enable-debug[=DBG] Enable building with developer debug info
6270 (Using compiler flags DBG)],
6271 [ if test "$enableval" != "no"; then
6273 if test -n "$enableval" && test "$enableval" != "yes"; then
6274 MOZ_DEBUG_FLAGS=`echo $enableval | sed -e 's|\\\ | |g'`
6281 MOZ_DEBUG_ENABLE_DEFS="-DDEBUG -D_DEBUG"
6282 case "${target_os}" in
6284 MOZ_DEBUG_ENABLE_DEFS="$MOZ_DEBUG_ENABLE_DEFS -DDEBUG_${USER}"
6286 msvc*|mks*|cygwin*|mingw*|os2*|wince*)
6287 MOZ_DEBUG_ENABLE_DEFS="$MOZ_DEBUG_ENABLE_DEFS -DDEBUG_`echo ${USERNAME} | sed -e 's| |_|g'`"
6290 MOZ_DEBUG_ENABLE_DEFS="$MOZ_DEBUG_ENABLE_DEFS -DDEBUG_`$WHOAMI`"
6293 MOZ_DEBUG_ENABLE_DEFS="$MOZ_DEBUG_ENABLE_DEFS -DTRACING"
6295 MOZ_DEBUG_DISABLE_DEFS="-DNDEBUG -DTRIMMED"
6297 if test -n "$MOZ_DEBUG"; then
6298 AC_MSG_CHECKING([for valid debug flags])
6299 _SAVE_CFLAGS=$CFLAGS
6300 CFLAGS="$CFLAGS $MOZ_DEBUG_FLAGS"
6301 AC_TRY_COMPILE([#include <stdio.h>],
6302 [printf("Hello World\n");],
6305 AC_MSG_RESULT([$_results])
6306 if test "$_results" = "no"; then
6307 AC_MSG_ERROR([These compiler flags are invalid: $MOZ_DEBUG_FLAGS])
6309 CFLAGS=$_SAVE_CFLAGS
6312 dnl ========================================================
6313 dnl enable mobile optimizations
6314 dnl ========================================================
6315 MOZ_ARG_ENABLE_BOOL(mobile-optimize,
6316 [ --enable-mobile-optimize Enable mobile optimizations],
6317 MOZ_GFX_OPTIMIZE_MOBILE=1)
6319 AC_SUBST(MOZ_GFX_OPTIMIZE_MOBILE)
6321 if test "$MOZ_GFX_OPTIMIZE_MOBILE"; then
6322 AC_DEFINE(MOZ_GFX_OPTIMIZE_MOBILE)
6325 dnl ========================================================
6326 dnl = Enable code optimization. ON by default.
6327 dnl ========================================================
6328 if test -z "$MOZ_OPTIMIZE_FLAGS"; then
6329 MOZ_OPTIMIZE_FLAGS="-O"
6332 MOZ_ARG_ENABLE_STRING(optimize,
6333 [ --disable-optimize Disable compiler optimization
6334 --enable-optimize=[OPT] Specify compiler optimization flags [OPT=-O]],
6335 [ if test "$enableval" != "no"; then
6337 if test -n "$enableval" && test "$enableval" != "yes"; then
6338 MOZ_OPTIMIZE_FLAGS=`echo "$enableval" | sed -e 's|\\\ | |g'`
6343 fi ], MOZ_OPTIMIZE=1)
6345 if test "$COMPILE_ENVIRONMENT"; then
6346 if test -n "$MOZ_OPTIMIZE"; then
6347 AC_MSG_CHECKING([for valid optimization flags])
6348 _SAVE_CFLAGS=$CFLAGS
6349 CFLAGS="$CFLAGS $MOZ_OPTIMIZE_FLAGS"
6350 AC_TRY_COMPILE([#include <stdio.h>],
6351 [printf("Hello World\n");],
6354 AC_MSG_RESULT([$_results])
6355 if test "$_results" = "no"; then
6356 AC_MSG_ERROR([These compiler flags are invalid: $MOZ_OPTIMIZE_FLAGS])
6358 CFLAGS=$_SAVE_CFLAGS
6360 fi # COMPILE_ENVIRONMENT
6362 AC_SUBST(MOZ_OPTIMIZE)
6363 AC_SUBST(MOZ_OPTIMIZE_FLAGS)
6364 AC_SUBST(MOZ_OPTIMIZE_LDFLAGS)
6365 AC_SUBST(MOZ_OPTIMIZE_SIZE_TWEAK)
6367 dnl ========================================================
6368 dnl = Enable/disable debug for specific modules only
6369 dnl = module names beginning with ^ will be disabled
6370 dnl ========================================================
6371 MOZ_ARG_ENABLE_STRING(debug-modules,
6372 [ --enable-debug-modules Enable/disable debug info for specific modules],
6373 [ MOZ_DEBUG_MODULES=`echo $enableval| sed 's/,/ /g'` ] )
6375 dnl ========================================================
6376 dnl = Enable/disable generation of debugger info for specific modules only
6377 dnl = the special module name ALL_MODULES can be used to denote all modules
6378 dnl = module names beginning with ^ will be disabled
6379 dnl ========================================================
6380 MOZ_ARG_ENABLE_STRING(debugger-info-modules,
6381 [ --enable-debugger-info-modules
6382 Enable/disable debugger info for specific modules],
6383 [ for i in `echo $enableval | sed 's/,/ /g'`; do
6384 dnl note that the list of module names is reversed as it is copied
6385 dnl this is important, as it will allow config.mk to interpret stuff like
6386 dnl "^ALL_MODULES xpcom" properly
6387 if test "$i" = "no"; then
6390 if test "$i" = "yes"; then
6393 MOZ_DBGRINFO_MODULES="$i $MOZ_DBGRINFO_MODULES";
6396 dnl ========================================================
6397 dnl Disable runtime logging checks
6398 dnl ========================================================
6399 MOZ_ARG_DISABLE_BOOL(logging,
6400 [ --disable-logging Disable logging facilities],
6401 NS_DISABLE_LOGGING=1,
6402 NS_DISABLE_LOGGING= )
6403 if test "$NS_DISABLE_LOGGING"; then
6404 AC_DEFINE(NS_DISABLE_LOGGING)
6406 AC_DEFINE(MOZ_LOGGING)
6409 dnl ========================================================
6410 dnl = dnl This will enable logging of addref, release, ctor, dtor.
6411 dnl ========================================================
6412 _ENABLE_LOGREFCNT=42
6413 MOZ_ARG_ENABLE_BOOL(logrefcnt,
6414 [ --enable-logrefcnt Enable logging of refcounts (default=debug) ],
6415 _ENABLE_LOGREFCNT=1,
6416 _ENABLE_LOGREFCNT= )
6417 if test "$_ENABLE_LOGREFCNT" = "1"; then
6418 AC_DEFINE(FORCE_BUILD_REFCNT_LOGGING)
6419 elif test -z "$_ENABLE_LOGREFCNT"; then
6420 AC_DEFINE(NO_BUILD_REFCNT_LOGGING)
6423 dnl ========================================================
6424 dnl = Enable trace malloc
6425 dnl ========================================================
6426 NS_TRACE_MALLOC=${MOZ_TRACE_MALLOC}
6427 MOZ_ARG_ENABLE_BOOL(trace-malloc,
6428 [ --enable-trace-malloc Enable malloc tracing],
6431 if test "$NS_TRACE_MALLOC"; then
6432 # Please, Mr. Linker Man, don't take away our symbol names
6433 MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS=
6435 AC_DEFINE(NS_TRACE_MALLOC)
6437 AC_SUBST(NS_TRACE_MALLOC)
6439 dnl ========================================================
6440 dnl = Enable jemalloc
6441 dnl ========================================================
6442 MOZ_ARG_ENABLE_BOOL(jemalloc,
6443 [ --enable-jemalloc Replace memory allocator with jemalloc],
6447 if test "$NS_TRACE_MALLOC"; then
6451 if test "$MOZ_MEMORY"; then
6453 dnl Don't try to run compiler tests on Windows
6454 if test "$OS_ARCH" = "WINNT"; then
6455 if test -z "$HAVE_64BIT_OS"; then
6456 AC_DEFINE_UNQUOTED([MOZ_MEMORY_SIZEOF_PTR_2POW], 2)
6458 AC_DEFINE_UNQUOTED([MOZ_MEMORY_SIZEOF_PTR_2POW], 3)
6461 AC_CHECK_SIZEOF([int *], [4])
6462 case "${ac_cv_sizeof_int_p}" in
6464 AC_DEFINE_UNQUOTED([MOZ_MEMORY_SIZEOF_PTR_2POW], 2)
6467 AC_DEFINE_UNQUOTED([MOZ_MEMORY_SIZEOF_PTR_2POW], 3)
6470 AC_MSG_ERROR([Unexpected pointer size])
6475 AC_DEFINE(MOZ_MEMORY)
6476 if test "x$MOZ_DEBUG" = "x1"; then
6477 AC_DEFINE(MOZ_MEMORY_DEBUG)
6479 dnl The generic feature tests that determine how to compute ncpus are long and
6480 dnl complicated. Therefore, simply define special cpp variables for the
6481 dnl platforms we have special knowledge of.
6482 case "${target_os}" in
6484 AC_DEFINE(MOZ_MEMORY_DARWIN)
6487 AC_DEFINE(MOZ_MEMORY_BSD)
6490 AC_DEFINE(MOZ_MEMORY_LINUX)
6493 AC_DEFINE(MOZ_MEMORY_BSD)
6496 AC_DEFINE(MOZ_MEMORY_SOLARIS)
6498 msvc*|mks*|cygwin*|mingw*)
6499 AC_DEFINE(MOZ_MEMORY_WINDOWS)
6500 dnl This is sort of awful. Will revisit if we add support for more versions
6501 if test "$CC_VERSION" != "14.00.50727.762" -a "$CC_VERSION" != "15.00.30729.01"; then
6502 AC_MSG_ERROR([Building jemalloc requires exactly Visual C++ 2005 SP1 or 2008 SP1 currently.])
6504 if test -z "$WIN32_CRT_SRC_DIR"; then
6505 if test -z "$VCINSTALLDIR" -o ! -d "$VCINSTALLDIR"; then
6506 AC_MSG_ERROR([When building jemalloc, set WIN32_CRT_SRC_DIR to the path to the Visual C++ CRT source (usually VCINSTALLDIR\crt\src, but VCINSTALLDIR is not set, so I can't autodetect it for you).])
6508 WIN32_CRT_SRC_DIR="$VCINSTALLDIR\crt\src"
6512 case "${target_cpu}" in
6514 _WIN32_CRT_CPU=intel
6517 AC_MSG_ERROR([--enable-jemalloc not supported on ${target}])
6521 if test ! -d "$WIN32_CRT_SRC_DIR"; then
6522 AC_MSG_ERROR([Invalid Win32 CRT source directory: ${WIN32_CRT_SRC_DIR}])
6524 WIN32_CRT_SRC_DIR=`cd "$WIN32_CRT_SRC_DIR" && pwd -W`
6525 _objdir_win=`pwd -W`
6526 WIN32_CUSTOM_CRT_DIR="$_objdir_win/memory/jemalloc/crtsrc/build/$_WIN32_CRT_CPU"
6527 MOZ_MEMORY_LDFLAGS="-MANIFEST:NO -LIBPATH:\"$WIN32_CUSTOM_CRT_DIR\" -NODEFAULTLIB:msvcrt -NODEFAULTLIB:msvcrtd -NODEFAULTLIB:msvcprt -NODEFAULTLIB:msvcprtd -DEFAULTLIB:mozcrt19 -DEFAULTLIB:mozcpp19"
6528 dnl Also pass this to NSPR/NSS
6529 DLLFLAGS="$DLLFLAGS $MOZ_MEMORY_LDFLAGS"
6533 AC_DEFINE(MOZ_MEMORY_WINCE)
6534 AC_DEFINE(MOZ_MEMORY_WINDOWS)
6535 if test -z "$WINCE_WINDOWS_MOBILE"; then
6536 AC_DEFINE(MOZ_MEMORY_WINCE6)
6540 AC_MSG_ERROR([--enable-jemalloc not supported on ${target}])
6544 AC_SUBST(MOZ_MEMORY)
6545 AC_SUBST(MOZ_MEMORY_LDFLAGS)
6546 AC_SUBST(WIN32_CRT_SRC_DIR)
6547 dnl Need to set this for make because NSS doesn't have configure
6550 dnl ========================================================
6551 dnl = Use malloc wrapper lib
6552 dnl ========================================================
6553 MOZ_ARG_ENABLE_BOOL(wrap-malloc,
6554 [ --enable-wrap-malloc Wrap malloc calls (gnu linker only)],
6558 if test -n "$_WRAP_MALLOC"; then
6559 if test "$GNU_CC"; then
6560 WRAP_MALLOC_CFLAGS="${LDFLAGS} -Wl,--wrap -Wl,malloc -Wl,--wrap -Wl,free -Wl,--wrap -Wl,realloc -Wl,--wrap -Wl,__builtin_new -Wl,--wrap -Wl,__builtin_vec_new -Wl,--wrap -Wl,__builtin_delete -Wl,--wrap -Wl,__builtin_vec_delete -Wl,--wrap -Wl,PR_Free -Wl,--wrap -Wl,PR_Malloc -Wl,--wrap -Wl,PR_Calloc -Wl,--wrap -Wl,PR_Realloc"
6561 MKSHLIB='$(CXX) $(DSO_LDOPTS) $(WRAP_MALLOC_CFLAGS) -o $@'
6565 dnl ========================================================
6566 dnl = Location of malloc wrapper lib
6567 dnl ========================================================
6568 MOZ_ARG_WITH_STRING(wrap-malloc,
6569 [ --with-wrap-malloc=DIR Location of malloc wrapper library],
6570 WRAP_MALLOC_LIB=$withval)
6572 dnl ========================================================
6574 dnl ========================================================
6575 MOZ_ARG_ENABLE_BOOL(tracevis,
6576 [ --enable-tracevis Enable TraceVis tracing tool (default=no)],
6579 if test -n "$MOZ_TRACEVIS"; then
6580 AC_DEFINE(MOZ_TRACEVIS)
6583 dnl ========================================================
6585 dnl ========================================================
6586 MOZ_ARG_ENABLE_BOOL(valgrind,
6587 [ --enable-valgrind Enable Valgrind integration hooks (default=no)],
6590 if test -n "$MOZ_VALGRIND"; then
6591 AC_CHECK_HEADER([valgrind/valgrind.h], [],
6593 [--enable-valgrind specified but Valgrind is not installed]))
6594 AC_DEFINE(MOZ_VALGRIND)
6597 dnl ========================================================
6599 dnl ========================================================
6600 MOZ_ARG_ENABLE_BOOL(jprof,
6601 [ --enable-jprof Enable jprof profiling tool (needs mozilla/tools/jprof)],
6604 if test -n "$MOZ_JPROF"; then
6605 AC_DEFINE(MOZ_JPROF)
6608 dnl ========================================================
6610 dnl ========================================================
6611 MOZ_ARG_ENABLE_BOOL(shark,
6612 [ --enable-shark Enable shark remote profiling (needs CHUD framework)],
6615 if test -n "$MOZ_SHARK"; then
6616 AC_DEFINE(MOZ_SHARK)
6619 dnl ========================================================
6621 dnl ========================================================
6622 MOZ_ARG_ENABLE_BOOL(callgrind,
6623 [ --enable-callgrind Enable callgrind profiling],
6626 if test -n "$MOZ_CALLGRIND"; then
6627 AC_DEFINE(MOZ_CALLGRIND)
6630 dnl ========================================================
6632 dnl ========================================================
6633 MOZ_ARG_ENABLE_BOOL(vtune,
6634 [ --enable-vtune Enable vtune profiling],
6637 if test -n "$MOZ_VTUNE"; then
6638 AC_DEFINE(MOZ_VTUNE)
6641 dnl ========================================================
6642 dnl Zealous JavaScript GC
6643 dnl ========================================================
6644 MOZ_ARG_ENABLE_BOOL(gczeal,
6645 [ --enable-gczeal Enable zealous JavaScript GCing],
6648 if test -n "$JS_GC_ZEAL"; then
6649 AC_DEFINE(JS_GC_ZEAL)
6652 dnl ========================================================
6653 dnl = Enable static checking using gcc-dehydra
6654 dnl ========================================================
6656 MOZ_ARG_WITH_STRING(static-checking,
6657 [ --with-static-checking=path/to/gcc_dehydra.so
6658 Enable static checking of code using GCC-dehydra],
6659 DEHYDRA_PATH=$withval,
6662 if test -n "$DEHYDRA_PATH"; then
6663 if test ! -f "$DEHYDRA_PATH"; then
6664 AC_MSG_ERROR([The dehydra plugin is not at the specified path.])
6666 AC_DEFINE(NS_STATIC_CHECKING)
6668 AC_SUBST(DEHYDRA_PATH)
6670 dnl ========================================================
6671 dnl = Enable stripping of libs & executables
6672 dnl ========================================================
6673 MOZ_ARG_ENABLE_BOOL(strip,
6674 [ --enable-strip Enable stripping of libs & executables ],
6678 dnl ========================================================
6679 dnl = Enable stripping of libs & executables when packaging
6680 dnl ========================================================
6681 MOZ_ARG_ENABLE_BOOL(install-strip,
6682 [ --enable-install-strip Enable stripping of libs & executables when packaging ],
6686 dnl ========================================================
6687 dnl = --enable-elf-dynstr-gc
6688 dnl ========================================================
6689 MOZ_ARG_ENABLE_BOOL(elf-dynstr-gc,
6690 [ --enable-elf-dynstr-gc Enable elf dynstr garbage collector (opt builds only)],
6691 USE_ELF_DYNSTR_GC=1,
6692 USE_ELF_DYNSTR_GC= )
6694 dnl ========================================================
6696 dnl = Profiling and Instrumenting
6698 dnl ========================================================
6699 MOZ_ARG_HEADER(Profiling and Instrumenting)
6701 dnl ========================================================
6702 dnl = Enable timeline service, which provides lightweight
6703 dnl = instrumentation of mozilla for performance measurement.
6704 dnl = Timeline is off by default.
6705 dnl ========================================================
6706 MOZ_ARG_ENABLE_BOOL(timeline,
6707 [ --enable-timeline Enable timeline services ],
6710 if test -n "$MOZ_TIMELINE"; then
6711 AC_DEFINE(MOZ_TIMELINE)
6714 dnl ========================================================
6715 dnl Turn on reflow counting
6716 dnl ========================================================
6717 MOZ_ARG_ENABLE_BOOL(reflow-perf,
6718 [ --enable-reflow-perf Enable reflow performance tracing],
6721 if test -n "$MOZ_REFLOW_PERF"; then
6722 AC_DEFINE(MOZ_REFLOW_PERF)
6725 dnl ========================================================
6726 dnl Enable code size metrics.
6727 dnl ========================================================
6728 MOZ_ARG_ENABLE_BOOL(codesighs,
6729 [ --enable-codesighs Enable code size analysis tools],
6730 _ENABLE_CODESIGHS=1,
6731 _ENABLE_CODESIGHS= )
6732 if test -n "$_ENABLE_CODESIGHS"; then
6733 if test -d $srcdir/tools/codesighs; then
6736 AC_MSG_ERROR([Codesighs directory $srcdir/tools/codesighs required.])
6740 MOZ_ARG_ENABLE_BOOL(insure,
6741 [ --enable-insure Enable insure++ instrumentation (linux only)],
6744 if test -n "$_ENABLE_INSURE"; then
6748 MOZ_INSURE_EXCLUDE_DIRS="config"
6751 MOZ_ARG_WITH_STRING(insure-dirs,
6752 [ --with-insure-dirs=DIRS
6753 Dirs to instrument with insure ],
6754 MOZ_INSURE_DIRS=$withval )
6756 MOZ_ARG_WITH_STRING(insure-exclude-dirs,
6757 [ --with-insure-exclude-dirs=DIRS
6758 Dirs to not instrument with insure ],
6759 MOZ_INSURE_EXCLUDE_DIRS="config $withval" )
6761 dnl ========================================================
6762 dnl = Support for Quantify (Windows)
6763 dnl ========================================================
6764 MOZ_ARG_ENABLE_BOOL(quantify,
6765 [ --enable-quantify Enable Quantify support (Windows only) ],
6769 dnl ========================================================
6770 dnl = Support for demangling undefined symbols
6771 dnl ========================================================
6772 if test -z "$SKIP_LIBRARY_CHECKS"; then
6775 AC_CHECK_FUNCS(__cxa_demangle, HAVE_DEMANGLE=1, HAVE_DEMANGLE=)
6779 # Demangle only for debug or trace-malloc builds
6780 MOZ_DEMANGLE_SYMBOLS=
6781 if test "$HAVE_DEMANGLE" -a "$HAVE_GCC3_ABI" && test "$MOZ_DEBUG" -o "$NS_TRACE_MALLOC"; then
6782 MOZ_DEMANGLE_SYMBOLS=1
6783 AC_DEFINE(MOZ_DEMANGLE_SYMBOLS)
6785 AC_SUBST(MOZ_DEMANGLE_SYMBOLS)
6787 dnl ========================================================
6788 dnl = Support for gcc stack unwinding (from gcc 3.3)
6789 dnl ========================================================
6790 if test "$HAVE_GCC3_ABI" && test -z "$SKIP_LIBRARY_CHECKS"; then
6791 AC_CHECK_HEADER(unwind.h, AC_CHECK_FUNCS(_Unwind_Backtrace))
6794 dnl ========================================================
6798 dnl ========================================================
6799 MOZ_ARG_HEADER(Misc. Options)
6801 dnl ========================================================
6802 dnl update xterm title
6803 dnl ========================================================
6804 MOZ_ARG_ENABLE_BOOL(xterm-updates,
6805 [ --enable-xterm-updates Update XTERM titles with current command.],
6809 dnl =========================================================
6811 dnl =========================================================
6812 MOZ_ARG_ENABLE_STRING([chrome-format],
6813 [ --enable-chrome-format=jar|flat|both|symlink
6814 Select FORMAT of chrome files (default=jar)],
6815 MOZ_CHROME_FILE_FORMAT=`echo $enableval | tr A-Z a-z`)
6817 if test -z "$MOZ_CHROME_FILE_FORMAT"; then
6818 MOZ_CHROME_FILE_FORMAT=jar
6821 if test "$MOZ_CHROME_FILE_FORMAT" != "jar" &&
6822 test "$MOZ_CHROME_FILE_FORMAT" != "flat" &&
6823 test "$MOZ_CHROME_FILE_FORMAT" != "symlink" &&
6824 test "$MOZ_CHROME_FILE_FORMAT" != "both"; then
6825 AC_MSG_ERROR([--enable-chrome-format must be set to either jar, flat, both, or symlink])
6828 if test "$MOZ_CHROME_FILE_FORMAT" = "jar"; then
6829 AC_DEFINE(MOZ_CHROME_FILE_FORMAT_JAR)
6831 dnl ========================================================
6832 dnl = Define default location for MOZILLA_FIVE_HOME
6833 dnl ========================================================
6834 MOZ_ARG_WITH_STRING(default-mozilla-five-home,
6835 [ --with-default-mozilla-five-home
6836 Set the default value for MOZILLA_FIVE_HOME],
6837 [ val=`echo $withval`
6838 AC_DEFINE_UNQUOTED(MOZ_DEFAULT_MOZILLA_FIVE_HOME,"$val") ])
6840 dnl ========================================================
6841 dnl = Location of the mozilla user directory (default is ~/.mozilla).],
6842 dnl ========================================================
6843 MOZ_ARG_WITH_STRING(user-appdir,
6844 [ --with-user-appdir=DIR Set user-specific appdir (default=.mozilla)],
6845 [ val=`echo $withval`
6846 if echo "$val" | grep "\/" >/dev/null; then
6847 AC_MSG_ERROR("Homedir must be single relative path.")
6852 AC_DEFINE_UNQUOTED(MOZ_USER_DIR,"$MOZ_USER_DIR")
6854 dnl ========================================================
6855 dnl = Doxygen configuration
6856 dnl ========================================================
6857 dnl Use commas to specify multiple dirs to this arg
6858 MOZ_DOC_INPUT_DIRS='./dist/include ./dist/idl'
6859 MOZ_ARG_WITH_STRING(doc-input-dirs,
6860 [ --with-doc-input-dirs=DIRS
6861 Header/idl dirs to create docs from],
6862 [ MOZ_DOC_INPUT_DIRS=`echo "$withval" | sed "s/,/ /g"` ] )
6863 AC_SUBST(MOZ_DOC_INPUT_DIRS)
6865 dnl Use commas to specify multiple dirs to this arg
6866 MOZ_DOC_INCLUDE_DIRS='./dist/include ./dist/include/nspr'
6867 MOZ_ARG_WITH_STRING(doc-include-dirs,
6868 [ --with-doc-include-dirs=DIRS
6869 Include dirs to preprocess doc headers],
6870 [ MOZ_DOC_INCLUDE_DIRS=`echo "$withval" | sed "s/,/ /g"` ] )
6871 AC_SUBST(MOZ_DOC_INCLUDE_DIRS)
6873 MOZ_DOC_OUTPUT_DIR='./dist/docs'
6874 MOZ_ARG_WITH_STRING(doc-output-dir,
6875 [ --with-doc-output-dir=DIR
6876 Dir to generate docs into],
6877 [ MOZ_DOC_OUTPUT_DIR=$withval ] )
6878 AC_SUBST(MOZ_DOC_OUTPUT_DIR)
6880 if test -z "$SKIP_COMPILER_CHECKS"; then
6881 dnl ========================================================
6883 dnl = Compiler Options
6885 dnl ========================================================
6886 MOZ_ARG_HEADER(Compiler Options)
6888 dnl ========================================================
6889 dnl Check for gcc -pipe support
6890 dnl ========================================================
6891 AC_MSG_CHECKING([for gcc -pipe support])
6892 if test -n "$GNU_CC" && test -n "$GNU_CXX" && test -n "$GNU_AS"; then
6893 echo '#include <stdio.h>' > dummy-hello.c
6894 echo 'int main() { printf("Hello World\n"); exit(0); }' >> dummy-hello.c
6895 ${CC} -S dummy-hello.c -o dummy-hello.s 2>&5
6896 cat dummy-hello.s 2> /dev/null | ${AS_BIN} -o dummy-hello.S - 2>&5
6897 if test $? = 0; then
6902 if test "$_res_as_stdin" = "yes"; then
6903 _SAVE_CFLAGS=$CFLAGS
6904 CFLAGS="$CFLAGS -pipe"
6905 AC_TRY_COMPILE( [ #include <stdio.h> ],
6906 [printf("Hello World\n");],
6907 [_res_gcc_pipe="yes"],
6908 [_res_gcc_pipe="no"] )
6909 CFLAGS=$_SAVE_CFLAGS
6911 if test "$_res_as_stdin" = "yes" && test "$_res_gcc_pipe" = "yes"; then
6913 CFLAGS="$CFLAGS -pipe"
6914 CXXFLAGS="$CXXFLAGS -pipe"
6918 rm -f dummy-hello.c dummy-hello.s dummy-hello.S dummy-hello a.out
6919 AC_MSG_RESULT([$_res])
6924 dnl pass -Wno-long-long to the compiler
6925 MOZ_ARG_ENABLE_BOOL(long-long-warning,
6926 [ --enable-long-long-warning
6927 Warn about use of non-ANSI long long type],
6928 _IGNORE_LONG_LONG_WARNINGS=,
6929 _IGNORE_LONG_LONG_WARNINGS=1)
6931 if test "$_IGNORE_LONG_LONG_WARNINGS"; then
6932 _SAVE_CFLAGS="$CFLAGS"
6933 CFLAGS="$CFLAGS ${_COMPILER_PREFIX}-Wno-long-long"
6934 AC_MSG_CHECKING([whether compiler supports -Wno-long-long])
6935 AC_TRY_COMPILE([], [return(0);],
6936 [ _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} ${_COMPILER_PREFIX}-Wno-long-long"
6937 _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} ${_COMPILER_PREFIX}-Wno-long-long"
6938 result="yes" ], result="no")
6939 AC_MSG_RESULT([$result])
6940 CFLAGS="$_SAVE_CFLAGS"
6943 dnl ========================================================
6944 dnl Profile guided optimization
6945 dnl ========================================================
6946 dnl Test for profiling options
6947 dnl Under gcc 3.3, use -fprofile-arcs/-fbranch-probabilities
6948 dnl Under gcc 3.4+, use -fprofile-generate/-fprofile-use
6950 dnl Provide a switch to disable PGO even when called via profiledbuild.
6951 MOZ_ARG_DISABLE_BOOL(profile-guided-optimization,
6952 [ --disable-profile-guided-optimization
6953 Don't build with PGO even if called via make profiledbuild],
6954 MOZ_PROFILE_GUIDED_OPTIMIZE_DISABLE=1,
6955 MOZ_PROFILE_GUIDED_OPTIMIZE_DISABLE=)
6957 AC_SUBST(MOZ_PROFILE_GUIDED_OPTIMIZE_DISABLE)
6959 _SAVE_CFLAGS="$CFLAGS"
6960 CFLAGS="$CFLAGS -fprofile-generate"
6962 AC_MSG_CHECKING([whether C compiler supports -fprofile-generate])
6963 AC_TRY_COMPILE([], [return 0;],
6964 [ PROFILE_GEN_CFLAGS="-fprofile-generate"
6965 result="yes" ], result="no")
6966 AC_MSG_RESULT([$result])
6968 if test $result = "yes"; then
6969 PROFILE_GEN_LDFLAGS="-fprofile-generate"
6970 PROFILE_USE_CFLAGS="-fprofile-use"
6971 PROFILE_USE_LDFLAGS="-fprofile-use"
6973 CFLAGS="$_SAVE_CFLAGS -fprofile-arcs"
6974 AC_MSG_CHECKING([whether C compiler supports -fprofile-arcs])
6975 AC_TRY_COMPILE([], [return 0;],
6976 [ PROFILE_GEN_CFLAGS="-fprofile-arcs"
6977 result="yes" ], result="no")
6978 AC_MSG_RESULT([$result])
6979 if test $result = "yes"; then
6980 PROFILE_USE_CFLAGS="-fbranch-probabilities"
6982 # don't really care, this is an old GCC
6983 PROFILE_GEN_LDFLAGS=
6984 PROFILE_USE_LDFLAGS=
6987 CFLAGS="$_SAVE_CFLAGS"
6989 if test -n "$INTEL_CC"; then
6990 PROFILE_GEN_CFLAGS="-prof-gen -prof-dir ."
6991 PROFILE_GEN_LDFLAGS=
6992 PROFILE_USE_CFLAGS="-prof-use -prof-dir ."
6993 PROFILE_USE_LDFLAGS=
6996 dnl Sun Studio on Solaris
6997 if test "$SOLARIS_SUNPRO_CC"; then
6998 PROFILE_GEN_CFLAGS="-xprofile=collect:$_objdir/$enable_application"
6999 PROFILE_GEN_LDFLAGS="-xprofile=collect:$_objdir/$enable_application"
7000 if test "$CPU_ARCH" != "sparc"; then
7001 PROFILE_USE_CFLAGS="-xprofile=use:$_objdir/$enable_application"
7002 PROFILE_USE_LDFLAGS="-xprofile=use:$_objdir/$enable_application"
7004 PROFILE_USE_CFLAGS="-xlinkopt=2 -xprofile=use:$_objdir/$enable_application"
7005 PROFILE_USE_LDFLAGS="-xlinkopt=2 -xprofile=use:$_objdir/$enable_application"
7009 AC_SUBST(PROFILE_GEN_CFLAGS)
7010 AC_SUBST(PROFILE_GEN_LDFLAGS)
7011 AC_SUBST(PROFILE_USE_CFLAGS)
7012 AC_SUBST(PROFILE_USE_LDFLAGS)
7016 dnl ========================================================
7017 dnl Test for -pedantic bustage
7018 dnl ========================================================
7019 MOZ_ARG_DISABLE_BOOL(pedantic,
7020 [ --disable-pedantic Issue all warnings demanded by strict ANSI C ],
7022 if test "$_PEDANTIC"; then
7023 _SAVE_CXXFLAGS=$CXXFLAGS
7024 CXXFLAGS="$CXXFLAGS ${_WARNINGS_CXXFLAGS} ${_COMPILER_PREFIX}-pedantic"
7025 AC_MSG_CHECKING([whether C++ compiler has -pedantic long long bug])
7026 AC_TRY_COMPILE([$configure_static_assert_macros],
7027 [CONFIGURE_STATIC_ASSERT(sizeof(long long) == 8)],
7028 result="no", result="yes" )
7029 AC_MSG_RESULT([$result])
7030 CXXFLAGS="$_SAVE_CXXFLAGS"
7034 _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} ${_COMPILER_PREFIX}-pedantic"
7035 _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} ${_COMPILER_PREFIX}-pedantic"
7038 AC_MSG_ERROR([Your compiler appears to have a known bug where long long is miscompiled when using -pedantic. Reconfigure using --disable-pedantic. ])
7043 dnl ========================================================
7044 dnl Test for correct temporary object destruction order
7045 dnl ========================================================
7046 dnl We want to make sure the compiler follows the C++ spec here as
7047 dnl xpcom and the string classes depend on it (bug 235381).
7048 AC_MSG_CHECKING([for correct temporary object destruction order])
7049 AC_TRY_RUN([ class A {
7050 public: A(int& x) : mValue(x) {}
7052 operator char**() { return 0; }
7053 private: int& mValue;
7055 void func(char **arg) {}
7066 result="yes", result="no", result="maybe")
7067 AC_MSG_RESULT([$result])
7069 if test "$result" = "no"; then
7070 AC_MSG_ERROR([Your compiler does not follow the C++ specification for temporary object destruction order.])
7073 dnl ========================================================
7074 dnl Autoconf test for gcc 2.7.2.x (and maybe others?) so that we don't
7075 dnl provide non-const forms of the operator== for comparing nsCOMPtrs to
7076 dnl raw pointers in nsCOMPtr.h. (VC++ has the same bug.)
7077 dnl ========================================================
7078 _SAVE_CXXFLAGS=$CXXFLAGS
7079 CXXFLAGS="$CXXFLAGS ${_WARNINGS_CXXFLAGS}"
7080 AC_CACHE_CHECK(for correct overload resolution with const and templates,
7081 ac_nscap_nonconst_opeq_bug,
7090 template <class T, class U>
7091 int operator==(const Pointer<T>& rhs, U* lhs)
7093 return rhs.myPtr == lhs;
7096 template <class T, class U>
7097 int operator==(const Pointer<T>& rhs, const U* lhs)
7099 return rhs.myPtr == lhs;
7107 ac_nscap_nonconst_opeq_bug="no",
7108 ac_nscap_nonconst_opeq_bug="yes")])
7109 CXXFLAGS="$_SAVE_CXXFLAGS"
7111 if test "$ac_nscap_nonconst_opeq_bug" = "yes" ; then
7112 AC_DEFINE(NSCAP_DONT_PROVIDE_NONCONST_OPEQ)
7114 fi # SKIP_COMPILER_CHECKS
7116 dnl ========================================================
7118 dnl Should be smarter and check that the compiler does indeed have rtti
7119 dnl ========================================================
7120 MOZ_ARG_ENABLE_BOOL(cpp-rtti,
7121 [ --enable-cpp-rtti Enable C++ RTTI ],
7122 [ _MOZ_USE_RTTI=1 ],
7125 if test "$_MOZ_USE_RTTI"; then
7126 _MOZ_RTTI_FLAGS=$_MOZ_RTTI_FLAGS_ON
7128 _MOZ_RTTI_FLAGS=$_MOZ_RTTI_FLAGS_OFF
7131 AC_SUBST(_MOZ_RTTI_FLAGS_ON)
7133 dnl ========================================================
7134 dnl C++ exceptions (g++/egcs only - for now)
7135 dnl Should be smarter and check that the compiler does indeed have exceptions
7136 dnl ========================================================
7137 MOZ_ARG_ENABLE_BOOL(cpp-exceptions,
7138 [ --enable-cpp-exceptions Enable C++ exceptions ],
7139 [ _MOZ_CPP_EXCEPTIONS=1 ],
7140 [ _MOZ_CPP_EXCEPTIONS= ])
7142 if test "$_MOZ_CPP_EXCEPTIONS"; then
7143 _MOZ_EXCEPTIONS_FLAGS=$_MOZ_EXCEPTIONS_FLAGS_ON
7145 _MOZ_EXCEPTIONS_FLAGS=$_MOZ_EXCEPTIONS_FLAGS_OFF
7148 AC_SUBST(_MOZ_EXCEPTIONS_FLAGS_ON)
7150 # Irix & OSF native compilers do not like exception declarations
7151 # when exceptions are disabled
7152 if test -n "$MIPSPRO_CXX" -o -n "$COMPAQ_CXX" -o -n "$VACPP"; then
7153 AC_DEFINE(CPP_THROW_NEW, [])
7155 AC_DEFINE(CPP_THROW_NEW, [throw()])
7159 dnl ========================================================
7161 dnl = Build depencency options
7163 dnl ========================================================
7164 MOZ_ARG_HEADER(Build dependencies)
7166 dnl ========================================================
7167 dnl = Do not auto generate dependency info
7168 dnl ========================================================
7170 MOZ_ARG_DISABLE_BOOL(auto-deps,
7171 [ --disable-auto-deps Do not automatically generate dependency info],
7175 if test -n "$MOZ_AUTO_DEPS"; then
7176 dnl ========================================================
7177 dnl = Use mkdepend instead of $CC -MD for dependency generation
7178 dnl ========================================================
7180 MOZ_ARG_DISABLE_BOOL(md,
7181 [ --disable-md Do not use compiler-based dependencies ],
7184 [dnl Default is to turn on -MD if using GNU-compatible compilers
7185 if test "$GNU_CC" -a "$GNU_CXX" -a "$OS_ARCH" != "WINNT" -a "$OS_ARCH" != "WINCE"; then
7188 dnl Default is to use -xM if using Sun Studio on Solaris
7189 if test "$SOLARIS_SUNPRO_CC"; then
7192 if test "$_cpp_md_flag"; then
7194 if test "$OS_ARCH" = "OpenVMS"; then
7195 _DEPEND_CFLAGS='$(subst =, ,$(filter-out %/.pp,-MM=-MD=-MF=$(MDDEPDIR)/$(basename $(@F)).pp))'
7197 _DEPEND_CFLAGS='$(filter-out %/.pp,-Wp,-MD,$(MDDEPDIR)/$(basename $(@F)).pp)'
7199 dnl Sun Studio on Solaris use -xM instead of -MD, see config/rules.mk
7200 if test "$SOLARIS_SUNPRO_CC"; then
7205 dnl Don't override this for MSVC
7206 if test -z "$_WIN32_MSVC"; then
7207 _USE_CPP_INCLUDE_FLAG=
7208 _DEFINES_CFLAGS='$(ACDEFINES) -D_MOZILLA_CONFIG_H_ -DMOZILLA_CLIENT'
7209 _DEFINES_CXXFLAGS='$(ACDEFINES) -D_MOZILLA_CONFIG_H_ -DMOZILLA_CLIENT'
7214 AC_SUBST(MOZ_AUTO_DEPS)
7215 AC_SUBST(COMPILER_DEPEND)
7219 dnl ========================================================
7221 dnl = Static Build Options
7223 dnl ========================================================
7224 MOZ_ARG_HEADER(Static build options)
7226 MOZ_ARG_ENABLE_BOOL(static,
7227 [ --enable-static Enable building of internal static libs],
7228 BUILD_STATIC_LIBS=1,
7231 dnl Disable libxul in debug builds, but not for xulrunner.
7232 if test -n "$MOZ_DEBUG" -a "$MOZ_BUILD_APP" != "xulrunner"; then
7236 MOZ_ARG_ENABLE_BOOL(libxul,
7237 [ --enable-libxul Enable building of libxul],
7238 MOZ_ENABLE_LIBXUL=1,
7241 if test -n "$MOZ_STATIC_BUILD_UNSUPPORTED" -a -n "$BUILD_STATIC_LIBS"; then
7242 AC_MSG_ERROR([--enable-static is not supported for building $MOZ_APP_NAME. You probably want --enable-libxul.])
7245 if test -n "$MOZ_ENABLE_LIBXUL" -a -n "$BUILD_STATIC_LIBS"; then
7246 AC_MSG_ERROR([--enable-libxul is not compatible with --enable-static])
7249 AC_SUBST(LIBXUL_LIBS)
7251 if test -n "$MOZ_ENABLE_LIBXUL"; then
7252 XPCOM_LIBS="$LIBXUL_LIBS"
7253 AC_DEFINE(MOZ_ENABLE_LIBXUL)
7255 if test -n "$BUILD_STATIC_LIBS"; then
7256 AC_DEFINE(MOZ_STATIC_BUILD)
7258 XPCOM_LIBS="$DYNAMIC_XPCOM_LIBS"
7261 dnl ========================================================
7263 dnl = Standalone module options
7265 dnl ========================================================
7266 MOZ_ARG_HEADER(Standalone module options (Not for building Mozilla))
7268 dnl Check for GLib and libIDL.
7269 dnl ========================================================
7270 case "$target_os" in
7271 msvc*|mks*|cygwin*|mingw*|wince*)
7272 SKIP_IDL_CHECK="yes"
7279 if test -z "$COMPILE_ENVIRONMENT"; then
7280 SKIP_IDL_CHECK="yes"
7283 dnl = Allow users to disable libIDL checking for standalone modules
7284 MOZ_ARG_WITHOUT_BOOL(libIDL,
7285 [ --without-libIDL Skip check for libIDL (standalone modules only)],
7286 SKIP_IDL_CHECK="yes")
7288 if test "$SKIP_IDL_CHECK" = "no"
7291 if test "$MACOS_SDK_DIR"; then
7292 dnl xpidl, and therefore libIDL, is only needed on the build host.
7293 dnl Don't build it against the SDK, as that causes problems.
7294 _MACSAVE_CFLAGS="$CFLAGS"
7295 _MACSAVE_LIBS="$LIBS"
7296 _MACSAVE_LDFLAGS="$LDFLAGS"
7297 _MACSAVE_NEXT_ROOT="$NEXT_ROOT"
7299 CFLAGS=`echo $CFLAGS|sed -E -e "s%((-I|-isystem )${MACOS_SDK_DIR}/usr/(include|lib/gcc)[^ ]*)|-F${MACOS_SDK_DIR}(/System)?/Library/Frameworks[^ ]*|-nostdinc[^ ]*|-isysroot ${MACOS_SDK_DIR}%%g"`
7300 LIBS=`echo $LIBS|sed -e "s?-L${MACOS_SDK_DIR}/usr/lib[^ ]*??g"`
7301 LDFLAGS=`echo $LDFLAGS|sed -e "s?-Wl,-syslibroot,${MACOS_SDK_DIR}??g"`
7306 if test "$MOZ_ENABLE_GTK2"; then
7307 PKG_CHECK_MODULES(LIBIDL, libIDL-2.0 >= 0.8.0 glib-2.0 gobject-2.0, _LIBIDL_FOUND=1,_LIBIDL_FOUND=)
7309 dnl if no gtk/libIDL1 or gtk2/libIDL2 combination was found, fall back
7310 dnl to either libIDL1 or libIDL2.
7311 if test -z "$_LIBIDL_FOUND"; then
7312 AM_PATH_LIBIDL($LIBIDL_VERSION,_LIBIDL_FOUND=1)
7313 if test -z "$_LIBIDL_FOUND"; then
7314 PKG_CHECK_MODULES(LIBIDL, libIDL-2.0 >= 0.8.0,_LIBIDL_FOUND=1)
7318 dnl If we don't have a libIDL config program & not cross-compiling,
7319 dnl look for orbit-config instead.
7321 if test -z "$_LIBIDL_FOUND" && test -z "$CROSS_COMPILE"; then
7322 MOZ_PATH_PROGS(ORBIT_CONFIG, $ORBIT_CONFIG orbit-config)
7323 if test -n "$ORBIT_CONFIG"; then
7324 AC_MSG_CHECKING([for ORBit libIDL usability])
7325 _ORBIT_CFLAGS=`${ORBIT_CONFIG} client --cflags`
7326 _ORBIT_LIBS=`${ORBIT_CONFIG} client --libs`
7327 _ORBIT_INC_PATH=`${PERL} -e '{ for $f (@ARGV) { print "$f " if ($f =~ m/^-I/); } }' -- ${_ORBIT_CFLAGS}`
7328 _ORBIT_LIB_PATH=`${PERL} -e '{ for $f (@ARGV) { print "$f " if ($f =~ m/^-L/); } }' -- ${_ORBIT_LIBS}`
7329 LIBIDL_CFLAGS="$_ORBIT_INC_PATH"
7330 LIBIDL_LIBS="$_ORBIT_LIB_PATH -lIDL -lglib"
7332 _SAVE_CFLAGS="$CFLAGS"
7334 CFLAGS="$LIBIDL_CFLAGS $CFLAGS"
7335 LIBS="$LIBIDL_LIBS $LIBS"
7338 #include <libIDL/IDL.h>
7341 s=strdup(IDL_get_libver_string());
7354 AC_MSG_RESULT($result)
7355 CFLAGS="$_SAVE_CFLAGS"
7359 if test -z "$_LIBIDL_FOUND"; then
7360 AC_MSG_ERROR([libIDL not found.
7361 libIDL $LIBIDL_VERSION or higher is required.])
7363 if test "$MACOS_SDK_DIR"; then
7364 CFLAGS="$_MACSAVE_CFLAGS"
7365 LIBS="$_MACSAVE_LIBS"
7366 LDFLAGS="$_MACSAVE_LDFLAGS"
7367 if test -n "$_MACSAVE_NEXT_ROOT" ; then
7368 export NEXT_ROOT="$_MACSAVE_NEXT_ROOT"
7373 if test -n "$CROSS_COMPILE"; then
7374 if test -z "$HOST_LIBIDL_CONFIG"; then
7375 HOST_LIBIDL_CONFIG="$LIBIDL_CONFIG"
7377 if test -n "$HOST_LIBIDL_CONFIG" && test "$HOST_LIBIDL_CONFIG" != "no"; then
7378 HOST_LIBIDL_CFLAGS=`${HOST_LIBIDL_CONFIG} --cflags`
7379 HOST_LIBIDL_LIBS=`${HOST_LIBIDL_CONFIG} --libs`
7381 HOST_LIBIDL_CFLAGS="$LIBIDL_CFLAGS"
7382 HOST_LIBIDL_LIBS="$LIBIDL_LIBS"
7386 if test -z "$SKIP_PATH_CHECKS"; then
7387 if test -z "${GLIB_CFLAGS}" || test -z "${GLIB_LIBS}" ; then
7388 if test "$MOZ_ENABLE_GTK2" || test "$USE_ELF_DYNSTR_GC" ; then
7389 PKG_CHECK_MODULES(GLIB, glib-2.0 >= 1.3.7 gobject-2.0)
7391 AM_PATH_GLIB(${GLIB_VERSION})
7396 if test -z "${GLIB_GMODULE_LIBS}" -a -n "${GLIB_CONFIG}"; then
7397 GLIB_GMODULE_LIBS=`$GLIB_CONFIG gmodule --libs`
7400 AC_SUBST(LIBIDL_CFLAGS)
7401 AC_SUBST(LIBIDL_LIBS)
7402 AC_SUBST(STATIC_LIBIDL)
7403 AC_SUBST(GLIB_CFLAGS)
7405 AC_SUBST(GLIB_GMODULE_LIBS)
7406 AC_SUBST(HOST_LIBIDL_CONFIG)
7407 AC_SUBST(HOST_LIBIDL_CFLAGS)
7408 AC_SUBST(HOST_LIBIDL_LIBS)
7410 dnl ========================================================
7412 dnl ========================================================
7413 MOZ_CAIRO_CFLAGS='-I$(LIBXUL_DIST)/include/cairo'
7416 MOZ_ARG_ENABLE_BOOL(system-cairo,
7417 [ --enable-system-cairo Use system cairo (located with pkgconfig)],
7421 # Check for headers defining standard int types.
7422 AC_CHECK_HEADERS(stdint.h inttypes.h sys/int_types.h)
7424 if test "$MOZ_TREE_CAIRO"; then
7425 AC_DEFINE(MOZ_TREE_CAIRO)
7427 # For now we assume that we will have a uint64_t available through
7428 # one of the above headers or mozstdint.h.
7429 AC_DEFINE(HAVE_UINT64_T)
7431 # Define macros for cairo-features.h
7432 if test "$MOZ_X11"; then
7433 XLIB_SURFACE_FEATURE="#define CAIRO_HAS_XLIB_SURFACE 1"
7434 XLIB_XRENDER_SURFACE_FEATURE="#define CAIRO_HAS_XLIB_XRENDER_SURFACE 1"
7435 PS_SURFACE_FEATURE="#define CAIRO_HAS_PS_SURFACE 1"
7436 PDF_SURFACE_FEATURE="#define CAIRO_HAS_PDF_SURFACE 1"
7437 FT_FONT_FEATURE="#define CAIRO_HAS_FT_FONT 1"
7438 FC_FONT_FEATURE="#define CAIRO_HAS_FC_FONT 1"
7439 MOZ_ENABLE_CAIRO_FT=1
7440 CAIRO_FT_CFLAGS="$FT2_CFLAGS"
7442 if test "$MOZ_WIDGET_TOOLKIT" = "qt"; then
7443 QT_SURFACE_FEATURE="#define CAIRO_HAS_QT_SURFACE 1"
7445 if test "$MOZ_WIDGET_TOOLKIT" = "cocoa"; then
7446 QUARTZ_SURFACE_FEATURE="#define CAIRO_HAS_QUARTZ_SURFACE 1"
7447 QUARTZ_IMAGE_SURFACE_FEATURE="#define CAIRO_HAS_QUARTZ_IMAGE_SURFACE 1"
7448 QUARTZ_FONT_FEATURE="#define CAIRO_HAS_QUARTZ_FONT 1"
7450 if test "$MOZ_WIDGET_TOOLKIT" = "windows"; then
7451 WIN32_SURFACE_FEATURE="#define CAIRO_HAS_WIN32_SURFACE 1"
7452 if test -z "$WINCE"; then
7453 WIN32_FONT_FEATURE="#define CAIRO_HAS_WIN32_FONT 1"
7458 AC_TRY_COMPILE([#include <ddraw.h>], [int foo = DDLOCK_WAITNOTBUSY;], HAS_DDRAW=1, HAS_DDRAW=)
7459 if test -z "$HAS_DDRAW"; then
7460 AC_MSG_WARN([DirectDraw ddraw.h header not found or it's missing DDLOCK_WAITNOTBUSY, disabling DirectDraw surface. If you have an older SDK (such as the CE5 SDK), try copying in ddraw.lib and ddraw.h from the WM6 SDK.])
7461 DDRAW_SURFACE_FEATURE=
7463 DDRAW_SURFACE_FEATURE="#define CAIRO_HAS_DDRAW_SURFACE 1"
7466 if test -z "$OGLES_SDK_DIR"; then
7467 OGLES_SURFACE_FEATURE=
7470 #include <EGL/egl.h>
7471 #include <EGL/eglext.h>
7472 #include <GLES2/gl2.h>
7473 #include <GLES2/gl2ext.h>
7474 ], [ EGLDisplay _cairo_ddraw_egl_dpy = EGL_NO_DISPLAY;], HAS_OGLES=1, HAS_OGLES=)
7475 if test -z "$HAS_OGLES"; then
7476 AC_MSG_WARN([OpenGL ES2 headers not found, disabling OpenGL acceleration surfaces.])
7477 OGLES_SURFACE_FEATURE=
7479 OGLES_SURFACE_FEATURE="#define CAIRO_DDRAW_USE_GL 1"
7483 PDF_SURFACE_FEATURE="#define CAIRO_HAS_PDF_SURFACE 1"
7485 if test "$MOZ_WIDGET_TOOLKIT" = "os2"; then
7486 OS2_SURFACE_FEATURE="#define CAIRO_HAS_OS2_SURFACE 1"
7487 FT_FONT_FEATURE="#define CAIRO_HAS_FT_FONT 1"
7488 FC_FONT_FEATURE="#define CAIRO_HAS_FC_FONT 1"
7489 PDF_SURFACE_FEATURE="#define CAIRO_HAS_PDF_SURFACE 1"
7490 MOZ_ENABLE_CAIRO_FT=1
7491 CAIRO_FT_CFLAGS="-I${MZFTCFGFT2}/include"
7492 CAIRO_FT_LIBS="-L${MZFTCFGFT2}/lib -lmozft -lmzfntcfg"
7494 if test "$MOZ_WIDGET_TOOLKIT" = "beos"; then
7495 PKG_CHECK_MODULES(CAIRO_FT, fontconfig freetype2)
7496 BEOS_SURFACE_FEATURE="#define CAIRO_HAS_BEOS_SURFACE 1"
7497 FT_FONT_FEATURE="#define CAIRO_HAS_FT_FONT 1"
7498 FC_FONT_FEATURE="#define CAIRO_HAS_FC_FONT 1"
7499 MOZ_ENABLE_CAIRO_FT=1
7501 AC_SUBST(MOZ_ENABLE_CAIRO_FT)
7502 AC_SUBST(CAIRO_FT_CFLAGS)
7505 if test "$MOZ_DEBUG"; then
7506 SANITY_CHECKING_FEATURE="#define CAIRO_DO_SANITY_CHECKING 1"
7508 SANITY_CHECKING_FEATURE="#undef CAIRO_DO_SANITY_CHECKING"
7511 PNG_FUNCTIONS_FEATURE="#define CAIRO_HAS_PNG_FUNCTIONS 1"
7513 AC_SUBST(PS_SURFACE_FEATURE)
7514 AC_SUBST(PDF_SURFACE_FEATURE)
7515 AC_SUBST(SVG_SURFACE_FEATURE)
7516 AC_SUBST(XLIB_SURFACE_FEATURE)
7517 AC_SUBST(XLIB_XRENDER_SURFACE_FEATURE)
7518 AC_SUBST(QUARTZ_SURFACE_FEATURE)
7519 AC_SUBST(QUARTZ_IMAGE_SURFACE_FEATURE)
7520 AC_SUBST(XCB_SURFACE_FEATURE)
7521 AC_SUBST(WIN32_SURFACE_FEATURE)
7522 AC_SUBST(DDRAW_SURFACE_FEATURE)
7523 AC_SUBST(OGLES_SURFACE_FEATURE)
7524 AC_SUBST(OS2_SURFACE_FEATURE)
7525 AC_SUBST(BEOS_SURFACE_FEATURE)
7526 AC_SUBST(DIRECTFB_SURFACE_FEATURE)
7527 AC_SUBST(FT_FONT_FEATURE)
7528 AC_SUBST(FC_FONT_FEATURE)
7529 AC_SUBST(WIN32_FONT_FEATURE)
7530 AC_SUBST(QUARTZ_FONT_FEATURE)
7531 AC_SUBST(PNG_FUNCTIONS_FEATURE)
7532 AC_SUBST(QT_SURFACE_FEATURE)
7534 if test "$_WIN32_MSVC"; then
7535 MOZ_CAIRO_LIBS='$(DEPTH)/gfx/cairo/cairo/src/mozcairo.lib $(DEPTH)/gfx/cairo/libpixman/src/mozlibpixman.lib'
7537 MOZ_CAIRO_LIBS='$(DEPTH)/gfx/cairo/cairo/src/$(LIB_PREFIX)mozcairo.$(LIB_SUFFIX) $(DEPTH)/gfx/cairo/libpixman/src/$(LIB_PREFIX)mozlibpixman.$(LIB_SUFFIX)'" $CAIRO_FT_LIBS"
7539 if test "$MOZ_X11"; then
7540 MOZ_CAIRO_LIBS="$MOZ_CAIRO_LIBS $XLDFLAGS -lXrender -lfreetype -lfontconfig"
7544 CAIRO_FEATURES_H=gfx/cairo/cairo/src/cairo-features.h
7545 mv -f $CAIRO_FEATURES_H "$CAIRO_FEATURES_H".orig 2> /dev/null
7548 PKG_CHECK_MODULES(CAIRO, cairo >= $CAIRO_VERSION freetype2 fontconfig)
7549 MOZ_CAIRO_CFLAGS=$CAIRO_CFLAGS
7550 MOZ_CAIRO_LIBS=$CAIRO_LIBS
7551 if test "$MOZ_X11"; then
7552 PKG_CHECK_MODULES(CAIRO_XRENDER, cairo-xlib-xrender >= $CAIRO_VERSION)
7553 MOZ_CAIRO_LIBS="$MOZ_CAIRO_LIBS $XLDFLAGS $CAIRO_XRENDER_LIBS"
7554 MOZ_CAIRO_CFLAGS="$MOZ_CAIRO_CFLAGS $CAIRO_XRENDER_CFLAGS"
7558 AC_SUBST(MOZ_TREE_CAIRO)
7559 AC_SUBST(MOZ_CAIRO_CFLAGS)
7560 AC_SUBST(MOZ_CAIRO_LIBS)
7563 dnl ========================================================
7565 QCMS_LIBS='$(DEPTH)/gfx/qcms/$(LIB_PREFIX)mozqcms.$(LIB_SUFFIX)'
7568 dnl ========================================================
7570 dnl ========================================================
7571 MOZ_ARG_DISABLE_BOOL(xul,
7572 [ --disable-xul Disable XUL],
7574 if test "$MOZ_XUL"; then
7577 dnl remove extensions that require XUL
7578 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's/inspector//' -e 's/venkman//' -e 's/irc//' -e 's/tasks//'`
7583 dnl ========================================================
7584 dnl disable profile locking
7585 dnl do no use this in applications that can have more than
7586 dnl one process accessing the profile directory.
7587 dnl ========================================================
7588 MOZ_ARG_DISABLE_BOOL(profilelocking,
7589 [ --disable-profilelocking Disable profile locking],
7590 MOZ_PROFILELOCKING=,
7591 MOZ_PROFILELOCKING=1 )
7592 if test "$MOZ_PROFILELOCKING"; then
7593 AC_DEFINE(MOZ_PROFILELOCKING)
7596 dnl ========================================================
7597 dnl disable rdf services
7598 dnl ========================================================
7599 MOZ_ARG_DISABLE_BOOL(rdf,
7600 [ --disable-rdf Disable RDF],
7602 if test "$MOZ_RDF"; then
7608 dnl ========================================================
7609 dnl necko configuration options
7610 dnl ========================================================
7613 dnl option to disable various necko protocols
7615 MOZ_ARG_ENABLE_STRING(necko-protocols,
7616 [ --enable-necko-protocols[={http,ftp,default,all,none}]
7617 Enable/disable specific protocol handlers],
7618 [ for option in `echo $enableval | sed 's/,/ /g'`; do
7619 if test "$option" = "yes" || test "$option" = "all"; then
7620 NECKO_PROTOCOLS="$NECKO_PROTOCOLS $NECKO_PROTOCOLS_DEFAULT"
7621 elif test "$option" = "no" || test "$option" = "none"; then
7623 elif test "$option" = "default"; then
7624 NECKO_PROTOCOLS="$NECKO_PROTOCOLS $NECKO_PROTOCOLS_DEFAULT"
7625 elif test `echo "$option" | grep -c \^-` != 0; then
7626 option=`echo $option | sed 's/^-//'`
7627 NECKO_PROTOCOLS=`echo "$NECKO_PROTOCOLS" | sed "s/ ${option}//"`
7629 NECKO_PROTOCOLS="$NECKO_PROTOCOLS $option"
7632 NECKO_PROTOCOLS="$NECKO_PROTOCOLS_DEFAULT")
7634 NECKO_PROTOCOLS=`${PERL} ${srcdir}/build/unix/uniq.pl ${NECKO_PROTOCOLS}`
7635 AC_SUBST(NECKO_PROTOCOLS)
7636 for p in $NECKO_PROTOCOLS; do
7637 AC_DEFINE_UNQUOTED(NECKO_PROTOCOL_$p)
7641 dnl option to disable necko's disk cache
7643 MOZ_ARG_DISABLE_BOOL(necko-disk-cache,
7644 [ --disable-necko-disk-cache
7645 Disable necko disk cache],
7648 AC_SUBST(NECKO_DISK_CACHE)
7649 if test "$NECKO_DISK_CACHE"; then
7650 AC_DEFINE(NECKO_DISK_CACHE)
7654 dnl option to disable necko's wifi scanner
7656 MOZ_ARG_DISABLE_BOOL(necko-wifi,
7657 [ --disable-necko-wifi Disable necko wifi scanner],
7662 if test "$OS_ARCH" = "OS2"; then
7663 dnl OS/2 implementation of Necko-WiFi support will be added in bug 506566
7666 if test "$NECKO_WIFI" -a \
7667 "$OS_ARCH" != "Linux" -a \
7668 "$OS_ARCH" != "Darwin" -a \
7669 "$OS_ARCH" != "WINNT" -a \
7670 "$OS_ARCH" != "WINCE"; then
7671 AC_MSG_ERROR([Necko WiFi scanning not supported on your platform, use --disable-necko-wifi])
7674 if test -z "$SKIP_LIBRARY_CHECKS" -a "$NECKO_WIFI" -a "$OS_ARCH" = "Linux"
7676 AC_CHECK_HEADER([iwlib.h])
7677 if test "$ac_cv_header_iwlib_h" != "yes"; then
7678 AC_MSG_ERROR([Can't find header iwlib.h for Necko WiFi scanning (might be in package libiw-dev (Ubuntu) or wireless-tools-devel (Fedora)); use --disable-necko-wifi to disable])
7682 if test "$NECKO_WIFI"; then
7683 AC_DEFINE(NECKO_WIFI)
7685 AC_SUBST(NECKO_WIFI)
7688 dnl option to minimize size of necko's i/o buffers
7690 MOZ_ARG_ENABLE_BOOL(necko-small-buffers,
7691 [ --enable-necko-small-buffers
7692 Minimize size of necko's i/o buffers],
7693 NECKO_SMALL_BUFFERS=1,
7694 NECKO_SMALL_BUFFERS=)
7695 AC_SUBST(NECKO_SMALL_BUFFERS)
7696 if test "$NECKO_SMALL_BUFFERS"; then
7697 AC_DEFINE(NECKO_SMALL_BUFFERS)
7701 dnl option to disable cookies
7703 MOZ_ARG_DISABLE_BOOL(cookies,
7704 [ --disable-cookies Disable cookie support],
7707 AC_SUBST(NECKO_COOKIES)
7708 if test "$NECKO_COOKIES"; then
7709 AC_DEFINE(NECKO_COOKIES)
7713 dnl Build jsctypes on the platforms we can.
7715 AC_SUBST(BUILD_CTYPES)
7721 AC_DEFINE(BUILD_CTYPES)
7725 dnl NECKO_ configuration options are not global
7726 _NON_GLOBAL_ACDEFINES="$_NON_GLOBAL_ACDEFINES NECKO_"
7728 dnl Only build Mork if it's required
7730 if test "$MOZ_MORK"; then
7734 dnl Build the lightweight Mork reader if required
7735 AC_SUBST(MOZ_MORKREADER)
7736 if test "$MOZ_MORKREADER"; then
7737 AC_DEFINE(MOZ_MORKREADER)
7740 dnl ========================================================
7741 if test "$MOZ_DEBUG" || test "$NS_TRACE_MALLOC"; then
7742 MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS=
7745 dnl ========================================================
7747 dnl = Maintainer debug option (no --enable equivalent)
7749 dnl ========================================================
7754 AC_SUBST(AR_EXTRACT)
7758 AC_SUBST(AS_DASH_C_FLAG)
7766 AC_SUBST(NS_USE_NATIVE)
7767 AC_SUBST(MOZ_WIDGET_TOOLKIT)
7768 AC_SUBST(MOZ_UPDATE_XTERM)
7770 AC_SUBST(MOZ_PLATFORM_HILDON)
7772 AC_SUBST(NS_MAEMO_LOCATION)
7773 AC_SUBST(MOZ_AUTH_EXTENSION)
7774 AC_SUBST(MOZ_MATHML)
7775 AC_SUBST(MOZ_PERMISSIONS)
7777 AC_SUBST(MOZ_NO_INSPECTOR_APIS)
7778 AC_SUBST(MOZ_PREF_EXTENSIONS)
7781 AC_SUBST(MOZ_XSLT_STANDALONE)
7782 AC_SUBST(MOZ_JS_LIBS)
7785 AC_SUBST(MOZ_DEBUG_MODULES)
7786 AC_SUBST(MOZ_DEBUG_ENABLE_DEFS)
7787 AC_SUBST(MOZ_DEBUG_DISABLE_DEFS)
7788 AC_SUBST(MOZ_DEBUG_FLAGS)
7789 AC_SUBST(MOZ_DEBUG_LDFLAGS)
7790 AC_SUBST(WARNINGS_AS_ERRORS)
7791 AC_SUBST(MOZ_DBGRINFO_MODULES)
7792 AC_SUBST(MOZ_EXTENSIONS)
7793 AC_SUBST(MOZ_IMG_DECODERS)
7794 AC_SUBST(MOZ_IMG_ENCODERS)
7795 AC_SUBST(MOZ_JSDEBUGGER)
7796 AC_SUBST(MOZ_PLUGINS)
7797 AC_SUBST(MOZ_LOG_REFCNT)
7801 AC_SUBST(MOZ_CALLGRIND)
7803 AC_SUBST(MOZ_XPCTOOLS)
7804 AC_SUBST(MOZ_JSLOADER)
7805 AC_SUBST(MOZ_USE_NATIVE_UCONV)
7806 AC_SUBST(MOZ_INSURE)
7807 AC_SUBST(MOZ_INSURE_DIRS)
7808 AC_SUBST(MOZ_INSURE_EXCLUDE_DIRS)
7809 AC_SUBST(MOZ_QUANTIFY)
7810 AC_SUBST(MOZ_INSURIFYING)
7812 AC_SUBST(MOZ_PLACES)
7813 AC_SUBST(MOZ_PLACES_BOOKMARKS)
7814 AC_SUBST(MOZ_STORAGE)
7816 AC_SUBST(NS_PRINTING)
7818 AC_SUBST(MOZ_JAVAXPCOM)
7819 AC_SUBST(JAVA_INCLUDE_PATH)
7824 AC_SUBST(MOZ_PROFILELOCKING)
7827 AC_SUBST(MOZ_XIE_LIBS)
7828 AC_SUBST(MOZ_ENABLE_POSTSCRIPT)
7830 AC_SUBST(BUILD_STATIC_LIBS)
7831 AC_SUBST(MOZ_ENABLE_LIBXUL)
7832 AC_SUBST(ENABLE_TESTS)
7834 AC_SUBST(MOZ_UNIVERSALCHARDET)
7835 AC_SUBST(ACCESSIBILITY)
7836 AC_SUBST(MOZ_XPINSTALL)
7837 AC_SUBST(MOZ_VIEW_SOURCE)
7838 AC_SUBST(MOZ_SPELLCHECK)
7839 AC_SUBST(MOZ_XPFE_COMPONENTS)
7840 AC_SUBST(MOZ_USER_DIR)
7841 AC_SUBST(MOZ_CRASHREPORTER)
7843 AC_SUBST(ENABLE_STRIP)
7844 AC_SUBST(PKG_SKIP_STRIP)
7845 AC_SUBST(USE_ELF_DYNSTR_GC)
7846 AC_SUBST(INCREMENTAL_LINKER)
7847 AC_SUBST(MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS)
7848 AC_SUBST(MOZ_COMPONENT_NSPR_LIBS)
7850 AC_SUBST(MOZ_FIX_LINK_PATHS)
7851 AC_SUBST(XPCOM_LIBS)
7852 AC_SUBST(XPCOM_FROZEN_LDOPTS)
7853 AC_SUBST(XPCOM_GLUE_LDOPTS)
7854 AC_SUBST(XPCOM_STANDALONE_GLUE_LDOPTS)
7856 AC_SUBST(USE_DEPENDENT_LIBS)
7858 AC_SUBST(MOZ_BUILD_ROOT)
7859 AC_SUBST(MOZ_OS2_TOOLS)
7860 AC_SUBST(MOZ_OS2_USE_DECLSPEC)
7862 AC_SUBST(MOZ_POST_DSO_LIB_COMMAND)
7863 AC_SUBST(MOZ_POST_PROGRAM_COMMAND)
7864 AC_SUBST(MOZ_TIMELINE)
7865 AC_SUBST(OGLES_SDK_DIR)
7867 AC_SUBST(MOZ_APP_NAME)
7868 AC_SUBST(MOZ_APP_DISPLAYNAME)
7869 AC_SUBST(MOZ_APP_VERSION)
7870 AC_SUBST(FIREFOX_VERSION)
7872 AC_SUBST(MOZ_PKG_SPECIAL)
7874 AC_SUBST(MOZILLA_OFFICIAL)
7877 AC_SUBST(MOZ_DEBUG_SYMBOLS)
7878 AC_SUBST(MOZ_MAPINFO)
7879 AC_SUBST(MOZ_BROWSE_INFO)
7880 AC_SUBST(MOZ_TOOLS_DIR)
7881 AC_SUBST(CYGWIN_WRAPPER)
7883 AC_SUBST(WIN32_REDIST_DIR)
7887 AC_SUBST(WINCE_SDK_DIR)
7888 AC_SUBST(WINCE_WINDOWS_MOBILE)
7890 dnl Echo the CFLAGS to remove extra whitespace.
7897 $_MOZ_EXCEPTIONS_FLAGS \
7898 $_WARNINGS_CXXFLAGS \
7901 COMPILE_CFLAGS=`echo \
7906 COMPILE_CXXFLAGS=`echo \
7907 $_DEFINES_CXXFLAGS \
7911 AC_SUBST(SYSTEM_MAKEDEPEND)
7912 AC_SUBST(SYSTEM_LIBXUL)
7913 AC_SUBST(SYSTEM_JPEG)
7914 AC_SUBST(SYSTEM_PNG)
7915 AC_SUBST(SYSTEM_ZLIB)
7916 AC_SUBST(SYSTEM_BZ2)
7918 AC_SUBST(JPEG_CFLAGS)
7920 AC_SUBST(ZLIB_CFLAGS)
7922 AC_SUBST(BZ2_CFLAGS)
7924 AC_SUBST(PNG_CFLAGS)
7927 AC_SUBST(MOZ_JPEG_CFLAGS)
7928 AC_SUBST(MOZ_JPEG_LIBS)
7929 AC_SUBST(MOZ_ZLIB_CFLAGS)
7930 AC_SUBST(MOZ_ZLIB_LIBS)
7931 AC_SUBST(MOZ_BZ2_CFLAGS)
7932 AC_SUBST(MOZ_BZ2_LIBS)
7933 AC_SUBST(MOZ_PNG_CFLAGS)
7934 AC_SUBST(MOZ_PNG_LIBS)
7936 AC_SUBST(NSPR_CFLAGS)
7938 AC_SUBST(MOZ_NATIVE_NSPR)
7940 AC_SUBST(NSS_CFLAGS)
7942 AC_SUBST(NSS_DEP_LIBS)
7943 AC_SUBST(MOZ_NATIVE_NSS)
7944 AC_SUBST(NSS_DISABLE_DBM)
7949 AC_SUBST(COMPILE_CFLAGS)
7950 AC_SUBST(COMPILE_CXXFLAGS)
7953 AC_SUBST(CROSS_COMPILE)
7954 AC_SUBST(WCHAR_CFLAGS)
7958 AC_SUBST(HOST_CFLAGS)
7959 AC_SUBST(HOST_CXXFLAGS)
7960 AC_SUBST(HOST_OPTIMIZE_FLAGS)
7962 AC_SUBST(HOST_AR_FLAGS)
7964 AC_SUBST(HOST_RANLIB)
7965 AC_SUBST(HOST_NSPR_MDCPUCFG)
7966 AC_SUBST(HOST_BIN_SUFFIX)
7967 AC_SUBST(HOST_OS_ARCH)
7969 AC_SUBST(TARGET_CPU)
7970 AC_SUBST(TARGET_VENDOR)
7972 AC_SUBST(TARGET_NSPR_MDCPUCFG)
7973 AC_SUBST(TARGET_MD_ARCH)
7974 AC_SUBST(TARGET_XPCOM_ABI)
7977 AC_SUBST(OS_RELEASE)
7980 AC_SUBST(MOZ_DISABLE_JAR_PACKAGING)
7981 AC_SUBST(MOZ_CHROME_FILE_FORMAT)
7983 AC_SUBST(WRAP_MALLOC_CFLAGS)
7984 AC_SUBST(WRAP_MALLOC_LIB)
7987 AC_SUBST(MKSHLIB_FORCE_ALL)
7988 AC_SUBST(MKSHLIB_UNFORCE_ALL)
7989 AC_SUBST(DSO_CFLAGS)
7990 AC_SUBST(DSO_PIC_CFLAGS)
7991 AC_SUBST(DSO_LDOPTS)
7992 AC_SUBST(LIB_PREFIX)
7993 AC_SUBST(DLL_PREFIX)
7994 AC_SUBST(DLL_SUFFIX)
7995 AC_DEFINE_UNQUOTED(MOZ_DLL_SUFFIX, "$DLL_SUFFIX")
7996 AC_SUBST(LIB_SUFFIX)
7997 AC_SUBST(OBJ_SUFFIX)
7998 AC_SUBST(BIN_SUFFIX)
7999 AC_SUBST(ASM_SUFFIX)
8000 AC_SUBST(IMPORT_LIB_SUFFIX)
8002 AC_SUBST(CC_VERSION)
8003 AC_SUBST(CXX_VERSION)
8004 AC_SUBST(MSMANIFEST_TOOL)
8005 AC_SUBST(NS_ENABLE_TSF)
8006 AC_SUBST(MOZ_NSS_PATCH)
8008 if test "$USING_HCC"; then
8009 CC='${topsrcdir}/build/hcc'
8011 CXX='${topsrcdir}/build/hcpp'
8012 CXX="$CXX '$_OLDCXX'"
8017 dnl Check for missing components
8018 if test "$COMPILE_ENVIRONMENT"; then
8019 if test "$MOZ_X11"; then
8020 dnl ====================================================
8021 dnl = Check if X headers exist
8022 dnl ====================================================
8023 _SAVE_CFLAGS=$CFLAGS
8024 CFLAGS="$CFLAGS $XCFLAGS"
8028 #include <X11/Xlib.h>
8029 #include <X11/Intrinsic.h>
8033 if ((dpy = XOpenDisplay(NULL)) == NULL) {
8034 fprintf(stderr, ": can't open %s\n", XDisplayName(NULL));
8038 [ AC_MSG_ERROR([Could not compile basic X program.]) ])
8039 CFLAGS="$_SAVE_CFLAGS"
8041 if test ! -z "$MISSING_X"; then
8042 AC_MSG_ERROR([ Could not find the following X libraries: $MISSING_X ]);
8046 fi # COMPILE_ENVIRONMENT
8048 dnl Set various defines and substitutions
8049 dnl ========================================================
8051 if test "$OS_ARCH" = "BeOS"; then
8054 elif test "$OS_ARCH" = "Darwin"; then
8056 AC_DEFINE(UNIX_ASYNC_DNS)
8058 elif test "$OS_ARCH" = "OpenVMS"; then
8060 elif test "$OS_ARCH" != "WINNT" -a "$OS_ARCH" != "OS2" -a "$OS_ARCH" != "WINCE"; then
8062 AC_DEFINE(UNIX_ASYNC_DNS)
8065 AC_SUBST(MOZ_MOVEMAIL)
8067 if test "$MOZ_DEBUG"; then
8068 AC_DEFINE(MOZ_REFLOW_PERF)
8069 AC_DEFINE(MOZ_REFLOW_PERF_DSP)
8072 if test "$ACCESSIBILITY" -a "$MOZ_ENABLE_GTK2" ; then
8073 AC_DEFINE(MOZ_ACCESSIBILITY_ATK)
8074 ATK_FULL_VERSION=`$PKG_CONFIG --modversion atk`
8075 ATK_MAJOR_VERSION=`echo ${ATK_FULL_VERSION} | $AWK -F\. '{ print $1 }'`
8076 ATK_MINOR_VERSION=`echo ${ATK_FULL_VERSION} | $AWK -F\. '{ print $2 }'`
8077 ATK_REV_VERSION=`echo ${ATK_FULL_VERSION} | $AWK -F\. '{ print $3 }'`
8078 AC_DEFINE_UNQUOTED(ATK_MAJOR_VERSION, $ATK_MAJOR_VERSION)
8079 AC_DEFINE_UNQUOTED(ATK_MINOR_VERSION, $ATK_MINOR_VERSION)
8080 AC_DEFINE_UNQUOTED(ATK_REV_VERSION, $ATK_REV_VERSION)
8083 dnl ========================================================
8084 dnl Use cygwin wrapper for win32 builds, except MSYS/MinGW
8085 dnl ========================================================
8088 WIN_TOP_SRC=`cd $srcdir; pwd -W`
8091 HOST_CC="\$(CYGWIN_WRAPPER) $HOST_CC"
8092 HOST_CXX="\$(CYGWIN_WRAPPER) $HOST_CXX"
8093 CC="\$(CYGWIN_WRAPPER) $CC"
8094 CXX="\$(CYGWIN_WRAPPER) $CXX"
8095 CPP="\$(CYGWIN_WRAPPER) $CPP"
8096 LD="\$(CYGWIN_WRAPPER) $LD"
8097 AS="\$(CYGWIN_WRAPPER) $AS"
8098 RC="\$(CYGWIN_WRAPPER) $RC"
8099 MIDL="\$(CYGWIN_WRAPPER) $MIDL"
8100 CYGDRIVE_MOUNT=`mount -p | awk '{ if (/^\//) { print $1; exit } }'`
8101 WIN_TOP_SRC=`cygpath -a -w $srcdir | sed -e 's|\\\\|/|g'`
8105 AC_SUBST(CYGDRIVE_MOUNT)
8106 AC_SUBST(WIN_TOP_SRC)
8108 AC_SUBST(MOZILLA_VERSION)
8110 AC_SUBST(ac_configure_args)
8112 dnl Spit out some output
8113 dnl ========================================================
8115 dnl The following defines are used by xpcom
8116 _NON_GLOBAL_ACDEFINES="$_NON_GLOBAL_ACDEFINES
8118 HAVE_CPP_2BYTE_WCHAR_T
8119 HAVE_CPP_ACCESS_CHANGING_USING
8120 HAVE_CPP_AMBIGUITY_RESOLVING_USING
8123 HAVE_CPP_DYNAMIC_CAST_TO_VOID_PTR
8125 HAVE_CPP_MODERN_SPECIALIZE_TEMPLATE_SYNTAX
8126 HAVE_CPP_NAMESPACE_STD
8128 HAVE_CPP_PARTIAL_SPECIALIZATION
8129 HAVE_CPP_TROUBLE_COMPARING_TO_ZERO
8131 HAVE_CPP_UNAMBIGUOUS_STD_NOTEQUAL
8133 NEED_CPP_UNUSED_IMPLEMENTATIONS
8137 HAVE_ICONV_WITH_CONST_INPUT
8145 netwerk/necko-config.h
8146 xpcom/xpcom-config.h
8147 xpcom/xpcom-private.h
8150 # Save the defines header file before autoconf removes it.
8151 # (Do not add AC_DEFINE calls after this line.)
8152 _CONFIG_TMP=confdefs-tmp.h
8153 _CONFIG_DEFS_H=mozilla-config.h
8155 cat > $_CONFIG_TMP <<\EOF
8156 /* List of defines generated by configure. Included with preprocessor flag,
8157 * -include, to avoid long list of -D defines on the compile command-line.
8161 #ifndef _MOZILLA_CONFIG_H_
8162 #define _MOZILLA_CONFIG_H_
8165 _EGREP_PATTERN='^#define ('
8166 if test -n "$_NON_GLOBAL_ACDEFINES"; then
8167 for f in $_NON_GLOBAL_ACDEFINES; do
8168 _EGREP_PATTERN="${_EGREP_PATTERN}$f|"
8171 _EGREP_PATTERN="${_EGREP_PATTERN}dummy_never_defined)"
8173 sort confdefs.h | egrep -v "$_EGREP_PATTERN" >> $_CONFIG_TMP
8175 cat >> $_CONFIG_TMP <<\EOF
8177 #endif /* _MOZILLA_CONFIG_H_ */
8181 # Only write mozilla-config.h when something changes (or it doesn't exist)
8182 if cmp -s $_CONFIG_TMP $_CONFIG_DEFS_H; then
8185 AC_MSG_RESULT("creating $_CONFIG_DEFS_H")
8186 mv -f $_CONFIG_TMP $_CONFIG_DEFS_H
8188 echo ==== $_CONFIG_DEFS_H =================================
8192 dnl Probably shouldn't call this manually but we always want the output of DEFS
8193 rm -f confdefs.h.save
8194 mv confdefs.h confdefs.h.save
8195 egrep -v "$_EGREP_PATTERN" confdefs.h.save > confdefs.h
8196 AC_OUTPUT_MAKE_DEFS()
8198 AC_SUBST(MOZ_DEFINES)
8200 mv confdefs.h.save confdefs.h
8202 dnl Load the list of Makefiles to generate.
8203 dnl To add new Makefiles, edit allmakefiles.sh.
8204 dnl allmakefiles.sh sets the variable, MAKEFILES.
8205 . ${srcdir}/allmakefiles.sh
8207 dnl Run a perl script to quickly create the makefiles.
8208 dnl If it succeeds, it outputs a shell command to set CONFIG_FILES
8209 dnl for the files it cannot handle correctly. This way, config.status
8210 dnl will handle these files.
8211 dnl If it fails, nothing is set and config.status will run as usual.
8213 dnl This does not change the $MAKEFILES variable.
8215 dnl OpenVMS gets a line overflow on the long eval command, so use a temp file.
8217 if test -z "${AS_PERL}"; then
8218 echo $MAKEFILES | ${PERL} $srcdir/build/autoconf/acoutput-fast.pl > conftest.sh
8220 echo $MAKEFILES | ${PERL} $srcdir/build/autoconf/acoutput-fast.pl -nowrap --cygwin-srcdir=$srcdir > conftest.sh
8225 echo $MAKEFILES > unallmakefiles
8227 mv -f config/autoconf.mk config/autoconf.mk.orig 2> /dev/null
8229 AC_OUTPUT($MAKEFILES)
8231 dnl Prevent the regeneration of cairo-features.h forcing rebuilds of gfx stuff
8232 if test "$CAIRO_FEATURES_H"; then
8233 if cmp -s $CAIRO_FEATURES_H "$CAIRO_FEATURES_H".orig; then
8234 echo "$CAIRO_FEATURES_H is unchanged"
8235 mv -f "$CAIRO_FEATURES_H".orig "$CAIRO_FEATURES_H" 2> /dev/null
8237 rm -f "$CAIRO_FEATURES_H".orig 2> /dev/null
8241 dnl ========================================================
8242 dnl = Setup a nice relatively clean build environment for
8243 dnl = sub-configures.
8244 dnl ========================================================
8247 CFLAGS="$_SUBDIR_CFLAGS"
8248 CPPFLAGS="$_SUBDIR_CPPFLAGS"
8249 CXXFLAGS="$_SUBDIR_CXXFLAGS"
8250 LDFLAGS="$_SUBDIR_LDFLAGS"
8251 HOST_CC="$_SUBDIR_HOST_CC"
8252 HOST_CFLAGS="$_SUBDIR_HOST_CFLAGS"
8253 HOST_LDFLAGS="$_SUBDIR_HOST_LDFLAGS"
8259 # No need to run subconfigures when building with LIBXUL_SDK_DIR
8260 if test "$COMPILE_ENVIRONMENT" -a -z "$LIBXUL_SDK_DIR"; then
8262 if test -z "$MOZ_NATIVE_NSPR"; then
8263 ac_configure_args="$_SUBDIR_CONFIG_ARGS --with-dist-prefix=$MOZ_BUILD_ROOT/dist --with-mozilla"
8264 if test -z "$MOZ_DEBUG"; then
8265 ac_configure_args="$ac_configure_args --disable-debug"
8267 if test "$MOZ_OPTIMIZE" = "1"; then
8268 ac_configure_args="$ac_configure_args --enable-optimize"
8270 if test "$OS_ARCH" = "WINNT" && test "$NS_TRACE_MALLOC"; then
8271 ac_configure_args="$ac_configure_args --enable-debug --disable-optimize"
8273 if test -n "$HAVE_64BIT_OS"; then
8274 ac_configure_args="$ac_configure_args --enable-64bit"
8276 if test -n "$USE_ARM_KUSER"; then
8277 ac_configure_args="$ac_configure_args --with-arm-kuser"
8279 AC_OUTPUT_SUBDIRS(nsprpub)
8280 ac_configure_args="$_SUBDIR_CONFIG_ARGS"
8283 if test -z "$MOZ_NATIVE_NSPR"; then
8284 # Hack to deal with the fact that we use NSPR_CFLAGS everywhere
8285 AC_MSG_WARN([Recreating autoconf.mk with updated nspr-config output])
8286 if test "$OS_ARCH" != "WINNT" && test "$OS_ARCH" != "WINCE"; then
8287 NSPR_LIBS=`./nsprpub/config/nspr-config --prefix=$LIBXUL_DIST --exec-prefix=$MOZ_BUILD_ROOT/dist --libdir=$LIBXUL_DIST/lib --libs`
8288 $PERL -pi.bak -e "s '^NSPR_LIBS\\s*=.*'NSPR_LIBS = $NSPR_LIBS'" config/autoconf.mk
8289 NSPR_CFLAGS=`./nsprpub/config/nspr-config --prefix=$LIBXUL_DIST --exec-prefix=$MOZ_BUILD_ROOT/dist --includedir=$LIBXUL_DIST/include/nspr --cflags`
8290 $PERL -pi.bak -e "s '^NSPR_CFLAGS\\s*=.*'NSPR_CFLAGS = $NSPR_CFLAGS'" config/autoconf.mk
8292 rm -f config/autoconf.mk.bak
8295 # Run the SpiderMonkey 'configure' script.
8296 dist=$MOZ_BUILD_ROOT/dist
8297 ac_configure_args="$_SUBDIR_CONFIG_ARGS"
8298 ac_configure_args="$ac_configure_args --enable-threadsafe"
8299 if test -z "$MOZ_NATIVE_NSPR"; then
8300 ac_configure_args="$ac_configure_args --with-nspr-cflags='$NSPR_CFLAGS'"
8301 ac_configure_args="$ac_configure_args --with-nspr-libs='$NSPR_LIBS'"
8303 ac_configure_args="$ac_configure_args --with-dist-dir=../../dist"
8304 ac_configure_args="$ac_configure_args --includedir=$dist/include"
8305 ac_configure_args="$ac_configure_args --bindir=$dist/bin"
8306 ac_configure_args="$ac_configure_args --libdir=$dist/lib"
8307 ac_configure_args="$ac_configure_args --with-sync-build-files=$_topsrcdir"
8308 if test "$MOZ_MEMORY"; then
8309 ac_configure_args="$ac_configure_args --enable-jemalloc"
8310 if test -n "$MOZ_MEMORY_LDFLAGS"; then
8311 export MOZ_MEMORY_LDFLAGS
8314 AC_OUTPUT_SUBDIRS(js/src)
8315 ac_configure_args="$_SUBDIR_CONFIG_ARGS"
8317 # Build jsctypes on the platforms we can.
8318 if test "$BUILD_CTYPES"; then
8319 # Run the libffi 'configure' script on platforms that it supports.
8320 if test -z "$_MSC_VER"; then
8321 ac_configure_args="--disable-shared --enable-static --disable-raw-api"
8322 if test "$MOZ_DEBUG"; then
8323 ac_configure_args="$ac_configure_args --enable-debug"
8325 if test -n "$DSO_PIC_CFLAGS"; then
8326 ac_configure_args="$ac_configure_args --with-pic"
8328 if test -n "$CROSS_COMPILE"; then
8329 ac_configure_args="$ac_configure_args --build=$build --host=$target"
8331 AC_OUTPUT_SUBDIRS(js/ctypes/libffi)
8332 ac_configure_args="$_SUBDIR_CONFIG_ARGS"
8336 fi # COMPILE_ENVIRONMENT && !LIBXUL_SDK_DIR
8338 dnl Prevent the regeneration of autoconf.mk forcing rebuilds of the world
8339 dnl Needs to be at the end to respect possible changes from NSPR configure
8340 if cmp -s config/autoconf.mk config/autoconf.mk.orig; then
8341 echo "config/autoconf.mk is unchanged"
8342 mv -f config/autoconf.mk.orig config/autoconf.mk 2> /dev/null
8344 rm -f config/autoconf.mk.orig 2> /dev/null