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>
46 dnl Alternatively, the contents of this file may be used under the terms of
47 dnl either the GNU General Public License Version 2 or later (the "GPL"), or
48 dnl the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
49 dnl in which case the provisions of the GPL or the LGPL are applicable instead
50 dnl of those above. If you wish to allow use of your version of this file only
51 dnl under the terms of either the GPL or the LGPL, and not to allow others to
52 dnl use your version of this file under the terms of the MPL, indicate your
53 dnl decision by deleting the provisions above and replace them with the notice
54 dnl and other provisions required by the GPL or the LGPL. If you do not delete
55 dnl the provisions above, a recipient may use your version of this file under
56 dnl the terms of any one of the MPL, the GPL or the LGPL.
58 dnl ***** END LICENSE BLOCK *****
60 dnl Process this file with autoconf to produce a configure script.
61 dnl ========================================================
64 AC_INIT(config/config.mk)
65 AC_CONFIG_AUX_DIR(${srcdir}/build/autoconf)
67 TARGET_CPU="${target_cpu}"
68 TARGET_VENDOR="${target_vendor}"
69 TARGET_OS="${target_os}"
72 MOZ_DEB_TIMESTAMP=`date +"%a, %d %b %Y %T %z" 2>&1`
73 AC_SUBST(MOZ_DEB_TIMESTAMP)
76 dnl ========================================================
78 dnl = Don't change the following two lines. Doing so breaks:
80 dnl = CFLAGS="-foo" ./configure
82 dnl ========================================================
84 CPPFLAGS="${CPPFLAGS=}"
85 CXXFLAGS="${CXXFLAGS=}"
87 HOST_CFLAGS="${HOST_CFLAGS=}"
88 HOST_CXXFLAGS="${HOST_CXXFLAGS=}"
89 HOST_LDFLAGS="${HOST_LDFLAGS=}"
91 dnl ========================================================
92 dnl = Preserve certain environment flags passed to configure
93 dnl = We want sub projects to receive the same flags
94 dnl = untainted by this configure script
95 dnl ========================================================
98 _SUBDIR_CFLAGS="$CFLAGS"
99 _SUBDIR_CPPFLAGS="$CPPFLAGS"
100 _SUBDIR_CXXFLAGS="$CXXFLAGS"
101 _SUBDIR_LDFLAGS="$LDFLAGS"
102 _SUBDIR_HOST_CC="$HOST_CC"
103 _SUBDIR_HOST_CFLAGS="$HOST_CFLAGS"
104 _SUBDIR_HOST_CXXFLAGS="$HOST_CXXFLAGS"
105 _SUBDIR_HOST_LDFLAGS="$HOST_LDFLAGS"
106 _SUBDIR_CONFIG_ARGS="$ac_configure_args"
108 dnl Set the version number of the libs included with mozilla
109 dnl ========================================================
116 dnl Set the minimum version of toolkit libs used by mozilla
117 dnl ========================================================
126 WINDRES_VERSION=2.14.90
129 GNOMEUI_VERSION=2.2.0
132 STARTUP_NOTIFICATION_VERSION=0.8
139 dnl Set various checks
140 dnl ========================================================
144 dnl Initialize the Pthread test variables early so they can be
145 dnl overridden by each platform.
146 dnl ========================================================
150 dnl Do not allow a separate objdir build if a srcdir build exists.
151 dnl ==============================================================
152 _topsrcdir=`cd \`dirname $0\`; pwd`
155 if test "$_topsrcdir" != "$_objdir"
157 # Check for a couple representative files in the source tree
159 for file in $_topsrcdir/Makefile $_topsrcdir/config/autoconf.mk; do
160 if test -f $file; then
161 _conflict_files="$_conflict_files $file"
164 if test "$_conflict_files"; then
166 echo "* Your source tree contains these files:"
167 for file in $_conflict_files; do
171 * This indicates that you previously built in the source tree.
172 * A source tree build can confuse the separate objdir build.
174 * To clean up the source tree:
185 dnl Default to MSVC for win32
186 dnl ==============================================================
187 if test -z "$CROSS_COMPILE"; then
189 *-cygwin*|*-mingw*|*-msvc*|*-mks*)
191 if test -z "$CC"; then CC=cl; fi
192 if test -z "$CXX"; then CXX=cl; fi
193 if test -z "$CPP"; then CPP="cl -E -nologo"; fi
194 if test -z "$CXXCPP"; then CXXCPP="cl -TP -E -nologo"; ac_cv_prog_CXXCPP="$CXXCPP"; fi
195 if test -z "$LD"; then LD=link; fi
196 if test -z "$AS"; then AS=ml; fi
197 if test -z "$MIDL"; then MIDL=midl; fi
202 COMPILE_ENVIRONMENT=1
203 MOZ_ARG_ENABLE_BOOL(compile-environment,
204 [ --disable-compile-environment
205 Disable compiler/library checks.],
206 COMPILE_ENVIRONMENT=1,
207 COMPILE_ENVIRONMENT= )
209 MOZ_ARG_WITH_STRING(l10n-base,
210 [ --with-l10n-base=DIR path to l10n repositories],
211 L10NBASEDIR=$withval)
212 if test ! -z "$L10NBASEDIR"; then
213 if test "$L10NBASEDIR" = "yes" -o "$L10NBASEDIR" = "no"; then
214 AC_MSG_ERROR([--with-l10n-base must specify a path])
215 elif test -d "$L10NBASEDIR"; then
216 L10NBASEDIR=`cd "$L10NBASEDIR" && pwd`
218 AC_MSG_ERROR([Invalid value --with-l10n-base, $L10NBASEDIR doesn't exist])
221 AC_SUBST(L10NBASEDIR)
223 dnl ========================================================
224 dnl Checks for compilers.
225 dnl ========================================================
226 dnl Set CROSS_COMPILE in the environment when running configure
227 dnl to use the cross-compile setup for now
228 dnl ========================================================
230 if test "$COMPILE_ENVIRONMENT"; then
232 dnl Do some special WinCE toolchain stuff
235 echo -----------------------------------------------------------------------------
236 echo Building Windows CE Shunt Library and Tool Chain
237 echo -----------------------------------------------------------------------------
241 echo -n "#define TOPSRCDIR \"" > $srcdir/build/wince/tools/topsrcdir.h
242 echo `cd "$_topsrcdir" && pwd -W | tr '\n' '\"'` >> $srcdir/build/wince/tools/topsrcdir.h
243 make -C $srcdir/build/wince/tools
244 echo -----------------------------------------------------------------------------
248 if test -n "$CROSS_COMPILE" && test "$target" != "$host"; then
249 echo "cross compiling from $host to $target"
253 _SAVE_CFLAGS="$CFLAGS"
254 _SAVE_LDFLAGS="$LDFLAGS"
256 AC_MSG_CHECKING([for host c compiler])
257 AC_CHECK_PROGS(HOST_CC, $HOST_CC gcc cc /usr/ucb/cc cl icc, "")
258 if test -z "$HOST_CC"; then
259 AC_MSG_ERROR([no acceptable c compiler found in \$PATH])
261 AC_MSG_RESULT([$HOST_CC])
262 AC_MSG_CHECKING([for host c++ compiler])
263 AC_CHECK_PROGS(HOST_CXX, $HOST_CXX $CCC c++ g++ gcc CC cxx cc++ cl icc, "")
264 if test -z "$HOST_CXX"; then
265 AC_MSG_ERROR([no acceptable c++ compiler found in \$PATH])
267 AC_MSG_RESULT([$HOST_CXX])
269 if test -z "$HOST_CFLAGS"; then
270 HOST_CFLAGS="$CFLAGS"
272 if test -z "$HOST_CXXFLAGS"; then
273 HOST_CXXFLAGS="$CXXFLAGS"
275 if test -z "$HOST_LDFLAGS"; then
276 HOST_LDFLAGS="$LDFLAGS"
278 AC_CHECK_PROGS(HOST_RANLIB, $HOST_RANLIB ranlib, ranlib, :)
279 AC_CHECK_PROGS(HOST_AR, $HOST_AR ar, ar, :)
281 CFLAGS="$HOST_CFLAGS"
282 LDFLAGS="$HOST_LDFLAGS"
284 AC_MSG_CHECKING([whether the host c compiler ($HOST_CC $HOST_CFLAGS $HOST_LDFLAGS) works])
285 AC_TRY_COMPILE([], [return(0);],
286 [ac_cv_prog_hostcc_works=1 AC_MSG_RESULT([yes])],
287 AC_MSG_ERROR([installation or configuration problem: host compiler $HOST_CC cannot create executables.]) )
290 CFLAGS="$HOST_CXXFLAGS"
292 AC_MSG_CHECKING([whether the host c++ compiler ($HOST_CXX $HOST_CXXFLAGS $HOST_LDFLAGS) works])
293 AC_TRY_COMPILE([], [return(0);],
294 [ac_cv_prog_hostcxx_works=1 AC_MSG_RESULT([yes])],
295 AC_MSG_ERROR([installation or configuration problem: host compiler $HOST_CXX cannot create executables.]) )
299 LDFLAGS=$_SAVE_LDFLAGS
301 case "$build:$target" in
302 powerpc-apple-darwin8*:i?86-apple-darwin*)
303 dnl The Darwin cross compiler doesn't necessarily point itself at a
304 dnl root that has libraries for the proper architecture, it defaults
305 dnl to the system root. The libraries in the system root on current
306 dnl versions of PPC OS X 10.4 aren't fat, so these target compiler
307 dnl checks will fail. Fake a working SDK in that case.
309 _SAVE_CXXFLAGS=$CXXLAGS
310 CFLAGS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk $CFLAGS"
311 CXXFLAGS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk $CXXFLAGS"
315 AC_CHECK_PROGS(CC, $CC "${target_alias}-gcc" "${target}-gcc", :)
318 AC_CHECK_PROGS(CXX, $CXX "${target_alias}-g++" "${target}-g++", :)
322 case "$build:$target" in
323 powerpc-apple-darwin8*:i?86-apple-darwin*)
324 dnl Revert the changes made above. From this point on, the target
325 dnl compiler will never be used without applying the SDK to CFLAGS
326 dnl (see --with-macos-sdk below).
328 CXXFLAGS=$_SAVE_CXXFLAGS
332 AC_CHECK_PROGS(RANLIB, $RANLIB "${target_alias}-ranlib" "${target}-ranlib", :)
333 AC_CHECK_PROGS(AR, $AR "${target_alias}-ar" "${target}-ar", :)
334 AC_PATH_PROGS(AS, $AS "${target_alias}-as" "${target}-as", :)
335 AC_CHECK_PROGS(LD, $LD "${target_alias}-ld" "${target}-ld", :)
336 AC_CHECK_PROGS(STRIP, $STRIP "${target_alias}-strip" "${target}-strip", :)
337 AC_CHECK_PROGS(WINDRES, $WINDRES "${target_alias}-windres" "${target}-windres", :)
338 AC_DEFINE(CROSS_COMPILE)
343 AC_PATH_PROGS(AS, $AS as, $CC)
344 AC_CHECK_PROGS(AR, ar, :)
345 AC_CHECK_PROGS(LD, ld, :)
346 AC_CHECK_PROGS(STRIP, strip, :)
347 AC_CHECK_PROGS(WINDRES, windres, :)
348 if test -z "$HOST_CC"; then
351 if test -z "$HOST_CFLAGS"; then
352 HOST_CFLAGS="$CFLAGS"
354 if test -z "$HOST_CXX"; then
357 if test -z "$HOST_CXXFLAGS"; then
358 HOST_CXXFLAGS="$CXXFLAGS"
360 if test -z "$HOST_LDFLAGS"; then
361 HOST_LDFLAGS="$LDFLAGS"
363 if test -z "$HOST_RANLIB"; then
364 HOST_RANLIB="$RANLIB"
366 if test -z "$HOST_AR"; then
377 if test "$GCC" = "yes"; then
379 CC_VERSION=`$CC -v 2>&1 | grep 'gcc version'`
381 if test "$GXX" = "yes"; then
383 CXX_VERSION=`$CXX -v 2>&1 | grep 'gcc version'`
385 if test "`echo | $AS -v 2>&1 | grep -c GNU`" != "0"; then
388 if test "`echo | $LD -v 2>&1 | grep -c GNU`" != "0"; then
391 if test "$GNU_CC"; then
392 if `$CC -print-prog-name=ld` -v 2>&1 | grep -c GNU >/dev/null; then
399 if test "$GCC" = yes; then
400 if test "`$CC -help 2>&1 | grep -c 'Intel(R) C Compiler'`" != "0"; then
405 if test "$GXX" = yes; then
406 if test "`$CXX -help 2>&1 | grep -c 'Intel(R) C++ Compiler'`" != "0"; then
411 dnl Special win32 checks
412 dnl ========================================================
418 if test -n "$GNU_CC"; then
426 MOZ_ARG_WITH_STRING(windows-version,
427 [ --with-windows-version=WINVER
428 Minimum Windows version (WINVER) to support
439 AC_MSG_ERROR([Invalid value --with-windows-version, must be 400, 500 or 501]);
445 *-cygwin*|*-mingw*|*-msvc*|*-mks*|*-wince)
446 if test "$GCC" != "yes"; then
447 # Check to see if we are really running in a msvc environemnt
449 AC_CHECK_PROGS(MIDL, midl)
451 # Make sure compilers are valid
452 CFLAGS="$CFLAGS -TC -nologo"
453 CXXFLAGS="$CXXFLAGS -TP -nologo"
456 AC_TRY_COMPILE([#include <stdio.h>],
457 [ printf("Hello World\n"); ],,
458 AC_MSG_ERROR([\$(CC) test failed. You must have MS VC++ in your path to build.]) )
461 AC_TRY_COMPILE([#include <new.h>],
462 [ unsigned *test = new unsigned(42); ],,
463 AC_MSG_ERROR([\$(CXX) test failed. You must have MS VC++ in your path to build.]) )
467 _MSVC_VER_FILTER='s|.* ([0-9]+\.[0-9]+\.[0-9]+(\.[0-9]+)?).*|\1|p'
470 # Determine compiler version
471 CC_VERSION=`"${CC}" -v 2>&1 | sed -nre "$_MSVC_VER_FILTER"`
472 _CC_MAJOR_VERSION=`echo ${CC_VERSION} | $AWK -F\. '{ print $1 }'`
473 _CC_MINOR_VERSION=`echo ${CC_VERSION} | $AWK -F\. '{ print $2 }'`
474 _CC_RELEASE=`echo ${CC_VERSION} | $AWK -F\. '{ print $3 }'`
475 _CC_BUILD=`echo ${CC_VERSION} | $AWK -F\. '{ print $4 }'`
476 _MSC_VER=${_CC_MAJOR_VERSION}${_CC_MINOR_VERSION}
478 CXX_VERSION=`"${CXX}" -v 2>&1 | sed -nre "$_MSVC_VER_FILTER"`
479 _CXX_MAJOR_VERSION=`echo ${CXX_VERSION} | $AWK -F\. '{ print $1 }'`
481 if test "$_CC_MAJOR_VERSION" != "$_CXX_MAJOR_VERSION"; then
482 AC_MSG_ERROR([The major versions of \$CC and \$CXX do not match.])
484 if test "$_CC_MAJOR_VERSION" = "12"; then
486 elif test "$_CC_MAJOR_VERSION" = "13"; then
488 elif test "$_CC_MAJOR_VERSION" = "14"; then
490 CXXFLAGS="$CXXFLAGS -Zc:wchar_t-"
491 dnl -DYNAMICBASE is only supported on VC8SP1 or newer,
492 dnl so be very specific here!
493 dnl VC8 is 14.00.50727.42, VC8SP1 is 14.00.50727.762
494 if test $_CC_RELEASE -gt 50727; then
496 elif test $_CC_BUILD -ge 762; then
499 AC_DEFINE(_CRT_SECURE_NO_DEPRECATE)
500 AC_DEFINE(_CRT_NONSTDC_NO_DEPRECATE)
501 elif test "$_CC_MAJOR_VERSION" = "15"; then
503 CXXFLAGS="$CXXFLAGS -Zc:wchar_t-"
504 LDFLAGS="$LDFLAGS -MANIFESTUAC:NO"
506 AC_DEFINE(_CRT_SECURE_NO_WARNINGS)
507 AC_DEFINE(_CRT_NONSTDC_NO_WARNINGS)
509 AC_MSG_ERROR([This version of the MSVC compiler, $CC_VERSION , is unsupported.])
512 _MOZ_RTTI_FLAGS_ON='-GR'
513 _MOZ_RTTI_FLAGS_OFF='-GR-'
514 _MOZ_EXCEPTIONS_FLAGS_ON='-EHsc'
515 _MOZ_EXCEPTIONS_FLAGS_OFF=''
517 if test -n "$WIN32_REDIST_DIR"; then
518 WIN32_REDIST_DIR=`cd "$WIN32_REDIST_DIR" && pwd`
522 # ensure that mt.exe is Microsoft (R) Manifest Tool and not magnetic tape manipulation utility (or something else)
523 if test "$_CC_SUITE" -ge "8"; then
525 _MSMT_VER_FILTER='s|.* \([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*|\1|p'
528 MSMT_TOOL=`mt 2>&1|grep 'Microsoft (R) Manifest Tool'`
529 if test -n "$MSMT_TOOL"; then
530 MSMANIFEST_TOOL_VERSION=`echo ${MSMT_TOOL}|sed -ne "$_MSMT_VER_FILTER"`
531 if test -z "$MSMANIFEST_TOOL_VERSION"; then
532 AC_MSG_WARN([Unknown version of the Microsoft (R) Manifest Tool.])
537 AC_MSG_ERROR([Microsoft (R) Manifest Tool must be in your \$PATH.])
541 # Check linker version
542 _LD_FULL_VERSION=`"${LD}" -v 2>&1 | sed -nre "$_MSVC_VER_FILTER"`
543 _LD_MAJOR_VERSION=`echo ${_LD_FULL_VERSION} | $AWK -F\. '{ print $1 }'`
544 if test "$_LD_MAJOR_VERSION" != "$_CC_SUITE"; then
545 AC_MSG_ERROR([The linker major version, $_LD_FULL_VERSION, does not match the compiler suite version, $_CC_SUITE.])
550 _MIDL_FULL_VERSION=`"${MIDL}" -v 2>&1 | sed -nre "$_MSVC_VER_FILTER"`
551 _MIDL_MAJOR_VERSION=`echo ${_MIDL_FULL_VERSION} | $AWK -F\. '{ print $1 }'`
552 _MIDL_MINOR_VERSION=`echo ${_MIDL_FULL_VERSION} | $AWK -F\. '{ print $2 }'`
553 _MIDL_REV_VERSION=`echo ${_MIDL_FULL_VERSION} | $AWK -F\. '{ print $3 }'`
554 # Add flags if necessary
555 AC_MSG_CHECKING([for midl flags])
556 if test \( "$_MIDL_MAJOR_VERSION" -gt "6" \) -o \( "$_MIDL_MAJOR_VERSION" = "6" -a "$_MIDL_MINOR_VERSION" -gt "0" \) -o \( "$_MIDL_MAJOR_VERSION" = "6" -a "$_MIDL_MINOR_VERSION" = "00" -a "$_MIDL_REV_VERSION" -gt "359" \); then
557 # Starting with MIDL version 6.0.359, the MIDL compiler
558 # generates /Oicf /robust stubs by default, which is not
559 # compatible with versions of Windows older than Win2k.
560 # This switches us back to the old behaviour. When we drop
561 # support for Windows older than Win2k, we should remove
563 MIDL_FLAGS="${MIDL_FLAGS} -no_robust"
564 AC_MSG_RESULT([need -no_robust])
566 MIDL_FLAGS="${MIDL_FLAGS}"
567 AC_MSG_RESULT([none needed])
570 unset _MSVC_VER_FILTER
573 # Check w32api version
574 _W32API_MAJOR_VERSION=`echo $W32API_VERSION | $AWK -F\. '{ print $1 }'`
575 _W32API_MINOR_VERSION=`echo $W32API_VERSION | $AWK -F\. '{ print $2 }'`
576 AC_MSG_CHECKING([for w32api version >= $W32API_VERSION])
577 AC_TRY_COMPILE([#include <w32api.h>],
578 #if (__W32API_MAJOR_VERSION < $_W32API_MAJOR_VERSION) || \
579 (__W32API_MAJOR_VERSION == $_W32API_MAJOR_VERSION && \
580 __W32API_MINOR_VERSION < $_W32API_MINOR_VERSION)
581 #error "test failed."
583 , [ res=yes ], [ res=no ])
584 AC_MSG_RESULT([$res])
585 if test "$res" != "yes"; then
586 AC_MSG_ERROR([w32api version $W32API_VERSION or higher required.])
588 # Check windres version
589 AC_MSG_CHECKING([for windres version >= $WINDRES_VERSION])
590 _WINDRES_VERSION=`${WINDRES} --version 2>&1 | grep -i windres 2>/dev/null | $AWK '{ print $3 }'`
591 AC_MSG_RESULT([$_WINDRES_VERSION])
592 _WINDRES_MAJOR_VERSION=`echo $_WINDRES_VERSION | $AWK -F\. '{ print $1 }'`
593 _WINDRES_MINOR_VERSION=`echo $_WINDRES_VERSION | $AWK -F\. '{ print $2 }'`
594 _WINDRES_RELEASE_VERSION=`echo $_WINDRES_VERSION | $AWK -F\. '{ print $3 }'`
595 WINDRES_MAJOR_VERSION=`echo $WINDRES_VERSION | $AWK -F\. '{ print $1 }'`
596 WINDRES_MINOR_VERSION=`echo $WINDRES_VERSION | $AWK -F\. '{ print $2 }'`
597 WINDRES_RELEASE_VERSION=`echo $WINDRES_VERSION | $AWK -F\. '{ print $3 }'`
598 if test "$_WINDRES_MAJOR_VERSION" -lt "$WINDRES_MAJOR_VERSION" -o \
599 "$_WINDRES_MAJOR_VERSION" -eq "$WINDRES_MAJOR_VERSION" -a \
600 "$_WINDRES_MINOR_VERSION" -lt "$WINDRES_MINOR_VERSION" -o \
601 "$_WINDRES_MAJOR_VERSION" -eq "$WINDRES_MAJOR_VERSION" -a \
602 "$_WINDRES_MINOR_VERSION" -eq "$WINDRES_MINOR_VERSION" -a \
603 "$_WINDRES_RELEASE_VERSION" -lt "$WINDRES_RELEASE_VERSION"
605 AC_MSG_ERROR([windres version $WINDRES_VERSION or higher is required to build.])
609 AC_DEFINE_UNQUOTED(WINVER,0x$WINVER)
610 AC_DEFINE_UNQUOTED(_WIN32_WINNT,0x$WINVER)
611 # Require OS features provided by IE 5.0
612 AC_DEFINE_UNQUOTED(_WIN32_IE,0x0500)
616 dnl Test breaks icc on OS/2 && MSVC
617 if test "$CC" != "icc" -a -z "$_WIN32_MSVC"; then
619 if grep "NO_MINUS_C_MINUS_O 1" ./confdefs.h >/dev/null; then
623 CC="${srcdir}/build/hcc '$CC'"
624 CXX="${srcdir}/build/hcpp '$CXX'"
631 if test -n "$_WIN32_MSVC"; then
633 SKIP_COMPILER_CHECKS=1
634 SKIP_LIBRARY_CHECKS=1
637 fi # COMPILE_ENVIRONMENT
649 dnl ========================================================
650 dnl Checks for programs.
651 dnl ========================================================
654 AC_PATH_PROGS(PERL, $PERL perl5 perl )
655 if test -z "$PERL" || test "$PERL" = ":"; then
656 AC_MSG_ERROR([perl not found in \$PATH])
659 if test -z "$TINDERBOX_SKIP_PERL_VERSION_CHECK"; then
660 AC_MSG_CHECKING([for minimum required perl version >= $PERL_VERSION])
661 _perl_version=`PERL_VERSION=$PERL_VERSION $PERL -e 'print "$]"; if ($] >= $ENV{PERL_VERSION}) { exit(0); } else { exit(1); }' 2>&5`
663 AC_MSG_RESULT([$_perl_version])
665 if test "$_perl_res" != 0; then
666 AC_MSG_ERROR([Perl $PERL_VERSION or higher is required.])
670 AC_MSG_CHECKING([for full perl installation])
671 _perl_archlib=`$PERL -e 'use Config; if ( -d $Config{archlib} ) { exit(0); } else { exit(1); }' 2>&5`
673 if test "$_perl_res" != 0; then
675 AC_MSG_ERROR([Cannot find Config.pm or \$Config{archlib}. A full perl installation is required.])
680 AC_PATH_PROGS(PYTHON, $PYTHON python)
681 if test -z "$PYTHON"; then
682 AC_MSG_ERROR([python was not found in \$PATH])
684 echo PYTHON="$PYTHON"
686 AC_PATH_PROGS(NSINSTALL_BIN, nsinstall )
687 if test -z "$COMPILE_ENVIRONMENT"; then
688 if test -z "$NSINSTALL_BIN" || test "$NSINSTALL_BIN" = ":"; then
689 NSINSTALL_BIN='$(PYTHON) $(topsrcdir)/config/nsinstall.py'
692 AC_SUBST(NSINSTALL_BIN)
694 AC_PATH_PROG(DOXYGEN, doxygen, :)
695 AC_PATH_PROG(WHOAMI, whoami, :)
696 AC_PATH_PROG(AUTOCONF, autoconf, :)
697 AC_PATH_PROG(UNZIP, unzip, :)
698 AC_PATH_PROGS(ZIP, zip)
699 if test -z "$ZIP" || test "$ZIP" = ":"; then
700 AC_MSG_ERROR([zip not found in \$PATH])
702 AC_PATH_PROG(SYSTEM_MAKEDEPEND, makedepend)
703 AC_PATH_PROG(XARGS, xargs)
704 if test -z "$XARGS" || test "$XARGS" = ":"; then
705 AC_MSG_ERROR([xargs not found in \$PATH .])
708 if test "$COMPILE_ENVIRONMENT"; then
710 dnl ========================================================
711 dnl = Mac OS X toolchain support
712 dnl ========================================================
716 dnl Current known valid versions for GCC_VERSION are 2.95.2 3.1 3.3 4.0.
717 dnl 4.0 identifies itself as 4.0.x, so strip the decidecimal for
718 dnl the environment and includedir purposes (when using an SDK, below),
719 dnl but remember the full version number for the libdir (SDK).
721 GCC_VERSION_FULL=`echo $CXX_VERSION | $PERL -pe 's/^.*gcc version ([^ ]*).*/$1/'`
722 GCC_VERSION=`echo $GCC_VERSION_FULL | $PERL -pe '(split(/\./))[0]>=4&&s/(^\d*\.\d*).*/$1/;'`
724 if test "$GCC_VERSION_FULL" = "4.0.0" ; then
725 dnl Bug 280479, but this keeps popping up in bug 292530 too because
726 dnl 4.0.0/4061 is the default compiler in Tiger.
728 GCC_BUILD=`echo $CXX_VERSION | $PERL -pe 's/^.*build ([^ )]*).*/$1/'`
730 if test "$GCC_BUILD" = "4061" ; then
731 AC_MSG_ERROR([You are attempting to use Apple gcc 4.0 build 4061.
732 This compiler was supplied with Xcode 2.0, and contains bugs that prevent it
733 from building Mozilla. Upgrade to Xcode 2.1 or later.])
737 dnl xcodebuild needs GCC_VERSION defined in the environment, since it
738 dnl doesn't respect the CC/CXX setting. With GCC_VERSION set, it will use
739 dnl /usr/bin/g(cc|++)-$GCC_VERSION.
740 AC_PATH_PROGS(PBBUILD, pbbuild xcodebuild pbxbuild)
745 XCODEBUILD_VERSION=`$PBBUILD -version 2>/dev/null | xargs | sed -e 's/.*DevToolsCore-\([0-9]*\).*/\1/'`
747 if test -n "$XCODEBUILD_VERSION" && test "$XCODEBUILD_VERSION" -ge 620 ; then
753 dnl sdp was formerly in /Developer/Tools. As of Mac OS X 10.4 (Darwin 8),
754 dnl it has moved into /usr/bin.
755 AC_PATH_PROG(SDP, sdp, :, [$PATH:/usr/bin:/Developer/Tools])
759 AC_SUBST(GCC_VERSION)
760 AC_SUBST(XCODEBUILD_VERSION)
761 AC_SUBST(HAS_XCODE_2_1)
763 dnl The universal machinery sets UNIVERSAL_BINARY to inform packager.mk
764 dnl that a universal binary is being produced.
765 AC_SUBST(UNIVERSAL_BINARY)
767 dnl ========================================================
768 dnl Check for MacOS deployment target version
769 dnl ========================================================
771 MOZ_ARG_ENABLE_STRING(macos-target,
772 [ --enable-macos-target=VER (default=10.4)
773 Set the minimum MacOS version needed at runtime],
774 [_MACOSX_DEPLOYMENT_TARGET=$enableval])
778 if test -n "$_MACOSX_DEPLOYMENT_TARGET" ; then
779 dnl Use the specified value
780 export MACOSX_DEPLOYMENT_TARGET=$_MACOSX_DEPLOYMENT_TARGET
781 AC_DEFINE_UNQUOTED(__ENVIRONMENT_MAC_OS_X_VERION_MIN_REQUIRED__,$_MACOSX_DEPLOYMENT_TARGET)
782 elif test -z "$MACOSX_DEPLOYMENT_TARGET" ; then
783 dnl No value specified on the command line or in the environment,
784 dnl use the lesser of the application's minimum or the architecture's
786 export MACOSX_DEPLOYMENT_TARGET=10.4
791 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
793 dnl ========================================================
794 dnl = Mac OS X SDK support
795 dnl ========================================================
798 MOZ_ARG_WITH_STRING(macos-sdk,
799 [ --with-macos-sdk=dir Location of platform SDK to use (Mac OS X only)],
800 MACOS_SDK_DIR=$withval)
802 dnl MACOS_SDK_DIR will be set to the SDK location whenever one is in use.
803 dnl NEXT_ROOT will be set and exported only if it's needed.
804 AC_SUBST(MACOS_SDK_DIR)
807 if test "$MACOS_SDK_DIR"; then
808 dnl Sync this section with the ones in NSPR and NSS.
809 dnl Changes to the cross environment here need to be accounted for in
810 dnl the libIDL checks (below) and xpidl build.
812 if test ! -d "$MACOS_SDK_DIR"; then
813 AC_MSG_ERROR([SDK not found. When using --with-macos-sdk, you must
814 specify a valid SDK. SDKs are installed when the optional cross-development
815 tools are selected during the Xcode/Developer Tools installation.])
818 GCC_VERSION_MAJOR=`echo $GCC_VERSION_FULL | $PERL -pe 's/(^\d*).*/$1/;'`
819 if test "$GCC_VERSION_MAJOR" -lt "4" ; then
820 SDK_C_INCLUDE="-isystem ${MACOS_SDK_DIR}/usr/include/gcc/darwin/${GCC_VERSION} -isystem ${MACOS_SDK_DIR}/usr/include -F${MACOS_SDK_DIR}/System/Library/Frameworks"
821 if test -d "${MACOS_SDK_DIR}/Library/Frameworks" ; then
822 SDK_C_INCLUDE="$SDK_C_INCLUDE -F${MACOS_SDK_DIR}/Library/Frameworks"
824 SDK_CXX_INCLUDE="-I${MACOS_SDK_DIR}/usr/include/gcc/darwin/${GCC_VERSION}/c++ -I${MACOS_SDK_DIR}/usr/include/gcc/darwin/${GCC_VERSION}/c++/ppc-darwin -I${MACOS_SDK_DIR}/usr/include/gcc/darwin/${GCC_VERSION}/c++/backward"
826 CFLAGS="$CFLAGS -nostdinc ${SDK_C_INCLUDE}"
827 CXXFLAGS="$CXXFLAGS -nostdinc -nostdinc++ ${SDK_CXX_INCLUDE} ${SDK_C_INCLUDE}"
829 dnl CPP/CXXCPP needs to be set for AC_CHECK_HEADER.
830 CPP="$CPP -nostdinc ${SDK_C_INCLUDE}"
831 CXXCPP="$CXXCPP -nostdinc -nostdinc++ ${SDK_CXX_INCLUDE} ${SDK_C_INCLUDE}"
833 dnl ld support for -syslibroot is compiler-agnostic, but only available
834 dnl on Tiger. Although it's possible to switch on the build host's
835 dnl OS release to use ld -syslibroot when available, ld -syslibroot will
836 dnl cause warnings as long as NEXT_ROOT is set. NEXT_ROOT should be
837 dnl set because both the compiler and linker use it.
838 LIBS="-L${MACOS_SDK_DIR}/usr/lib/gcc/darwin -L${MACOS_SDK_DIR}/usr/lib/gcc/darwin/${GCC_VERSION_FULL} -L${MACOS_SDK_DIR}/usr/lib $LIBS"
839 export NEXT_ROOT=$MACOS_SDK_DIR
841 if test -n "$CROSS_COMPILE" ; then
842 dnl NEXT_ROOT will be in the environment, but it shouldn't be set for
843 dnl the build host. HOST_CXX is presently unused.
844 HOST_CC="NEXT_ROOT= $HOST_CC"
845 HOST_CXX="NEXT_ROOT= $HOST_CXX"
848 dnl gcc >= 4.0 uses different paths than above, but knows how to find
850 CFLAGS="$CFLAGS -isysroot ${MACOS_SDK_DIR}"
851 CXXFLAGS="$CXXFLAGS -isysroot ${MACOS_SDK_DIR}"
853 dnl CPP/CXXCPP needs to be set for AC_CHECK_HEADER.
854 CPP="$CPP -isysroot ${MACOS_SDK_DIR}"
855 CXXCPP="$CXXCPP -isysroot ${MACOS_SDK_DIR}"
857 if test "$GCC_VERSION_FULL" = "4.0.0" ; then
858 dnl If gcc >= 4.0, we're guaranteed to be on Tiger, which has an ld
859 dnl that supports -syslibroot. Don't set NEXT_ROOT because it will
860 dnl be ignored and cause warnings when -syslibroot is specified.
861 dnl gcc 4.0.1 will pass -syslibroot to ld automatically based on
862 dnl the -isysroot it receives, so this is only needed with 4.0.0.
863 LDFLAGS="$LDFLAGS -Wl,-syslibroot,${MACOS_SDK_DIR}"
868 AC_MSG_CHECKING([for valid compiler/Mac OS X SDK combination])
870 AC_TRY_COMPILE([#include <new>
871 int main() { return 0; }],
875 AC_MSG_RESULT($result)
877 if test "$result" = "no" ; then
878 AC_MSG_ERROR([The selected compiler and Mac OS X SDK are incompatible.])
882 fi # COMPILE_ENVIRONMENT
884 dnl Be sure the make we use is GNU make.
885 dnl on win32, gmake.exe is the generally the wrong version
887 cygwin*|mingw*|mks*|msvc*)
888 AC_PATH_PROGS(MAKE, $MAKE make gmake, :)
891 AC_PATH_PROGS(MAKE, $MAKE gmake make, :)
894 _make_try=`$MAKE --version 2>/dev/null | grep GNU`
895 if test ! "$_make_try"
898 echo "*** $MAKE is not GNU Make. You will not be able to build Mozilla without GNU Make."
902 dnl Now exit if version if < MAKE_VERSION
904 echo 'all: ; @echo $(MAKE_VERSION)' > dummy.mk
905 _make_vers=`$MAKE --no-print-directory -f dummy.mk all 2>/dev/null`
907 _MAKE_MAJOR_VERSION=`echo $_make_vers | $AWK -F\. '{ print $1 }'`
908 _MAKE_MINOR_VERSION=`echo $_make_vers | $AWK -F\. '{ print $2 }'`
909 MAKE_MAJOR_VERSION=`echo $MAKE_VERSION | $AWK -F\. '{ print $1 }'`
910 MAKE_MINOR_VERSION=`echo $MAKE_VERSION | $AWK -F\. '{ print $2 }'`
911 if test "$_MAKE_MAJOR_VERSION" -lt "$MAKE_MAJOR_VERSION" || \
912 test "$_MAKE_MAJOR_VERSION" = "$MAKE_MAJOR_VERSION" -a \
913 "$_MAKE_MINOR_VERSION" -lt "$MAKE_MINOR_VERSION"; then
914 AC_MSG_ERROR([GNU Make $MAKE_VERSION or higher is required to build Mozilla.])
918 if test "$COMPILE_ENVIRONMENT"; then
922 dnl Check in X11 include directory too.
923 if test "$no_x" != "yes"; then
924 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
929 fi # COMPILE_ENVIRONMENT
931 dnl ========================================================
932 dnl set the defaults first
933 dnl ========================================================
952 MOZ_USER_DIR=".mozilla"
954 HOST_AR_FLAGS='$(AR_FLAGS)'
957 MOZ_JPEG_LIBS='$(call EXPAND_LIBNAME_PATH,mozjpeg,$(DEPTH)/jpeg)'
959 MOZ_ZLIB_LIBS='$(call EXPAND_LIBNAME_PATH,mozz,$(DEPTH)/modules/zlib/src)'
961 MOZ_BZ2_LIBS='$(call EXPAND_LIBNAME_PATH,bz2,$(DEPTH)/modules/libbz2/src)'
963 MOZ_PNG_LIBS='$(call EXPAND_LIBNAME_PATH,mozpng,$(DEPTH)/modules/libimg/png)'
965 MOZ_JS_LIBS='-L$(LIBXUL_DIST)/bin -lmozjs'
966 DYNAMIC_XPCOM_LIBS='-L$(LIBXUL_DIST)/bin -lxpcom -lxpcom_core'
967 MOZ_FIX_LINK_PATHS='-Wl,-rpath-link,$(LIBXUL_DIST)/bin -Wl,-rpath-link,$(PREFIX)/lib'
968 XPCOM_FROZEN_LDOPTS='-L$(LIBXUL_DIST)/bin -lxpcom'
969 LIBXUL_LIBS='$(XPCOM_FROZEN_LDOPTS) -lxul'
970 XPCOM_GLUE_LDOPTS='$(LIBXUL_DIST)/lib/$(LIB_PREFIX)xpcomglue_s.$(LIB_SUFFIX) $(XPCOM_FROZEN_LDOPTS)'
971 XPCOM_STANDALONE_GLUE_LDOPTS='$(LIBXUL_DIST)/lib/$(LIB_PREFIX)xpcomglue.$(LIB_SUFFIX)'
973 MOZ_COMPONENT_NSPR_LIBS='-L$(LIBXUL_DIST)/bin $(NSPR_LIBS)'
974 MOZ_XPCOM_OBSOLETE_LIBS='-L$(LIBXUL_DIST)/lib -lxpcom_compat'
978 _PLATFORM_DEFAULT_TOOLKIT=cairo-gtk2
979 MOZ_GFX_TOOLKIT='$(MOZ_WIDGET_TOOLKIT)'
981 MOZ_ENABLE_POSTSCRIPT=1
983 if test -n "$CROSS_COMPILE"; then
984 OS_TARGET="${target_os}"
985 OS_ARCH=`echo $target_os | sed -e 's|/|_|g'`
987 case "${target_os}" in
988 linux*) OS_ARCH=Linux OS_TARGET=Linux ;;
989 kfreebsd*-gnu) OS_ARCH=GNU_kFreeBSD OS_TARGET=GNU_kFreeBSD ;;
990 solaris*) OS_ARCH=SunOS OS_RELEASE=5 ;;
991 mingw*) OS_ARCH=WINNT ;;
992 wince*) OS_ARCH=WINCE ;;
993 darwin*) OS_ARCH=Darwin OS_TARGET=Darwin ;;
997 OS_ARCH=`uname -s | sed -e 's|/|_|g'`
998 OS_RELEASE=`uname -r`
1001 # Before this used `uname -m` when not cross compiling
1002 # but that breaks when you have a 64 bit kernel with a 32 bit userland.
1003 OS_TEST="${target_cpu}"
1007 HOST_OS_ARCH=`echo $host_os | sed -e 's|/|_|g'`
1009 #######################################################################
1010 # Master "Core Components" macros for getting the OS target #
1011 #######################################################################
1014 # Note: OS_TARGET should be specified on the command line for gmake.
1015 # When OS_TARGET=WIN95 is specified, then a Windows 95 target is built.
1016 # The difference between the Win95 target and the WinNT target is that
1017 # the WinNT target uses Windows NT specific features not available
1018 # in Windows 95. The Win95 target will run on Windows NT, but (supposedly)
1019 # at lesser performance (the Win95 target uses threads; the WinNT target
1022 # If OS_TARGET is not specified, it defaults to $(OS_ARCH), i.e., no
1023 # cross-compilation.
1027 # The following hack allows one to build on a WIN95 machine (as if
1028 # s/he were cross-compiling on a WINNT host for a WIN95 target).
1029 # It also accomodates for MKS's uname.exe. If you never intend
1030 # to do development on a WIN95 machine, you don't need this hack.
1045 CYGWIN_9*|CYGWIN_ME*)
1046 OS_ARCH='CYGWIN_NT-4.0'
1052 # Define and override various archtecture-specific variables, including
1061 case "$HOST_OS_ARCH" in
1062 cygwin*|mingw*|mks*|msvc*)
1081 if "`cat /etc/bcheckrc | grep -c NCR 2>/dev/null`" != "0"; then
1084 HOST_OS_ARCH=UNIXWARE
1096 HOST_OS_ARCH=OpenVMS
1106 SINIX-N | SINIX-Y | SINIX-Z |ReliantUNIX-M)
1110 HOST_OS_ARCH=UNIXWARE
1120 # If uname -s returns "Windows_NT", we assume that we are using
1121 # the uname.exe in MKS toolkit.
1123 # The -r option of MKS uname only returns the major version number.
1124 # So we need to use its -v option to get the minor version number.
1125 # Moreover, it doesn't have the -p option, so we need to use uname -m.
1129 OS_MINOR_RELEASE=`uname -v`
1130 if test "$OS_MINOR_RELEASE" = "00"; then
1133 OS_RELEASE="${OS_RELEASE}.${OS_MINOR_RELEASE}"
1135 CYGWIN32_NT|CYGWIN_NT*|MINGW*_NT*)
1137 # If uname -s returns "CYGWIN_NT-4.0", we assume that we are using
1138 # the uname.exe in the Cygwin tools.
1139 # Prior to the Beta 20 release, Cygwin was called GNU-Win32.
1140 # If uname -s returns "CYGWIN32/NT", we assume that we are using
1141 # the uname.exe in the GNU-Win32 tools.
1142 # If uname -s returns MINGW32_NT-5.1, we assume that we are using
1143 # the uname.exe in the MSYS tools.
1145 OS_RELEASE=`expr $OS_ARCH : '.*NT-\(.*\)'`
1150 OS_RELEASE=`uname -v`.`uname -r`
1163 if "`cat /etc/bcheckrc | grep -c NCR 2>/dev/null`" != "0"; then
1167 OS_RELEASE=`uname -v`
1191 OS_RELEASE=`uname -v`
1197 OS_RELEASE=`uname -v`
1200 if test "$OS_TARGET" != "NTO"; then
1202 OS_RELEASE=`uname -v | sed 's/^\([0-9]\)\([0-9]*\)$/\1.\2/'`
1211 SINIX-N | SINIX-Y | SINIX-Z |ReliantUNIX-M)
1217 OS_RELEASE=`uname -v`
1224 case "${target_cpu}" in
1232 if test -z "$CROSS_COMPILE" ; then
1240 if test "$OS_ARCH" = "NCR"; then
1242 OS_RELEASE=`awk '{print $3}' /etc/.relid | sed 's/^\([0-9]\)\(.\)\(..\)\(.*\)$/\2.\3/'`
1246 # Only set CPU_ARCH if we recognize the value of OS_TEST
1257 Alpha | alpha | ALPHA)
1274 if test -z "$OS_TARGET"; then
1277 if test "$OS_TARGET" = "WIN95"; then
1280 OS_CONFIG="${OS_TARGET}${OS_RELEASE}"
1282 dnl ========================================================
1283 dnl GNU specific defaults
1284 dnl ========================================================
1285 if test "$GNU_CC"; then
1286 # FIXME: Let us build with strict aliasing. bug 414641.
1287 CFLAGS="$CFLAGS -fno-strict-aliasing"
1288 MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-h,$@ -o $@'
1289 MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-h,$@ -o $@'
1290 DSO_LDOPTS='-shared'
1291 if test "$GCC_USE_GNU_LD"; then
1292 # Don't allow undefined symbols in libraries
1293 DSO_LDOPTS="$DSO_LDOPTS -Wl,-z,defs"
1295 WARNINGS_AS_ERRORS='-Werror'
1297 DSO_PIC_CFLAGS='-fPIC'
1298 _MOZ_RTTI_FLAGS_ON=${_COMPILER_PREFIX}-frtti
1299 _MOZ_RTTI_FLAGS_OFF=${_COMPILER_PREFIX}-fno-rtti
1300 _MOZ_EXCEPTIONS_FLAGS_ON='-fhandle-exceptions'
1301 _MOZ_EXCEPTIONS_FLAGS_OFF='-fno-handle-exceptions'
1303 # Turn on GNU specific features
1304 # -Wall - turn on all warnings
1305 # -pedantic - make compiler warn about non-ANSI stuff, and
1306 # be a little bit stricter
1307 # Warnings slamm took out for now (these were giving more noise than help):
1308 # -Wbad-function-cast - warns when casting a function to a new return type
1309 # -Wshadow - removed because it generates more noise than help --pete
1310 _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wall -W -Wno-unused -Wpointer-arith"
1311 if test -z "$INTEL_CC"; then
1312 # Don't use -Wcast-align with ICC
1314 # And don't use it on hppa, ia64, sparc, since it's noisy there
1315 hppa | ia64 | sparc)
1318 _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wcast-align"
1323 dnl Turn pedantic on but disable the warnings for long long
1326 if test -z "$INTEL_CC"; then
1327 _IGNORE_LONG_LONG_WARNINGS=1
1328 _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -W"
1330 _IGNORE_LONG_LONG_WARNINGS=
1334 _DEFINES_CFLAGS='-include $(DEPTH)/mozilla-config.h -DMOZILLA_CLIENT'
1335 _USE_CPP_INCLUDE_FLAG=1
1337 MKSHLIB='$(LD) $(DSO_LDOPTS) -h $@ -o $@'
1338 MKCSHLIB='$(LD) $(DSO_LDOPTS) -h $@ -o $@'
1340 DSO_LDOPTS='-shared'
1341 if test "$GNU_LD"; then
1342 # Don't allow undefined symbols in libraries
1343 DSO_LDOPTS="$DSO_LDOPTS -z defs"
1347 DSO_PIC_CFLAGS='-KPIC'
1348 _DEFINES_CFLAGS='$(ACDEFINES) -D_MOZILLA_CONFIG_H_ -DMOZILLA_CLIENT'
1351 if test "$GNU_CXX"; then
1352 # FIXME: Let us build with strict aliasing. bug 414641.
1353 CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
1354 # Turn on GNU specific features
1355 _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wall -Wpointer-arith -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor"
1356 if test -z "$INTEL_CC"; then
1357 # Don't use -Wcast-align with ICC
1359 # And don't use it on hppa, ia64, sparc, since it's noisy there
1360 hppa | ia64 | sparc)
1363 _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wcast-align"
1368 _DEFINES_CXXFLAGS='-DMOZILLA_CLIENT -include $(DEPTH)/mozilla-config.h'
1369 _USE_CPP_INCLUDE_FLAG=1
1371 AC_CACHE_CHECK(whether the compiler supports -Wno-invalid-offsetof,
1372 ac_has_wno_invalid_offsetof,
1376 _SAVE_CXXFLAGS="$CXXFLAGS"
1377 CXXFLAGS="$CXXFLAGS ${_COMPILER_PREFIX}-Wno-invalid-offsetof"
1380 ac_has_wno_invalid_offsetof="yes",
1381 ac_has_wno_invalid_offsetof="no")
1382 CXXFLAGS="$_SAVE_CXXFLAGS"
1385 if test "$ac_has_wno_invalid_offsetof" = "yes"; then
1386 _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} ${_COMPILER_PREFIX}-Wno-invalid-offsetof"
1389 _DEFINES_CXXFLAGS='-DMOZILLA_CLIENT -D_MOZILLA_CONFIG_H_ $(ACDEFINES)'
1392 dnl gcc can come with its own linker so it is better to use the pass-thru calls
1393 dnl MKSHLIB_FORCE_ALL is used to force the linker to include all object
1394 dnl files present in an archive. MKSHLIB_UNFORCE_ALL reverts the linker to
1395 dnl normal behavior.
1396 dnl ========================================================
1398 MKSHLIB_UNFORCE_ALL=
1400 if test "$COMPILE_ENVIRONMENT"; then
1401 if test "$GNU_CC"; then
1402 AC_MSG_CHECKING(whether ld has archive extraction flags)
1403 AC_CACHE_VAL(ac_cv_mkshlib_force_and_unforce,
1404 [_SAVE_LDFLAGS=$LDFLAGS; _SAVE_LIBS=$LIBS
1405 ac_cv_mkshlib_force_and_unforce="no"
1406 exec 3<&0 <<LOOP_INPUT
1407 force="-Wl,--whole-archive"; unforce="-Wl,--no-whole-archive"
1408 force="-Wl,-z -Wl,allextract"; unforce="-Wl,-z -Wl,defaultextract"
1409 force="-Wl,-all"; unforce="-Wl,-none"
1416 AC_TRY_LINK(,, ac_cv_mkshlib_force_and_unforce=$line; break)
1419 LDFLAGS=$_SAVE_LDFLAGS; LIBS=$_SAVE_LIBS
1421 if test "$ac_cv_mkshlib_force_and_unforce" = "no"; then
1425 eval $ac_cv_mkshlib_force_and_unforce
1426 MKSHLIB_FORCE_ALL=$force
1427 MKSHLIB_UNFORCE_ALL=$unforce
1430 fi # COMPILE_ENVIRONMENT
1432 dnl =================================================================
1433 dnl Set up and test static assertion macros used to avoid AC_TRY_RUN,
1434 dnl which is bad when cross compiling.
1435 dnl =================================================================
1436 if test "$COMPILE_ENVIRONMENT"; then
1437 configure_static_assert_macros='
1438 #define CONFIGURE_STATIC_ASSERT(condition) CONFIGURE_STATIC_ASSERT_IMPL(condition, __LINE__)
1439 #define CONFIGURE_STATIC_ASSERT_IMPL(condition, line) CONFIGURE_STATIC_ASSERT_IMPL2(condition, line)
1440 #define CONFIGURE_STATIC_ASSERT_IMPL2(condition, line) typedef int static_assert_line_##line[(condition) ? 1 : -1]
1443 dnl test that the macros actually work:
1444 AC_MSG_CHECKING(that static assertion macros used in autoconf tests work)
1445 AC_CACHE_VAL(ac_cv_static_assertion_macros_work,
1448 ac_cv_static_assertion_macros_work="yes"
1449 AC_TRY_COMPILE([$configure_static_assert_macros],
1450 [CONFIGURE_STATIC_ASSERT(1)],
1452 ac_cv_static_assertion_macros_work="no")
1453 AC_TRY_COMPILE([$configure_static_assert_macros],
1454 [CONFIGURE_STATIC_ASSERT(0)],
1455 ac_cv_static_assertion_macros_work="no",
1458 AC_TRY_COMPILE([$configure_static_assert_macros],
1459 [CONFIGURE_STATIC_ASSERT(1)],
1461 ac_cv_static_assertion_macros_work="no")
1462 AC_TRY_COMPILE([$configure_static_assert_macros],
1463 [CONFIGURE_STATIC_ASSERT(0)],
1464 ac_cv_static_assertion_macros_work="no",
1468 AC_MSG_RESULT("$ac_cv_static_assertion_macros_work")
1469 if test "$ac_cv_static_assertion_macros_work" = "no"; then
1470 AC_MSG_ERROR([Compiler cannot compile macros used in autoconf tests.])
1472 fi # COMPILE_ENVIRONMENT
1474 dnl ========================================================
1475 dnl Checking for 64-bit OS
1476 dnl ========================================================
1477 if test "$COMPILE_ENVIRONMENT"; then
1480 AC_MSG_CHECKING(for 64-bit OS)
1481 AC_TRY_COMPILE([$configure_static_assert_macros],
1482 [CONFIGURE_STATIC_ASSERT(sizeof(long) == 8)],
1483 result="yes", result="no")
1484 AC_MSG_RESULT("$result")
1485 if test "$result" = "yes"; then
1486 AC_DEFINE(HAVE_64BIT_OS)
1489 AC_SUBST(HAVE_64BIT_OS)
1491 fi # COMPILE_ENVIRONMENT
1493 dnl ========================================================
1494 dnl Enable high-memory support on OS/2 by default.
1495 dnl ========================================================
1496 MOZ_OS2_HIGH_MEMORY=1
1497 MOZ_ARG_DISABLE_BOOL(os2-high-mem,
1498 [ --disable-os2-high-mem Disable high-memory support on OS/2],
1499 MOZ_OS2_HIGH_MEMORY=,
1500 MOZ_OS2_HIGH_MEMORY=1 )
1501 AC_SUBST(MOZ_OS2_HIGH_MEMORY)
1503 dnl ========================================================
1504 dnl System overrides of the defaults for host
1505 dnl ========================================================
1508 HOST_CFLAGS="$HOST_CFLAGS -DXP_BEOS -DBeOS -DBEOS -D_POSIX_SOURCE -DNO_X11"
1509 HOST_NSPR_MDCPUCFG='\"md/_beos.cfg\"'
1510 HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}"
1513 *cygwin*|*mingw*|*mks*|*msvc*|*wince)
1514 if test -n "$_WIN32_MSVC"; then
1516 HOST_AR_FLAGS='-NOLOGO -OUT:"$@"'
1517 HOST_CFLAGS="$HOST_CFLAGS -TC -nologo -Fd\$(HOST_PDBFILE)"
1518 HOST_RANLIB='echo ranlib'
1520 HOST_CFLAGS="$HOST_CFLAGS -mno-cygwin"
1522 HOST_CFLAGS="$HOST_CFLAGS -DXP_WIN32 -DXP_WIN -DWIN32 -D_WIN32 -DNO_X11"
1523 HOST_NSPR_MDCPUCFG='\"md/_winnt.cfg\"'
1524 HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O2}"
1525 HOST_BIN_SUFFIX=.exe
1528 dnl MinGW/MSYS does not need CYGWIN_WRAPPER
1531 CYGWIN_WRAPPER="${srcdir}/build/cygwin-wrapper"
1532 if test "`echo ${srcdir} | grep -c ^/ 2>/dev/null`" = 0; then
1534 CYGWIN_WRAPPER="${_pwd}/${srcdir}/build/cygwin-wrapper"
1536 if test "`${PERL} -v | grep -c cygwin 2>/dev/null`" = 0; then
1538 PERL="${CYGWIN_WRAPPER} $PERL"
1541 if test "`${PYTHON} -c 'import sys; print sys.platform;'`" != "cygwin"; then
1542 PYTHON="${CYGWIN_WRAPPER} $PYTHON"
1549 HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX -DXP_MACOSX -DNO_X11"
1550 HOST_NSPR_MDCPUCFG='\"md/_darwin.cfg\"'
1551 HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}"
1552 MOZ_FIX_LINK_PATHS='-Wl,-executable_path,$(LIBXUL_DIST)/bin'
1553 LIBXUL_LIBS='$(XPCOM_FROZEN_LDOPTS) $(LIBXUL_DIST)/bin/XUL -lobjc'
1556 *-linux*|*-kfreebsd*-gnu)
1557 HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX"
1558 HOST_NSPR_MDCPUCFG='\"md/_linux.cfg\"'
1559 HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O3}"
1563 HOST_CFLAGS="$HOST_CFLAGS -DXP_OS2 -DNO_X11 -Zomf"
1564 HOST_NSPR_MDCPUCFG='\"md/_os2.cfg\"'
1565 HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O2}"
1566 HOST_BIN_SUFFIX=.exe
1571 HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX"
1572 HOST_NSPR_MDCPUCFG='\"md/_osf1.cfg\"'
1573 HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O2}"
1577 HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX"
1578 HOST_OPTIMIZE_FLAGS="${HOST_OPTIMIZE_FLAGS=-O2}"
1582 dnl Get mozilla version from central milestone file
1583 MOZILLA_VERSION=`$PERL $srcdir/config/milestone.pl -topsrcdir $srcdir`
1585 dnl Get version of various core apps from the version files.
1586 FIREFOX_VERSION=`cat $topsrcdir/browser/config/version.txt`
1588 AC_DEFINE_UNQUOTED(MOZILLA_VERSION,"$MOZILLA_VERSION")
1589 AC_DEFINE_UNQUOTED(MOZILLA_VERSION_U,$MOZILLA_VERSION)
1591 dnl ========================================================
1592 dnl System overrides of the defaults for target
1593 dnl ========================================================
1598 if test ! "$GNU_CC"; then
1599 if test ! "$HAVE_64BIT_OS"; then
1600 # Compiling with Visual Age C++ object model compat is the
1601 # default. To compile with object model ibm, add
1602 # AIX_OBJMODEL=ibm to .mozconfig.
1603 if test "$AIX_OBJMODEL" = "ibm"; then
1604 CXXFLAGS="$CXXFLAGS -qobjmodel=ibm"
1611 AC_SUBST(AIX_OBJMODEL)
1612 DSO_LDOPTS='-qmkshrobj=1'
1613 DSO_CFLAGS='-qflag=w:w'
1615 LDFLAGS="$LDFLAGS -Wl,-brtl -blibpath:/usr/lib:/lib"
1616 AC_MSG_WARN([Clearing MOZ_FIX_LINK_PATHS till we can fix bug 332075.])
1618 MKSHLIB='$(CXX) $(DSO_LDOPTS) -o $@'
1619 MKCSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
1620 if test "$COMPILE_ENVIRONMENT"; then
1623 AC_MSG_CHECKING([for VisualAge C++ compiler version >= 5.0.2.0])
1625 [#if (__IBMCPP__ < 502)
1626 #error "Bad compiler"
1628 _BAD_COMPILER=,_BAD_COMPILER=1)
1629 if test -n "$_BAD_COMPILER"; then
1631 AC_MSG_ERROR([VisualAge C++ version 5.0.2.0 or higher is required to build.])
1633 AC_MSG_RESULT([yes])
1636 TARGET_COMPILER_ABI="ibmc"
1637 CC_VERSION=`lslpp -Lcq vac.C 2>/dev/null | awk -F: '{ print $3 }'`
1638 CXX_VERSION=`lslpp -Lcq vacpp.cmp.core 2>/dev/null | awk -F: '{ print $3 }'`
1641 case "${target_os}" in
1646 if test "$COMPILE_ENVIRONMENT"; then
1647 AC_CHECK_HEADERS(sys/inttypes.h)
1649 AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
1654 MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_LDOPTS) -Wl,-h,$@ -o $@'
1655 _PLATFORM_DEFAULT_TOOLKIT="cairo-beos"
1656 DSO_LDOPTS='-nostart'
1657 TK_LIBS='-lbe -lroot'
1659 if test "$COMPILE_ENVIRONMENT"; then
1660 AC_CHECK_LIB(bind,main,LIBS="$LIBS -lbind")
1661 AC_CHECK_LIB(zeta,main,LIBS="$LIBS -lzeta")
1663 _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wno-multichar"
1664 _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wno-multichar"
1667 MOZ_USER_DIR="Mozilla"
1671 dnl -pedantic doesn't play well with BSDI's _very_ modified gcc (shlicc2)
1673 _IGNORE_LONG_LONG_WARNINGS=
1681 _WARNINGS_CFLAGS="-Wall"
1682 _WARNINGS_CXXFLAGS="-Wall"
1683 # The test above doesn't work properly, at least on 3.1.
1684 MKSHLIB_FORCE_ALL=''
1685 MKSHLIB_UNFORCE_ALL=''
1691 MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
1692 MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
1693 MOZ_OPTIMIZE_FLAGS="-O2"
1695 CFLAGS="$CFLAGS -fpascal-strings -fno-common"
1696 CXXFLAGS="$CXXFLAGS -fpascal-strings -fno-common"
1699 STRIP="$STRIP -x -S"
1700 _PLATFORM_DEFAULT_TOOLKIT='cairo-cocoa'
1701 MOZ_ENABLE_POSTSCRIPT=
1702 TARGET_NSPR_MDCPUCFG='\"md/_darwin.cfg\"'
1703 LDFLAGS="$LDFLAGS -framework Cocoa"
1704 # The ExceptionHandling framework is needed for Objective-C exception
1705 # logging code in nsObjCExceptions.h. Currently we only use that in debug
1707 MOZ_DEBUG_LDFLAGS="$MOZ_DEBUG_LDFLAGS -framework ExceptionHandling"
1708 # set MACOSX to generate lib/mac/MoreFiles/Makefile
1711 dnl DTrace and -dead_strip don't interact well. See bug 403132.
1712 dnl ===================================================================
1713 if test "x$enable_dtrace" = "xyes"; then
1714 echo "Skipping -dead_strip because DTrace is enabled. See bug 403132."
1716 dnl check for the presence of the -dead_strip linker flag
1717 AC_MSG_CHECKING([for -dead_strip option to ld])
1718 _SAVE_LDFLAGS=$LDFLAGS
1719 LDFLAGS="$LDFLAGS -Wl,-dead_strip"
1720 AC_TRY_LINK(,[return 0;],_HAVE_DEAD_STRIP=1,_HAVE_DEAD_STRIP=)
1721 if test -n "$_HAVE_DEAD_STRIP" ; then
1722 AC_MSG_RESULT([yes])
1723 MOZ_OPTIMIZE_LDFLAGS="-Wl,-dead_strip"
1728 LDFLAGS=$_SAVE_LDFLAGS
1733 if test `test -x /usr/bin/objformat && /usr/bin/objformat || echo elf` != "elf"; then
1734 DLL_SUFFIX=".so.1.0"
1735 DSO_LDOPTS="-shared"
1737 if test ! "$GNU_CC"; then
1738 DSO_LDOPTS="-Bshareable $DSO_LDOPTS"
1740 # Can't have force w/o an unforce.
1741 # # Hack for FreeBSD 2.2
1742 # if test -z "$MKSHLIB_FORCE_ALL"; then
1743 # MKSHLIB_FORCE_ALL='-Wl,-Bforcearchive'
1744 # MKSHLIB_UNFORCE_ALL=''
1750 if test ! "$GNU_CC"; then
1751 DSO_LDOPTS='-b -Wl,+s'
1754 MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_LDOPTS) -L$(LIBXUL_DIST)/bin -o $@'
1755 MKCSHLIB='$(LD) -b +s -L$(LIBXUL_DIST)/bin -o $@'
1756 CXXFLAGS="$CXXFLAGS -Wc,-ansi_for_scope,on"
1758 DSO_LDOPTS='-b -E +s'
1759 MKSHLIB='$(LD) $(DSO_LDOPTS) -L$(LIBXUL_DIST)/bin -L$(LIBXUL_DIST)/lib -o $@'
1760 MKCSHLIB='$(LD) $(DSO_LDOPTS) -L$(LIBXUL_DIST)/bin -L$(LIBXUL_DIST)/lib -o $@'
1762 MOZ_POST_PROGRAM_COMMAND='chatr +s enable'
1763 AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
1768 DSO_LDOPTS='-elf -shared'
1770 if test "$GNU_CC"; then
1771 MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
1772 MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
1773 MKSHLIB_FORCE_ALL='-Wl,-all'
1774 MKSHLIB_UNFORCE_ALL='-Wl,-none'
1775 CXXFLAGS="$CXXFLAGS -D_LANGUAGE_C_PLUS_PLUS"
1777 MKSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
1778 MKCSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
1779 MKSHLIB_FORCE_ALL='-all'
1780 MKSHLIB_UNFORCE_ALL='-none'
1786 dnl the irix specific xptcinvoke code is written against the n32 ABI so we *must*
1787 dnl compile and link using -n32
1789 TARGET_COMPILER_ABI=n32
1790 DSO_LDOPTS='-elf -shared'
1791 MKSHLIB='$(CCC) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
1792 MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
1793 _MOZ_EXCEPTIONS_FLAGS_OFF="-LANG:exceptions=OFF"
1794 _MOZ_EXCEPTIONS_FLAGS_ON="-LANG:exceptions=ON"
1795 if test "$GNU_CC"; then
1796 MKSHLIB_FORCE_ALL='-Wl,-all'
1797 MKSHLIB_UNFORCE_ALL='-Wl,-none'
1798 _WARNINGS_CFLAGS="-Wall"
1799 _WARNINGS_CXXFLAGS="-Wall"
1800 CXXFLAGS="$CXXFLAGS -D_LANGUAGE_C_PLUS_PLUS"
1802 MKSHLIB_FORCE_ALL='-all'
1803 MKSHLIB_UNFORCE_ALL='-none'
1809 CFLAGS="$CFLAGS -woff 3262 -G 4"
1810 CXXFLAGS="$CXXFLAGS -woff 3262 -G 4"
1811 if test -n "$USE_N32"; then
1812 ASFLAGS="$ASFLAGS -n32"
1813 CFLAGS="$CFLAGS -n32"
1814 CXXFLAGS="$CXXFLAGS -n32"
1815 LDFLAGS="$LDFLAGS -n32"
1817 AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
1818 AC_MSG_WARN([Clearing MOZ_FIX_LINK_PATHS for OSF/1 as fix for bug 333545 (till the reference bug 332075 is fixed.])
1821 if test -z "$GNU_CXX"; then
1827 if test "$GNU_CC"; then
1828 GCC_VERSION=`$CC -v 2>&1 | awk '/^gcc version/ { print $3 }'`
1829 case $GCC_VERSION in
1831 # -Os is broken on gcc 4.1.x and 4.2.x, we need to tweak it to get good results.
1832 MOZ_OPTIMIZE_SIZE_TWEAK="-finline-limit=50"
1836 TARGET_NSPR_MDCPUCFG='\"md/_linux.cfg\"'
1837 MOZ_OPTIMIZE_FLAGS="-Os -freorder-blocks -fno-reorder-functions $MOZ_OPTIMIZE_SIZE_TWEAK"
1838 MOZ_DEBUG_FLAGS="-g -fno-inline" # most people on linux use gcc/gdb,
1839 # and that combo is not yet good at
1840 # debugging inlined functions (even
1841 # when using DWARF2 as the debugging
1846 case "${target_cpu}" in
1848 CFLAGS="$CFLAGS -mieee"
1849 CXXFLAGS="$CXXFLAGS -mieee"
1853 MOZ_ENABLE_OLD_ABI_COMPAT_WRAPPERS=1
1856 CFLAGS="$CFLAGS -Wa,-xgot"
1857 CXXFLAGS="$CXXFLAGS -Wa,-xgot"
1864 MOZ_TOOLS_DIR=`echo $MOZ_TOOLS`
1866 AR_EXTRACT="$AR -extract"
1868 AR_FLAGS='-OUT:"$@"'
1870 if test -z "$AS_BIN"; then
1877 if test -z "$RC"; then
1880 # certain versions of cygwin's makedepend barf on the
1881 # #include <string> vs -I./dist/include/string issue so don't use it
1887 HOST_AR='lib -OUT:$@'
1888 HOST_RANLIB='echo ranlib'
1889 HOST_CFLAGS="$HOST_CFLAGS -D_X86_"
1892 WARNINGS_AS_ERRORS='-WX'
1893 MOZ_OPTIMIZE_FLAGS='-O1'
1894 AR_FLAGS='-NOLOGO -OUT:"$@"'
1896 CFLAGS="$CFLAGS -W3 -Gy -Fd\$(PDBFILE)"
1897 CXXFLAGS="$CXXFLAGS -W3 -Gy -Fd\$(PDBFILE)"
1900 DSO_LDOPTS=-SUBSYSTEM:WINDOWSCE
1901 DYNAMIC_XPCOM_LIBS='$(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/xpcom_core.lib'
1903 IMPORT_LIB_SUFFIX=lib
1905 LIBXUL_LIBS='$(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/xul.lib'
1908 MKCSHLIB='$(LD) -NOLOGO -DLL -OUT:$@ $(DSO_LDOPTS)'
1909 MKSHLIB='$(LD) -NOLOGO -DLL -OUT:$@ $(DSO_LDOPTS)'
1911 MKSHLIB_UNFORCE_ALL=
1912 MOZ_COMPONENT_NSPR_LIBS='$(NSPR_LIBS)'
1913 MOZ_COMPONENT_NSPR_LIBS='$(NSPR_LIBS)'
1914 MOZ_DEBUG_FLAGS='-Zi'
1915 MOZ_DEBUG_LDFLAGS='-DEBUG -DEBUGTYPE:CV'
1917 MOZ_JS_LIBS='$(LIBXUL_DIST)/lib/js$(MOZ_BITS)$(VERSION_NUMBER).lib'
1918 MOZ_XPCOM_OBSOLETE_LIBS='$(LIBXUL_DIST)/lib/xpcom_compat.lib'
1920 RANLIB='echo not_ranlib'
1921 STRIP='echo not_strip'
1922 TARGET_NSPR_MDCPUCFG='\"md/_wince.cfg\"'
1925 XPCOM_FROZEN_LDOPTS='$(LIBXUL_DIST)/lib/xpcom.lib'
1927 LIBIDL_CFLAGS="-I$MOZ_TOOLS_DIR/include ${GLIB_CFLAGS}"
1928 LIBIDL_LIBS="$MOZ_TOOLS_DIR/lib/libidl-0.6_s.lib $MOZ_TOOLS_DIR/lib/glib-1.2_s.lib"
1931 AC_DEFINE(HAVE_SNPRINTF)
1937 AC_DEFINE(HW_THREADS)
1938 AC_DEFINE(STDC_HEADERS)
1939 AC_DEFINE(NEW_H, <new>)
1940 AC_DEFINE(WIN32_LEAN_AND_MEAN)
1942 TARGET_MD_ARCH=win32
1943 _PLATFORM_DEFAULT_TOOLKIT='windows'
1946 MOZ_ENABLE_POSTSCRIPT=
1947 MOZ_USER_DIR="Mozilla"
1951 *-mingw*|*-cygwin*|*-msvc*|*-mks*)
1956 # certain versions of cygwin's makedepend barf on the
1957 # #include <string> vs -I./dist/include/string issue so don't use it
1959 if test -n "$GNU_CC"; then
1960 CC="$CC -mno-cygwin"
1961 CXX="$CXX -mno-cygwin"
1962 CPP="$CPP -mno-cygwin"
1963 CFLAGS="$CFLAGS -mms-bitfields"
1964 CXXFLAGS="$CXXFLAGS -mms-bitfields"
1965 DSO_LDOPTS='-shared'
1966 MKSHLIB='$(CXX) $(DSO_LDOPTS) -o $@'
1967 MKCSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
1969 # Use temp file for windres (bug 213281)
1970 RCFLAGS='-O coff --use-temp-file'
1971 # mingw doesn't require kernel32, user32, and advapi32 explicitly
1972 LIBS="$LIBS -lgdi32 -lwinmm -lwsock32"
1973 MOZ_JS_LIBS='-L$(LIBXUL_DIST)/lib -ljs$(MOZ_BITS)$(VERSION_NUMBER)'
1975 DYNAMIC_XPCOM_LIBS='-L$(LIBXUL_DIST)/lib -lxpcom -lxpcom_core'
1976 XPCOM_FROZEN_LDOPTS='-L$(LIBXUL_DIST)/lib -lxpcom'
1978 IMPORT_LIB_SUFFIX=dll.a
1980 TARGET_COMPILER_ABI=msvc
1984 AR='lib -NOLOGO -OUT:"$@"'
1986 RANLIB='echo not_ranlib'
1987 STRIP='echo not_strip'
1992 GARBAGE='$(OBJDIR)/vc20.pdb $(OBJDIR)/vc40.pdb'
1997 IMPORT_LIB_SUFFIX=lib
1998 MKSHLIB='$(LD) -NOLOGO -DLL -OUT:$@ -PDB:$(PDBFILE) $(DSO_LDOPTS)'
1999 MKCSHLIB='$(LD) -NOLOGO -DLL -OUT:$@ -PDB:$(PDBFILE) $(DSO_LDOPTS)'
2001 MKSHLIB_UNFORCE_ALL=
2002 DSO_LDOPTS=-SUBSYSTEM:WINDOWS
2003 CFLAGS="$CFLAGS -W3 -Gy -Fd\$(PDBFILE)"
2004 CXXFLAGS="$CXXFLAGS -W3 -Gy -Fd\$(PDBFILE)"
2005 LIBS="$LIBS kernel32.lib user32.lib gdi32.lib winmm.lib wsock32.lib advapi32.lib"
2006 MOZ_DEBUG_FLAGS='-Zi'
2007 MOZ_DEBUG_LDFLAGS='-DEBUG -DEBUGTYPE:CV'
2008 WARNINGS_AS_ERRORS='-WX'
2009 MOZ_OPTIMIZE_FLAGS='-O1'
2010 MOZ_JS_LIBS='$(LIBXUL_DIST)/lib/js$(MOZ_BITS)$(VERSION_NUMBER).lib'
2012 DYNAMIC_XPCOM_LIBS='$(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/xpcom_core.lib'
2013 XPCOM_FROZEN_LDOPTS='$(LIBXUL_DIST)/lib/xpcom.lib'
2014 LIBXUL_LIBS='$(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/xul.lib'
2015 MOZ_COMPONENT_NSPR_LIBS='$(NSPR_LIBS)'
2016 MOZ_XPCOM_OBSOLETE_LIBS='$(LIBXUL_DIST)/lib/xpcom_compat.lib'
2017 if test $_MSC_VER -ge 1400; then
2018 LDFLAGS="$LDFLAGS -NXCOMPAT -SAFESEH"
2019 dnl For profile-guided optimization
2020 PROFILE_GEN_CFLAGS="-GL"
2021 PROFILE_GEN_LDFLAGS="-LTCG:PGINSTRUMENT"
2022 dnl XXX: PGO builds can fail with warnings treated as errors,
2023 dnl specifically "no profile data available" appears to be
2024 dnl treated as an error sometimes. This might be a consequence
2025 dnl of using WARNINGS_AS_ERRORS in some modules, combined
2026 dnl with the linker doing most of the work in the whole-program
2027 dnl optimization/PGO case. I think it's probably a compiler bug,
2028 dnl but we work around it here.
2029 PROFILE_USE_CFLAGS="-GL -wd4624 -wd4952"
2030 dnl XXX: should be -LTCG:PGOPTIMIZE, but that fails on libxul.
2031 dnl Probably also a compiler bug, but what can you do?
2032 PROFILE_USE_LDFLAGS="-LTCG:PGUPDATE"
2033 if test -n "$_USE_DYNAMICBASE"; then
2034 LDFLAGS="$LDFLAGS -DYNAMICBASE"
2038 MOZ_JPEG_LIBS='$(call EXPAND_LIBNAME_PATH,jpeg$(MOZ_BITS)$(VERSION_NUMBER),$(DEPTH)/jpeg)'
2039 MOZ_PNG_LIBS='$(call EXPAND_LIBNAME_PATH,png,$(DEPTH)/modules/libimg/png)'
2040 AC_DEFINE(HAVE_SNPRINTF)
2046 AC_DEFINE(HW_THREADS)
2047 AC_DEFINE(STDC_HEADERS)
2048 AC_DEFINE(NEW_H, <new>)
2049 AC_DEFINE(WIN32_LEAN_AND_MEAN)
2050 TARGET_MD_ARCH=win32
2051 _PLATFORM_DEFAULT_TOOLKIT='cairo-windows'
2054 MOZ_ENABLE_POSTSCRIPT=
2055 MOZ_USER_DIR="Mozilla"
2057 dnl Hardcode to win95 for now - cls
2058 TARGET_NSPR_MDCPUCFG='\"md/_win95.cfg\"'
2060 dnl set NO_X11 defines here as the general check is skipped on win32
2064 dnl MinGW/MSYS doesn't provide or need cygpath
2069 MOZ_BUILD_ROOT=`cd $MOZ_BUILD_ROOT && pwd -W`
2071 *-cygwin*|*-msvc*|*-mks*)
2072 CYGPATH_W="cygpath -a -w"
2073 CYGPATH_S="sed -e s|\\\\|/|g"
2074 MOZ_BUILD_ROOT=`$CYGPATH_W $MOZ_BUILD_ROOT | $CYGPATH_S`
2078 *-mingw*|*-cygwin*|*-msvc*|*-mks*)
2080 if test -z "$MOZ_TOOLS"; then
2081 AC_MSG_ERROR([MOZ_TOOLS is not set])
2084 MOZ_TOOLS_DIR=`cd $MOZ_TOOLS && pwd`
2085 if test "$?" != "0" || test -z "$MOZ_TOOLS_DIR"; then
2086 AC_MSG_ERROR([cd \$MOZ_TOOLS failed. MOZ_TOOLS ==? $MOZ_TOOLS])
2088 if test `echo ${PATH}: | grep -ic "$MOZ_TOOLS_DIR/bin:"` = 0; then
2089 AC_MSG_ERROR([\$MOZ_TOOLS\\bin must be in your path.])
2091 MOZ_TOOLS_DIR=`$CYGPATH_W $MOZ_TOOLS_DIR | $CYGPATH_S`
2093 if test -n "$GLIB_PREFIX"; then
2094 _GLIB_PREFIX_DIR=`cd $GLIB_PREFIX && pwd`
2095 if test "$?" = "0"; then
2096 if test `echo ${PATH}: | grep -ic "$_GLIB_PREFIX_DIR/bin:"` = 0; then
2097 AC_MSG_ERROR([GLIB_PREFIX must be in your \$PATH.])
2099 _GLIB_PREFIX_DIR=`$CYGPATH_W $_GLIB_PREFIX_DIR | $CYGPATH_S`
2101 AC_MSG_ERROR([GLIB_PREFIX is set but "${GLIB_PREFIX}" is not a directory.])
2104 _GLIB_PREFIX_DIR=$MOZ_TOOLS_DIR
2106 if test ! -f "${_GLIB_PREFIX_DIR}/include/glib.h"; then
2107 AC_MSG_ERROR([Cannot find $_GLIB_PREFIX_DIR/include/glib.h .])
2109 GLIB_CFLAGS="-I${_GLIB_PREFIX_DIR}/include"
2110 if test -f "${_GLIB_PREFIX_DIR}/lib/glib-1.2_s.lib"; then
2111 GLIB_LIBS="${_GLIB_PREFIX_DIR}/lib/glib-1.2_s.lib"
2112 elif test -f "${_GLIB_PREFIX_DIR}/lib/glib-1.2.lib"; then
2113 GLIB_LIBS="${_GLIB_PREFIX_DIR}/lib/glib-1.2.lib"
2115 AC_MSG_ERROR([Cannot find $_GLIB_PREFIX_DIR/lib/glib-1.2.lib or $_GLIB_PREFIX_DIR/lib/glib-1.2_s.lib])
2118 if test -n "$LIBIDL_PREFIX"; then
2119 _LIBIDL_PREFIX_DIR=`cd $LIBIDL_PREFIX && pwd`
2120 if test "$?" = "0"; then
2121 if test `echo ${PATH}: | grep -ic "$_LIBIDL_PREFIX_DIR/bin:"` = 0; then
2122 AC_MSG_ERROR([LIBIDL_PREFIX must be in your \$PATH.])
2124 _LIBIDL_PREFIX_DIR=`$CYGPATH_W $_LIBIDL_PREFIX_DIR | $CYGPATH_S`
2126 AC_MSG_ERROR([LIBIDL_PREFIX is set but "${LIBIDL_PREFIX}" is not a directory.])
2129 _LIBIDL_PREFIX_DIR=$MOZ_TOOLS_DIR
2131 if test ! -f "${_LIBIDL_PREFIX_DIR}/include/libIDL/IDL.h"; then
2132 AC_MSG_ERROR([Cannot find $_LIBIDL_PREFIX_DIR/include/libIDL/IDL.h .])
2134 LIBIDL_CFLAGS="-I${_LIBIDL_PREFIX_DIR}/include ${GLIB_CFLAGS}"
2135 if test -f "${_LIBIDL_PREFIX_DIR}/lib/libidl-0.6_s.lib"; then
2136 LIBIDL_LIBS="${_LIBIDL_PREFIX_DIR}/lib/libidl-0.6_s.lib"
2138 elif test -f "${_LIBIDL_PREFIX_DIR}/lib/libidl-0.6.lib"; then
2139 LIBIDL_LIBS="${_LIBIDL_PREFIX_DIR}/lib/libidl-0.6.lib"
2141 AC_MSG_ERROR([Cannot find $_LIBIDL_PREFIX_DIR/lib/libidl-0.6.lib or $_LIBIDL_PREFIX_DIR/lib/libidl-0.6_s.lib])
2143 LIBIDL_LIBS="${LIBIDL_LIBS} ${GLIB_LIBS}"
2146 *) # else cross-compiling
2147 if test -n "$GLIB_PREFIX"; then
2148 GLIB_CFLAGS="-I${GLIB_PREFIX}/include"
2149 if test -f "${GLIB_PREFIX}/lib/glib-1.2_s.lib"; then
2150 GLIB_LIBS="${GLIB_PREFIX}/lib/glib-1.2_s.lib"
2151 elif test -f "${GLIB_PREFIX}/lib/glib-1.2.lib"; then
2152 GLIB_LIBS="${GLIB_PREFIX}/lib/glib-1.2.lib"
2154 AC_MSG_ERROR([Cannot find $GLIB_PREFIX/lib/glib-1.2.lib or $GLIB_PREFIX/lib/glib-1.2_s.lib])
2157 if test -n "$LIBIDL_PREFIX"; then
2158 LIBIDL_CFLAGS="-I${LIBIDL_PREFIX}/include ${GLIB_CFLAGS}"
2159 if test -f "${LIBIDL_PREFIX}/lib/libIDL-0.6_s.lib"; then
2160 LIBIDL_LIBS="${LIBIDL_PREFIX}/lib/libIDL-0.6_s.lib"
2162 elif test -f "${LIBIDL_PREFIX}/lib/libIDL-0.6.lib"; then
2163 LIBIDL_LIBS="${LIBIDL_PREFIX}/lib/libIDL-0.6.lib"
2165 AC_MSG_ERROR([Cannot find $LIBIDL_PREFIX/lib/libIDL-0.6.lib or $LIBIDL_PREFIX/lib/libIDL-0.6_s.lib])
2168 LIBIDL_LIBS="${LIBIDL_LIBS} ${GLIB_LIBS}"
2175 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])
2179 AC_CHECK_HEADERS(mmintrin.h oleacc.idl)
2183 AC_CHECK_HEADERS(atlbase.h wpcapi.h)
2199 AC_DEFINE(_CPU_ARCH_NOT_DEFINED)
2206 CFLAGS="$CFLAGS -Dunix"
2207 CXXFLAGS="$CXXFLAGS -Dunix"
2208 if $CC -E - -dM </dev/null | grep __ELF__ >/dev/null; then
2210 DSO_PIC_CFLAGS='-fPIC -DPIC'
2211 DSO_LDOPTS='-shared'
2212 BIN_FLAGS='-Wl,--export-dynamic'
2214 DSO_PIC_CFLAGS='-fPIC -DPIC'
2215 DLL_SUFFIX=".so.1.0"
2216 DSO_LDOPTS='-shared'
2218 # This will fail on a.out systems prior to 1.5.1_ALPHA.
2219 MKSHLIB_FORCE_ALL='-Wl,--whole-archive'
2220 MKSHLIB_UNFORCE_ALL='-Wl,--no-whole-archive'
2221 if test "$LIBRUNPATH"; then
2222 DSO_LDOPTS="-Wl,-R$LIBRUNPATH $DSO_LDOPTS"
2224 MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-soname,lib$(LIBRARY_NAME)$(DLL_SUFFIX) -o $@'
2225 MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-soname,lib$(LIBRARY_NAME)$(DLL_SUFFIX) -o $@'
2230 AC_DEFINE(_QNX_SOURCE)
2233 WARNINGS_AS_ERRORS=''
2234 MOZ_OPTIMIZE_FLAGS="-O"
2235 MOZ_DEBUG_FLAGS="-gstabs"
2238 LIBS="$LIBS -lsocket -lstdc++"
2239 _DEFINES_CFLAGS='-Wp,-include -Wp,$(DEPTH)/mozilla-config.h -DMOZILLA_CLIENT -D_POSIX_C_SOURCE=199506'
2240 _DEFINES_CXXFLAGS='-DMOZILLA_CLIENT -Wp,-include -Wp,$(DEPTH)/mozilla-config.h -D_POSIX_C_SOURCE=199506'
2241 if test "$with_x" != "yes"
2243 _PLATFORM_DEFAULT_TOOLKIT="photon"
2244 TK_CFLAGS='-I/usr/include/photon'
2247 case "${target_cpu}" in
2249 AC_DEFINE(HAVE_VA_LIST_AS_ARRAY)
2252 case "${host_cpu}" in
2260 DLL_SUFFIX=".so.1.0"
2262 DSO_PIC_CFLAGS='-fPIC'
2263 DSO_LDOPTS='-shared -fPIC'
2264 if test "$LIBRUNPATH"; then
2265 DSO_LDOPTS="-R$LIBRUNPATH $DSO_LDOPTS"
2270 AC_DEFINE(NO_PW_GECOS)
2271 AC_DEFINE(NO_UDSOCK)
2272 AC_DEFINE(POLL_WITH_XCONNECTIONNUMBER)
2274 MKSHLIB_FORCE_ALL='-all'
2275 MKSHLIB_UNFORCE_ALL='-none'
2277 AS_DASH_C_FLAG='-Wc/names=as_is'
2279 DSO_LDOPTS='-shared -auto_symvec'
2281 MOZ_DEBUG_LDFLAGS='-g'
2283 CC_VERSION=`$CC -V 2>&1 | awk '/ C / { print $3 }'`
2284 CXX_VERSION=`$CXX -V 2>&1 | awk '/ C\+\+ / { print $3 }'`
2289 MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
2290 MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -o $@'
2293 AC_DEFINE(OS2EMX_PLAIN_CHAR)
2294 AC_DEFINE(TCPV40HDRS)
2301 IMPORT_LIB_SUFFIX=lib
2305 CFLAGS="$CFLAGS -Zomf"
2306 CXXFLAGS="$CXXFLAGS -Zomf"
2308 BIN_FLAGS='-Zlinker /ST:0x100000'
2312 WARNINGS_AS_ERRORS='-Werror'
2313 MOZ_DEBUG_FLAGS="-g -fno-inline"
2314 MOZ_OPTIMIZE_FLAGS="-O2"
2315 MOZ_OPTIMIZE_LDFLAGS="-s -Zlinker /EXEPACK:2 -Zlinker /PACKCODE -Zlinker /PACKDATA"
2316 MOZ_XPCOM_OBSOLETE_LIBS='-L$(LIBXUL_DIST)/lib $(LIBXUL_DIST)/lib/xpcomct.lib'
2317 DYNAMIC_XPCOM_LIBS='-L$(LIBXUL_DIST)/lib $(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/xpcomcor.lib'
2318 LIBXUL_LIBS='-L$(LIBXUL_DIST)/lib $(LIBXUL_DIST)/lib/xpcom.lib $(LIBXUL_DIST)/lib/xul.lib'
2320 _PLATFORM_DEFAULT_TOOLKIT="cairo-os2"
2321 MOZ_ENABLE_POSTSCRIPT=
2324 MOZ_USER_DIR="Mozilla"
2326 if test "$MOZTOOLS"; then
2327 MOZ_TOOLS_DIR=`echo $MOZTOOLS | sed -e 's|\\\\|/|g'`
2329 AC_MSG_ERROR([MOZTOOLS is not set])
2331 if test -n "$MOZ_OS2_HIGH_MEMORY"; then
2332 DSO_LDOPTS="$DSO_LDOPTS -Zhigh-mem"
2333 LDFLAGS="$LDFLAGS -Zhigh-mem"
2334 MOZ_OPTIMIZE_LDFLAGS="$MOZ_OPTIMIZE_LDFLAGS -Zhigh-mem"
2335 AC_DEFINE(MOZ_OS2_HIGH_MEMORY)
2338 # GCC for OS/2 currently predefines these, but we don't want them
2339 _DEFINES_CFLAGS="$_DEFINES_CFLAGS -Uunix -U__unix -U__unix__"
2340 _DEFINES_CXXFLAGS="$_DEFINES_CXXFLAGS -Uunix -U__unix -U__unix__"
2342 AC_CACHE_CHECK(for __declspec(dllexport),
2344 [AC_TRY_COMPILE([__declspec(dllexport) void ac_os2_declspec(void) {}],
2346 ac_os2_declspec="yes",
2347 ac_os2_declspec="no")])
2348 if test "$ac_os2_declspec" = "yes"; then
2350 MOZ_OS2_USE_DECLSPEC='1'
2355 if test "$GNU_CC"; then
2356 MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-soname,$@ -o $@'
2357 MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -Wl,-soname,$@ -o $@'
2360 MOZ_DEBUG_FLAGS='-g'
2361 ASFLAGS='-I$(topsrcdir)/xpcom/reflect/xptcall/public -g'
2362 CFLAGS="$CFLAGS -ieee"
2363 CXXFLAGS="$CXXFLAGS "'-noexceptions -ieee -ptr $(DIST)/cxx_repository'
2364 DSO_LDOPTS='-shared -msym -expect_unresolved \* -update_registry $(DIST)/so_locations'
2367 MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -soname $@ -o $@'
2368 MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_CFLAGS) $(DSO_LDOPTS) -soname $@ -o $@'
2369 MKSHLIB_FORCE_ALL='-all'
2370 MKSHLIB_UNFORCE_ALL='-none'
2371 dnl Might fix the libxpcom.so breakage on this platform as well....
2372 AC_DEFINE(NSCAP_DISABLE_TEST_DONTQUERY_CASES)
2373 AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
2375 if test -z "$GNU_CXX"; then
2378 AC_DEFINE(NEED_USLEEP_PROTOTYPE)
2382 DIRENT_INO=d_stat.st_ino
2383 dnl Solves the problems the QNX compiler has with nsCOMPtr.h.
2384 AC_DEFINE(NSCAP_DISABLE_TEST_DONTQUERY_CASES)
2385 AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
2386 dnl Explicit set STDC_HEADERS to workaround QNX 6.0's failing of std test
2387 AC_DEFINE(STDC_HEADERS)
2388 if test "$no_x" = "yes"; then
2389 _PLATFORM_DEFAULT_TOOLKIT='photon'
2390 TK_CFLAGS='-I/usr/nto/include/photon'
2391 TK_LIBS='-lphoton -lphrender'
2396 AC_DEFINE(NSCAP_DISABLE_TEST_DONTQUERY_CASES)
2397 AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
2398 CXXFLAGS="$CXXFLAGS -I/usr/include/CC"
2399 if test ! "$GNU_CC"; then
2404 dnl the qsort routine under solaris is faulty
2407 TARGET_NSPR_MDCPUCFG='\"md/_solaris.cfg\"'
2409 # $ORIGIN/.. is for shared libraries under components/ to locate shared
2410 # libraries one level up (e.g. libnspr4.so)
2411 LDFLAGS="$LDFLAGS -z ignore -R '\$\$ORIGIN:\$\$ORIGIN/..'"
2412 LIBS="-lCrun -lCstd $LIBS"
2414 if test -z "$GNU_CC"; then
2417 AC_DEFINE(NSCAP_DISABLE_DEBUG_PTR_TYPES)
2419 if test "$CPU_ARCH" != "sparc"; then
2420 CFLAGS="$CFLAGS -xlibmieee -xstrconst -xbuiltin=%all"
2421 CXXFLAGS="$CXXFLAGS -xlibmieee -xbuiltin=%all -features=tmplife -norunpath"
2423 # Do not use -xbuiltin on SPARC to get around a bug of compiler
2424 CFLAGS="$CFLAGS -xlibmieee -xstrconst -xbuiltin=%none"
2425 CXXFLAGS="$CXXFLAGS -xlibmieee -xbuiltin=%none -features=tmplife -norunpath"
2428 LDFLAGS="-xildoff -z lazyload -z combreloc $LDFLAGS"
2429 if test -z "$CROSS_COMPILE" && test -f /usr/lib/ld/map.noexstk; then
2430 _SAVE_LDFLAGS=$LDFLAGS
2431 LDFLAGS="-M /usr/lib/ld/map.noexstk $LDFLAGS"
2432 AC_TRY_LINK([#include <stdio.h>],
2433 [printf("Hello World\n");],
2435 [LDFLAGS=$_SAVE_LDFLAGS])
2437 WARNINGS_AS_ERRORS='-Werror'
2438 MOZ_OPTIMIZE_FLAGS="-xO4"
2439 MKSHLIB='$(CXX) $(CXXFLAGS) $(DSO_PIC_FLAGS) $(DSO_LDOPTS) -h $@ -o $@'
2440 MKCSHLIB='$(CC) $(CFLAGS) $(DSO_PIC_FLAGS) -G -z muldefs -h $@ -o $@'
2441 MKSHLIB_FORCE_ALL='-z allextract'
2442 MKSHLIB_UNFORCE_ALL='-z defaultextract'
2443 DSO_LDOPTS='-G -z muldefs'
2449 AS='/usr/ccs/bin/as'
2450 ASFLAGS="$ASFLAGS -K PIC -L -P -D_ASM -D__STDC__=0"
2452 TARGET_COMPILER_ABI="sunc"
2453 CC_VERSION=`$CC -V 2>&1 | grep '^cc:' 2>/dev/null | $AWK -F\: '{ print $2 }'`
2454 CXX_VERSION=`$CXX -V 2>&1 | grep '^CC:' 2>/dev/null | $AWK -F\: '{ print $2 }'`
2455 AC_MSG_CHECKING([for Forte compiler version >= WS6U2])
2459 [#if (__SUNPRO_CC < 0x530)
2462 _BAD_COMPILER=,_BAD_COMPILER=1)
2463 if test -n "$_BAD_COMPILER"; then
2465 AC_MSG_ERROR([Forte version WS6U2 or higher is required to build. Your compiler version is $CC_VERSION .])
2469 AC_MSG_RESULT([$_res])
2472 ASFLAGS="$ASFLAGS -fPIC"
2475 _WARNINGS_CXXFLAGS=''
2476 if test "$OS_RELEASE" = "5.3"; then
2477 AC_DEFINE(MUST_UNDEF_HAVE_BOOLEAN_AFTER_INCLUDES)
2480 if test "$OS_RELEASE" = "5.5.1"; then
2481 AC_DEFINE(NEED_USLEEP_PROTOTYPE)
2486 DSO_LDOPTS='-Bdynamic'
2487 MKSHLIB='-$(LD) $(DSO_LDOPTS) -o $@'
2488 MKCSHLIB='-$(LD) $(DSO_LDOPTS) -o $@'
2490 AC_DEFINE(SPRINTF_RETURNS_STRING)
2491 case "$(target_os)" in
2493 DLL_SUFFIX='.so.1.0'
2499 NSPR_LIBS="-lnspr$NSPR_VERSION -lplc$NSPR_VERSION -lplds$NSPR_VERSION -L/usr/ccs/lib -lcrt"
2503 HOST_NSPR_MDCPUCFG='\"md/_os2.cfg\"'
2508 dnl Only one oddball right now (QNX), but this gives us flexibility
2509 dnl if any other platforms need to override this in the future.
2510 AC_DEFINE_UNQUOTED(D_INO,$DIRENT_INO)
2512 dnl ========================================================
2513 dnl Any platform that doesn't have MKSHLIB_FORCE_ALL defined
2514 dnl by now will not have any way to link most binaries (tests
2515 dnl as well as viewer, apprunner, etc.), because some symbols
2516 dnl will be left out of the "composite" .so's by ld as unneeded.
2517 dnl So, by defining NO_LD_ARCHIVE_FLAGS for these platforms,
2518 dnl they can link in the static libs that provide the missing
2520 dnl ========================================================
2521 NO_LD_ARCHIVE_FLAGS=
2522 if test -z "$MKSHLIB_FORCE_ALL" || test -z "$MKSHLIB_UNFORCE_ALL"; then
2523 NO_LD_ARCHIVE_FLAGS=1
2527 NO_LD_ARCHIVE_FLAGS=
2530 NO_LD_ARCHIVE_FLAGS=
2533 NO_LD_ARCHIVE_FLAGS=
2535 *-msvc*|*-mks*|*-mingw*|*-cygwin*|*-wince)
2536 if test -z "$GNU_CC"; then
2537 NO_LD_ARCHIVE_FLAGS=
2541 AC_SUBST(NO_LD_ARCHIVE_FLAGS)
2544 dnl Indicate that platform requires special thread safe
2545 dnl locking when starting up the OJI JVM
2546 dnl (see mozilla/modules/oji/src/nsJVMManager.cpp)
2547 dnl ========================================================
2550 AC_DEFINE(MOZ_OJI_REQUIRE_THREAD_SAFE_ON_STARTUP)
2554 dnl ========================================================
2555 dnl = Flags to strip unused symbols from .so components
2556 dnl ========================================================
2558 *-linux*|*-kfreebsd*-gnu)
2559 MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,--version-script -Wl,$(BUILD_TOOLS)/gnu-ld-scripts/components-version-script'
2562 if test -z "$GNU_CC"; then
2563 MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-M $(BUILD_TOOLS)/gnu-ld-scripts/components-mapfile'
2565 if test -z "$GCC_USE_GNU_LD"; then
2566 MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,-M -Wl,$(BUILD_TOOLS)/gnu-ld-scripts/components-mapfile'
2568 MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,--version-script -Wl,$(BUILD_TOOLS)/gnu-ld-scripts/components-version-script'
2573 MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,--version-script,$(BUILD_TOOLS)/gnu-ld-scripts/components-version-script'
2576 MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,-exported_symbols_list -Wl,$(BUILD_TOOLS)/gnu-ld-scripts/components-export-list'
2578 *-cygwin*|*-mingw*|*-mks*|*-msvc|*-wince)
2579 if test -n "$GNU_CC"; then
2580 MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS='-Wl,--version-script,$(BUILD_TOOLS)/gnu-ld-scripts/components-version-script'
2585 if test -z "$COMPILE_ENVIRONMENT"; then
2586 SKIP_COMPILER_CHECKS=1
2587 SKIP_LIBRARY_CHECKS=1
2590 if test -z "$SKIP_COMPILER_CHECKS"; then
2591 dnl Checks for typedefs, structures, and compiler characteristics.
2592 dnl ========================================================
2600 AC_STRUCT_ST_BLKSIZE
2601 AC_MSG_CHECKING(for siginfo_t)
2602 AC_CACHE_VAL(ac_cv_siginfo_t,
2603 [AC_TRY_COMPILE([#define _POSIX_C_SOURCE 199506L
2604 #include <signal.h>],
2606 [ac_cv_siginfo_t=true],
2607 [ac_cv_siginfo_t=false])])
2608 if test "$ac_cv_siginfo_t" = true ; then
2609 AC_DEFINE(HAVE_SIGINFO_T)
2615 dnl Check for int16_t, int32_t, int64_t, int64, uint, uint_t, and uint16_t.
2616 dnl ========================================================
2617 AC_MSG_CHECKING(for int16_t)
2618 AC_CACHE_VAL(ac_cv_int16_t,
2619 [AC_TRY_COMPILE([#include <stdio.h>
2620 #include <sys/types.h>],
2622 [ac_cv_int16_t=true],
2623 [ac_cv_int16_t=false])])
2624 if test "$ac_cv_int16_t" = true ; then
2625 AC_DEFINE(HAVE_INT16_T)
2630 AC_MSG_CHECKING(for int32_t)
2631 AC_CACHE_VAL(ac_cv_int32_t,
2632 [AC_TRY_COMPILE([#include <stdio.h>
2633 #include <sys/types.h>],
2635 [ac_cv_int32_t=true],
2636 [ac_cv_int32_t=false])])
2637 if test "$ac_cv_int32_t" = true ; then
2638 AC_DEFINE(HAVE_INT32_T)
2643 AC_MSG_CHECKING(for int64_t)
2644 AC_CACHE_VAL(ac_cv_int64_t,
2645 [AC_TRY_COMPILE([#include <stdio.h>
2646 #include <sys/types.h>],
2648 [ac_cv_int64_t=true],
2649 [ac_cv_int64_t=false])])
2650 if test "$ac_cv_int64_t" = true ; then
2651 AC_DEFINE(HAVE_INT64_T)
2656 AC_MSG_CHECKING(for int64)
2657 AC_CACHE_VAL(ac_cv_int64,
2658 [AC_TRY_COMPILE([#include <stdio.h>
2659 #include <sys/types.h>],
2662 [ac_cv_int64=false])])
2663 if test "$ac_cv_int64" = true ; then
2664 AC_DEFINE(HAVE_INT64)
2669 AC_MSG_CHECKING(for uint)
2670 AC_CACHE_VAL(ac_cv_uint,
2671 [AC_TRY_COMPILE([#include <stdio.h>
2672 #include <sys/types.h>],
2675 [ac_cv_uint=false])])
2676 if test "$ac_cv_uint" = true ; then
2677 AC_DEFINE(HAVE_UINT)
2682 AC_MSG_CHECKING(for uint_t)
2683 AC_CACHE_VAL(ac_cv_uint_t,
2684 [AC_TRY_COMPILE([#include <stdio.h>
2685 #include <sys/types.h>],
2687 [ac_cv_uint_t=true],
2688 [ac_cv_uint_t=false])])
2689 if test "$ac_cv_uint_t" = true ; then
2690 AC_DEFINE(HAVE_UINT_T)
2695 AC_MSG_CHECKING(for uint16_t)
2696 AC_CACHE_VAL(ac_cv_uint16_t,
2697 [AC_TRY_COMPILE([#include <stdio.h>
2698 #include <sys/types.h>],
2699 [uint16_t foo = 0;],
2700 [ac_cv_uint16_t=true],
2701 [ac_cv_uint16_t=false])])
2702 if test "$ac_cv_uint16_t" = true ; then
2703 AC_DEFINE(HAVE_UINT16_T)
2709 dnl On the gcc trunk (as of 2001-02-09) _GNU_SOURCE, and thus __USE_GNU,
2710 dnl are defined when compiling C++ but not C. Since the result of this
2711 dnl test is used only in C++, do it in C++.
2714 AC_MSG_CHECKING(for uname.domainname)
2715 AC_CACHE_VAL(ac_cv_have_uname_domainname_field,
2716 [AC_TRY_COMPILE([#include <sys/utsname.h>],
2717 [ struct utsname *res; char *domain;
2718 (void)uname(res); if (res != 0) { domain = res->domainname; } ],
2719 [ac_cv_have_uname_domainname_field=true],
2720 [ac_cv_have_uname_domainname_field=false])])
2722 if test "$ac_cv_have_uname_domainname_field" = "true"; then
2723 AC_DEFINE(HAVE_UNAME_DOMAINNAME_FIELD)
2729 AC_MSG_CHECKING(for uname.__domainname)
2730 AC_CACHE_VAL(ac_cv_have_uname_us_domainname_field,
2731 [AC_TRY_COMPILE([#include <sys/utsname.h>],
2732 [ struct utsname *res; char *domain;
2733 (void)uname(res); if (res != 0) { domain = res->__domainname; } ],
2734 [ac_cv_have_uname_us_domainname_field=true],
2735 [ac_cv_have_uname_us_domainname_field=false])])
2737 if test "$ac_cv_have_uname_us_domainname_field" = "true"; then
2738 AC_DEFINE(HAVE_UNAME_US_DOMAINNAME_FIELD)
2746 dnl Check for usable wchar_t (2 bytes, unsigned)
2747 dnl (we really don't need the unsignedness check anymore)
2748 dnl ========================================================
2750 AC_CACHE_CHECK(for usable wchar_t (2 bytes, unsigned),
2751 ac_cv_have_usable_wchar_v2,
2752 [AC_TRY_COMPILE([#include <stddef.h>
2753 $configure_static_assert_macros],
2754 [CONFIGURE_STATIC_ASSERT(sizeof(wchar_t) == 2);
2755 CONFIGURE_STATIC_ASSERT((wchar_t)-1 > (wchar_t) 0)],
2756 ac_cv_have_usable_wchar_v2="yes",
2757 ac_cv_have_usable_wchar_v2="no")])
2758 if test "$ac_cv_have_usable_wchar_v2" = "yes"; then
2759 AC_DEFINE(HAVE_CPP_2BYTE_WCHAR_T)
2760 HAVE_CPP_2BYTE_WCHAR_T=1
2762 dnl This is really gcc-only
2763 dnl Do this test using CXX only since some versions of gcc
2764 dnl 2.95-2.97 have a signed wchar_t in c++ only and some versions
2765 dnl only have short-wchar support for c++.
2766 dnl Note that we assume that mac & win32 have short wchar (see nscore.h)
2770 _SAVE_CXXFLAGS=$CXXFLAGS
2771 CXXFLAGS="$CXXFLAGS -fshort-wchar"
2773 AC_CACHE_CHECK(for compiler -fshort-wchar option,
2774 ac_cv_have_usable_wchar_option_v2,
2775 [AC_TRY_LINK([#include <stddef.h>
2776 $configure_static_assert_macros],
2777 [CONFIGURE_STATIC_ASSERT(sizeof(wchar_t) == 2);
2778 CONFIGURE_STATIC_ASSERT((wchar_t)-1 > (wchar_t) 0)],
2779 ac_cv_have_usable_wchar_option_v2="yes",
2780 ac_cv_have_usable_wchar_option_v2="no")])
2782 if test "$ac_cv_have_usable_wchar_option_v2" = "yes"; then
2783 AC_DEFINE(HAVE_CPP_2BYTE_WCHAR_T)
2784 HAVE_CPP_2BYTE_WCHAR_T=1
2786 CXXFLAGS=$_SAVE_CXXFLAGS
2791 dnl Check for .hidden assembler directive and visibility attribute.
2792 dnl Borrowed from glibc configure.in
2793 dnl ===============================================================
2794 if test "$GNU_CC"; then
2795 AC_CACHE_CHECK(for visibility(hidden) attribute,
2796 ac_cv_visibility_hidden,
2797 [cat > conftest.c <<EOF
2798 int foo __attribute__ ((visibility ("hidden"))) = 1;
2800 ac_cv_visibility_hidden=no
2801 if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
2802 if egrep '\.(hidden|private_extern).*foo' conftest.s >/dev/null; then
2803 ac_cv_visibility_hidden=yes
2808 if test "$ac_cv_visibility_hidden" = "yes"; then
2809 AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE)
2811 AC_CACHE_CHECK(for visibility(default) attribute,
2812 ac_cv_visibility_default,
2813 [cat > conftest.c <<EOF
2814 int foo __attribute__ ((visibility ("default"))) = 1;
2816 ac_cv_visibility_default=no
2817 if ${CC-cc} -fvisibility=hidden -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
2818 if ! egrep '\.(hidden|private_extern).*foo' conftest.s >/dev/null; then
2819 ac_cv_visibility_default=yes
2824 if test "$ac_cv_visibility_default" = "yes"; then
2825 AC_DEFINE(HAVE_VISIBILITY_ATTRIBUTE)
2827 AC_CACHE_CHECK(for visibility pragma support,
2828 ac_cv_visibility_pragma,
2829 [cat > conftest.c <<EOF
2830 #pragma GCC visibility push(hidden)
2832 #pragma GCC visibility push(default)
2833 int foo_default = 1;
2835 ac_cv_visibility_pragma=no
2836 if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
2837 if egrep '\.(hidden|private_extern).*foo_hidden' conftest.s >/dev/null; then
2838 if ! egrep '\.(hidden|private_extern).*foo_default' conftest.s > /dev/null; then
2839 ac_cv_visibility_pragma=yes
2845 if test "$ac_cv_visibility_pragma" = "yes"; then
2846 AC_CACHE_CHECK(For gcc visibility bug with class-level attributes (GCC bug 26905),
2847 ac_cv_have_visibility_class_bug,
2848 [cat > conftest.c <<EOF
2849 #pragma GCC visibility push(hidden)
2850 struct __attribute__ ((visibility ("default"))) TestStruct {
2853 __attribute__ ((visibility ("default"))) void TestFunc() {
2857 ac_cv_have_visibility_class_bug=no
2858 if ! ${CXX-g++} ${CXXFLAGS} ${DSO_PIC_CFLAGS} ${DSO_LDOPTS} -S -o conftest.S conftest.c > /dev/null 2>&1 ; then
2859 ac_cv_have_visibility_class_bug=yes
2861 if test `egrep -c '@PLT|\\$stub' conftest.S` = 0; then
2862 ac_cv_have_visibility_class_bug=yes
2865 rm -rf conftest.{c,S}
2868 AC_CACHE_CHECK(For x86_64 gcc visibility bug with builtins (GCC bug 20297),
2869 ac_cv_have_visibility_builtin_bug,
2870 [cat > conftest.c <<EOF
2871 #pragma GCC visibility push(hidden)
2872 #pragma GCC visibility push(default)
2874 #pragma GCC visibility pop
2876 __attribute__ ((visibility ("default"))) void Func() {
2878 memset(c, 0, sizeof(c));
2881 ac_cv_have_visibility_builtin_bug=no
2882 if ! ${CC-cc} ${CFLAGS} ${DSO_PIC_CFLAGS} ${DSO_LDOPTS} -O2 -S -o conftest.S conftest.c > /dev/null 2>&1 ; then
2883 ac_cv_have_visibility_builtin_bug=yes
2885 if test `grep -c "@PLT" conftest.S` = 0; then
2886 ac_cv_visibility_builtin_bug=yes
2889 rm -f conftest.{c,S}
2891 if test "$ac_cv_have_visibility_builtin_bug" = "no" -a \
2892 "$ac_cv_have_visibility_class_bug" = "no"; then
2893 VISIBILITY_FLAGS='-I$(DIST)/include/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h'
2894 WRAP_SYSTEM_INCLUDES=1
2896 VISIBILITY_FLAGS='-fvisibility=hidden'
2897 fi # have visibility pragma bug
2898 fi # have visibility pragma
2899 fi # have visibility(default) attribute
2900 fi # have visibility(hidden) attribute
2903 # visibility hidden flag for Sun Studio on Solaris
2904 if test -z "$GNU_CC" && test -z "$GNU_CXX" && test "$OS_ARCH" = "SunOS"; then
2905 VISIBILITY_FLAGS='-xldscope=hidden'
2906 fi # Sun Studio on Solaris
2908 AC_SUBST(WRAP_SYSTEM_INCLUDES)
2909 AC_SUBST(VISIBILITY_FLAGS)
2911 dnl Checks for header files.
2912 dnl ========================================================
2914 case "$target_os" in
2916 # for stuff like -lXshm
2917 CPPFLAGS="${CPPFLAGS} ${X_CFLAGS}"
2920 AC_CHECK_HEADERS(sys/byteorder.h compat.h getopt.h)
2921 AC_CHECK_HEADERS(sys/bitypes.h memory.h unistd.h)
2922 AC_CHECK_HEADERS(gnu/libc-version.h nl_types.h)
2923 AC_CHECK_HEADERS(malloc.h)
2924 AC_CHECK_HEADERS(X11/XKBlib.h)
2926 dnl These are all the places some variant of statfs can be hiding.
2927 AC_CHECK_HEADERS(sys/statvfs.h sys/statfs.h sys/vfs.h sys/mount.h)
2929 dnl Try for MMX support
2930 dnl NB - later gcc versions require -mmmx for this header to be successfully
2931 dnl included (or another option which implies it, such as -march=pentium-mmx)
2932 AC_CHECK_HEADERS(mmintrin.h)
2934 AC_MSG_CHECKING(for ARM SIMD support)
2936 [asm("uqadd8 r1, r1, r2");],
2937 result="yes", result="no")
2938 AC_MSG_RESULT("$result")
2939 if test "$result" = "yes"; then
2940 AC_DEFINE(HAVE_ARM_SIMD)
2943 AC_SUBST(HAVE_ARM_SIMD)
2945 dnl Check whether the compiler supports the new-style C++ standard
2946 dnl library headers (i.e. <new>) or needs the old "new.h"
2949 AC_CHECK_HEADER(new, [NEW_H=new])
2950 AC_DEFINE_UNQUOTED(NEW_H, <$NEW_H>)
2953 AC_ARG_ENABLE(dtrace,
2954 [ --enable-dtrace build with dtrace support if available (default=no)],
2955 [enable_dtrace="yes"],)
2956 if test "x$enable_dtrace" = "xyes"; then
2957 AC_CHECK_HEADER(sys/sdt.h, HAVE_DTRACE=1)
2958 if test -n "$HAVE_DTRACE"; then
2959 AC_DEFINE(INCLUDE_MOZILLA_DTRACE)
2961 AC_MSG_ERROR([dtrace enabled but sys/sdt.h not found]);
2964 AC_SUBST(HAVE_DTRACE)
2970 AC_CHECK_HEADERS(sys/cdefs.h)
2974 dnl Checks for libraries.
2975 dnl ========================================================
2980 AC_CHECK_LIB(c_r, gethostbyname_r)
2984 dnl We don't want to link with libdl even if it's present on OS X, since
2985 dnl it's not used and not part of the default installation.
2986 dnl The same goes for BeOS.
2987 dnl We don't want to link against libm or libpthread on Darwin since
2988 dnl they both are just symlinks to libSystem and explicitly linking
2989 dnl against libSystem causes issues when debugging (see bug 299601).
2996 AC_CHECK_LIB(m, atan)
2997 AC_CHECK_LIB(dl, dlopen,
2998 AC_CHECK_HEADER(dlfcn.h,
3000 AC_DEFINE(HAVE_LIBDL)))
3004 _SAVE_CFLAGS="$CFLAGS"
3005 CFLAGS="$CFLAGS -D_GNU_SOURCE"
3006 AC_CHECK_FUNCS(dladdr)
3007 CFLAGS="$_SAVE_CFLAGS"
3009 if test ! "$GNU_CXX"; then
3013 AC_CHECK_LIB(C_r, demangle)
3016 AC_CHECK_LIB(C, demangle)
3020 AC_CHECK_LIB(socket, socket)
3023 XLIBS="$X_EXTRA_LIBS"
3025 dnl ========================================================
3026 dnl Checks for X libraries.
3027 dnl Ordering is important.
3028 dnl Xt is dependent upon SM as of X11R6
3029 dnl ========================================================
3030 if test "$no_x" = "yes"; then
3033 AC_DEFINE_UNQUOTED(FUNCPROTO,15)
3034 XLIBS="-lX11 $XLIBS"
3035 _SAVE_LDFLAGS="$LDFLAGS"
3036 LDFLAGS="$XLDFLAGS $LDFLAGS"
3037 AC_CHECK_LIB(X11, XDrawLines, [X11_LIBS="-lX11"],
3038 [MISSING_X="$MISSING_X -lX11"], $XLIBS)
3039 AC_CHECK_LIB(Xext, XextAddDisplay, [XEXT_LIBS="-lXext"],
3040 [MISSING_X="$MISSING_X -lXext"], $XLIBS)
3043 AC_CHECK_LIB(Xt, XtFree, [ XT_LIBS="-lXt"], [
3044 unset ac_cv_lib_Xt_XtFree
3045 AC_CHECK_LIB(ICE, IceFlush, [XT_LIBS="-lICE $XT_LIBS"],, $XT_LIBS $XLIBS)
3046 AC_CHECK_LIB(SM, SmcCloseConnection, [XT_LIBS="-lSM $XT_LIBS"],, $XT_LIBS $XLIBS)
3047 AC_CHECK_LIB(Xt, XtFree, [ XT_LIBS="-lXt $XT_LIBS"],
3048 [MISSING_X="$MISSING_X -lXt"], $X_PRE_LIBS $XT_LIBS $XLIBS)
3051 # AIX needs the motif library linked before libXt to prevent
3052 # crashes in plugins linked against Motif - Bug #98892
3053 case "${target_os}" in
3055 XT_LIBS="-lXm $XT_LIBS"
3059 dnl ========================================================
3060 dnl = Check for XShm
3061 dnl ========================================================
3062 AC_CHECK_LIB(Xext, XShmCreateImage, _HAVE_XSHM_XEXT=1,,
3064 AC_CHECK_HEADER(X11/extensions/XShm.h)
3065 if test "$ac_cv_header_X11_extensions_XShm_h" = "yes" &&
3066 test -n "$_HAVE_XSHM_XEXT"; then
3067 AC_DEFINE(HAVE_XSHM)
3070 dnl ========================================================
3072 dnl ========================================================
3073 AC_CHECK_LIB(XIE, XieFloGeometry, [MOZ_XIE_LIBS="-lXIE"],,
3075 AC_CHECK_HEADER(X11/extensions/XIElib.h)
3077 if test "$MOZ_XIE_LIBS"; then
3078 dnl ====================================================
3079 dnl = If XIE is present and is desired, turn it on
3080 dnl ====================================================
3090 LDFLAGS="$_SAVE_LDFLAGS"
3092 dnl ========================================================
3093 dnl = Check for freetype2 and its functionality
3094 dnl ========================================================
3095 AC_CHECK_FT2(6.1.0, [_HAVE_FREETYPE2=1], [_HAVE_FREETYPE2=])
3097 if test "$_HAVE_FREETYPE2"; then
3099 _SAVE_CFLAGS="$CFLAGS"
3100 LIBS="$LIBS $FT2_LIBS"
3101 CFLAGS="$CFLAGS $FT2_CFLAGS"
3103 AC_CACHE_CHECK(for FT_Bitmap_Size.y_ppem,
3104 ac_cv_member_FT_Bitmap_Size_y_ppem,
3105 [AC_TRY_COMPILE([#include <ft2build.h>
3106 #include FT_FREETYPE_H],
3108 if (sizeof s.y_ppem) return 0;
3110 ac_cv_member_FT_Bitmap_Size_y_ppem=yes,
3111 ac_cv_member_FT_Bitmap_Size_y_ppem=no)])
3112 if test "$ac_cv_member_FT_Bitmap_Size_y_ppem" = yes; then
3113 HAVE_FT_BITMAP_SIZE_Y_PPEM=1
3115 HAVE_FT_BITMAP_SIZE_Y_PPEM=0
3117 AC_DEFINE_UNQUOTED(HAVE_FT_BITMAP_SIZE_Y_PPEM,
3118 $HAVE_FT_BITMAP_SIZE_Y_PPEM,
3119 [FT_Bitmap_Size structure includes y_ppem field])
3121 AC_CHECK_FUNCS(FT_GlyphSlot_Embolden FT_Load_Sfnt_Table FT_Select_Size)
3124 CFLAGS="$_SAVE_CFLAGS"
3134 dnl ========================================================
3135 dnl = pthread support
3136 dnl = Start by checking whether the system support pthreads
3137 dnl ========================================================
3138 case "$target_os" in
3143 MOZ_CHECK_PTHREADS(pthreads,
3144 USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lpthreads",
3145 MOZ_CHECK_PTHREADS(pthread,
3146 USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lpthread",
3147 MOZ_CHECK_PTHREADS(c_r,
3148 USE_PTHREADS=1 _PTHREAD_LDFLAGS="-lc_r",
3149 MOZ_CHECK_PTHREADS(c,
3158 dnl ========================================================
3159 dnl Check the command line for --with-pthreads
3160 dnl ========================================================
3161 MOZ_ARG_WITH_BOOL(pthreads,
3162 [ --with-pthreads Force use of system pthread library with NSPR ],
3163 [ if test "$USE_PTHREADS"x = x; then
3164 AC_MSG_ERROR([ --with-pthreads specified for a system without pthread support ]);
3170 dnl ========================================================
3171 dnl Do the platform specific pthread hackery
3172 dnl ========================================================
3173 if test "$USE_PTHREADS"x != x
3176 dnl See if -pthread is supported.
3179 ac_cv_have_dash_pthread=no
3180 AC_MSG_CHECKING(whether ${CC-cc} accepts -pthread)
3181 echo 'int main() { return 0; }' | cat > conftest.c
3182 ${CC-cc} -pthread -o conftest conftest.c > conftest.out 2>&1
3183 if test $? -eq 0; then
3184 if test -z "`egrep -i '(unrecognize|unknown)' conftest.out | grep pthread`" && test -z "`egrep -i '(error|incorrect)' conftest.out`" ; then
3185 ac_cv_have_dash_pthread=yes
3186 case "$target_os" in
3188 # Freebsd doesn't use -pthread for compiles, it uses them for linking
3191 CFLAGS="$CFLAGS -pthread"
3192 CXXFLAGS="$CXXFLAGS -pthread"
3198 AC_MSG_RESULT($ac_cv_have_dash_pthread)
3201 dnl See if -pthreads is supported.
3203 ac_cv_have_dash_pthreads=no
3204 if test "$ac_cv_have_dash_pthread" = "no"; then
3205 AC_MSG_CHECKING(whether ${CC-cc} accepts -pthreads)
3206 echo 'int main() { return 0; }' | cat > conftest.c
3207 ${CC-cc} -pthreads -o conftest conftest.c > conftest.out 2>&1
3208 if test $? -eq 0; then
3209 if test -z "`egrep -i '(unrecognize|unknown)' conftest.out | grep pthreads`" && test -z "`egrep -i '(error|incorrect)' conftest.out`" ; then
3210 ac_cv_have_dash_pthreads=yes
3211 CFLAGS="$CFLAGS -pthreads"
3212 CXXFLAGS="$CXXFLAGS -pthreads"
3216 AC_MSG_RESULT($ac_cv_have_dash_pthreads)
3221 AC_DEFINE(_REENTRANT)
3222 AC_DEFINE(_THREAD_SAFE)
3223 dnl -pthread links in -lc_r, so don't specify it explicitly.
3224 if test "$ac_cv_have_dash_pthread" = "yes"; then
3225 _PTHREAD_LDFLAGS="-pthread"
3227 _PTHREAD_LDFLAGS="-lc_r"
3231 *-*-openbsd*|*-*-bsdi*)
3232 AC_DEFINE(_REENTRANT)
3233 AC_DEFINE(_THREAD_SAFE)
3234 dnl -pthread links in -lc_r, so don't specify it explicitly.
3235 if test "$ac_cv_have_dash_pthread" = "yes"; then
3236 _PTHREAD_LDFLAGS="-pthread"
3240 *-*-linux*|*-*-kfreebsd*-gnu)
3241 AC_DEFINE(_REENTRANT)
3245 AC_DEFINE(_REENTRANT)
3249 AC_DEFINE(_REENTRANT)
3253 AC_DEFINE(_REENTRANT)
3257 AC_DEFINE(_REENTRANT)
3261 AC_DEFINE(_REENTRANT)
3262 if test ! "$GNU_CC"; then
3263 CFLAGS="$CFLAGS -mt"
3264 CXXFLAGS="$CXXFLAGS -mt"
3268 LDFLAGS="${_PTHREAD_LDFLAGS} ${LDFLAGS}"
3271 dnl ========================================================
3272 dnl See if mmap sees writes
3273 dnl For cross compiling, just define it as no, which is a safe default
3274 dnl ========================================================
3275 AC_MSG_CHECKING(whether mmap() sees write()s)
3281 #include <sys/mman.h>
3282 #include <sys/types.h>
3283 #include <sys/stat.h>
3286 char fname[] = "conftest.file";
3287 char zbuff[1024]; /* Fractional page is probably worst case */
3294 fd = open(fname, O_RDWR | O_CREAT, 0660);
3297 write(fd, zbuff, sizeof(zbuff));
3298 lseek(fd, 0, SEEK_SET);
3299 map = (char*)mmap(0, sizeof(zbuff), PROT_READ, MAP_SHARED, fd, 0);
3300 if(map==(char*)-1) return 2;
3301 for(i=0; fname[i]; i++) {
3302 int rc = write(fd, &fname[i], 1);
3303 if(map[i]!=fname[i]) return 4;
3310 AC_TRY_RUN($mmap_test_prog , result="yes", result="no", result="yes")
3312 AC_MSG_RESULT("$result")
3314 if test "$result" = "no"; then
3315 AC_DEFINE(MMAP_MISSES_WRITES)
3319 dnl Checks for library functions.
3320 dnl ========================================================
3321 AC_PROG_GCC_TRADITIONAL
3323 AC_CHECK_FUNCS(random strerror lchown fchmod snprintf statvfs memmove rint stat64 lstat64 truncate64 statvfs64)
3324 AC_CHECK_FUNCS(flockfile getpagesize)
3326 dnl localtime_r and strtok_r are only present on MacOS version 10.2 and higher
3327 if test -z "$MACOS_DEPLOYMENT_TARGET" || test "$MACOS_DEPLOYMENT_TARGET" -ge "100200"; then
3328 AC_CHECK_FUNCS(localtime_r strtok_r)
3331 dnl check for wcrtomb/mbrtowc
3332 dnl =======================================================================
3333 if test -z "$MACOS_DEPLOYMENT_TARGET" || test "$MACOS_DEPLOYMENT_TARGET" -ge "100300"; then
3336 AC_CACHE_CHECK(for wcrtomb,
3338 [AC_TRY_LINK([#include <wchar.h>],
3339 [mbstate_t ps={0};wcrtomb(0,'f',&ps);],
3340 ac_cv_have_wcrtomb="yes",
3341 ac_cv_have_wcrtomb="no")])
3342 if test "$ac_cv_have_wcrtomb" = "yes"; then
3343 AC_DEFINE(HAVE_WCRTOMB)
3345 AC_CACHE_CHECK(for mbrtowc,
3347 [AC_TRY_LINK([#include <wchar.h>],
3348 [mbstate_t ps={0};mbrtowc(0,0,0,&ps);],
3349 ac_cv_have_mbrtowc="yes",
3350 ac_cv_have_mbrtowc="no")])
3351 if test "$ac_cv_have_mbrtowc" = "yes"; then
3352 AC_DEFINE(HAVE_MBRTOWC)
3359 ac_cv_func_res_ninit,
3362 #define _BSD_SOURCE 1
3366 [int foo = res_ninit(&_res);],
3367 [ac_cv_func_res_ninit=yes],
3368 [ac_cv_func_res_ninit=no])
3371 if test "$ac_cv_func_res_ninit" = "yes"; then
3372 AC_DEFINE(HAVE_RES_NINIT)
3373 dnl must add the link line we do something as foolish as this... dougt
3375 dnl AC_CHECK_LIB(bind, res_ninit, AC_DEFINE(HAVE_RES_NINIT),
3376 dnl AC_CHECK_LIB(resolv, res_ninit, AC_DEFINE(HAVE_RES_NINIT)))
3381 [for gnu_get_libc_version()],
3382 ac_cv_func_gnu_get_libc_version,
3384 #ifdef HAVE_GNU_LIBC_VERSION_H
3385 #include <gnu/libc-version.h>
3388 [const char *glibc_version = gnu_get_libc_version();],
3389 [ac_cv_func_gnu_get_libc_version=yes],
3390 [ac_cv_func_gnu_get_libc_version=no]
3394 if test "$ac_cv_func_gnu_get_libc_version" = "yes"; then
3395 AC_DEFINE(HAVE_GNU_GET_LIBC_VERSION)
3399 os2*|msvc*|mks*|cygwin*|mingw*|darwin*|wince*|beos*)
3403 AC_CHECK_LIB(c, iconv, [_ICONV_LIBS="$_ICONV_LIBS"],
3404 AC_CHECK_LIB(iconv, iconv, [_ICONV_LIBS="$_ICONV_LIBS -liconv"],
3405 AC_CHECK_LIB(iconv, libiconv, [_ICONV_LIBS="$_ICONV_LIBS -liconv"])))
3407 LIBS="$LIBS $_ICONV_LIBS"
3416 iconv_t h = iconv_open("", "");
3417 iconv(h, NULL, NULL, NULL, NULL);
3420 [ac_cv_func_iconv=yes],
3421 [ac_cv_func_iconv=no]
3424 if test "$ac_cv_func_iconv" = "yes"; then
3425 AC_DEFINE(HAVE_ICONV)
3426 DYNAMIC_XPCOM_LIBS="$DYNAMIC_XPCOM_LIBS $_ICONV_LIBS"
3427 LIBXUL_LIBS="$LIBXUL_LIBS $_ICONV_LIBS"
3428 LIBICONV="$_ICONV_LIBS"
3430 [for iconv() with const input],
3431 ac_cv_func_const_iconv,
3437 const char *input = "testing";
3438 iconv_t h = iconv_open("", "");
3439 iconv(h, &input, NULL, NULL, NULL);
3442 [ac_cv_func_const_iconv=yes],
3443 [ac_cv_func_const_iconv=no]
3446 if test "$ac_cv_func_const_iconv" = "yes"; then
3447 AC_DEFINE(HAVE_ICONV_WITH_CONST_INPUT)
3459 dnl **********************
3460 dnl *** va_copy checks ***
3461 dnl **********************
3462 dnl we currently check for all three va_copy possibilities, so we get
3463 dnl all results in config.log for bug reports.
3464 AC_MSG_CHECKING(for an implementation of va_copy())
3465 AC_CACHE_VAL(ac_cv_va_copy,[
3468 void f (int i, ...) {
3469 va_list args1, args2;
3470 va_start (args1, i);
3471 va_copy (args2, args1);
3472 if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
3474 va_end (args1); va_end (args2);
3476 int main() { f (0, 42); return 0; }],
3482 AC_MSG_RESULT($ac_cv_va_copy)
3483 AC_MSG_CHECKING(for an implementation of __va_copy())
3484 AC_CACHE_VAL(ac_cv___va_copy,[
3487 void f (int i, ...) {
3488 va_list args1, args2;
3489 va_start (args1, i);
3490 __va_copy (args2, args1);
3491 if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
3493 va_end (args1); va_end (args2);
3495 int main() { f (0, 42); return 0; }],
3496 ac_cv___va_copy=yes,
3501 AC_MSG_RESULT($ac_cv___va_copy)
3502 AC_MSG_CHECKING(whether va_lists can be copied by value)
3503 AC_CACHE_VAL(ac_cv_va_val_copy,[
3506 void f (int i, ...) {
3507 va_list args1, args2;
3508 va_start (args1, i);
3510 if (va_arg (args2, int) != 42 || va_arg (args1, int) != 42)
3512 va_end (args1); va_end (args2);
3514 int main() { f (0, 42); return 0; }],
3515 ac_cv_va_val_copy=yes,
3516 ac_cv_va_val_copy=no,
3517 ac_cv_va_val_copy=yes
3520 if test "x$ac_cv_va_copy" = "xyes"; then
3521 AC_DEFINE(VA_COPY, va_copy)
3522 AC_DEFINE(HAVE_VA_COPY)
3523 elif test "x$ac_cv___va_copy" = "xyes"; then
3524 AC_DEFINE(VA_COPY, __va_copy)
3525 AC_DEFINE(HAVE_VA_COPY)
3528 if test "x$ac_cv_va_val_copy" = "xno"; then
3529 AC_DEFINE(HAVE_VA_LIST_AS_ARRAY)
3531 AC_MSG_RESULT($ac_cv_va_val_copy)
3533 dnl Check for dll-challenged libc's.
3534 dnl This check is apparently only needed for Linux.
3537 dnl ===================================================================
3540 rm -rf conftest* _conftest
3542 cat >> conftest.C <<\EOF
3547 void __dump_link_map(void) {
3548 struct link_map *map = _dl_loaded;
3549 while (NULL != map) {printf("0x%08x %s\n", map->l_addr, map->l_name); map = map->l_next;}
3552 dlopen("./conftest1.so",RTLD_LAZY);
3553 dlopen("./../_conftest/conftest1.so",RTLD_LAZY);
3554 dlopen("CURDIR/_conftest/conftest1.so",RTLD_LAZY);
3555 dlopen("CURDIR/_conftest/../_conftest/conftest1.so",RTLD_LAZY);
3559 /* _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).*/
3560 int main() { printf("./conftest1.so\n"); }
3564 $PERL -p -i -e "s/CURDIR/\$ENV{_curdir}/g;" conftest.C
3566 cat >> conftest1.C <<\EOF
3568 void foo(void) {printf("foo in dll called\n");}
3570 ${CXX-g++} -fPIC -c -g conftest1.C
3571 ${CXX-g++} -shared -Wl,-h -Wl,conftest1.so -o conftest1.so conftest1.o
3572 ${CXX-g++} -g conftest.C -o conftest -ldl
3573 cp -f conftest1.so conftest _conftest
3575 if test `./conftest | grep conftest1.so | wc -l` -gt 1
3578 echo "*** Your libc has a bug that can result in loading the same dynamic"
3579 echo "*** library multiple times. This bug is known to be fixed in glibc-2.0.7-32"
3580 echo "*** or later. However, if you choose not to upgrade, the only effect"
3581 echo "*** will be excessive memory usage at runtime."
3585 rm -rf conftest* _conftest
3586 dnl ===================================================================
3590 dnl ===================================================================
3591 dnl ========================================================
3592 dnl By default, turn rtti and exceptions off on g++/egcs
3593 dnl ========================================================
3594 if test "$GNU_CXX"; then
3596 AC_MSG_CHECKING(for C++ exceptions flag)
3598 dnl They changed -f[no-]handle-exceptions to -f[no-]exceptions in g++ 2.8
3599 AC_CACHE_VAL(ac_cv_cxx_exceptions_flags,
3600 [echo "int main() { return 0; }" | cat > conftest.C
3602 ${CXX-g++} ${CXXFLAGS} -c -fno-handle-exceptions conftest.C > conftest.out 2>&1
3604 if egrep "warning.*renamed" conftest.out >/dev/null; then
3605 ac_cv_cxx_exceptions_flags=${_COMPILER_PREFIX}-fno-exceptions
3607 ac_cv_cxx_exceptions_flags=${_COMPILER_PREFIX}-fno-handle-exceptions
3612 AC_MSG_RESULT($ac_cv_cxx_exceptions_flags)
3613 _MOZ_EXCEPTIONS_FLAGS_OFF=$ac_cv_cxx_exceptions_flags
3614 _MOZ_EXCEPTIONS_FLAGS_ON=`echo $ac_cv_cxx_exceptions_flags | sed 's|no-||'`
3617 dnl ========================================================
3618 dnl Put your C++ language/feature checks below
3619 dnl ========================================================
3623 if test "$GNU_CC"; then
3624 AC_CACHE_CHECK(for gcc 3.0 ABI,
3625 ac_cv_gcc_three_abi,
3628 #if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */
3634 ac_cv_gcc_three_abi="yes",
3635 ac_cv_gcc_three_abi="no")])
3636 if test "$ac_cv_gcc_three_abi" = "yes"; then
3637 TARGET_COMPILER_ABI="${TARGET_COMPILER_ABI-gcc3}"
3640 TARGET_COMPILER_ABI="${TARGET_COMPILER_ABI-gcc2}"
3643 AC_SUBST(HAVE_GCC3_ABI)
3646 AC_CACHE_CHECK(for C++ \"explicit\" keyword,
3648 [AC_TRY_COMPILE(class X {
3649 public: explicit X(int i) : i_(i) {}
3653 ac_cv_cpp_explicit=yes,
3654 ac_cv_cpp_explicit=no)])
3655 if test "$ac_cv_cpp_explicit" = yes ; then
3656 AC_DEFINE(HAVE_CPP_EXPLICIT)
3659 AC_CACHE_CHECK(for C++ \"typename\" keyword,
3661 [AC_TRY_COMPILE(class param {
3663 typedef unsigned long num_type;
3666 template <class T> class tplt {
3668 typedef typename T::num_type t_num_type;
3669 t_num_type foo(typename T::num_type num) {
3675 ac_cv_cpp_typename=yes,
3676 ac_cv_cpp_typename=no)])
3677 if test "$ac_cv_cpp_typename" = yes ; then
3678 AC_DEFINE(HAVE_CPP_TYPENAME)
3681 dnl Check for support of modern template specialization syntax
3682 dnl Test code and requirement from scc@netscape.com.
3683 dnl Autoconf cut-and-paste job by waterson@netscape.com
3684 AC_CACHE_CHECK(for modern C++ template specialization syntax support,
3685 ac_cv_cpp_modern_specialize_template_syntax,
3686 [AC_TRY_COMPILE(template <class T> struct X { int a; };
3688 template <> struct X<Y> { double a; };,
3691 ac_cv_cpp_modern_specialize_template_syntax=yes,
3692 ac_cv_cpp_modern_specialize_template_syntax=no)])
3693 if test "$ac_cv_cpp_modern_specialize_template_syntax" = yes ; then
3694 AC_DEFINE(HAVE_CPP_MODERN_SPECIALIZE_TEMPLATE_SYNTAX)
3698 dnl Some compilers support only full specialization, and some don't.
3699 AC_CACHE_CHECK(whether partial template specialization works,
3700 ac_cv_cpp_partial_specialization,
3701 [AC_TRY_COMPILE(template <class T> class Foo {};
3702 template <class T> class Foo<T*> {};,
3704 ac_cv_cpp_partial_specialization=yes,
3705 ac_cv_cpp_partial_specialization=no)])
3706 if test "$ac_cv_cpp_partial_specialization" = yes ; then
3707 AC_DEFINE(HAVE_CPP_PARTIAL_SPECIALIZATION)
3710 dnl Some compilers have limited support for operators with templates;
3711 dnl specifically, it is necessary to define derived operators when a base
3712 dnl class's operator declaration should suffice.
3713 AC_CACHE_CHECK(whether operators must be re-defined for templates derived from templates,
3714 ac_cv_need_derived_template_operators,
3715 [AC_TRY_COMPILE([template <class T> class Base { };
3717 Base<T> operator+(const Base<T>& lhs, const Base<T>& rhs) { return lhs; }
3718 template <class T> class Derived : public Base<T> { };],
3719 [Derived<char> a, b;
3720 Base<char> c = a + b;
3722 ac_cv_need_derived_template_operators=no,
3723 ac_cv_need_derived_template_operators=yes)])
3724 if test "$ac_cv_need_derived_template_operators" = yes ; then
3725 AC_DEFINE(NEED_CPP_DERIVED_TEMPLATE_OPERATORS)
3729 dnl Some compilers have trouble detecting that a template class
3730 dnl that derives from another template is actually an instance
3731 dnl of the base class. This test checks for that.
3732 AC_CACHE_CHECK(whether we need to cast a derived template to pass as its base class,
3733 ac_cv_need_cpp_template_cast_to_base,
3734 [AC_TRY_COMPILE([template <class T> class Base { };
3735 template <class T> class Derived : public Base<T> { };
3736 template <class T> int foo(const Base<T>&) { return 0; }],
3737 [Derived<char> bar; return foo(bar);],
3738 ac_cv_need_cpp_template_cast_to_base=no,
3739 ac_cv_need_cpp_template_cast_to_base=yes)])
3740 if test "$ac_cv_need_cpp_template_cast_to_base" = yes ; then
3741 AC_DEFINE(NEED_CPP_TEMPLATE_CAST_TO_BASE)
3744 dnl Some compilers have trouble resolving the ambiguity between two
3745 dnl functions whose arguments differ only by cv-qualifications.
3746 AC_CACHE_CHECK(whether the compiler can resolve const ambiguities for templates,
3747 ac_cv_can_resolve_const_ambiguity,
3749 template <class T> class ptrClass {
3753 template <class T> T* a(ptrClass<T> *arg) {
3758 const T* a(const ptrClass<T> *arg) {
3764 ac_cv_can_resolve_const_ambiguity=yes,
3765 ac_cv_can_resolve_const_ambiguity=no)])
3766 if test "$ac_cv_can_resolve_const_ambiguity" = no ; then
3767 AC_DEFINE(CANT_RESOLVE_CPP_CONST_AMBIGUITY)
3771 dnl We don't do exceptions on unix. The only reason this used to be here
3772 dnl is that mozilla/xpcom/tests/TestCOMPtr.cpp has a test which uses
3773 dnl exceptions. But, we turn exceptions off by default and this test breaks.
3774 dnl So im commenting this out until someone writes some artificial
3775 dnl intelligence to detect not only if the compiler has exceptions, but if
3776 dnl they are enabled as well.
3778 dnl AC_CACHE_CHECK(for C++ \"exceptions\",
3779 dnl ac_cv_cpp_exceptions,
3780 dnl [AC_TRY_COMPILE(class X { public: X() {} };
3781 dnl static void F() { throw X(); },
3782 dnl try { F(); } catch(X & e) { },
3783 dnl ac_cv_cpp_exceptions=yes,
3784 dnl ac_cv_cpp_exceptions=no)])
3785 dnl if test $ac_cv_cpp_exceptions = yes ; then
3786 dnl AC_DEFINE(HAVE_CPP_EXCEPTIONS)
3789 dnl Some compilers have marginal |using| support; for example, gcc-2.7.2.3
3790 dnl supports it well enough to allow us to use it to change access, but not
3791 dnl to resolve ambiguity. The next two tests determine how well the |using|
3792 dnl keyword is supported.
3794 dnl Check to see if we can change access with |using|. Test both a
3795 dnl legal and an illegal example.
3796 AC_CACHE_CHECK(whether the C++ \"using\" keyword can change access,
3797 ac_cv_cpp_access_changing_using2,
3799 class A { protected: int foo() { return 0; } };
3800 class B : public A { public: using A::foo; };,
3801 B b; return b.foo();,
3803 class A { public: int foo() { return 1; } };
3804 class B : public A { private: using A::foo; };,
3805 B b; return b.foo();,
3806 ac_cv_cpp_access_changing_using2=no,
3807 ac_cv_cpp_access_changing_using2=yes)],
3808 ac_cv_cpp_access_changing_using2=no)])
3809 if test "$ac_cv_cpp_access_changing_using2" = yes ; then
3810 AC_DEFINE(HAVE_CPP_ACCESS_CHANGING_USING)
3813 dnl Check to see if we can resolve ambiguity with |using|.
3814 AC_CACHE_CHECK(whether the C++ \"using\" keyword resolves ambiguity,
3815 ac_cv_cpp_ambiguity_resolving_using,
3816 [AC_TRY_COMPILE(class X {
3817 public: int go(const X&) {return 3;}
3818 int jo(const X&) {return 3;}
3820 class Y : public X {
3821 public: int go(int) {return 2;}
3822 int jo(int) {return 2;}
3824 private: using X::go;
3827 ac_cv_cpp_ambiguity_resolving_using=yes,
3828 ac_cv_cpp_ambiguity_resolving_using=no)])
3829 if test "$ac_cv_cpp_ambiguity_resolving_using" = yes ; then
3830 AC_DEFINE(HAVE_CPP_AMBIGUITY_RESOLVING_USING)
3833 dnl Check to see if the |std| namespace is supported. If so, we'll want
3834 dnl to qualify any standard library calls with "std::" to ensure that
3835 dnl those functions can be resolved.
3836 AC_CACHE_CHECK(for \"std::\" namespace,
3837 ac_cv_cpp_namespace_std,
3838 [AC_TRY_COMPILE([#include <algorithm>],
3839 [return std::min(0, 1);],
3840 ac_cv_cpp_namespace_std=yes,
3841 ac_cv_cpp_namespace_std=no)])
3842 if test "$ac_cv_cpp_namespace_std" = yes ; then
3843 AC_DEFINE(HAVE_CPP_NAMESPACE_STD)
3846 dnl Older compilers are overly ambitious with respect to using the standard
3847 dnl template library's |operator!=()| when |operator==()| is defined. In
3848 dnl which case, defining |operator!=()| in addition to |operator==()| causes
3849 dnl ambiguity at compile-time. This test checks for that case.
3850 AC_CACHE_CHECK(whether standard template operator!=() is ambiguous,
3851 ac_cv_cpp_unambiguous_std_notequal,
3852 [AC_TRY_COMPILE([#include <algorithm>
3854 int operator==(const T1&, const T1&) { return 0; }
3855 int operator!=(const T1&, const T1&) { return 0; }],
3856 [T1 a,b; return a != b;],
3857 ac_cv_cpp_unambiguous_std_notequal=unambiguous,
3858 ac_cv_cpp_unambiguous_std_notequal=ambiguous)])
3859 if test "$ac_cv_cpp_unambiguous_std_notequal" = unambiguous ; then
3860 AC_DEFINE(HAVE_CPP_UNAMBIGUOUS_STD_NOTEQUAL)
3864 AC_CACHE_CHECK(for C++ reinterpret_cast,
3865 ac_cv_cpp_reinterpret_cast,
3866 [AC_TRY_COMPILE(struct X { int i; };
3867 struct Y { int i; };,
3868 X x; X*const z = &x;Y*y = reinterpret_cast<Y*>(z);,
3869 ac_cv_cpp_reinterpret_cast=yes,
3870 ac_cv_cpp_reinterpret_cast=no)])
3871 if test "$ac_cv_cpp_reinterpret_cast" = yes ; then
3872 AC_DEFINE(HAVE_CPP_NEW_CASTS)
3875 dnl See if a dynamic_cast to void* gives the most derived object.
3876 AC_CACHE_CHECK(for C++ dynamic_cast to void*,
3877 ac_cv_cpp_dynamic_cast_void_ptr,
3878 [AC_TRY_RUN([class X { int i; public: virtual ~X() { } };
3879 class Y { int j; public: virtual ~Y() { } };
3880 class Z : public X, public Y { int k; };
3886 return !((((void*)&mdo != (void*)subx) &&
3887 ((void*)&mdo == dynamic_cast<void*>(subx))) ||
3888 (((void*)&mdo != (void*)suby) &&
3889 ((void*)&mdo == dynamic_cast<void*>(suby))));
3891 ac_cv_cpp_dynamic_cast_void_ptr=yes,
3892 ac_cv_cpp_dynamic_cast_void_ptr=no,
3893 ac_cv_cpp_dynamic_cast_void_ptr=no)])
3894 if test "$ac_cv_cpp_dynamic_cast_void_ptr" = yes ; then
3895 AC_DEFINE(HAVE_CPP_DYNAMIC_CAST_TO_VOID_PTR)
3899 dnl note that this one is reversed - if the test fails, then
3900 dnl we require implementations of unused virtual methods. Which
3901 dnl really blows because it means we'll have useless vtable
3903 AC_CACHE_CHECK(whether C++ requires implementation of unused virtual methods,
3904 ac_cv_cpp_unused_required,
3905 [AC_TRY_LINK(class X {private: virtual void never_called();};,
3907 ac_cv_cpp_unused_required=no,
3908 ac_cv_cpp_unused_required=yes)])
3909 if test "$ac_cv_cpp_unused_required" = yes ; then
3910 AC_DEFINE(NEED_CPP_UNUSED_IMPLEMENTATIONS)
3914 dnl Some compilers have trouble comparing a constant reference to a templatized
3915 dnl class to zero, and require an explicit operator==() to be defined that takes
3916 dnl an int. This test separates the strong from the weak.
3918 AC_CACHE_CHECK(for trouble comparing to zero near std::operator!=(),
3919 ac_cv_trouble_comparing_to_zero,
3920 [AC_TRY_COMPILE([#include <algorithm>
3921 template <class T> class Foo {};
3923 template <class T> int operator==(const T2*, const T&) { return 0; }
3924 template <class T> int operator!=(const T2*, const T&) { return 0; }],
3925 [Foo<int> f; return (0 != f);],
3926 ac_cv_trouble_comparing_to_zero=no,
3927 ac_cv_trouble_comparing_to_zero=yes)])
3928 if test "$ac_cv_trouble_comparing_to_zero" = yes ; then
3929 AC_DEFINE(HAVE_CPP_TROUBLE_COMPARING_TO_ZERO)
3934 dnl End of C++ language/feature checks
3937 dnl ========================================================
3938 dnl = Internationalization checks
3939 dnl ========================================================
3941 dnl Internationalization and Locale support is different
3942 dnl on various UNIX platforms. Checks for specific i18n
3943 dnl features go here.
3945 dnl check for LC_MESSAGES
3946 AC_CACHE_CHECK(for LC_MESSAGES,
3947 ac_cv_i18n_lc_messages,
3948 [AC_TRY_COMPILE([#include <locale.h>],
3949 [int category = LC_MESSAGES;],
3950 ac_cv_i18n_lc_messages=yes,
3951 ac_cv_i18n_lc_messages=no)])
3952 if test "$ac_cv_i18n_lc_messages" = yes; then
3953 AC_DEFINE(HAVE_I18N_LC_MESSAGES)
3956 fi # SKIP_COMPILER_CHECKS
3959 if test -n "${CPU_ARCH}" -a -n "${TARGET_COMPILER_ABI}"; then
3960 TARGET_XPCOM_ABI="${CPU_ARCH}-${TARGET_COMPILER_ABI}"
3963 dnl Mozilla specific options
3964 dnl ========================================================
3965 dnl The macros used for command line options
3966 dnl are defined in build/autoconf/altoptions.m4.
3969 dnl ========================================================
3971 dnl = Check for external package dependencies
3973 dnl ========================================================
3974 MOZ_ARG_HEADER(External Packages)
3978 MOZ_ARG_WITH_STRING(libxul-sdk,
3979 [ --with-libxul-sdk=PFX Use the libXUL SDK at <PFX>],
3980 LIBXUL_SDK_DIR=$withval)
3982 if test "$LIBXUL_SDK_DIR" = "yes"; then
3983 AC_MSG_ERROR([--with-libxul-sdk must specify a path])
3984 elif test -n "$LIBXUL_SDK_DIR" -a "$LIBXUL_SDK_DIR" != "no"; then
3985 LIBXUL_SDK=`cd "$LIBXUL_SDK_DIR" && pwd`
3987 if test ! -f "$LIBXUL_SDK/sdk/include/xpcom-config.h"; then
3988 AC_MSG_ERROR([$LIBXUL_SDK/sdk/include/xpcom-config.h doesn't exist])
3993 AC_SUBST(LIBXUL_SDK)
3995 if test -n "$LIBXUL_SDK"; then
3996 LIBXUL_DIST="$LIBXUL_SDK"
3998 LIBXUL_DIST="$MOZ_BUILD_ROOT/dist"
4000 AC_SUBST(LIBXUL_DIST)
4002 dnl ========================================================
4003 dnl = If NSPR was not detected in the system,
4004 dnl = use the one in the source tree (mozilla/nsprpub)
4005 dnl ========================================================
4006 MOZ_ARG_WITH_BOOL(system-nspr,
4007 [ --with-system-nspr Use system installed NSPR],
4008 _USE_SYSTEM_NSPR=1 )
4010 if test -n "$_USE_SYSTEM_NSPR"; then
4011 AM_PATH_NSPR(4.7.0, [MOZ_NATIVE_NSPR=1], [MOZ_NATIVE_NSPR=])
4014 if test -n "$MOZ_NATIVE_NSPR"; then
4015 _SAVE_CFLAGS=$CFLAGS
4016 CFLAGS="$CFLAGS $NSPR_CFLAGS"
4017 AC_TRY_COMPILE([#include "prlog.h"],
4018 [#ifndef PR_STATIC_ASSERT
4019 #error PR_STATIC_ASSERT not defined
4021 [MOZ_NATIVE_NSPR=1],
4022 AC_MSG_ERROR([system NSPR does not support PR_STATIC_ASSERT]))
4023 CFLAGS=$_SAVE_CFLAGS
4025 NSPR_CFLAGS='`$(DEPTH)/nsprpub/config/nspr-config --prefix='${LIBXUL_DIST}' --includedir='${LIBXUL_DIST}'/include/nspr --cflags`'
4026 if test "$OS_ARCH" = "WINCE"; then
4027 NSPR_CFLAGS="-I${LIBXUL_DIST}/include/nspr"
4028 NSPR_LIBS="${LIBXUL_DIST}/lib/nspr${NSPR_VERSION}.lib ${LIBXUL_DIST}/lib/plc${NSPR_VERSION}.lib ${LIBXUL_DIST}/lib/plds${NSPR_VERSION}.lib "
4029 elif test "$OS_ARCH" = "WINNT"; then
4030 NSPR_CFLAGS="-I${LIBXUL_DIST}/include/nspr"
4031 if test -n "$GNU_CC"; then
4032 NSPR_LIBS="-L${LIBXUL_DIST}/lib -lnspr${NSPR_VERSION} -lplc${NSPR_VERSION} -lplds${NSPR_VERSION}"
4034 NSPR_LIBS="${LIBXUL_DIST}/lib/nspr${NSPR_VERSION}.lib ${LIBXUL_DIST}/lib/plc${NSPR_VERSION}.lib ${LIBXUL_DIST}/lib/plds${NSPR_VERSION}.lib "
4037 NSPR_LIBS='`$(DEPTH)/nsprpub/config/nspr-config --prefix='${LIBXUL_DIST}' --libdir='${LIBXUL_DIST}'/lib --libs`'
4041 dnl ========================================================
4042 dnl = If NSS was not detected in the system,
4043 dnl = use the one in the source tree (mozilla/security/nss)
4044 dnl ========================================================
4046 MOZ_ARG_WITH_BOOL(system-nss,
4047 [ --with-system-nss Use system installed NSS],
4050 if test -n "$_USE_SYSTEM_NSS"; then
4051 AM_PATH_NSS(3.12.0, [MOZ_NATIVE_NSS=1], [MOZ_NATIVE_NSS=])
4054 if test -n "$MOZ_NATIVE_NSS"; then
4055 NSS_LIBS="$NSS_LIBS -lcrmf"
4057 NSS_CFLAGS='-I$(LIBXUL_DIST)/include/nss'
4059 \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)crmf.\$(LIB_SUFFIX) \
4060 \$(LIBXUL_DIST)/lib/\$(DLL_PREFIX)smime$NSS_VERSION\$(DLL_SUFFIX) \
4061 \$(LIBXUL_DIST)/lib/\$(DLL_PREFIX)ssl$NSS_VERSION\$(DLL_SUFFIX) \
4062 \$(LIBXUL_DIST)/lib/\$(DLL_PREFIX)nss$NSS_VERSION\$(DLL_SUFFIX) \
4063 \$(LIBXUL_DIST)/lib/\$(DLL_PREFIX)nssutil$NSS_VERSION\$(DLL_SUFFIX) \
4064 \$(LIBXUL_DIST)/lib/\$(DLL_PREFIX)softokn$NSS_VERSION\$(DLL_SUFFIX)"
4066 if test -z "$GNU_CC" && test "$OS_ARCH" = "WINNT" -o "$OS_ARCH" = "WINCE" -o "$OS_ARCH" = "OS2"; then
4068 \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)crmf.\$(LIB_SUFFIX) \
4069 \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)smime$NSS_VERSION.\$(IMPORT_LIB_SUFFIX) \
4070 \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)ssl$NSS_VERSION.\$(IMPORT_LIB_SUFFIX) \
4071 \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)nss$NSS_VERSION.\$(IMPORT_LIB_SUFFIX) \
4072 \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)nssutil$NSS_VERSION.\$(IMPORT_LIB_SUFFIX) \
4073 \$(LIBXUL_DIST)/lib/\$(LIB_PREFIX)softokn$NSS_VERSION.\$(IMPORT_LIB_SUFFIX)"
4075 NSS_LIBS='$(LIBS_DIR)'" -lcrmf -lsmime$NSS_VERSION -lssl$NSS_VERSION -lnss$NSS_VERSION -lnssutil$NSS_VERSION -lsoftokn$NSS_VERSION"
4079 if test -z "$SKIP_LIBRARY_CHECKS"; then
4080 dnl system JPEG support
4081 dnl ========================================================
4082 MOZ_ARG_WITH_STRING(system-jpeg,
4083 [ --with-system-jpeg[=PFX]
4084 Use system libjpeg [installed at prefix PFX]],
4087 _SAVE_CFLAGS=$CFLAGS
4088 _SAVE_LDFLAGS=$LDFLAGS
4090 if test -n "${JPEG_DIR}" -a "${JPEG_DIR}" != "yes"; then
4091 CFLAGS="-I${JPEG_DIR}/include $CFLAGS"
4092 LDFLAGS="-L${JPEG_DIR}/lib $LDFLAGS"
4094 if test -z "$JPEG_DIR" -o "$JPEG_DIR" = no; then
4097 AC_CHECK_LIB(jpeg, jpeg_destroy_compress, [SYSTEM_JPEG=1 JPEG_LIBS="-ljpeg $JPEG_LIBS"], SYSTEM_JPEG=, $JPEG_LIBS)
4100 if test "$SYSTEM_JPEG" = 1; then
4101 LIBS="$JPEG_LIBS $LIBS"
4102 AC_TRY_COMPILE([ #include <stdio.h>
4103 #include <sys/types.h>
4104 #include <jpeglib.h> ],
4105 [ #if JPEG_LIB_VERSION < $MOZJPEG
4106 #error "Insufficient JPEG library version ($MOZJPEG required)."
4109 [SYSTEM_JPEG= JPEG_CFLAGS= JPEG_LIBS=])
4111 CFLAGS=$_SAVE_CFLAGS
4112 LDFLAGS=$_SAVE_LDFLAGS
4115 if test -n "${JPEG_DIR}" -a -d "${JPEG_DIR}" -a "$SYSTEM_JPEG" = 1; then
4116 JPEG_CFLAGS="-I${JPEG_DIR}/include"
4117 JPEG_LIBS="-L${JPEG_DIR}/lib ${JPEG_LIBS}"
4120 dnl system ZLIB support
4121 dnl ========================================================
4122 MOZ_ARG_WITH_STRING(system-zlib,
4123 [ --with-system-zlib[=PFX]
4124 Use system libz [installed at prefix PFX]],
4127 _SAVE_CFLAGS=$CFLAGS
4128 _SAVE_LDFLAGS=$LDFLAGS
4130 if test -n "${ZLIB_DIR}" -a "${ZLIB_DIR}" != "yes"; then
4131 CFLAGS="-I${ZLIB_DIR}/include $CFLAGS"
4132 LDFLAGS="-L${ZLIB_DIR}/lib $LDFLAGS"
4134 if test -z "$ZLIB_DIR" -o "$ZLIB_DIR" = no; then
4137 AC_CHECK_LIB(z, gzread, [SYSTEM_ZLIB=1 ZLIB_LIBS="-lz $ZLIB_LIBS"],
4138 [SYSTEM_ZLIB= ZLIB_CFLAGS= ZLIB_LIBS=], $ZLIB_LIBS)
4140 if test "$SYSTEM_ZLIB" = 1; then
4141 LIBS="$ZLIB_LIBS $LIBS"
4142 AC_TRY_COMPILE([ #include <stdio.h>
4144 #include <zlib.h> ],
4145 [ #if ZLIB_VERNUM < $MOZZLIB
4146 #error "Insufficient zlib version ($MOZZLIB required)."
4149 [SYSTEM_ZLIB= ZLIB_CFLAGS= ZLIB_LIBS=])
4151 CFLAGS=$_SAVE_CFLAGS
4152 LDFLAGS=$_SAVE_LDFLAGS
4155 if test "${ZLIB_DIR}" -a -d "${ZLIB_DIR}" -a "$SYSTEM_ZLIB" = 1; then
4156 ZLIB_CFLAGS="-I${ZLIB_DIR}/include"
4157 ZLIB_LIBS="-L${ZLIB_DIR}/lib ${ZLIB_LIBS}"
4160 dnl system BZIP2 Support
4161 dnl ========================================================
4162 MOZ_ARG_WITH_STRING(system-bz2,
4163 [ --with-system-bz2[=PFX]
4164 Use system libbz2 [installed at prefix PFX]],
4167 _SAVE_CFLAGS=$CFLAGS
4168 _SAVE_LDFLAGS=$LDFLAGS
4170 if test -n "${BZ2_DIR}" -a "${BZ2_DIR}" != "yes"; then
4171 CFLAGS="-I${BZ2_DIR}/include $CFLAGS"
4172 LDFLAGS="-L${BZ2_DIR}/lib $LDFLAGS"
4174 if test -z "$BZ2_DIR" -o "$BZ2_DIR" = no; then
4177 AC_CHECK_LIB(bz2, BZ2_bzread, [SYSTEM_BZ2=1 BZ2_LIBS="-lbz2"],
4178 [SYSTEM_BZ2= BZ2_CFLAGS= BZ2_LIBS=], $BZ2_LIBS)
4180 CFLAGS=$_SAVE_CFLAGS
4181 LDFLAGS=$_SAVE_LDFLAGS
4184 if test "${BZ2_DIR}" -a -d "${BZ2_DIR}" -a "$SYSTEM_BZ2" = 1; then
4185 BZ2_CFLAGS="-I${BZ2_DIR}/include"
4186 BZ2_LIBS="-L${BZ2_DIR}/lib ${MOZ_BZ2_LIBS}"
4189 dnl system PNG Support
4190 dnl ========================================================
4191 MOZ_ARG_WITH_STRING(system-png,
4192 [ --with-system-png[=PFX]
4193 Use system libpng [installed at prefix PFX]],
4196 _SAVE_CFLAGS=$CFLAGS
4197 _SAVE_LDFLAGS=$LDFLAGS
4199 CFLAGS="$ZLIB_CFLAGS $CFLAGS"
4200 LDFLAGS="$ZLIB_LIBS -lz $LDFLAGS"
4201 if test -n "${PNG_DIR}" -a "${PNG_DIR}" != "yes"; then
4202 CFLAGS="-I${PNG_DIR}/include $CFLAGS"
4203 LDFLAGS="-L${PNG_DIR}/lib $LDFLAGS"
4205 if test -z "$PNG_DIR" -o "$PNG_DIR" = no; then
4208 _SAVE_PNG_LIBS=$PNG_LIBS
4209 AC_CHECK_LIB(png, png_get_valid, [SYSTEM_PNG=1 PNG_LIBS="-lpng $PNG_LIBS"],
4210 AC_MSG_ERROR([--with-system-png requested but no working libpng found]),
4212 AC_CHECK_LIB(png, png_get_acTL, ,
4213 AC_MSG_ERROR([--with-system-png won't work because the system's libpng doesn't have APNG support]),
4216 if test "$SYSTEM_PNG" = 1; then
4217 LIBS="$PNG_LIBS $LIBS"
4218 AC_TRY_COMPILE([ #include <stdio.h>
4219 #include <sys/types.h>
4221 [ #if PNG_LIBPNG_VER < $MOZPNG
4222 #error "Insufficient libpng version ($MOZPNG required)."
4224 #ifndef PNG_UINT_31_MAX
4225 #error "Insufficient libpng version."
4228 AC_MSG_ERROR([--with-system-png requested but no working libpng found]))
4230 CFLAGS=$_SAVE_CFLAGS
4231 LDFLAGS=$_SAVE_LDFLAGS
4234 if test "${PNG_DIR}" -a -d "${PNG_DIR}" -a "$SYSTEM_PNG" = 1; then
4235 PNG_CFLAGS="-I${PNG_DIR}/include"
4236 PNG_LIBS="-L${PNG_DIR}/lib ${PNG_LIBS}"
4239 fi # SKIP_LIBRARY_CHECKS
4241 dnl system HunSpell Support
4242 dnl ========================================================
4243 MOZ_ARG_ENABLE_BOOL(system-hunspell,
4244 [ --enable-system-hunspell Use system hunspell (located with pkgconfig)],
4247 if test -n "$SYSTEM_HUNSPELL"; then
4248 PKG_CHECK_MODULES(MOZ_HUNSPELL, hunspell)
4251 AC_SUBST(SYSTEM_HUNSPELL)
4253 dnl ========================================================
4254 dnl Java SDK support
4255 dnl ========================================================
4257 MOZ_ARG_WITH_STRING(java-include-path,
4258 [ --with-java-include-path=dir Location of Java SDK headers],
4259 JAVA_INCLUDE_PATH=$withval)
4262 MOZ_ARG_WITH_STRING(java-bin-path,
4263 [ --with-java-bin-path=dir Location of Java binaries (java, javac, jar)],
4264 JAVA_BIN_PATH=$withval)
4266 dnl ========================================================
4267 dnl Use ARM userspace kernel helpers; tell NSPR to enable
4268 dnl their usage and use them in spidermonkey.
4269 dnl ========================================================
4270 MOZ_ARG_WITH_BOOL(arm-kuser,
4271 [ --with-arm-kuser Use kuser helpers (Linux/ARM only -- requires kernel 2.6.13 or later)],
4274 if test -n "$USE_ARM_KUSER"; then
4275 AC_DEFINE(USE_ARM_KUSER)
4278 dnl ========================================================
4282 dnl ========================================================
4284 MOZ_ARG_HEADER(Application)
4288 MOZ_ACTIVEX_SCRIPTING_SUPPORT=
4289 MOZ_BRANDING_DIRECTORY=
4290 MOZ_DBGRINFO_MODULES=
4292 MOZ_EXTENSIONS_ALL=" wallet p3p venkman inspector irc typeaheadfind gnomevfs sroaming datetime finger cview layout-debug tasks sql xforms schema-validation reporter"
4294 MOZ_IMG_DECODERS_DEFAULT="png gif jpeg bmp xbm icon"
4295 MOZ_IMG_ENCODERS_DEFAULT="png jpeg"
4305 MOZ_AUTH_EXTENSION=1
4306 MOZ_NO_ACTIVEX_SUPPORT=1
4307 MOZ_NO_INSPECTOR_APIS=
4308 MOZ_NO_XPCOM_OBSOLETE=
4315 MOZ_PLAINTEXT_EDITOR_ONLY=
4317 MOZ_PREF_EXTENSIONS=1
4318 MOZ_PROFILELOCKING=1
4319 MOZ_PROFILESHARING=1
4321 MOZ_PYTHON_EXTENSIONS="xpcom dom"
4323 MOZ_PYTHON_DEBUG_SUFFIX=
4324 MOZ_PYTHON_DLL_SUFFIX=
4325 MOZ_PYTHON_INCLUDES=
4329 MOZ_PYTHON_VER_DOTTED=
4335 MOZ_STATIC_MAIL_BUILD=
4340 MOZ_UNIVERSALCHARDET=1
4342 MOZ_USE_NATIVE_UCONV=
4344 MOZ_XPFE_COMPONENTS=1
4346 MOZ_XSLT_STANDALONE=
4354 NECKO_PROTOCOLS_DEFAULT="about data file ftp gopher http res viewsource"
4355 NECKO_SMALL_BUFFERS=
4357 XPC_IDISPATCH_SUPPORT=
4360 case "$target_os" in
4369 case "$target_os" in
4370 msvc*|mks*|cygwin*|mingw*)
4371 if test -z "$GNU_CC"; then
4372 XPC_IDISPATCH_SUPPORT=1
4373 MOZ_NO_ACTIVEX_SUPPORT=
4374 MOZ_ACTIVEX_SCRIPTING_SUPPORT=1
4379 MOZ_ARG_ENABLE_STRING(application,
4380 [ --enable-application=APP
4384 content/xslt (Standalone Transformiix XSLT)
4385 netwerk (Standalone Necko)
4386 tools/update-packaging (AUS-related packaging tools)
4387 standalone (use this for standalone
4388 xpcom/xpconnect or to manually drive a build)],
4389 [ MOZ_BUILD_APP=$enableval ] )
4391 MOZ_EMBEDDING_PROFILE=default
4392 MOZ_ARG_WITH_STRING(embedding-profile,
4393 [ --with-embedding-profile=default|basic|minimal
4394 see http://wiki.mozilla.org/Gecko:Small_Device_Support],
4395 [ MOZ_EMBEDDING_PROFILE=$withval ])
4397 case "$MOZ_EMBEDDING_PROFILE" in
4399 MOZ_EMBEDDING_LEVEL_DEFAULT=1
4400 MOZ_EMBEDDING_LEVEL_BASIC=1
4401 MOZ_EMBEDDING_LEVEL_MINIMAL=1
4402 AC_DEFINE(MOZ_EMBEDDING_LEVEL_DEFAULT)
4403 AC_DEFINE(MOZ_EMBEDDING_LEVEL_BASIC)
4404 AC_DEFINE(MOZ_EMBEDDING_LEVEL_MINIMAL)
4408 MOZ_EMBEDDING_LEVEL_DEFAULT=
4409 MOZ_EMBEDDING_LEVEL_BASIC=1
4410 MOZ_EMBEDDING_LEVEL_MINIMAL=1
4411 AC_DEFINE(MOZ_EMBEDDING_LEVEL_BASIC)
4412 AC_DEFINE(MOZ_EMBEDDING_LEVEL_MINIMAL)
4414 MOZ_ACTIVEX_SCRIPTING_SUPPORT=
4416 MOZ_ENABLE_POSTSCRIPT=
4417 MOZ_EXTENSIONS_DEFAULT=" spatialnavigation"
4418 MOZ_IMG_DECODERS_DEFAULT="png gif jpeg"
4419 MOZ_IMG_ENCODERS_DEFAULT=
4425 MOZ_NO_ACTIVEX_SUPPORT=1
4426 MOZ_NO_INSPECTOR_APIS=1
4427 MOZ_NO_XPCOM_OBSOLETE=1
4430 MOZ_PLAINTEXT_EDITOR_ONLY=1
4432 MOZ_PREF_EXTENSIONS=
4437 MOZ_UNIVERSALCHARDET=
4439 MOZ_USE_NATIVE_UCONV=
4441 MOZ_XPFE_COMPONENTS=
4446 NECKO_PROTOCOLS_DEFAULT="about data http file res"
4447 NECKO_SMALL_BUFFERS=1
4448 NS_DISABLE_LOGGING=1
4454 MOZ_EMBEDDING_LEVEL_DEFAULT=
4455 MOZ_EMBEDDING_LEVEL_BASIC=
4456 MOZ_EMBEDDING_LEVEL_MINIMAL=1
4457 AC_DEFINE(MOZ_EMBEDDING_LEVEL_MINIMAL)
4459 MOZ_ACTIVEX_SCRIPTING_SUPPORT=
4461 MOZ_ENABLE_POSTSCRIPT=
4462 MOZ_EXTENSIONS_DEFAULT=" spatialnavigation"
4463 MOZ_IMG_DECODERS_DEFAULT="png gif jpeg"
4464 MOZ_IMG_ENCODERS_DEFAULT=
4470 MOZ_NO_ACTIVEX_SUPPORT=1
4471 MOZ_NO_INSPECTOR_APIS=1
4472 MOZ_NO_XPCOM_OBSOLETE=1
4475 MOZ_PLAINTEXT_EDITOR_ONLY=1
4477 MOZ_PREF_EXTENSIONS=
4484 MOZ_UNIVERSALCHARDET=
4486 MOZ_USE_NATIVE_UCONV=1
4488 MOZ_XPFE_COMPONENTS=
4495 NECKO_PROTOCOLS_DEFAULT="about data http file res"
4496 NECKO_SMALL_BUFFERS=1
4497 NS_DISABLE_LOGGING=1
4503 AC_MSG_ERROR([Unrecognized value: --with-embedding-profile=$MOZ_EMBEDDING_PROFILE])
4507 AC_SUBST(MOZ_EMBEDDING_LEVEL_DEFAULT)
4508 AC_SUBST(MOZ_EMBEDDING_LEVEL_BASIC)
4509 AC_SUBST(MOZ_EMBEDDING_LEVEL_MINIMAL)
4511 MOZ_ARG_WITH_STRING(xulrunner-stub-name,
4512 [ --with-xulrunner-stub-name=appname Create the xulrunner stub with the given name],
4513 XULRUNNER_STUB_NAME=$withval)
4515 if test -z "$XULRUNNER_STUB_NAME"; then
4516 case "$target_os" in
4518 XULRUNNER_STUB_NAME=xulrunner
4521 XULRUNNER_STUB_NAME=xulrunner-stub
4524 AC_SUBST(XULRUNNER_STUB_NAME)
4526 if test -z "$MOZ_BUILD_APP"; then
4527 AC_MSG_ERROR([--enable-application=APP was not specified and is required.])
4529 # We have a valid application only if it has a build.mk file in its top
4531 if test ! -f "${srcdir}/${MOZ_BUILD_APP}/build.mk" ; then
4532 AC_MSG_ERROR([--enable-application value not recognized (${MOZ_BUILD_APP}/build.mk does not exist).])
4536 # Allow the application to influence configure with a confvars.sh script.
4538 AC_MSG_CHECKING([if app-specific confvars.sh exists])
4539 if test -f "${srcdir}/${MOZ_BUILD_APP}/confvars.sh" ; then
4540 AC_MSG_RESULT([${srcdir}/${MOZ_BUILD_APP}/confvars.sh])
4541 . "${srcdir}/${MOZ_BUILD_APP}/confvars.sh"
4546 # Now is a good time to test for logic errors, define mismatches, etc.
4547 case "$MOZ_BUILD_APP" in
4549 if test "$LIBXUL_SDK"; then
4550 AC_MSG_ERROR([Building XULRunner --with-libxul-sdk doesn't make sense; XULRunner provides the libxul SDK.])
4554 # Fix this case for folks who forget. Warn them.
4555 if test -n "$LIBXUL_SDK" -a -z "$MOZ_XUL_APP"; then
4556 AC_MSG_WARN([Setting MOZ_XUL_APP since LIBXUL_SDK was set. Add to confvars.sh!])
4562 # Special cases where we need to AC_DEFINE something. Also a holdover for apps
4563 # that haven't made a confvars.sh yet. Don't add new stuff here, use
4565 case "$MOZ_BUILD_APP" in
4567 AC_DEFINE(MOZ_PHOENIX)
4571 AC_DEFINE(MOZ_XULRUNNER)
4579 MOZ_APP_NAME=mozilla
4580 MOZ_APP_DISPLAYNAME=Mozilla
4581 MOZ_APP_VERSION=$MOZILLA_VERSION
4586 if test -z "$MOZ_XUL_APP"; then
4587 AC_MSG_ERROR([builds with unsetting MOZ_XUL_APP in confvars.sh are not supported.])
4590 AC_SUBST(MOZ_BUILD_APP)
4591 AC_SUBST(MOZ_XUL_APP)
4592 AC_SUBST(MOZ_PHOENIX)
4593 AC_SUBST(MOZ_XULRUNNER)
4595 AC_DEFINE_UNQUOTED(MOZ_BUILD_APP,$MOZ_BUILD_APP)
4597 if test "$MOZ_XUL_APP"; then
4599 AC_DEFINE(MOZ_XUL_APP)
4602 dnl ========================================================
4604 dnl = Toolkit Options
4606 dnl ========================================================
4607 MOZ_ARG_HEADER(Toolkit Options)
4609 dnl ========================================================
4610 dnl = Select the default toolkit
4611 dnl ========================================================
4612 MOZ_ARG_ENABLE_STRING(default-toolkit,
4613 [ --enable-default-toolkit=TK
4614 Select default toolkit
4615 Platform specific defaults:
4617 Mac OS X - cairo-cocoa
4618 Neutrino/QNX - photon
4620 Win32 - cairo-windows
4622 Gtk2 with DirectFB - cairo-gtk2-dfb
4625 [ _DEFAULT_TOOLKIT=$enableval ],
4626 [ _DEFAULT_TOOLKIT=$_PLATFORM_DEFAULT_TOOLKIT])
4628 if test "$_DEFAULT_TOOLKIT" = "photon" \
4629 -o "$_DEFAULT_TOOLKIT" = "cairo-windows" \
4630 -o "$_DEFAULT_TOOLKIT" = "cairo-gtk2" \
4631 -o "$_DEFAULT_TOOLKIT" = "cairo-gtk2-dfb" \
4632 -o "$_DEFAULT_TOOLKIT" = "cairo-gtk2-x11" \
4633 -o "$_DEFAULT_TOOLKIT" = "cairo-qt" \
4634 -o "$_DEFAULT_TOOLKIT" = "cairo-beos" \
4635 -o "$_DEFAULT_TOOLKIT" = "cairo-os2" \
4636 -o "$_DEFAULT_TOOLKIT" = "cairo-mac" \
4637 -o "$_DEFAULT_TOOLKIT" = "cairo-cocoa"
4639 dnl nglayout only supports building with one toolkit,
4640 dnl so ignore everything after the first comma (",").
4641 MOZ_WIDGET_TOOLKIT=`echo "$_DEFAULT_TOOLKIT" | sed -e "s/,.*$//"`
4643 AC_MSG_ERROR([You must specify a default toolkit (perhaps $_PLATFORM_DEFAULT_TOOLKIT).])
4646 AC_DEFINE_UNQUOTED(MOZ_DEFAULT_TOOLKIT,"$MOZ_WIDGET_TOOLKIT")
4648 dnl ========================================================
4649 dnl = Enable the toolkit as needed =
4650 dnl ========================================================
4652 case "$MOZ_WIDGET_TOOLKIT" in
4655 AC_DEFINE(MOZ_WIDGET_PHOTON)
4659 MOZ_WIDGET_TOOLKIT=windows
4660 MOZ_GFX_TOOLKIT=cairo
4663 cairo-gtk2|cairo-gtk2-x11)
4664 MOZ_WIDGET_TOOLKIT=gtk2
4665 MOZ_GFX_TOOLKIT=cairo
4667 MOZ_ENABLE_XREMOTE=1
4672 TK_CFLAGS='$(MOZ_GTK2_CFLAGS)'
4673 TK_LIBS='$(MOZ_GTK2_LIBS)'
4674 AC_DEFINE(MOZ_WIDGET_GTK2)
4678 MOZ_WIDGET_TOOLKIT=gtk2
4679 MOZ_GFX_TOOLKIT=cairo
4685 TK_CFLAGS='$(MOZ_GTK2_CFLAGS)'
4686 TK_LIBS='$(MOZ_GTK2_LIBS)'
4687 AC_DEFINE(MOZ_WIDGET_GTK2)
4688 if test "$no_x" != "yes"; then
4689 AC_MSG_WARN([Disabling X when DirectFB is specified.])
4695 MOZ_WIDGET_TOOLKIT=qt
4696 MOZ_GFX_TOOLKIT=cairo
4698 MOZ_ENABLE_XREMOTE=1
4704 TK_CFLAGS='$(MOZ_QT_CFLAGS)'
4705 TK_LIBS='$(MOZ_QT_LIBS)'
4706 AC_DEFINE(MOZ_WIDGET_QT)
4710 MOZ_WIDGET_TOOLKIT=beos
4711 MOZ_GFX_TOOLKIT=cairo
4712 TK_CFLAGS='$(MOZ_CAIRO_CFLAGS)'
4713 TK_LIBS='$(MOZ_CAIRO_LIBS)'
4717 MOZ_WIDGET_TOOLKIT=os2
4718 MOZ_GFX_TOOLKIT=cairo
4719 TK_CFLAGS='$(MOZ_CAIRO_CFLAGS)'
4720 TK_LIBS='$(MOZ_CAIRO_LIBS)'
4723 cairo-mac|cairo-cocoa)
4724 if test "$MOZ_WIDGET_TOOLKIT" = "cairo-cocoa"; then
4725 MOZ_WIDGET_TOOLKIT=cocoa
4726 AC_DEFINE(MOZ_WIDGET_COCOA)
4729 MOZ_WIDGET_TOOLKIT=mac
4731 MOZ_GFX_TOOLKIT=cairo
4732 MOZ_USER_DIR="Mozilla"
4733 AC_DEFINE(XP_MACOSX)
4734 AC_DEFINE(TARGET_CARBON)
4735 AC_DEFINE(TARGET_API_MAC_CARBON)
4736 TK_LIBS='-framework Carbon -framework CoreAudio -framework AudioToolbox -framework AudioUnit -framework AddressBook'
4737 TK_CFLAGS="-I${MACOS_SDK_DIR}/Developer/Headers/FlatCarbon"
4738 CFLAGS="$CFLAGS $TK_CFLAGS"
4739 CXXFLAGS="$CXXFLAGS $TK_CFLAGS"
4743 if test "$MOZ_ENABLE_XREMOTE"; then
4744 AC_DEFINE(MOZ_ENABLE_XREMOTE)
4747 if test "$COMPILE_ENVIRONMENT"; then
4748 if test "$MOZ_ENABLE_GTK2"; then
4749 if test "$MOZ_X11"; then
4750 GDK_PACKAGES=gdk-x11-2.0
4751 elif test "$MOZ_DFB"; then
4752 PKG_CHECK_MODULES(MOZ_DFB, directfb >= 1.1.0)
4753 GDK_PACKAGES=directfb
4756 PKG_CHECK_MODULES(MOZ_GTK2, gtk+-2.0 >= $GTK2_VERSION gtk+-unix-print-2.0 glib-2.0 gobject-2.0 $GDK_PACKAGES)
4759 fi # COMPILE_ENVIRONMENT
4761 AC_SUBST(MOZ_DEFAULT_TOOLKIT)
4763 dnl ========================================================
4764 dnl = startup-notification support module
4765 dnl ========================================================
4767 if test "$MOZ_ENABLE_GTK2"
4769 MOZ_ENABLE_STARTUP_NOTIFICATION=
4771 MOZ_ARG_ENABLE_BOOL(startup-notification,
4772 [ --enable-startup-notification Enable startup-notification support (default: disabled) ],
4773 MOZ_ENABLE_STARTUP_NOTIFICATION=force,
4774 MOZ_ENABLE_STARTUP_NOTIFICATION=)
4775 if test "$MOZ_ENABLE_STARTUP_NOTIFICATION"
4777 PKG_CHECK_MODULES(MOZ_STARTUP_NOTIFICATION,
4778 libstartup-notification-1.0 >= $STARTUP_NOTIFICATION_VERSION,
4779 [MOZ_ENABLE_STARTUP_NOTIFICATION=1], [
4780 if test "$MOZ_ENABLE_STARTUP_NOTIFICATION" = "force"
4782 AC_MSG_ERROR([* * * Could not find startup-notification >= $STARTUP_NOTIFICATION_VERSION])
4784 MOZ_ENABLE_STARTUP_NOTIFICATION=
4788 if test "$MOZ_ENABLE_STARTUP_NOTIFICATION"; then
4789 AC_DEFINE(MOZ_ENABLE_STARTUP_NOTIFICATION)
4792 TK_LIBS="$TK_LIBS $MOZ_STARTUP_NOTIFICATION_LIBS"
4794 AC_SUBST(MOZ_ENABLE_STARTUP_NOTIFICATION)
4795 AC_SUBST(MOZ_STARTUP_NOTIFICATION_CFLAGS)
4796 AC_SUBST(MOZ_STARTUP_NOTIFICATION_LIBS)
4798 dnl ========================================================
4800 dnl ========================================================
4801 if test "$MOZ_ENABLE_QT"
4803 PKG_CHECK_MODULES(MOZ_QT, QtGui QtNetwork QtUiTools QtCore)
4804 AC_SUBST(MOZ_QT_CFLAGS)
4805 AC_SUBST(MOZ_QT_LIBS)
4807 MOZ_ARG_WITH_STRING(qtdir,
4808 [ --with-qtdir=\$dir Specify Qt directory ],
4811 if test -z "$QTDIR"; then
4814 QTINCDIR="/include/qt"
4815 if test ! -d "$QTDIR$QTINCDIR"; then
4816 QTINCDIR="/include/X11/qt"
4818 if test ! -d "$QTDIR$QTINCDIR"; then
4822 if test -x "$QTDIR/bin/moc-qt4"; then
4823 HOST_MOC="$QTDIR/bin/moc-qt4"
4825 if test -x "$QTDIR/bin/moc"; then
4826 HOST_MOC="$QTDIR/bin/moc"
4828 AC_CHECK_PROGS(HOST_MOC, moc, "")
4831 if test -z "$HOST_MOC"; then
4832 AC_MSG_ERROR([no acceptable moc preprocessor found])
4837 AC_SUBST(GTK_CONFIG)
4841 AC_SUBST(MOZ_ENABLE_GTK2)
4842 AC_SUBST(MOZ_ENABLE_PHOTON)
4843 AC_SUBST(MOZ_ENABLE_COCOA)
4844 AC_SUBST(MOZ_ENABLE_QT)
4845 AC_SUBST(MOZ_ENABLE_XREMOTE)
4846 AC_SUBST(MOZ_GTK2_CFLAGS)
4847 AC_SUBST(MOZ_GTK2_LIBS)
4848 AC_SUBST(MOZ_QT_CFLAGS)
4849 AC_SUBST(MOZ_QT_LIBS)
4856 dnl ========================================================
4858 dnl = Components & Features
4860 dnl ========================================================
4861 MOZ_ARG_HEADER(Components and Features)
4863 dnl ========================================================
4865 dnl ========================================================
4866 MOZ_ARG_ENABLE_STRING(ui-locale,
4867 [ --enable-ui-locale=ab-CD
4868 Select the user interface locale (default: en-US)],
4869 MOZ_UI_LOCALE=$enableval )
4870 AC_SUBST(MOZ_UI_LOCALE)
4872 dnl ========================================================
4873 dnl = Trademarked Branding
4874 dnl ========================================================
4875 MOZ_ARG_ENABLE_BOOL(official-branding,
4876 [ --enable-official-branding Enable Official mozilla.org Branding
4877 Do not distribute builds with
4878 --enable-official-branding unless you have
4879 permission to use trademarks per
4880 http://www.mozilla.org/foundation/trademarks/ .],
4881 [case "$MOZ_BUILD_APP" in
4883 MOZ_BRANDING_DIRECTORY=other-licenses/branding/firefox
4884 MOZ_APP_DISPLAYNAME=Firefox
4888 AC_MSG_ERROR([Official branding is only available for Firefox.])
4892 MOZ_ARG_WITH_STRING(branding,
4893 [ --with-branding=dir Use branding from the specified directory.],
4894 MOZ_BRANDING_DIRECTORY=$withval)
4896 REAL_BRANDING_DIRECTORY="${MOZ_BRANDING_DIRECTORY}"
4897 if test -z "$REAL_BRANDING_DIRECTORY"; then
4898 REAL_BRANDING_DIRECTORY=${MOZ_BUILD_APP}/branding/nightly
4901 if test -f "$topsrcdir/$REAL_BRANDING_DIRECTORY/configure.sh"; then
4902 . "$topsrcdir/$REAL_BRANDING_DIRECTORY/configure.sh"
4905 AC_SUBST(MOZ_BRANDING_DIRECTORY)
4907 dnl ========================================================
4908 dnl = Distribution ID
4909 dnl ========================================================
4910 MOZ_ARG_WITH_STRING(distribution-id,
4911 [ --with-distribution-id=ID Set distribution-specific id (default=org.mozilla)],
4912 [ val=`echo $withval`
4913 MOZ_DISTRIBUTION_ID="$val"])
4915 if test -z "$MOZ_DISTRIBUTION_ID"; then
4916 MOZ_DISTRIBUTION_ID="org.mozilla"
4919 AC_DEFINE_UNQUOTED(MOZ_DISTRIBUTION_ID,"$MOZ_DISTRIBUTION_ID")
4920 AC_SUBST(MOZ_DISTRIBUTION_ID)
4923 dnl ========================================================
4924 dnl complex text support off by default
4925 dnl ========================================================
4927 MOZ_ARG_DISABLE_BOOL(pango,
4928 [ --disable-pango Disable usage of Pango ],
4933 dnl ========================================================
4935 dnl ========================================================
4936 if test "$MOZ_ENABLE_GTK2"
4940 PKG_CHECK_MODULES(_PANGOCHK, pango >= $PANGO_VERSION)
4942 if test "$MOZ_PANGO"
4944 PKG_CHECK_MODULES(MOZ_PANGO, pango >= $PANGO_VERSION pangoft2 >= $PANGO_VERSION)
4945 AC_SUBST(MOZ_PANGO_CFLAGS)
4946 AC_SUBST(MOZ_PANGO_LIBS)
4947 AC_DEFINE(MOZ_PANGO)
4949 PKG_CHECK_MODULES(MOZ_PANGO, pango >= $PANGO_VERSION pangoft2 >= $PANGO_VERSION)
4950 AC_SUBST(MOZ_PANGO_CFLAGS)
4951 AC_SUBST(MOZ_PANGO_LIBS)
4953 PKG_CHECK_MODULES(FT2, freetype2 > 6.1.0 fontconfig)
4954 AC_SUBST(FT2_CFLAGS)
4959 dnl ========================================================
4960 dnl = PostScript print module
4961 dnl ========================================================
4962 MOZ_ARG_DISABLE_BOOL(postscript,
4963 [ --disable-postscript Disable PostScript printing support ],
4964 MOZ_ENABLE_POSTSCRIPT=,
4965 MOZ_ENABLE_POSTSCRIPT=1 )
4967 dnl ========================================================
4968 dnl = GnomeVFS support module
4969 dnl ========================================================
4973 dnl build the gnomevfs extension by default only when the
4974 dnl GTK2 toolkit is in use.
4975 if test "$MOZ_ENABLE_GTK2"
4977 MOZ_ENABLE_GNOMEVFS=1
4979 MOZ_ENABLE_LIBGNOME=1
4982 MOZ_ARG_DISABLE_BOOL(gnomevfs,
4983 [ --disable-gnomevfs Disable GnomeVFS support ],
4984 MOZ_ENABLE_GNOMEVFS=,
4985 MOZ_ENABLE_GNOMEVFS=force)
4987 if test "$MOZ_ENABLE_GNOMEVFS"
4989 PKG_CHECK_MODULES(MOZ_GNOMEVFS, gnome-vfs-2.0 >= $GNOMEVFS_VERSION gnome-vfs-module-2.0 >= $GNOMEVFS_VERSION,[
4990 MOZ_GNOMEVFS_LIBS=`echo $MOZ_GNOMEVFS_LIBS | sed 's/-llinc\>//'`
4991 MOZ_ENABLE_GNOMEVFS=1
4993 if test "$MOZ_ENABLE_GNOMEVFS" = "force"
4995 AC_MSG_ERROR([* * * Could not find gnome-vfs-module-2.0 >= $GNOMEVFS_VERSION])
4997 MOZ_ENABLE_GNOMEVFS=
5001 AC_SUBST(MOZ_GNOMEVFS_CFLAGS)
5002 AC_SUBST(MOZ_GNOMEVFS_LIBS)
5004 if test "$MOZ_ENABLE_GCONF"
5006 PKG_CHECK_MODULES(MOZ_GCONF, gconf-2.0 >= $GCONF_VERSION,[
5007 MOZ_GCONF_LIBS=`echo $MOZ_GCONF_LIBS | sed 's/-llinc\>//'`
5014 if test "$MOZ_ENABLE_GCONF"; then
5015 AC_DEFINE(MOZ_ENABLE_GCONF)
5018 AC_SUBST(MOZ_ENABLE_GCONF)
5019 AC_SUBST(MOZ_GCONF_CFLAGS)
5020 AC_SUBST(MOZ_GCONF_LIBS)
5022 if test "$MOZ_ENABLE_LIBGNOME"
5024 PKG_CHECK_MODULES(MOZ_LIBGNOME, libgnome-2.0 >= $LIBGNOME_VERSION,[
5025 MOZ_LIBGNOME_LIBS=`echo $MOZ_LIBGNOME_LIBS | sed 's/-llinc\>//'`
5026 MOZ_ENABLE_LIBGNOME=1
5028 MOZ_ENABLE_LIBGNOME=
5032 AC_SUBST(MOZ_LIBGNOME_CFLAGS)
5033 AC_SUBST(MOZ_LIBGNOME_LIBS)
5035 # The GNOME component is built if gtk2, gconf, gnome-vfs, and libgnome
5036 # are all available.
5038 if test "$MOZ_ENABLE_GTK2" -a "$MOZ_ENABLE_GCONF" -a \
5039 "$MOZ_ENABLE_GNOMEVFS" -a "$MOZ_ENABLE_LIBGNOME"; then
5040 MOZ_ENABLE_GNOME_COMPONENT=1
5042 MOZ_ENABLE_GNOME_COMPONENT=
5045 AC_SUBST(MOZ_ENABLE_GNOME_COMPONENT)
5048 dnl ========================================================
5049 dnl = libgnomeui support module
5050 dnl ========================================================
5052 if test "$MOZ_ENABLE_GTK2"
5054 MOZ_ENABLE_GNOMEUI=1
5056 MOZ_ARG_DISABLE_BOOL(gnomeui,
5057 [ --disable-gnomeui Disable libgnomeui support (default: auto, optional at runtime) ],
5058 MOZ_ENABLE_GNOMEUI=,
5059 MOZ_ENABLE_GNOMEUI=force)
5061 if test "$MOZ_ENABLE_GNOMEUI"
5063 PKG_CHECK_MODULES(MOZ_GNOMEUI, libgnomeui-2.0 >= $GNOMEUI_VERSION,
5065 MOZ_GNOMEUI_LIBS=`echo $MOZ_GNOMEUI_LIBS | sed 's/-llinc\>//'`
5066 MOZ_ENABLE_GNOMEUI=1
5068 if test "$MOZ_ENABLE_GNOMEUI" = "force"
5070 AC_MSG_ERROR([* * * Could not find libgnomeui-2.0 >= $GNOMEUI_VERSION])
5076 if test "$MOZ_ENABLE_GNOMEUI"; then
5077 AC_DEFINE(MOZ_ENABLE_GNOMEUI)
5080 AC_SUBST(MOZ_ENABLE_GNOMEUI)
5081 AC_SUBST(MOZ_GNOMEUI_CFLAGS)
5082 AC_SUBST(MOZ_GNOMEUI_LIBS)
5084 dnl ========================================================
5086 dnl ========================================================
5088 if test "$MOZ_ENABLE_GTK2" || test "$MOZ_ENABLE_QT"
5092 MOZ_ARG_DISABLE_BOOL(dbus,
5093 [ --disable-dbus Disable dbus support ],
5097 if test "$MOZ_ENABLE_DBUS"
5099 PKG_CHECK_MODULES(MOZ_DBUS_GLIB, dbus-glib-1 >= $DBUS_VERSION)
5100 AC_DEFINE(MOZ_ENABLE_DBUS)
5103 AC_SUBST(MOZ_ENABLE_DBUS)
5104 AC_SUBST(MOZ_DBUS_GLIB_CFLAGS)
5105 AC_SUBST(MOZ_DBUS_GLIB_LIBS)
5107 dnl ========================================================
5108 dnl = Build Personal Security Manager
5109 dnl ========================================================
5110 MOZ_ARG_DISABLE_BOOL(crypto,
5111 [ --disable-crypto Disable crypto support (Personal Security Manager)],
5115 dnl ========================================================
5116 dnl = JS Debugger XPCOM component (js/jsd)
5117 dnl ========================================================
5118 MOZ_ARG_DISABLE_BOOL(jsd,
5119 [ --disable-jsd Disable JavaScript debug library],
5124 dnl ========================================================
5125 dnl = Disable plugin support
5126 dnl ========================================================
5127 MOZ_ARG_DISABLE_BOOL(plugins,
5128 [ --disable-plugins Disable plugins support],
5132 dnl ========================================================
5133 dnl = Open JVM Interface (OJI) support
5134 dnl ========================================================
5135 MOZ_ARG_DISABLE_BOOL(oji,
5136 [ --disable-oji Disable Open JVM Integration support],
5139 if test -n "$MOZ_OJI"; then
5143 dnl bi-directional support always on
5147 dnl ========================================================
5148 dnl view source support on by default
5149 dnl ========================================================
5150 MOZ_ARG_DISABLE_BOOL(view-source,
5151 [ --disable-view-source Disable view source support],
5154 if test "$MOZ_VIEW_SOURCE"; then
5155 AC_DEFINE(MOZ_VIEW_SOURCE)
5159 dnl ========================================================
5160 dnl accessibility support on by default on all platforms
5162 dnl ========================================================
5163 MOZ_ARG_DISABLE_BOOL(accessibility,
5164 [ --disable-accessibility Disable accessibility support (off by default on OS X)],
5167 if test "$ACCESSIBILITY"; then
5168 AC_DEFINE(ACCESSIBILITY)
5171 if test -n "$ACCESSIBILITY" -a "$COMPILE_ENVIRONMENT" = "1"; then
5173 *-mingw*|*-cygwin*|*-msvc*|*-mks*)
5174 if test "$ac_cv_header_atlbase_h" = "no"; then
5175 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.])
5177 if test "$ac_cv_header_oleacc_idl" = "no"; then
5178 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.])
5184 dnl ========================================================
5185 dnl xpfe/components on by default
5186 dnl ========================================================
5187 MOZ_ARG_DISABLE_BOOL(xpfe-components,
5188 [ --disable-xpfe-components
5189 Disable xpfe components],
5190 MOZ_XPFE_COMPONENTS=,
5191 MOZ_XPFE_COMPONENTS=1 )
5193 dnl ========================================================
5194 dnl xpinstall support on by default
5195 dnl ========================================================
5196 MOZ_ARG_DISABLE_BOOL(xpinstall,
5197 [ --disable-xpinstall Disable xpinstall support],
5200 if test "$MOZ_XPINSTALL"; then
5201 AC_DEFINE(MOZ_XPINSTALL)
5204 dnl ========================================================
5205 dnl xpcom js loader support on by default
5206 dnl ========================================================
5207 MOZ_ARG_DISABLE_BOOL(jsloader,
5208 [ --disable-jsloader Disable xpcom js loader support],
5211 if test "$MOZ_JSLOADER"; then
5212 AC_DEFINE(MOZ_JSLOADER)
5215 dnl ========================================================
5216 dnl Disable printing
5217 dnl ========================================================
5218 MOZ_ARG_DISABLE_BOOL(printing,
5219 [ --disable-printing Disable printing support],
5223 if test "$NS_PRINTING"; then
5224 AC_DEFINE(NS_PRINTING)
5225 AC_DEFINE(NS_PRINT_PREVIEW)
5228 dnl ========================================================
5229 dnl use native unicode converters
5230 dnl ========================================================
5231 MOZ_ARG_ENABLE_BOOL(native-uconv,
5232 [ --enable-native-uconv Enable iconv support],
5233 MOZ_USE_NATIVE_UCONV=1,
5234 MOZ_USE_NATIVE_UCONV= )
5235 if test "$MOZ_USE_NATIVE_UCONV"; then
5236 AC_DEFINE(MOZ_USE_NATIVE_UCONV)
5238 if test "$OS_ARCH" != "WINCE" -a "$OS_ARCH" != "WINNT" -a "$MOZ_USE_NATIVE_UCONV" -a "$ac_cv_func_iconv" != "yes"; then
5239 AC_MSG_ERROR([iconv() not found. Cannot enable native uconv support.])
5243 dnl ========================================================
5244 dnl Libeditor can be build as plaintext-only,
5245 dnl or as a full html and text editing component.
5246 dnl We build both by default.
5247 dnl ========================================================
5248 MOZ_ARG_ENABLE_BOOL(plaintext-editor-only,
5249 [ --enable-plaintext-editor-only
5250 Allow only plaintext editing],
5251 MOZ_PLAINTEXT_EDITOR_ONLY=1,
5252 MOZ_PLAINTEXT_EDITOR_ONLY= )
5253 dnl Note the #define is MOZILLA, not MOZ, for compat with the Mac build.
5254 AC_SUBST(MOZ_PLAINTEXT_EDITOR_ONLY)
5256 dnl ========================================================
5257 dnl = Drop XPCOM Obsolete library
5258 dnl ========================================================
5259 MOZ_ARG_DISABLE_BOOL(xpcom-obsolete,
5260 [ --disable-xpcom-obsolete Disable XPCOM Obsolete Library],
5261 MOZ_NO_XPCOM_OBSOLETE=1,
5262 MOZ_NO_XPCOM_OBSOLETE=)
5264 if test -n "$MOZ_NO_XPCOM_OBSOLETE"; then
5265 AC_DEFINE(MOZ_NO_XPCOM_OBSOLETE)
5268 dnl ========================================================
5269 dnl = Disable Fast Load
5270 dnl ========================================================
5271 MOZ_ARG_DISABLE_BOOL(xpcom-fastload,
5272 [ --disable-xpcom-fastload Disable XPCOM fastload support],
5276 AC_SUBST(MOZ_NO_FAST_LOAD)
5278 if test -n "$MOZ_NO_FAST_LOAD"; then
5279 AC_DEFINE(MOZ_NO_FAST_LOAD)
5282 dnl ========================================================
5283 dnl = Enable Ogg Codecs
5284 dnl ========================================================
5285 MOZ_ARG_DISABLE_BOOL(ogg,
5286 [ --disable-ogg Disable Ogg Codec support],
5292 if test -n "$MOZ_OGG"; then
5299 if test -n "$MOZ_MEDIA"; then
5300 AC_DEFINE(MOZ_MEDIA)
5303 dnl If using Ogg with Linux, ensure that the alsa library is available
5304 if test -n "$MOZ_OGG"; then
5305 case "$target_os" in
5307 AC_CHECK_LIB(asound, snd_pcm_open,,AC_MSG_ERROR([Ogg support on Linux requires the alsa library]))
5312 dnl ========================================================
5313 dnl Permissions System
5314 dnl ========================================================
5315 MOZ_ARG_DISABLE_BOOL(permissions,
5316 [ --disable-permissions Disable permissions (popup and cookie blocking)],
5321 dnl ========================================================
5323 dnl ========================================================
5324 MOZ_ARG_DISABLE_BOOL(negotiateauth,
5325 [ --disable-negotiateauth Disable GSS-API negotiation ],
5326 MOZ_AUTH_EXTENSION=,
5327 MOZ_AUTH_EXTENSION=1 )
5329 dnl ========================================================
5331 dnl ========================================================
5332 MOZ_ARG_DISABLE_BOOL(xtf,
5333 [ --disable-xtf Disable XTF (pluggable xml tags) support],
5336 if test "$MOZ_XTF"; then
5340 dnl ========================================================
5342 dnl ========================================================
5343 MOZ_ARG_DISABLE_BOOL(inspector-apis,
5344 [ --disable-inspector-apis Disable the DOM inspection APIs ],
5345 MOZ_NO_INSPECTOR_APIS=1,
5346 MOZ_NO_INSPECTOR_APIS= )
5348 dnl ========================================================
5349 dnl Pref extensions (autoconfig and system-pref)
5350 dnl ========================================================
5351 MOZ_ARG_DISABLE_BOOL(pref-extensions,
5352 [ --disable-pref-extensions
5353 Disable pref extensions such as autoconfig and
5355 MOZ_PREF_EXTENSIONS=,
5356 MOZ_PREF_EXTENSIONS=1 )
5358 dnl ========================================================
5359 dnl = Universalchardet
5360 dnl ========================================================
5361 MOZ_ARG_DISABLE_BOOL(universalchardet,
5362 [ --disable-universalchardet
5363 Disable universal encoding detection],
5364 MOZ_UNIVERSALCHARDET=,
5365 MOZ_UNIVERSALCHARDET=1 )
5367 dnl ========================================================
5369 dnl ========================================================
5370 MOZ_ARG_ENABLE_BOOL(javaxpcom,
5371 [ --enable-javaxpcom
5372 Enable Java-XPCOM bridge],
5376 if test -n "${MOZ_JAVAXPCOM}"; then
5379 if test -n "$JAVA_HOME"; then
5380 JAVA_HOME=`cygpath -u \`cygpath -m -s "$JAVA_HOME"\``
5384 if test -n "$JAVA_HOME"; then
5385 JAVA_HOME=`cd "$JAVA_HOME" && pwd`
5390 if test -n "${JAVA_INCLUDE_PATH}"; then
5391 dnl Make sure jni.h exists in the given include path.
5392 if test ! -f "$JAVA_INCLUDE_PATH/jni.h"; then
5393 AC_MSG_ERROR([jni.h was not found in given include path $JAVA_INCLUDE_PATH.])
5396 case "$target_os" in
5398 dnl Default to java system location
5399 JAVA_INCLUDE_PATH=/System/Library/Frameworks/JavaVM.framework/Headers
5403 JAVA_INCLUDE_PATH="$JAVA_HOME/include"
5406 if test ! -f "$JAVA_INCLUDE_PATH/jni.h"; then
5407 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.])
5411 if test -n "${JAVA_BIN_PATH}"; then
5412 dnl Look for javac and jar in the specified path.
5413 JAVA_PATH="$JAVA_BIN_PATH"
5415 dnl No path specified, so look for javac and jar in $JAVA_HOME & $PATH.
5416 JAVA_PATH="$JAVA_HOME/bin:$PATH"
5419 AC_PATH_PROG(JAVA, java, :, [$JAVA_PATH])
5420 AC_PATH_PROG(JAVAC, javac, :, [$JAVA_PATH])
5421 AC_PATH_PROG(JAR, jar, :, [$JAVA_PATH])
5422 if test -z "$JAVA" || test "$JAVA" = ":" || test -z "$JAVAC" || test "$JAVAC" = ":" || test -z "$JAR" || test "$JAR" = ":"; then
5423 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.])
5427 dnl ========================================================
5428 dnl = Breakpad crash reporting (on by default on supported platforms)
5429 dnl ========================================================
5431 if (test "$OS_ARCH" = "WINNT" -a -z "$GNU_CC" \
5432 || test "$OS_ARCH" = "Darwin" \
5433 || test "$OS_ARCH" = "Linux" -a "$CPU_ARCH" = "x86" \
5434 || test "$OS_ARCH" = "SunOS") \
5435 && test -z "$HAVE_64BIT_OS"; then
5439 MOZ_ARG_DISABLE_BOOL(crashreporter,
5440 [ --disable-crashreporter Disable breakpad crash reporting],
5442 MOZ_CRASHREPORTER=1)
5444 if test -n "$MOZ_CRASHREPORTER"; then
5445 AC_DEFINE(MOZ_CRASHREPORTER)
5447 if (test "$OS_ARCH" = "Linux" || test "$OS_ARCH" = "SunOS") && \
5448 test -z "$SKIP_LIBRARY_CHECKS"; then
5449 PKG_CHECK_MODULES(MOZ_GTHREAD, gthread-2.0)
5450 AC_SUBST(MOZ_GTHREAD_CFLAGS)
5451 AC_SUBST(MOZ_GTHREAD_LIBS)
5453 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.])])
5457 MOZ_ARG_WITH_STRING(crashreporter-enable-percent,
5458 [ --with-crashreporter-enable-percent=NN Enable sending crash reports by default on NN% of users. (default=100)],
5459 [ val=`echo $withval | sed 's/[^0-9]//g'`
5460 MOZ_CRASHREPORTER_ENABLE_PERCENT="$val"])
5462 if test -z "$MOZ_CRASHREPORTER_ENABLE_PERCENT"; then
5463 MOZ_CRASHREPORTER_ENABLE_PERCENT=100
5465 AC_DEFINE_UNQUOTED(MOZ_CRASHREPORTER_ENABLE_PERCENT, $MOZ_CRASHREPORTER_ENABLE_PERCENT)
5467 dnl ========================================================
5468 dnl = Enable compilation of specific extension modules
5469 dnl ========================================================
5471 MOZ_ARG_ENABLE_STRING(extensions,
5472 [ --enable-extensions Enable extensions],
5473 [ for option in `echo $enableval | sed 's/,/ /g'`; do
5474 if test "$option" = "yes" || test "$option" = "all"; then
5475 MOZ_EXTENSIONS="$MOZ_EXTENSIONS $MOZ_EXTENSIONS_ALL"
5476 elif test "$option" = "no" || test "$option" = "none"; then
5478 elif test "$option" = "default"; then
5479 MOZ_EXTENSIONS="$MOZ_EXTENSIONS $MOZ_EXTENSIONS_DEFAULT"
5480 elif test `echo "$option" | grep -c \^-` != 0; then
5481 option=`echo $option | sed 's/^-//'`
5482 MOZ_EXTENSIONS=`echo "$MOZ_EXTENSIONS" | sed "s/ ${option}//"`
5484 MOZ_EXTENSIONS="$MOZ_EXTENSIONS $option"
5487 MOZ_EXTENSIONS="$MOZ_EXTENSIONS_DEFAULT")
5489 if test -z "$MOZ_ENABLE_GNOMEVFS" && test `echo "$MOZ_EXTENSIONS" | grep -c gnomevfs` -ne 0; then
5490 # Suppress warning on non-X11 platforms
5491 if test -n "$MOZ_X11"; then
5492 AC_MSG_WARN([Cannot build gnomevfs without required libraries. Removing gnomevfs from MOZ_EXTENSIONS.])
5494 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|gnomevfs||'`
5497 if test -z "$MOZ_JSDEBUGGER" && test `echo "$MOZ_EXTENSIONS" | grep -c venkman` -ne 0; then
5498 AC_MSG_WARN([Cannot build venkman without JavaScript debug library. Removing venkman from MOZ_EXTENSIONS.])
5499 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|venkman||'`
5502 dnl This might be temporary: build tridentprofile only on Windows
5503 if test `echo "$MOZ_EXTENSIONS" | grep -c tridentprofile` -ne 0 && test "$OS_ARCH" != "WINNT"; then
5504 AC_MSG_WARN([tridentprofile extension works only on Windows at this time. Removing tridentprofile from MOZ_EXTENSIONS.])
5505 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|tridentprofile||'`
5508 dnl cookie must be built before tridentprofile. put it at list's end.
5509 if test `echo "$MOZ_EXTENSIONS" | grep -c tridentprofile` -ne 0; then
5510 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|tridentprofile||'`
5511 MOZ_EXTENSIONS="$MOZ_EXTENSIONS tridentprofile"
5514 dnl xforms requires xtf and schema-validation
5515 if test -z "$MOZ_XTF" && test `echo "$MOZ_EXTENSIONS" | grep -c xforms` -ne 0; then
5516 AC_MSG_WARN([Cannot build XForms without XTF support. Removing XForms from MOZ_EXTENSIONS.])
5517 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|xforms||g'`
5519 if test `echo "$MOZ_EXTENSIONS" | grep -c xforms` -ne 0 && test `echo "$MOZ_EXTENSIONS" | grep -c schema-validation` -eq 0; then
5520 AC_MSG_WARN([Cannot build XForms without schema validation. Removing XForms from MOZ_EXTENSIONS.])
5521 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|xforms||g'`
5524 if test `echo "$MOZ_EXTENSIONS" | grep -c auth` -ne 0; then
5525 AC_MSG_WARN([auth is no longer an extension, use --disable-negotiateauth to disable.])
5526 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|auth||g'`
5529 if test `echo "$MOZ_EXTENSIONS" | grep -c 'cookie\|permissions'` -ne 0; then
5530 AC_MSG_WARN([cookie and permissions are no longer extensions, use --disable-permissions to disable.])
5531 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|cookie||g; s|permissions||g'`
5534 if test `echo "$MOZ_EXTENSIONS" | grep -c pref` -ne 0; then
5535 AC_MSG_WARN([pref is no longer an extension, use --disable-pref-extensions to disable.])
5536 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|pref||g'`
5539 if test `echo "$MOZ_EXTENSIONS" | grep -c universalchardet` -ne 0; then
5540 AC_MSG_WARN([universalchardet is no longer an extension, use --disable-universalchardet to disable.])
5541 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|universalchardet||g'`
5544 if test `echo "$MOZ_EXTENSIONS" | grep -c java` -ne 0; then
5545 AC_MSG_WARN([java is no longer an extension, use --enable-javaxpcom to enable.])
5546 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|java||g'`
5549 if test `echo "$MOZ_EXTENSIONS" | grep -c spellcheck` -ne 0; then
5550 AC_MSG_WARN([spellcheck is no longer an extension.])
5551 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|spellcheck||g'`
5554 if test -n "$MOZ_NO_XPCOM_OBSOLETE" && test `echo "$MOZ_EXTENSIONS" | grep -c sroaming` -ne 0; then
5555 AC_MSG_WARN([Cannot currently build sroaming without xpcom obsolete -- bug 249343. Removing sroaming from MOZ_EXTENSIONS.])
5556 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's|sroaming||'`
5560 MOZ_EXTENSIONS=`${PERL} ${srcdir}/build/unix/uniq.pl ${MOZ_EXTENSIONS}`
5562 dnl Ensure every extension exists, to avoid mostly-inscrutable error messages
5563 dnl when trying to build a non-existent extension.
5564 for extension in $MOZ_EXTENSIONS; do
5565 if test ! -d "${srcdir}/extensions/${extension}"; then
5566 AC_MSG_ERROR([Unrecognized extension provided to --enable-extensions: ${extension}.])
5571 dnl ========================================================
5573 dnl ========================================================
5574 case "$MOZ_WIDGET_TOOLKIT" in
5575 beos|windows|os2|mac|cocoa)
5578 if test -z "$MOZ_ENABLE_GTK2" && test -z "$MOZ_ENABLE_QT"; then
5579 MOZ_IMG_DECODERS_DEFAULT=`echo $MOZ_IMG_DECODERS_DEFAULT | sed -e 's|icon||'`
5584 MOZ_ARG_ENABLE_STRING(image-decoders,
5585 [ --enable-image-decoders[={mod1,mod2,default,all,none}]
5586 Enable specific image decoders],
5587 [ for option in `echo $enableval | sed 's/,/ /g'`; do
5588 if test "$option" = "yes" || test "$option" = "all"; then
5589 MOZ_IMG_DECODERS="$MOZ_IMG_DECODERS $MOZ_IMG_DECODERS_DEFAULT"
5590 elif test "$option" = "no" || test "$option" = "none"; then
5592 elif test "$option" = "default"; then
5593 MOZ_IMG_DECODERS="$MOZ_IMG_DECODERS $MOZ_IMG_DECODERS_DEFAULT"
5594 elif test `echo "$option" | grep -c \^-` != 0; then
5595 option=`echo $option | sed 's/^-//'`
5596 MOZ_IMG_DECODERS=`echo "$MOZ_IMG_DECODERS" | sed "s/ ${option}//"`
5598 MOZ_IMG_DECODERS="$MOZ_IMG_DECODERS $option"
5601 MOZ_IMG_DECODERS="$MOZ_IMG_DECODERS_DEFAULT")
5603 dnl Dupes are removed in the encoder section because it will also add decoders
5605 dnl ========================================================
5607 dnl ========================================================
5608 MOZ_ARG_ENABLE_STRING(image-encoders,
5609 [ --enable-image-encoders[={mod1,mod2,default,all,none}]
5610 Enable specific image encoders],
5611 [ for option in `echo $enableval | sed 's/,/ /g'`; do
5612 if test "$option" = "yes" || test "$option" = "all"; then
5613 addencoder="$MOZ_IMG_ENCODERS_DEFAULT"
5614 elif test "$option" = "no" || test "$option" = "none"; then
5617 elif test "$option" = "default"; then
5618 addencoder="$MOZ_IMG_ENCODERS_DEFAULT"
5619 elif test `echo "$option" | grep -c \^-` != 0; then
5620 option=`echo $option | sed 's/^-//'`
5621 addencoder=`echo "$MOZ_IMG_ENCODERS" | sed "s/ ${option}//"`
5623 addencoder="$option"
5625 MOZ_IMG_ENCODERS="$MOZ_IMG_ENCODERS $addencoder"
5627 MOZ_IMG_ENCODERS="$MOZ_IMG_ENCODERS_DEFAULT")
5630 MOZ_IMG_DECODERS=`${PERL} ${srcdir}/build/unix/uniq.pl ${MOZ_IMG_DECODERS}`
5631 MOZ_IMG_ENCODERS=`${PERL} ${srcdir}/build/unix/uniq.pl ${MOZ_IMG_ENCODERS}`
5633 dnl ========================================================
5634 dnl MathML on by default
5635 dnl ========================================================
5636 MOZ_ARG_DISABLE_BOOL(mathml,
5637 [ --disable-mathml Disable MathML support],
5640 if test "$MOZ_MATHML"; then
5641 AC_DEFINE(MOZ_MATHML)
5644 dnl ========================================================
5646 dnl ========================================================
5647 MOZ_ARG_DISABLE_BOOL(canvas,
5648 [ --disable-canvas Disable html:canvas feature],
5650 MOZ_ENABLE_CANVAS=1 )
5651 if test -n "$MOZ_ENABLE_CANVAS"; then
5652 AC_DEFINE(MOZ_ENABLE_CANVAS)
5654 AC_SUBST(MOZ_ENABLE_CANVAS)
5656 dnl ========================================================
5658 dnl ========================================================
5659 MOZ_ARG_DISABLE_BOOL(svg,
5660 [ --disable-svg Disable SVG support],
5663 if test -n "$MOZ_SVG"; then
5667 dnl ========================================================
5669 dnl ========================================================
5670 case "$target_os" in
5671 aix*|solaris*|linux*|msvc*|mks*|cygwin*|mingw*|os2*|wince*)
5676 MOZ_ARG_DISABLE_BOOL(installer,
5677 [ --disable-installer Disable building of installer],
5680 if test -n "$MOZ_INSTALLER" -a -n "$MOZ_XUL_APP" -a "$OS_ARCH" = "WINNT"; then
5681 # Disable installer for Windows builds that use the new toolkit if NSIS
5682 # isn't in the path.
5683 AC_PATH_PROGS(MAKENSIS, makensis)
5684 if test -z "$MAKENSIS" || test "$MAKENSIS" = ":"; then
5685 AC_MSG_ERROR([To build the installer makensis is required in your path. To build without the installer reconfigure using --disable-installer.])
5687 # The Windows build for NSIS requires the iconv command line utility to
5688 # convert the charset of the locale files.
5689 AC_PATH_PROGS(HOST_ICONV, $HOST_ICONV "iconv", "")
5690 if test -z "$HOST_ICONV"; then
5691 AC_MSG_ERROR([To build the installer iconv is required in your path. To build without the installer reconfigure using --disable-installer.])
5695 # Automatically disable installer if xpinstall isn't built
5696 if test -z "$MOZ_XPINSTALL"; then
5699 AC_SUBST(MOZ_INSTALLER)
5701 AC_MSG_CHECKING([for tar archiver])
5702 AC_CHECK_PROGS(TAR, gnutar gtar tar, "")
5703 if test -z "$TAR"; then
5704 AC_MSG_ERROR([no tar archiver found in \$PATH])
5706 AC_MSG_RESULT([$TAR])
5709 AC_MSG_CHECKING([for wget])
5710 AC_CHECK_PROGS(WGET, wget, "")
5711 AC_MSG_RESULT([$WGET])
5714 dnl ========================================================
5716 dnl ========================================================
5718 MOZ_ARG_DISABLE_BOOL(updater,
5719 [ --disable-updater Disable building of updater],
5722 # The Windows build requires the iconv command line utility
5723 # in order to build the updater.
5724 case "$target_os" in
5725 msvc*|mks*|cygwin*|mingw*|wince*)
5726 if test -n "$MOZ_UPDATER"; then
5727 AC_MSG_CHECKING([for iconv])
5728 AC_CHECK_PROGS(HOST_ICONV, $HOST_ICONV "iconv", "")
5729 if test -z "$HOST_ICONV"; then
5730 AC_MSG_ERROR([iconv not found in \$PATH])
5735 AC_SUBST(MOZ_UPDATER)
5737 # app update channel is 'default' when not supplied.
5738 MOZ_ARG_ENABLE_STRING([update-channel],
5739 [ --enable-update-channel=CHANNEL
5740 Select application update channel (default=default)],
5741 MOZ_UPDATE_CHANNEL=`echo $enableval | tr A-Z a-z`)
5743 if test -z "$MOZ_UPDATE_CHANNEL"; then
5744 MOZ_UPDATE_CHANNEL=default
5746 AC_DEFINE_UNQUOTED(MOZ_UPDATE_CHANNEL, $MOZ_UPDATE_CHANNEL)
5748 # tools/update-packaging is not checked out by default.
5749 MOZ_ARG_ENABLE_BOOL(update-packaging,
5750 [ --enable-update-packaging
5751 Enable tools/update-packaging],
5752 MOZ_UPDATE_PACKAGING=1,
5753 MOZ_UPDATE_PACKAGING= )
5754 AC_SUBST(MOZ_UPDATE_PACKAGING)
5756 dnl ========================================================
5758 dnl ========================================================
5760 MOZ_ARG_DISABLE_BOOL(xpconnect-idispatch,
5761 [ --disable-xpconnect-idispatch
5762 Disable building of xpconnect support for IDispatch
5764 XPC_IDISPATCH_SUPPORT=,
5765 XPC_IDISPATCH_SUPPORT=1)
5766 AC_SUBST(XPC_IDISPATCH_SUPPORT)
5768 MOZ_ARG_DISABLE_BOOL(activex,
5769 [ --disable-activex Disable building of ActiveX control (win32 only)],
5770 MOZ_NO_ACTIVEX_SUPPORT=1,
5771 MOZ_NO_ACTIVEX_SUPPORT= )
5772 AC_SUBST(MOZ_NO_ACTIVEX_SUPPORT)
5774 MOZ_ARG_DISABLE_BOOL(activex-scripting,
5775 [ --disable-activex-scripting
5776 Disable building of ActiveX scripting support (win32)],
5777 MOZ_ACTIVEX_SCRIPTING_SUPPORT=,
5778 MOZ_ACTIVEX_SCRIPTING_SUPPORT=1)
5779 AC_SUBST(MOZ_ACTIVEX_SCRIPTING_SUPPORT)
5781 if test -n "$MOZ_NO_ACTIVEX_SUPPORT" -a -n "$MOZ_ACTIVEX_SCRIPTING_SUPPORT";
5783 AC_MSG_ERROR([Cannot enable ActiveX scripting support when ActiveX support is disabled.])
5786 if test "$COMPILE_ENVIRONMENT" = "1"; then
5787 if test -n "$XPC_IDISPATCH_SUPPORT" -o -n "$MOZ_ACTIVEX_SCRIPTING_SUPPORT" -o -z "$MOZ_NO_ACTIVEX_SUPPORT"; then
5789 *-mingw*|*-cygwin*|*-msvc*|*-mks*)
5790 if test "$ac_cv_header_atlbase_h" = "no"; then
5791 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.])
5798 dnl ========================================================
5800 dnl ========================================================
5801 MOZ_ARG_ENABLE_BOOL(leaky,
5802 [ --enable-leaky Build leaky memory tool],
5807 dnl ========================================================
5809 dnl ========================================================
5810 MOZ_ARG_ENABLE_BOOL(xpctools,
5811 [ --enable-xpctools Build JS profiling tool],
5816 dnl ========================================================
5817 dnl build the tests by default
5818 dnl ========================================================
5819 MOZ_ARG_DISABLE_BOOL(tests,
5820 [ --disable-tests Do not build test libraries & programs],
5824 dnl ========================================================
5825 dnl parental controls (for Windows Vista)
5826 dnl ========================================================
5827 MOZ_ARG_DISABLE_BOOL(parental-controls,
5828 [ --disable-parental-controls
5829 Do not build parental controls],
5830 MOZ_DISABLE_PARENTAL_CONTROLS=1,
5831 MOZ_DISABLE_PARENTAL_CONTROLS=)
5832 if test -n "$MOZ_DISABLE_PARENTAL_CONTROLS"; then
5833 AC_DEFINE(MOZ_DISABLE_PARENTAL_CONTROLS)
5836 dnl ========================================================
5837 dnl Vista SDK specific api
5838 dnl ========================================================
5839 MOZ_ARG_DISABLE_BOOL(vista-sdk-requirements,
5840 [ --disable-vista-sdk-requirements
5841 Do not build Vista SDK specific code],
5842 MOZ_DISABLE_VISTA_SDK_REQUIREMENTS=1,
5843 MOZ_DISABLE_VISTA_SDK_REQUIREMENTS=)
5844 if test -n "$COMPILE_ENVIRONMENT"; then
5845 if test -n "$MOZ_DISABLE_VISTA_SDK_REQUIREMENTS"; then
5846 AC_MSG_WARN([Resulting builds will not be compatible with Windows Vista. (bug 428970)])
5847 AC_DEFINE(MOZ_DISABLE_VISTA_SDK_REQUIREMENTS)
5848 if test -z "$MOZ_DISABLE_PARENTAL_CONTROLS"; then
5849 AC_DEFINE(MOZ_DISABLE_PARENTAL_CONTROLS)
5851 MOZ_DISABLE_PARENTAL_CONTROLS=1
5854 *-mingw*|*-cygwin*|*-msvc*|*-mks*)
5855 if test "$ac_cv_header_wpcapi_h" = "no"; then
5856 AC_MSG_ERROR([System header wpcapi.h is not available. See updated http://developer.mozilla.org/en/docs/wpcapi.h for details on fixing this problem.])
5862 AC_SUBST(MOZ_DISABLE_PARENTAL_CONTROLS)
5863 AC_SUBST(MOZ_DISABLE_VISTA_SDK_REQUIREMENTS)
5865 dnl ========================================================
5867 dnl = Module specific options
5869 dnl ========================================================
5870 MOZ_ARG_HEADER(Individual module options)
5872 dnl ========================================================
5873 dnl = Enable Lea malloc in xpcom. OFF by default.
5874 dnl ========================================================
5875 MOZ_ARG_ENABLE_BOOL(xpcom-lea,
5876 [ --enable-xpcom-lea Use Lea malloc in xpcom ],
5879 if test -n "$XPCOM_USE_LEA"; then
5880 AC_DEFINE(XPCOM_USE_LEA)
5883 dnl ========================================================
5884 dnl = Enable places (new history/bookmarks)
5885 dnl ========================================================
5886 MOZ_ARG_ENABLE_BOOL(places,
5887 [ --enable-places Enable 'places' bookmark/history implementation],
5890 if test -n "$MOZ_PLACES"; then
5891 AC_DEFINE(MOZ_PLACES)
5892 if test -z "$MOZ_MAIL_NEWS"; then
5897 if test "$MOZ_BUILD_APP" = "browser"; then
5898 AC_MSG_ERROR([Cannot build Firefox with --disable-places.])
5902 dnl ========================================================
5903 dnl = Disable feed handling components
5904 dnl ========================================================
5905 MOZ_ARG_DISABLE_BOOL(feeds,
5906 [ --disable-feeds Disable feed handling and processing components],
5909 if test -n "$MOZ_FEEDS"; then
5910 AC_DEFINE(MOZ_FEEDS)
5912 if test "$MOZ_BUILD_APP" = "browser"; then
5913 AC_MSG_ERROR([Cannot build Firefox with --disable-feeds.])
5917 dnl ========================================================
5918 dnl = Enable mozStorage
5919 dnl ========================================================
5920 dnl Implicitly enabled by default if building calendar or places
5921 MOZ_ARG_ENABLE_BOOL(storage,
5922 [ --enable-storage Enable mozStorage module and related components],
5925 if test -n "$MOZ_STORAGE"; then
5926 AC_DEFINE(MOZ_STORAGE)
5929 dnl ========================================================
5930 dnl Check for sqlite
5931 dnl ========================================================
5934 MOZ_ARG_ENABLE_BOOL(system-sqlite,
5935 [ --enable-system-sqlite Use system sqlite (located with pkgconfig)],
5936 MOZ_NATIVE_SQLITE=1,
5937 MOZ_NATIVE_SQLITE= )
5939 if test -z "$MOZ_NATIVE_SQLITE"
5942 SQLITE_LIBS='$(call EXPAND_LIBNAME_PATH,sqlite3,$(DIST)/lib)'
5944 PKG_CHECK_MODULES(SQLITE, sqlite3 >= $SQLITE_VERSION)
5947 AC_SUBST(MOZ_NATIVE_SQLITE)
5949 dnl ========================================================
5950 dnl = Enable help viewer (off by default)
5951 dnl ========================================================
5952 MOZ_ARG_ENABLE_BOOL(help-viewer,
5953 [ --enable-help-viewer Enable help viewer],
5956 if test -n "$MOZ_HELP_VIEWER"; then
5957 AC_DEFINE(MOZ_HELP_VIEWER)
5959 AC_SUBST(MOZ_HELP_VIEWER)
5960 if test "$MOZ_BUILD_APP" = "browser" -a -n "$MOZ_HELP_VIEWER"; then
5961 AC_MSG_ERROR([Cannot build Firefox with --enable-help-viewer.])
5964 dnl ========================================================
5965 dnl = Enable safe browsing (anti-phishing)
5966 dnl ========================================================
5967 MOZ_ARG_ENABLE_BOOL(safe-browsing,
5968 [ --enable-safe-browsing Enable safe browsing (anti-phishing) implementation],
5969 MOZ_SAFE_BROWSING=1,
5970 MOZ_SAFE_BROWSING= )
5971 if test -n "$MOZ_SAFE_BROWSING"; then
5972 AC_DEFINE(MOZ_SAFE_BROWSING)
5974 AC_SUBST(MOZ_SAFE_BROWSING)
5976 dnl ========================================================
5977 dnl = Enable url-classifier
5978 dnl ========================================================
5979 dnl Implicitly enabled by default if building with safe-browsing
5980 if test -n "$MOZ_SAFE_BROWSING"; then
5981 MOZ_URL_CLASSIFIER=1
5983 MOZ_ARG_ENABLE_BOOL(url-classifier,
5984 [ --enable-url-classifier Enable url classifier module],
5985 MOZ_URL_CLASSIFIER=1,
5986 MOZ_URL_CLASSIFIER= )
5987 if test -n "$MOZ_URL_CLASSIFIER"; then
5988 AC_DEFINE(MOZ_URL_CLASSIFIER)
5990 AC_SUBST(MOZ_URL_CLASSIFIER)
5992 dnl ========================================================
5993 dnl = Disable zipwriter
5994 dnl ========================================================
5995 MOZ_ARG_DISABLE_BOOL(zipwriter,
5996 [ --disable-zipwriter Disable zipwriter component],
5999 AC_SUBST(MOZ_ZIPWRITER)
6001 dnl ========================================================
6002 dnl = Enable Ultrasparc specific optimizations for JS
6003 dnl ========================================================
6004 MOZ_ARG_ENABLE_BOOL(js-ultrasparc,
6005 [ --enable-js-ultrasparc Use UltraSPARC optimizations in JS],
6006 JS_ULTRASPARC_OPTS=1,
6007 JS_ULTRASPARC_OPTS= )
6009 dnl only enable option for ultrasparcs
6010 if test `echo "$target_os" | grep -c \^solaris 2>/dev/null` = 0 -o \
6011 "$OS_TEST" != "sun4u"; then
6014 AC_SUBST(JS_ULTRASPARC_OPTS)
6016 dnl ========================================================
6017 dnl = Hildon and OSSO checks
6018 dnl ========================================================
6019 PKG_CHECK_MODULES(LIBHILDONMIME,libhildonmime,
6020 MOZ_PLATFORM_HILDON=1,
6021 MOZ_PLATFORM_HILDON=)
6022 if test $MOZ_PLATFORM_HILDON; then
6023 AC_DEFINE(MOZ_PLATFORM_HILDON)
6025 AC_SUBST(LIBHILDONMIME_CFLAGS)
6026 AC_SUBST(LIBHILDONMIME_LIBS)
6028 PKG_CHECK_MODULES(LIBOSSO,libosso,
6032 if test $NS_OSSO; then
6033 if test -z "$MOZ_ENABLE_DBUS"; then
6034 AC_MSG_ERROR([DBus is required when building for OSSO])
6037 dnl XXX this should go somewhere else; it's not just for OSSO
6038 AC_DEFINE(MOZ_GFX_OPTIMIZE_MOBILE)
6040 AC_SUBST(LIBOSSO_CFLAGS)
6041 AC_SUBST(LIBOSSO_LIBS)
6043 PKG_CHECK_MODULES(MOZ_LOCATION, [liblocation gpsbt],
6044 NS_MAEMO_LOCATION=1,
6047 if test $NS_MAEMO_LOCATION; then
6048 AC_DEFINE(NS_MAEMO_LOCATION)
6051 AC_SUBST(MOZ_LOCATION_CFLAGS)
6052 AC_SUBST(MOZ_LOCATION_LIBS)
6054 dnl ========================================================
6056 dnl = Feature options that require extra sources to be pulled
6058 dnl ========================================================
6059 dnl MOZ_ARG_HEADER(Features that require extra sources)
6061 dnl ========================================================
6063 dnl = Debugging Options
6065 dnl ========================================================
6066 MOZ_ARG_HEADER(Debugging and Optimizations)
6068 dnl ========================================================
6069 dnl = Disable building with debug info.
6070 dnl = Debugging is OFF by default
6071 dnl ========================================================
6072 if test -z "$MOZ_DEBUG_FLAGS"
6076 if test "$GNU_CC"; then
6077 GCC_VERSION=`$CC -v 2>&1 | awk '/version/ { print $3 }'`
6078 case "$GCC_VERSION" in
6083 MOZ_DEBUG_FLAGS="-g"
6087 MOZ_DEBUG_FLAGS="-g"
6091 MOZ_DEBUG_FLAGS="-g"
6096 MOZ_ARG_ENABLE_STRING(debug,
6097 [ --enable-debug[=DBG] Enable building with developer debug info
6098 (Using compiler flags DBG)],
6099 [ if test "$enableval" != "no"; then
6101 if test -n "$enableval" && test "$enableval" != "yes"; then
6102 MOZ_DEBUG_FLAGS=`echo $enableval | sed -e 's|\\\ | |g'`
6109 MOZ_DEBUG_ENABLE_DEFS="-DDEBUG -D_DEBUG"
6110 case "${target_os}" in
6112 MOZ_DEBUG_ENABLE_DEFS="$MOZ_DEBUG_ENABLE_DEFS -DDEBUG_${USER}"
6114 msvc*|mks*|cygwin*|mingw*|os2*|wince*)
6115 MOZ_DEBUG_ENABLE_DEFS="$MOZ_DEBUG_ENABLE_DEFS -DDEBUG_`echo ${USERNAME} | sed -e 's| |_|g'`"
6118 MOZ_DEBUG_ENABLE_DEFS="$MOZ_DEBUG_ENABLE_DEFS -DDEBUG_`$WHOAMI`"
6121 MOZ_DEBUG_ENABLE_DEFS="$MOZ_DEBUG_ENABLE_DEFS -DTRACING"
6123 MOZ_DEBUG_DISABLE_DEFS="-DNDEBUG -DTRIMMED"
6125 if test -n "$MOZ_DEBUG"; then
6126 AC_MSG_CHECKING([for valid debug flags])
6127 _SAVE_CFLAGS=$CFLAGS
6128 CFLAGS="$CFLAGS $MOZ_DEBUG_FLAGS"
6129 AC_TRY_COMPILE([#include <stdio.h>],
6130 [printf("Hello World\n");],
6133 AC_MSG_RESULT([$_results])
6134 if test "$_results" = "no"; then
6135 AC_MSG_ERROR([These compiler flags are invalid: $MOZ_DEBUG_FLAGS])
6137 CFLAGS=$_SAVE_CFLAGS
6140 dnl ========================================================
6141 dnl = Enable code optimization. ON by default.
6142 dnl ========================================================
6143 if test -z "$MOZ_OPTIMIZE_FLAGS"; then
6144 MOZ_OPTIMIZE_FLAGS="-O"
6147 MOZ_ARG_ENABLE_STRING(optimize,
6148 [ --disable-optimize Disable compiler optimization
6149 --enable-optimize=[OPT] Specify compiler optimization flags [OPT=-O]],
6150 [ if test "$enableval" != "no"; then
6152 if test -n "$enableval" && test "$enableval" != "yes"; then
6153 MOZ_OPTIMIZE_FLAGS=`echo "$enableval" | sed -e 's|\\\ | |g'`
6158 fi ], MOZ_OPTIMIZE=1)
6160 if test "$COMPILE_ENVIRONMENT"; then
6161 if test -n "$MOZ_OPTIMIZE"; then
6162 AC_MSG_CHECKING([for valid optimization flags])
6163 _SAVE_CFLAGS=$CFLAGS
6164 CFLAGS="$CFLAGS $MOZ_OPTIMIZE_FLAGS"
6165 AC_TRY_COMPILE([#include <stdio.h>],
6166 [printf("Hello World\n");],
6169 AC_MSG_RESULT([$_results])
6170 if test "$_results" = "no"; then
6171 AC_MSG_ERROR([These compiler flags are invalid: $MOZ_OPTIMIZE_FLAGS])
6173 CFLAGS=$_SAVE_CFLAGS
6175 fi # COMPILE_ENVIRONMENT
6177 AC_SUBST(MOZ_OPTIMIZE)
6178 AC_SUBST(MOZ_OPTIMIZE_FLAGS)
6179 AC_SUBST(MOZ_OPTIMIZE_LDFLAGS)
6180 AC_SUBST(MOZ_OPTIMIZE_SIZE_TWEAK)
6182 dnl ========================================================
6183 dnl = Enable/disable debug for specific modules only
6184 dnl = module names beginning with ^ will be disabled
6185 dnl ========================================================
6186 MOZ_ARG_ENABLE_STRING(debug-modules,
6187 [ --enable-debug-modules Enable/disable debug info for specific modules],
6188 [ MOZ_DEBUG_MODULES=`echo $enableval| sed 's/,/ /g'` ] )
6190 dnl ========================================================
6191 dnl = Enable/disable generation of debugger info for specific modules only
6192 dnl = the special module name ALL_MODULES can be used to denote all modules
6193 dnl = module names beginning with ^ will be disabled
6194 dnl ========================================================
6195 MOZ_ARG_ENABLE_STRING(debugger-info-modules,
6196 [ --enable-debugger-info-modules
6197 Enable/disable debugger info for specific modules],
6198 [ for i in `echo $enableval | sed 's/,/ /g'`; do
6199 dnl note that the list of module names is reversed as it is copied
6200 dnl this is important, as it will allow config.mk to interpret stuff like
6201 dnl "^ALL_MODULES xpcom" properly
6202 if test "$i" = "no"; then
6205 if test "$i" = "yes"; then
6208 MOZ_DBGRINFO_MODULES="$i $MOZ_DBGRINFO_MODULES";
6211 dnl ========================================================
6212 dnl Enable garbage collector
6213 dnl ========================================================
6214 MOZ_ARG_ENABLE_BOOL(boehm,
6215 [ --enable-boehm Enable the Boehm Garbage Collector],
6218 if test -n "$GC_LEAK_DETECTOR"; then
6219 AC_DEFINE(GC_LEAK_DETECTOR)
6222 dnl ========================================================
6223 dnl Disable runtime logging checks
6224 dnl ========================================================
6225 MOZ_ARG_DISABLE_BOOL(logging,
6226 [ --disable-logging Disable logging facilities],
6227 NS_DISABLE_LOGGING=1,
6228 NS_DISABLE_LOGGING= )
6229 if test "$NS_DISABLE_LOGGING"; then
6230 AC_DEFINE(NS_DISABLE_LOGGING)
6232 AC_DEFINE(MOZ_LOGGING)
6235 dnl ========================================================
6236 dnl = dnl This will enable logging of addref, release, ctor, dtor.
6237 dnl ========================================================
6238 _ENABLE_LOGREFCNT=42
6239 MOZ_ARG_ENABLE_BOOL(logrefcnt,
6240 [ --enable-logrefcnt Enable logging of refcounts (default=debug) ],
6241 _ENABLE_LOGREFCNT=1,
6242 _ENABLE_LOGREFCNT= )
6243 if test "$_ENABLE_LOGREFCNT" = "1"; then
6244 AC_DEFINE(FORCE_BUILD_REFCNT_LOGGING)
6245 elif test -z "$_ENABLE_LOGREFCNT"; then
6246 AC_DEFINE(NO_BUILD_REFCNT_LOGGING)
6249 dnl ========================================================
6250 dnl = Enable trace malloc
6251 dnl ========================================================
6252 NS_TRACE_MALLOC=${MOZ_TRACE_MALLOC}
6253 MOZ_ARG_ENABLE_BOOL(trace-malloc,
6254 [ --enable-trace-malloc Enable malloc tracing],
6257 if test "$NS_TRACE_MALLOC"; then
6258 # Please, Mr. Linker Man, don't take away our symbol names
6259 MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS=
6261 AC_DEFINE(NS_TRACE_MALLOC)
6263 AC_SUBST(NS_TRACE_MALLOC)
6265 dnl ========================================================
6266 dnl = Enable jemalloc
6267 dnl ========================================================
6268 MOZ_ARG_ENABLE_BOOL(jemalloc,
6269 [ --enable-jemalloc Replace memory allocator with jemalloc],
6273 if test "$NS_TRACE_MALLOC"; then
6277 if test "$MOZ_MEMORY"; then
6279 dnl Don't try to run compiler tests on Windows
6280 if test "$OS_ARCH" = "WINNT"; then
6281 if test -z "$HAVE_64BIT_OS"; then
6282 AC_DEFINE_UNQUOTED([MOZ_MEMORY_SIZEOF_PTR_2POW], 2)
6284 AC_DEFINE_UNQUOTED([MOZ_MEMORY_SIZEOF_PTR_2POW], 3)
6287 AC_CHECK_SIZEOF([int *], [4])
6288 case "${ac_cv_sizeof_int_p}" in
6290 AC_DEFINE_UNQUOTED([MOZ_MEMORY_SIZEOF_PTR_2POW], 2)
6293 AC_DEFINE_UNQUOTED([MOZ_MEMORY_SIZEOF_PTR_2POW], 3)
6296 AC_MSG_ERROR([Unexpected pointer size])
6301 AC_DEFINE(MOZ_MEMORY)
6302 if test "x$MOZ_DEBUG" = "x1"; then
6303 AC_DEFINE(MOZ_MEMORY_DEBUG)
6305 dnl The generic feature tests that determine how to compute ncpus are long and
6306 dnl complicated. Therefore, simply define special cpp variables for the
6307 dnl platforms we have special knowledge of.
6308 case "${target_os}" in
6310 AC_DEFINE(MOZ_MEMORY_DARWIN)
6313 AC_DEFINE(MOZ_MEMORY_BSD)
6316 AC_DEFINE(MOZ_MEMORY_LINUX)
6319 AC_DEFINE(MOZ_MEMORY_BSD)
6322 AC_DEFINE(MOZ_MEMORY_SOLARIS)
6324 msvc*|mks*|cygwin*|mingw*)
6325 AC_DEFINE(MOZ_MEMORY_WINDOWS)
6326 dnl XXX: should test for vc8sp1 here, otherwise patching the crt src
6327 dnl will fail miserably
6328 if test "$_CC_SUITE" -lt "8"; then
6329 AC_MSG_ERROR([Building jemalloc requires Visual C++ 2005 or better])
6331 if test -z "$WIN32_CRT_SRC_DIR" -a -z "$WIN32_CUSTOM_CRT_DIR"; then
6332 if test -z "$VCINSTALLDIR" -o ! -d "$VCINSTALLDIR"; then
6333 AC_MSG_ERROR([When building jemalloc, either set WIN32_CRT_SRC_DIR to the path to the Visual C++ CRT source (usually VCINSTALLDIR\crt\src), or set WIN32_CUSTOM_CRT_DIR to the path to a folder containing a pre-built CRT DLL.])
6335 WIN32_CRT_SRC_DIR="$VCINSTALLDIR\crt\src"
6338 if test -z "$WIN32_CRT_SRC_DIR"; then
6340 WIN32_CUSTOM_CRT_DIR=`cd "$WIN32_CUSTOM_CRT_DIR" && pwd`
6341 _WIN_UNIX_CRT_PATH="$WIN32_CUSTOM_CRT_DIR"
6343 # CRT source directory
6344 WIN32_CRT_SRC_DIR=`cd "$WIN32_CRT_SRC_DIR" && pwd`
6345 _CRT_BASE_DIR=`basename "$WIN32_CRT_SRC_DIR"`
6346 _WIN_UNIX_CRT_PATH="$_objdir/memory/jemalloc/$_CRT_BASE_DIR/build/intel"
6348 dnl need win32 paths in LIB, hence this python abuse. extra brackets
6350 _WIN_CRT_PATH=[`$PYTHON -c 'import sys, os.path; print os.path.normpath(sys.argv[1])' "$_WIN_UNIX_CRT_PATH"`]
6351 MOZ_LIB="$_WIN_CRT_PATH;$LIB"
6352 dnl Needs to be in PATH too, since our tools will wind up linked against it.
6353 dnl This needs to be unix style.
6354 MOZ_PATH="$PATH:$_WIN_UNIX_CRT_PATH"
6355 dnl Statically link the C++ stdlib. We only use this for Breakpad anyway.
6356 AC_DEFINE(_STATIC_CPPLIB)
6357 dnl Don't generate a manifest, since we're linking to a custom CRT.
6358 LDFLAGS="$LDFLAGS -MANIFEST:NO"
6359 dnl Also pass this to NSPR/NSS
6360 DLLFLAGS="$DLLFLAGS -MANIFEST:NO"
6364 AC_MSG_ERROR([--enable-jemalloc not supported on ${target}])
6368 AC_ARG_WITH([valgrind],
6369 [ --with-valgrind Enable valgrind integration hooks],
6370 [enable_valgrind="yes"], [enable_valgrind="no"])
6371 AC_CHECK_HEADER([valgrind/valgrind.h], [], [enable_valgrind="no"])
6372 if test "x$enable_valgrind" = "xyes" ; then
6373 AC_DEFINE(MOZ_VALGRIND)
6376 AC_SUBST(MOZ_MEMORY)
6377 AC_SUBST(WIN32_CRT_SRC_DIR)
6378 AC_SUBST(WIN32_CUSTOM_CRT_DIR)
6381 dnl Need to set this for make because NSS doesn't have configure
6384 dnl ========================================================
6385 dnl = Use malloc wrapper lib
6386 dnl ========================================================
6387 MOZ_ARG_ENABLE_BOOL(wrap-malloc,
6388 [ --enable-wrap-malloc Wrap malloc calls (gnu linker only)],
6392 if test -n "$_WRAP_MALLOC"; then
6393 if test "$GNU_CC"; then
6394 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"
6395 MKSHLIB='$(CXX) $(DSO_LDOPTS) $(WRAP_MALLOC_CFLAGS) -o $@'
6399 dnl ========================================================
6400 dnl = Location of malloc wrapper lib
6401 dnl ========================================================
6402 MOZ_ARG_WITH_STRING(wrap-malloc,
6403 [ --with-wrap-malloc=DIR Location of malloc wrapper library],
6404 WRAP_MALLOC_LIB=$withval)
6406 dnl ========================================================
6407 dnl = Use Electric Fence
6408 dnl ========================================================
6409 MOZ_ARG_ENABLE_BOOL(efence,
6410 [ --enable-efence Link with Electric Fence],
6413 if test -n "$_ENABLE_EFENCE"; then
6414 AC_CHECK_LIB(efence,malloc)
6417 dnl ========================================================
6419 dnl ========================================================
6420 MOZ_ARG_ENABLE_BOOL(jprof,
6421 [ --enable-jprof Enable jprof profiling tool (needs mozilla/tools/jprof)],
6424 if test -n "$MOZ_JPROF"; then
6425 AC_DEFINE(MOZ_JPROF)
6428 dnl ========================================================
6430 dnl ========================================================
6431 MOZ_ARG_ENABLE_BOOL(shark,
6432 [ --enable-shark Enable shark remote profiling (needs CHUD framework)],
6435 if test -n "$MOZ_SHARK"; then
6436 AC_DEFINE(MOZ_SHARK)
6439 dnl ========================================================
6441 dnl ========================================================
6442 MOZ_ARG_ENABLE_BOOL(callgrind,
6443 [ --enable-callgrind Enable callgrind profiling],
6446 if test -n "$MOZ_CALLGRIND"; then
6447 AC_DEFINE(MOZ_CALLGRIND)
6450 dnl ========================================================
6452 dnl ========================================================
6453 MOZ_ARG_ENABLE_BOOL(vtune,
6454 [ --enable-vtune Enable vtune profiling],
6457 if test -n "$MOZ_VTUNE"; then
6458 AC_DEFINE(MOZ_VTUNE)
6461 dnl ========================================================
6462 dnl = Enable static checking using gcc-dehydra
6463 dnl ========================================================
6465 MOZ_ARG_WITH_STRING(static-checking,
6466 [ --with-static-checking=path/to/gcc_dehydra.so
6467 Enable static checking of code using GCC-dehydra],
6468 DEHYDRA_PATH=$withval,
6471 if test -n "$DEHYDRA_PATH"; then
6472 if ! test -f "$DEHYDRA_PATH"; then
6473 AC_MSG_ERROR([The dehydra plugin is not at the specified path.])
6475 AC_DEFINE(NS_STATIC_CHECKING)
6477 AC_SUBST(DEHYDRA_PATH)
6479 dnl ========================================================
6480 dnl = Enable stripping of libs & executables
6481 dnl ========================================================
6482 MOZ_ARG_ENABLE_BOOL(strip,
6483 [ --enable-strip Enable stripping of libs & executables ],
6487 dnl ========================================================
6488 dnl = Enable stripping of libs & executables when packaging
6489 dnl ========================================================
6490 MOZ_ARG_ENABLE_BOOL(install-strip,
6491 [ --enable-install-strip Enable stripping of libs & executables when packaging ],
6495 dnl ========================================================
6496 dnl = --enable-elf-dynstr-gc
6497 dnl ========================================================
6498 MOZ_ARG_ENABLE_BOOL(elf-dynstr-gc,
6499 [ --enable-elf-dynstr-gc Enable elf dynstr garbage collector (opt builds only)],
6500 USE_ELF_DYNSTR_GC=1,
6501 USE_ELF_DYNSTR_GC= )
6503 dnl ========================================================
6504 dnl = --enable-old-abi-compat-wrappers
6505 dnl ========================================================
6506 dnl on x86 linux, the current builds of some popular plugins (notably
6507 dnl flashplayer and real) expect a few builtin symbols from libgcc
6508 dnl which were available in some older versions of gcc. However,
6509 dnl they're _NOT_ available in newer versions of gcc (eg 3.1), so if
6510 dnl we want those plugin to work with a gcc-3.1 built binary, we need
6511 dnl to provide these symbols. MOZ_ENABLE_OLD_ABI_COMPAT_WRAPPERS defaults
6512 dnl to true on x86 linux, and false everywhere else.
6515 MOZ_ARG_ENABLE_BOOL(old-abi-compat-wrappers,
6516 [ --enable-old-abi-compat-wrappers
6517 Support old GCC ABI symbols to ease the pain
6518 of the linux compiler change],
6519 MOZ_ENABLE_OLD_ABI_COMPAT_WRAPPERS=1,
6520 MOZ_ENABLE_OLD_ABI_COMPAT_WRAPPERS= )
6521 if test "$COMPILE_ENVIRONMENT"; then
6522 if test "$MOZ_ENABLE_OLD_ABI_COMPAT_WRAPPERS"; then
6525 AC_CHECK_FUNCS(__builtin_vec_new __builtin_vec_delete __builtin_new __builtin_delete __pure_virtual)
6527 AC_DEFINE(MOZ_ENABLE_OLD_ABI_COMPAT_WRAPPERS)
6529 fi # COMPILE_ENVIRONMENT
6531 dnl ========================================================
6533 dnl = Profiling and Instrumenting
6535 dnl ========================================================
6536 MOZ_ARG_HEADER(Profiling and Instrumenting)
6538 dnl ========================================================
6539 dnl = Enable timeline service, which provides lightweight
6540 dnl = instrumentation of mozilla for performance measurement.
6541 dnl = Timeline is off by default.
6542 dnl ========================================================
6543 MOZ_ARG_ENABLE_BOOL(timeline,
6544 [ --enable-timeline Enable timeline services ],
6547 if test -n "$MOZ_TIMELINE"; then
6548 AC_DEFINE(MOZ_TIMELINE)
6551 dnl ========================================================
6552 dnl Turn on reflow counting
6553 dnl ========================================================
6554 MOZ_ARG_ENABLE_BOOL(reflow-perf,
6555 [ --enable-reflow-perf Enable reflow performance tracing],
6558 if test -n "$MOZ_REFLOW_PREF"; then
6559 AC_DEFINE(MOZ_REFLOW_PREF)
6561 AC_SUBST(MOZ_REFLOW_PERF)
6563 dnl ========================================================
6564 dnl Enable performance metrics.
6565 dnl ========================================================
6566 MOZ_ARG_ENABLE_BOOL(perf-metrics,
6567 [ --enable-perf-metrics Enable performance metrics],
6570 if test -n "$MOZ_PERF_METRICS"; then
6571 AC_DEFINE(MOZ_PERF_METRICS)
6574 dnl ========================================================
6575 dnl Enable code size metrics.
6576 dnl ========================================================
6577 MOZ_ARG_ENABLE_BOOL(codesighs,
6578 [ --enable-codesighs Enable code size analysis tools],
6579 _ENABLE_CODESIGHS=1,
6580 _ENABLE_CODESIGHS= )
6581 if test -n "$_ENABLE_CODESIGHS"; then
6582 if test -d $srcdir/tools/codesighs; then
6585 AC_MSG_ERROR([Codesighs directory $srcdir/tools/codesighs required.])
6589 dnl ========================================================
6590 dnl = Add support for Eazel profiler
6591 dnl ========================================================
6592 MOZ_ARG_ENABLE_BOOL(eazel-profiler-support,
6593 [ --enable-eazel-profiler-support
6594 Enable Corel/Eazel profiler support],
6595 ENABLE_EAZEL_PROFILER=1,
6596 ENABLE_EAZEL_PROFILER= )
6597 if test -n "$ENABLE_EAZEL_PROFILER"; then
6598 AC_DEFINE(ENABLE_EAZEL_PROFILER)
6600 MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS=
6601 EAZEL_PROFILER_CFLAGS="-g -O -gdwarf-2 -finstrument-functions -D__NO_STRING_INLINES -D__NO_MATH_INLINES"
6602 EAZEL_PROFILER_LIBS="-lprofiler -lpthread"
6605 MOZ_ARG_ENABLE_STRING(profile-modules,
6606 [ --enable-profile-modules
6607 Enable/disable profiling for specific modules],
6608 [ MOZ_PROFILE_MODULES=`echo $enableval| sed 's/,/ /g'` ] )
6610 MOZ_ARG_ENABLE_BOOL(insure,
6611 [ --enable-insure Enable insure++ instrumentation (linux only)],
6614 if test -n "$_ENABLE_INSURE"; then
6618 MOZ_INSURE_EXCLUDE_DIRS="config"
6621 MOZ_ARG_WITH_STRING(insure-dirs,
6622 [ --with-insure-dirs=DIRS
6623 Dirs to instrument with insure ],
6624 MOZ_INSURE_DIRS=$withval )
6626 MOZ_ARG_WITH_STRING(insure-exclude-dirs,
6627 [ --with-insure-exclude-dirs=DIRS
6628 Dirs to not instrument with insure ],
6629 MOZ_INSURE_EXCLUDE_DIRS="config $withval" )
6631 dnl ========================================================
6632 dnl = Support for Quantify (Windows)
6633 dnl ========================================================
6634 MOZ_ARG_ENABLE_BOOL(quantify,
6635 [ --enable-quantify Enable Quantify support (Windows only) ],
6639 dnl ========================================================
6640 dnl = Support for demangling undefined symbols
6641 dnl ========================================================
6642 if test -z "$SKIP_LIBRARY_CHECKS"; then
6645 AC_CHECK_FUNCS(__cxa_demangle, HAVE_DEMANGLE=1, HAVE_DEMANGLE=)
6649 # Demangle only for debug or trace-malloc builds
6650 MOZ_DEMANGLE_SYMBOLS=
6651 if test "$HAVE_DEMANGLE" -a "$HAVE_GCC3_ABI" && test "$MOZ_DEBUG" -o "$NS_TRACE_MALLOC"; then
6652 MOZ_DEMANGLE_SYMBOLS=1
6653 AC_DEFINE(MOZ_DEMANGLE_SYMBOLS)
6655 AC_SUBST(MOZ_DEMANGLE_SYMBOLS)
6657 dnl ========================================================
6658 dnl = Support for gcc stack unwinding (from gcc 3.3)
6659 dnl ========================================================
6660 if test "$HAVE_GCC3_ABI" && test -z "$SKIP_LIBRARY_CHECKS"; then
6661 AC_CHECK_HEADER(unwind.h, AC_CHECK_FUNCS(_Unwind_Backtrace))
6664 dnl ========================================================
6668 dnl ========================================================
6669 MOZ_ARG_HEADER(Misc. Options)
6671 dnl ========================================================
6672 dnl update xterm title
6673 dnl ========================================================
6674 MOZ_ARG_ENABLE_BOOL(xterm-updates,
6675 [ --enable-xterm-updates Update XTERM titles with current command.],
6679 dnl =========================================================
6681 dnl =========================================================
6682 MOZ_ARG_ENABLE_STRING([chrome-format],
6683 [ --enable-chrome-format=jar|flat|both|symlink
6684 Select FORMAT of chrome files (default=jar)],
6685 MOZ_CHROME_FILE_FORMAT=`echo $enableval | tr A-Z a-z`)
6687 if test -z "$MOZ_CHROME_FILE_FORMAT"; then
6688 MOZ_CHROME_FILE_FORMAT=jar
6691 if test "$MOZ_CHROME_FILE_FORMAT" != "jar" &&
6692 test "$MOZ_CHROME_FILE_FORMAT" != "flat" &&
6693 test "$MOZ_CHROME_FILE_FORMAT" != "symlink" &&
6694 test "$MOZ_CHROME_FILE_FORMAT" != "both"; then
6695 AC_MSG_ERROR([--enable-chrome-format must be set to either jar, flat, both, or symlink])
6698 dnl ========================================================
6699 dnl = Define default location for MOZILLA_FIVE_HOME
6700 dnl ========================================================
6701 MOZ_ARG_WITH_STRING(default-mozilla-five-home,
6702 [ --with-default-mozilla-five-home
6703 Set the default value for MOZILLA_FIVE_HOME],
6704 [ val=`echo $withval`
6705 AC_DEFINE_UNQUOTED(MOZ_DEFAULT_MOZILLA_FIVE_HOME,"$val") ])
6707 dnl ========================================================
6708 dnl = Location of the mozilla user directory (default is ~/.mozilla).],
6709 dnl ========================================================
6710 MOZ_ARG_WITH_STRING(user-appdir,
6711 [ --with-user-appdir=DIR Set user-specific appdir (default=.mozilla)],
6712 [ val=`echo $withval`
6713 if echo "$val" | grep "\/" >/dev/null; then
6714 AC_MSG_ERROR("Homedir must be single relative path.")
6719 AC_DEFINE_UNQUOTED(MOZ_USER_DIR,"$MOZ_USER_DIR")
6721 dnl ========================================================
6722 dnl = Doxygen configuration
6723 dnl ========================================================
6724 dnl Use commas to specify multiple dirs to this arg
6725 MOZ_DOC_INPUT_DIRS='./dist/include ./dist/idl'
6726 MOZ_ARG_WITH_STRING(doc-input-dirs,
6727 [ --with-doc-input-dirs=DIRS
6728 Header/idl dirs to create docs from],
6729 [ MOZ_DOC_INPUT_DIRS=`echo "$withval" | sed "s/,/ /g"` ] )
6730 AC_SUBST(MOZ_DOC_INPUT_DIRS)
6732 dnl Use commas to specify multiple dirs to this arg
6733 MOZ_DOC_INCLUDE_DIRS='./dist/include ./dist/include/nspr'
6734 MOZ_ARG_WITH_STRING(doc-include-dirs,
6735 [ --with-doc-include-dirs=DIRS
6736 Include dirs to preprocess doc headers],
6737 [ MOZ_DOC_INCLUDE_DIRS=`echo "$withval" | sed "s/,/ /g"` ] )
6738 AC_SUBST(MOZ_DOC_INCLUDE_DIRS)
6740 MOZ_DOC_OUTPUT_DIR='./dist/docs'
6741 MOZ_ARG_WITH_STRING(doc-output-dir,
6742 [ --with-doc-output-dir=DIR
6743 Dir to generate docs into],
6744 [ MOZ_DOC_OUTPUT_DIR=$withval ] )
6745 AC_SUBST(MOZ_DOC_OUTPUT_DIR)
6747 if test -z "$SKIP_COMPILER_CHECKS"; then
6748 dnl ========================================================
6750 dnl = Compiler Options
6752 dnl ========================================================
6753 MOZ_ARG_HEADER(Compiler Options)
6755 dnl ========================================================
6756 dnl Check for gcc -pipe support
6757 dnl ========================================================
6758 AC_MSG_CHECKING([for gcc -pipe support])
6759 if test -n "$GNU_CC" && test -n "$GNU_CXX" && test -n "$GNU_AS"; then
6760 echo '#include <stdio.h>' > dummy-hello.c
6761 echo 'int main() { printf("Hello World\n"); exit(0); }' >> dummy-hello.c
6762 ${CC} -S dummy-hello.c -o dummy-hello.s 2>&5
6763 cat dummy-hello.s | ${AS_BIN} -o dummy-hello.S - 2>&5
6764 if test $? = 0; then
6769 if test "$_res_as_stdin" = "yes"; then
6770 _SAVE_CFLAGS=$CFLAGS
6771 CFLAGS="$CFLAGS -pipe"
6772 AC_TRY_COMPILE( [ #include <stdio.h> ],
6773 [printf("Hello World\n");],
6774 [_res_gcc_pipe="yes"],
6775 [_res_gcc_pipe="no"] )
6776 CFLAGS=$_SAVE_CFLAGS
6778 if test "$_res_as_stdin" = "yes" && test "$_res_gcc_pipe" = "yes"; then
6780 CFLAGS="$CFLAGS -pipe"
6781 CXXFLAGS="$CXXFLAGS -pipe"
6785 rm -f dummy-hello.c dummy-hello.s dummy-hello.S dummy-hello a.out
6786 AC_MSG_RESULT([$_res])
6791 dnl pass -Wno-long-long to the compiler
6792 MOZ_ARG_ENABLE_BOOL(long-long-warning,
6793 [ --enable-long-long-warning
6794 Warn about use of non-ANSI long long type],
6795 _IGNORE_LONG_LONG_WARNINGS=,
6796 _IGNORE_LONG_LONG_WARNINGS=1)
6798 if test "$_IGNORE_LONG_LONG_WARNINGS"; then
6799 _SAVE_CFLAGS="$CFLAGS"
6800 CFLAGS="$CFLAGS ${_COMPILER_PREFIX}-Wno-long-long"
6801 AC_MSG_CHECKING([whether compiler supports -Wno-long-long])
6802 AC_TRY_COMPILE([], [return(0);],
6803 [ _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} ${_COMPILER_PREFIX}-Wno-long-long"
6804 _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} ${_COMPILER_PREFIX}-Wno-long-long"
6805 result="yes" ], result="no")
6806 AC_MSG_RESULT([$result])
6807 CFLAGS="$_SAVE_CFLAGS"
6810 dnl ========================================================
6811 dnl Profile guided optimization
6812 dnl ========================================================
6813 dnl Test for profiling options
6814 dnl Under gcc 3.3, use -fprofile-arcs/-fbranch-probabilities
6815 dnl Under gcc 3.4+, use -fprofile-generate/-fprofile-use
6817 dnl Provide a switch to disable PGO even when called via profiledbuild.
6818 MOZ_ARG_DISABLE_BOOL(profile-guided-optimization,
6819 [ --disable-profile-guided-optimization
6820 Don't build with PGO even if called via make profiledbuild],
6821 MOZ_PROFILE_GUIDED_OPTIMIZE_DISABLE=1,
6822 MOZ_PROFILE_GUIDED_OPTIMIZE_DISABLE=)
6824 AC_SUBST(MOZ_PROFILE_GUIDED_OPTIMIZE_DISABLE)
6826 _SAVE_CFLAGS="$CFLAGS"
6827 CFLAGS="$CFLAGS -fprofile-generate"
6829 AC_MSG_CHECKING([whether C compiler supports -fprofile-generate])
6830 AC_TRY_COMPILE([], [return 0;],
6831 [ PROFILE_GEN_CFLAGS="-fprofile-generate"
6832 result="yes" ], result="no")
6833 AC_MSG_RESULT([$result])
6835 if test $result = "yes"; then
6836 PROFILE_GEN_LDFLAGS="-fprofile-generate"
6837 PROFILE_USE_CFLAGS="-fprofile-use"
6838 PROFILE_USE_LDFLAGS="-fprofile-use"
6840 CFLAGS="$_SAVE_CFLAGS -fprofile-arcs"
6841 AC_MSG_CHECKING([whether C compiler supports -fprofile-arcs])
6842 AC_TRY_COMPILE([], [return 0;],
6843 [ PROFILE_GEN_CFLAGS="-fprofile-arcs"
6844 result="yes" ], result="no")
6845 AC_MSG_RESULT([$result])
6846 if test $result = "yes"; then
6847 PROFILE_USE_CFLAGS="-fbranch-probabilities"
6849 # don't really care, this is an old GCC
6850 PROFILE_GEN_LDFLAGS=
6851 PROFILE_USE_LDFLAGS=
6854 CFLAGS="$_SAVE_CFLAGS"
6856 if test -n "$INTEL_CC"; then
6857 PROFILE_GEN_CFLAGS="-prof-gen -prof-dir ."
6858 PROFILE_GEN_LDFLAGS=
6859 PROFILE_USE_CFLAGS="-prof-use -prof-dir ."
6860 PROFILE_USE_LDFLAGS=
6863 dnl Sun Studio on Solaris
6864 if test -z "$GNU_CC" && test -z "$GNU_CXX" && test "$OS_ARCH" = "SunOS"; then
6865 PROFILE_GEN_CFLAGS="-xprofile=collect:$_objdir/$enable_application"
6866 PROFILE_GEN_LDFLAGS="-xprofile=collect:$_objdir/$enable_application"
6867 if test "$CPU_ARCH" != "sparc"; then
6868 PROFILE_USE_CFLAGS="-xprofile=use:$_objdir/$enable_application"
6869 PROFILE_USE_LDFLAGS="-xprofile=use:$_objdir/$enable_application"
6871 PROFILE_USE_CFLAGS="-xlinkopt=2 -xprofile=use:$_objdir/$enable_application"
6872 PROFILE_USE_LDFLAGS="-xlinkopt=2 -xprofile=use:$_objdir/$enable_application"
6876 AC_SUBST(PROFILE_GEN_CFLAGS)
6877 AC_SUBST(PROFILE_GEN_LDFLAGS)
6878 AC_SUBST(PROFILE_USE_CFLAGS)
6879 AC_SUBST(PROFILE_USE_LDFLAGS)
6883 dnl ========================================================
6884 dnl Test for -pedantic bustage
6885 dnl ========================================================
6886 MOZ_ARG_DISABLE_BOOL(pedantic,
6887 [ --disable-pedantic Issue all warnings demanded by strict ANSI C ],
6889 if test "$_PEDANTIC"; then
6890 _SAVE_CXXFLAGS=$CXXFLAGS
6891 CXXFLAGS="$CXXFLAGS ${_WARNINGS_CXXFLAGS} ${_COMPILER_PREFIX}-pedantic"
6892 AC_MSG_CHECKING([whether C++ compiler has -pedantic long long bug])
6893 AC_TRY_COMPILE([$configure_static_assert_macros],
6894 [CONFIGURE_STATIC_ASSERT(sizeof(long long) == 8)],
6895 result="no", result="yes" )
6896 AC_MSG_RESULT([$result])
6897 CXXFLAGS="$_SAVE_CXXFLAGS"
6901 _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} ${_COMPILER_PREFIX}-pedantic"
6902 _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} ${_COMPILER_PREFIX}-pedantic"
6905 AC_MSG_ERROR([Your compiler appears to have a known bug where long long is miscompiled when using -pedantic. Reconfigure using --disable-pedantic. ])
6910 dnl ========================================================
6911 dnl Test for correct temporary object destruction order
6912 dnl ========================================================
6913 dnl We want to make sure the compiler follows the C++ spec here as
6914 dnl xpcom and the string classes depend on it (bug 235381).
6915 AC_MSG_CHECKING([for correct temporary object destruction order])
6916 AC_TRY_RUN([ class A {
6917 public: A(int& x) : mValue(x) {}
6919 operator char**() { return 0; }
6920 private: int& mValue;
6922 void func(char **arg) {}
6933 result="yes", result="no", result="maybe")
6934 AC_MSG_RESULT([$result])
6936 if test "$result" = "no"; then
6937 AC_MSG_ERROR([Your compiler does not follow the C++ specification for temporary object destruction order.])
6940 dnl ========================================================
6941 dnl Autoconf test for gcc 2.7.2.x (and maybe others?) so that we don't
6942 dnl provide non-const forms of the operator== for comparing nsCOMPtrs to
6943 dnl raw pointers in nsCOMPtr.h. (VC++ has the same bug.)
6944 dnl ========================================================
6945 _SAVE_CXXFLAGS=$CXXFLAGS
6946 CXXFLAGS="$CXXFLAGS ${_WARNINGS_CXXFLAGS}"
6947 AC_CACHE_CHECK(for correct overload resolution with const and templates,
6948 ac_nscap_nonconst_opeq_bug,
6957 template <class T, class U>
6958 int operator==(const Pointer<T>& rhs, U* lhs)
6960 return rhs.myPtr == lhs;
6963 template <class T, class U>
6964 int operator==(const Pointer<T>& rhs, const U* lhs)
6966 return rhs.myPtr == lhs;
6974 ac_nscap_nonconst_opeq_bug="no",
6975 ac_nscap_nonconst_opeq_bug="yes")])
6976 CXXFLAGS="$_SAVE_CXXFLAGS"
6978 if test "$ac_nscap_nonconst_opeq_bug" = "yes" ; then
6979 AC_DEFINE(NSCAP_DONT_PROVIDE_NONCONST_OPEQ)
6981 fi # SKIP_COMPILER_CHECKS
6983 dnl ========================================================
6985 dnl Should be smarter and check that the compiler does indeed have rtti
6986 dnl ========================================================
6987 MOZ_ARG_ENABLE_BOOL(cpp-rtti,
6988 [ --enable-cpp-rtti Enable C++ RTTI ],
6989 [ _MOZ_USE_RTTI=1 ],
6992 if test "$_MOZ_USE_RTTI"; then
6993 _MOZ_RTTI_FLAGS=$_MOZ_RTTI_FLAGS_ON
6995 _MOZ_RTTI_FLAGS=$_MOZ_RTTI_FLAGS_OFF
6998 AC_SUBST(_MOZ_RTTI_FLAGS_ON)
7000 dnl ========================================================
7001 dnl C++ exceptions (g++/egcs only - for now)
7002 dnl Should be smarter and check that the compiler does indeed have exceptions
7003 dnl ========================================================
7004 MOZ_ARG_ENABLE_BOOL(cpp-exceptions,
7005 [ --enable-cpp-exceptions Enable C++ exceptions ],
7006 [ _MOZ_CPP_EXCEPTIONS=1 ],
7007 [ _MOZ_CPP_EXCEPTIONS= ])
7009 if test "$_MOZ_CPP_EXCEPTIONS"; then
7010 _MOZ_EXCEPTIONS_FLAGS=$_MOZ_EXCEPTIONS_FLAGS_ON
7012 _MOZ_EXCEPTIONS_FLAGS=$_MOZ_EXCEPTIONS_FLAGS_OFF
7015 # Irix & OSF native compilers do not like exception declarations
7016 # when exceptions are disabled
7017 if test -n "$MIPSPRO_CXX" -o -n "$COMPAQ_CXX" -o -n "$VACPP"; then
7018 AC_DEFINE(CPP_THROW_NEW, [])
7020 AC_DEFINE(CPP_THROW_NEW, [throw()])
7024 dnl ========================================================
7026 dnl = Build depencency options
7028 dnl ========================================================
7029 MOZ_ARG_HEADER(Build dependencies)
7031 dnl ========================================================
7032 dnl = Do not auto generate dependency info
7033 dnl ========================================================
7035 MOZ_ARG_DISABLE_BOOL(auto-deps,
7036 [ --disable-auto-deps Do not automatically generate dependency info],
7040 if test -n "$MOZ_AUTO_DEPS"; then
7041 dnl ========================================================
7042 dnl = Use mkdepend instead of $CC -MD for dependency generation
7043 dnl ========================================================
7045 MOZ_ARG_DISABLE_BOOL(md,
7046 [ --disable-md Do not use compiler-based dependencies ],
7049 [dnl Default is to turn on -MD if using GNU-compatible compilers
7050 if test "$GNU_CC" -a "$GNU_CXX" -a "$OS_ARCH" != "WINNT" -a "$OS_ARCH" != "WINCE"; then
7053 dnl Default is to use -xM if using Sun Studio on Solaris
7054 if test -z "$GNU_CC" && test -z "$GNU_CXX" && test "$OS_ARCH" = "SunOS"; then
7057 if test "$_cpp_md_flag"; then
7059 if test "$OS_ARCH" = "OpenVMS"; then
7060 _DEPEND_CFLAGS='$(subst =, ,$(filter-out %/.pp,-MM=-MD=-MF=$(MDDEPDIR)/$(basename $(@F)).pp))'
7062 _DEPEND_CFLAGS='$(filter-out %/.pp,-Wp,-MD,$(MDDEPDIR)/$(basename $(@F)).pp)'
7064 dnl Sun Studio on Solaris use -xM instead of -MD, see config/rules.mk
7065 if test -z "$GNU_CC" && test -z "$GNU_CXX" && test "$OS_ARCH" = "SunOS"; then
7070 _USE_CPP_INCLUDE_FLAG=
7071 _DEFINES_CFLAGS='$(ACDEFINES) -D_MOZILLA_CONFIG_H_ -DMOZILLA_CLIENT'
7072 _DEFINES_CXXFLAGS='$(ACDEFINES) -D_MOZILLA_CONFIG_H_ -DMOZILLA_CLIENT'
7076 AC_SUBST(MOZ_AUTO_DEPS)
7077 AC_SUBST(COMPILER_DEPEND)
7081 dnl ========================================================
7083 dnl = Static Build Options
7085 dnl ========================================================
7086 MOZ_ARG_HEADER(Static build options)
7088 MOZ_ARG_ENABLE_BOOL(static,
7089 [ --enable-static Enable building of internal static libs],
7090 BUILD_STATIC_LIBS=1,
7093 dnl Disable libxul in debug builds, but not for xulrunner.
7094 if test -n "$MOZ_DEBUG" -a "$MOZ_BUILD_APP" != "xulrunner"; then
7098 MOZ_ARG_ENABLE_BOOL(libxul,
7099 [ --enable-libxul Enable building of libxul],
7100 MOZ_ENABLE_LIBXUL=1,
7103 if test -n "$MOZ_STATIC_BUILD_UNSUPPORTED" -a -n "$BUILD_STATIC_LIBS"; then
7104 AC_MSG_ERROR([--enable-static is not supported for building $MOZ_APP_NAME. You probably want --enable-libxul.])
7107 if test -n "$MOZ_ENABLE_LIBXUL" -a -n "$BUILD_STATIC_LIBS"; then
7108 AC_MSG_ERROR([--enable-libxul is not compatible with --enable-static])
7111 if test -n "$MOZ_ENABLE_LIBXUL" -a -z "$MOZ_XUL_APP"; then
7112 AC_MSG_ERROR([--enable-libxul is only compatible with toolkit XUL applications.])
7115 if test -n "$MOZ_ENABLE_LIBXUL"; then
7116 XPCOM_LIBS="$LIBXUL_LIBS"
7117 AC_DEFINE(MOZ_ENABLE_LIBXUL)
7119 if test -n "$BUILD_STATIC_LIBS"; then
7120 AC_DEFINE(MOZ_STATIC_BUILD)
7122 XPCOM_LIBS="$DYNAMIC_XPCOM_LIBS"
7125 dnl ========================================================
7126 dnl = Force JS to be a static lib
7127 dnl ========================================================
7128 MOZ_ARG_ENABLE_BOOL(js-static-build,
7129 [ --enable-js-static-build Force js to be a static lib],
7133 AC_SUBST(JS_STATIC_BUILD)
7135 if test -n "$JS_STATIC_BUILD"; then
7136 AC_DEFINE(EXPORT_JS_API)
7138 if test -z "$BUILD_STATIC_LIBS"; then
7139 AC_MSG_ERROR([--enable-js-static-build is only compatible with --enable-static])
7144 dnl ========================================================
7146 dnl = Standalone module options
7148 dnl ========================================================
7149 MOZ_ARG_HEADER(Standalone module options (Not for building Mozilla))
7151 dnl Check for GLib and libIDL.
7152 dnl ========================================================
7153 case "$target_os" in
7154 msvc*|mks*|cygwin*|mingw*|wince*)
7155 SKIP_IDL_CHECK="yes"
7162 if test -z "$COMPILE_ENVIRONMENT"; then
7163 SKIP_IDL_CHECK="yes"
7166 dnl = Allow users to disable libIDL checking for standalone modules
7167 MOZ_ARG_WITHOUT_BOOL(libIDL,
7168 [ --without-libIDL Skip check for libIDL (standalone modules only)],
7169 SKIP_IDL_CHECK="yes")
7171 if test "$SKIP_IDL_CHECK" = "no"
7174 if test "$MACOS_SDK_DIR"; then
7175 dnl xpidl, and therefore libIDL, is only needed on the build host.
7176 dnl Don't build it against the SDK, as that causes problems.
7177 _MACSAVE_CFLAGS="$CFLAGS"
7178 _MACSAVE_LIBS="$LIBS"
7179 _MACSAVE_LDFLAGS="$LDFLAGS"
7180 _MACSAVE_NEXT_ROOT="$NEXT_ROOT"
7182 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"`
7183 LIBS=`echo $LIBS|sed -e "s?-L${MACOS_SDK_DIR}/usr/lib[^ ]*??g"`
7184 LDFLAGS=`echo $LDFLAGS|sed -e "s?-Wl,-syslibroot,${MACOS_SDK_DIR}??g"`
7189 if test "$MOZ_ENABLE_GTK2"; then
7190 PKG_CHECK_MODULES(LIBIDL, libIDL-2.0 >= 0.8.0 glib-2.0 gobject-2.0, _LIBIDL_FOUND=1,_LIBIDL_FOUND=)
7192 dnl if no gtk/libIDL1 or gtk2/libIDL2 combination was found, fall back
7193 dnl to either libIDL1 or libIDL2.
7194 if test -z "$_LIBIDL_FOUND"; then
7195 AM_PATH_LIBIDL($LIBIDL_VERSION,_LIBIDL_FOUND=1)
7196 if test -z "$_LIBIDL_FOUND"; then
7197 PKG_CHECK_MODULES(LIBIDL, libIDL-2.0 >= 0.8.0,_LIBIDL_FOUND=1)
7201 dnl If we don't have a libIDL config program & not cross-compiling,
7202 dnl look for orbit-config instead.
7204 if test -z "$_LIBIDL_FOUND" && test -z "$CROSS_COMPILE"; then
7205 AC_PATH_PROGS(ORBIT_CONFIG, $ORBIT_CONFIG orbit-config)
7206 if test -n "$ORBIT_CONFIG"; then
7207 AC_MSG_CHECKING([for ORBit libIDL usability])
7208 _ORBIT_CFLAGS=`${ORBIT_CONFIG} client --cflags`
7209 _ORBIT_LIBS=`${ORBIT_CONFIG} client --libs`
7210 _ORBIT_INC_PATH=`${PERL} -e '{ for $f (@ARGV) { print "$f " if ($f =~ m/^-I/); } }' -- ${_ORBIT_CFLAGS}`
7211 _ORBIT_LIB_PATH=`${PERL} -e '{ for $f (@ARGV) { print "$f " if ($f =~ m/^-L/); } }' -- ${_ORBIT_LIBS}`
7212 LIBIDL_CFLAGS="$_ORBIT_INC_PATH"
7213 LIBIDL_LIBS="$_ORBIT_LIB_PATH -lIDL -lglib"
7215 _SAVE_CFLAGS="$CFLAGS"
7217 CFLAGS="$LIBIDL_CFLAGS $CFLAGS"
7218 LIBS="$LIBIDL_LIBS $LIBS"
7221 #include <libIDL/IDL.h>
7224 s=strdup(IDL_get_libver_string());
7237 AC_MSG_RESULT($result)
7238 CFLAGS="$_SAVE_CFLAGS"
7242 if test -z "$_LIBIDL_FOUND"; then
7243 AC_MSG_ERROR([libIDL not found.
7244 libIDL $LIBIDL_VERSION or higher is required.])
7246 if test "$MACOS_SDK_DIR"; then
7247 CFLAGS="$_MACSAVE_CFLAGS"
7248 LIBS="$_MACSAVE_LIBS"
7249 LDFLAGS="$_MACSAVE_LDFLAGS"
7250 if test -n "$_MACSAVE_NEXT_ROOT" ; then
7251 export NEXT_ROOT="$_MACSAVE_NEXT_ROOT"
7256 if test -n "$CROSS_COMPILE"; then
7257 if test -z "$HOST_LIBIDL_CONFIG"; then
7258 HOST_LIBIDL_CONFIG="$LIBIDL_CONFIG"
7260 if test -n "$HOST_LIBIDL_CONFIG" && test "$HOST_LIBIDL_CONFIG" != "no"; then
7261 HOST_LIBIDL_CFLAGS=`${HOST_LIBIDL_CONFIG} --cflags`
7262 HOST_LIBIDL_LIBS=`${HOST_LIBIDL_CONFIG} --libs`
7264 HOST_LIBIDL_CFLAGS="$LIBIDL_CFLAGS"
7265 HOST_LIBIDL_LIBS="$LIBIDL_LIBS"
7269 if test -z "$SKIP_PATH_CHECKS"; then
7270 if test -z "${GLIB_CFLAGS}" || test -z "${GLIB_LIBS}" ; then
7271 if test "$MOZ_ENABLE_GTK2" || test "$USE_ELF_DYNSTR_GC" ; then
7272 PKG_CHECK_MODULES(GLIB, glib-2.0 >= 1.3.7 gobject-2.0)
7274 AM_PATH_GLIB(${GLIB_VERSION})
7279 if test -z "${GLIB_GMODULE_LIBS}" -a -n "${GLIB_CONFIG}"; then
7280 GLIB_GMODULE_LIBS=`$GLIB_CONFIG gmodule --libs`
7283 AC_SUBST(LIBIDL_CFLAGS)
7284 AC_SUBST(LIBIDL_LIBS)
7285 AC_SUBST(STATIC_LIBIDL)
7286 AC_SUBST(GLIB_CFLAGS)
7288 AC_SUBST(GLIB_GMODULE_LIBS)
7289 AC_SUBST(HOST_LIBIDL_CONFIG)
7290 AC_SUBST(HOST_LIBIDL_CFLAGS)
7291 AC_SUBST(HOST_LIBIDL_LIBS)
7293 dnl ========================================================
7294 dnl Check for libart
7295 dnl ========================================================
7296 if test "$MOZ_SVG_RENDERER_LIBART"; then
7297 if test ! -f $topsrcdir/other-licenses/libart_lgpl/Makefile.in; then
7298 AC_MSG_ERROR([You must check out the mozilla version of libart. Use
7299 mk_add_options MOZ_CO_MODULE=mozilla/other-licenses/libart_lgpl])
7302 dnl libart's configure hasn't been run yet, but we know what the
7303 dnl answer should be anyway
7304 MOZ_LIBART_CFLAGS='-I${DIST}/include/libart_lgpl'
7305 case "$target_os" in
7306 msvc*|mks*|cygwin*|mingw*|wince*)
7307 MOZ_LIBART_LIBS='$(LIBXUL_DIST)/lib/$(LIB_PREFIX)moz_art_lgpl.$(IMPORT_LIB_SUFFIX)'
7310 MOZ_LIBART_LIBS='-lmoz_art -lm'
7313 MOZ_LIBART_LIBS='-lmoz_art_lgpl -lroot -lbe'
7316 MOZ_LIBART_LIBS='-lmoz_art_lgpl -lm'
7322 AC_SUBST(MOZ_LIBART_CFLAGS)
7323 AC_SUBST(MOZ_LIBART_LIBS)
7325 dnl ========================================================
7327 dnl ========================================================
7328 MOZ_CAIRO_CFLAGS='-I$(LIBXUL_DIST)/include/cairo'
7331 MOZ_ARG_ENABLE_BOOL(system-cairo,
7332 [ --enable-system-cairo Use system cairo (located with pkgconfig)],
7336 # Check for headers defining standard int types.
7337 AC_CHECK_HEADERS(stdint.h inttypes.h sys/int_types.h)
7339 if test "$MOZ_TREE_CAIRO"; then
7340 AC_DEFINE(MOZ_TREE_CAIRO)
7342 # For now we assume that we will have a uint64_t available through
7343 # one of the above headers or mozstdint.h.
7344 AC_DEFINE(HAVE_UINT64_T)
7346 # Define macros for cairo-features.h
7347 if test "$MOZ_X11"; then
7348 XLIB_SURFACE_FEATURE="#define CAIRO_HAS_XLIB_SURFACE 1"
7349 XLIB_XRENDER_SURFACE_FEATURE="#define CAIRO_HAS_XLIB_XRENDER_SURFACE 1"
7350 PS_SURFACE_FEATURE="#define CAIRO_HAS_PS_SURFACE 1"
7351 PDF_SURFACE_FEATURE="#define CAIRO_HAS_PDF_SURFACE 1"
7352 FT_FONT_FEATURE="#define CAIRO_HAS_FT_FONT 1"
7353 MOZ_ENABLE_CAIRO_FT=1
7354 CAIRO_FT_CFLAGS="$FT2_CFLAGS"
7356 if test "$MOZ_WIDGET_TOOLKIT" = "qt"; then
7357 QPAINTER_SURFACE_FEATURE="#define CAIRO_HAS_QPAINTER_SURFACE 1"
7359 if test "$MOZ_WIDGET_TOOLKIT" = "mac" -o "$MOZ_WIDGET_TOOLKIT" = "cocoa"; then
7360 QUARTZ_SURFACE_FEATURE="#define CAIRO_HAS_QUARTZ_SURFACE 1"
7361 QUARTZ_IMAGE_SURFACE_FEATURE="#define CAIRO_HAS_QUARTZ_IMAGE_SURFACE 1"
7362 QUARTZ_FONT_FEATURE="#define CAIRO_HAS_QUARTZ_FONT 1"
7364 if test "$MOZ_WIDGET_TOOLKIT" = "windows"; then
7365 WIN32_SURFACE_FEATURE="#define CAIRO_HAS_WIN32_SURFACE 1"
7366 WIN32_FONT_FEATURE="#define CAIRO_HAS_WIN32_FONT 1"
7367 PDF_SURFACE_FEATURE="#define CAIRO_HAS_PDF_SURFACE 1"
7369 if test "$MOZ_WIDGET_TOOLKIT" = "os2"; then
7370 OS2_SURFACE_FEATURE="#define CAIRO_HAS_OS2_SURFACE 1"
7371 FT_FONT_FEATURE="#define CAIRO_HAS_FT_FONT 1"
7372 PDF_SURFACE_FEATURE="#define CAIRO_HAS_PDF_SURFACE 1"
7373 MOZ_ENABLE_CAIRO_FT=1
7374 CAIRO_FT_CFLAGS="-I${MZFTCFGFT2}/include"
7375 CAIRO_FT_LIBS="-L${MZFTCFGFT2}/lib -lmozft -lmzfntcfg"
7377 if test "$MOZ_WIDGET_TOOLKIT" = "beos"; then
7378 PKG_CHECK_MODULES(CAIRO_FT, fontconfig freetype2)
7379 BEOS_SURFACE_FEATURE="#define CAIRO_HAS_BEOS_SURFACE 1"
7380 FT_FONT_FEATURE="#define CAIRO_HAS_FT_FONT 1"
7381 MOZ_ENABLE_CAIRO_FT=1
7383 AC_SUBST(MOZ_ENABLE_CAIRO_FT)
7384 AC_SUBST(CAIRO_FT_CFLAGS)
7386 if test "$MOZ_DEBUG"; then
7387 SANITY_CHECKING_FEATURE="#define CAIRO_DO_SANITY_CHECKING 1"
7389 SANITY_CHECKING_FEATURE="#undef CAIRO_DO_SANITY_CHECKING"
7392 PNG_FUNCTIONS_FEATURE="#define CAIRO_HAS_PNG_FUNCTIONS 1"
7394 AC_SUBST(PS_SURFACE_FEATURE)
7395 AC_SUBST(PDF_SURFACE_FEATURE)
7396 AC_SUBST(SVG_SURFACE_FEATURE)
7397 AC_SUBST(XLIB_SURFACE_FEATURE)
7398 AC_SUBST(XLIB_XRENDER_SURFACE_FEATURE)
7399 AC_SUBST(QUARTZ_SURFACE_FEATURE)
7400 AC_SUBST(QUARTZ_IMAGE_SURFACE_FEATURE)
7401 AC_SUBST(XCB_SURFACE_FEATURE)
7402 AC_SUBST(WIN32_SURFACE_FEATURE)
7403 AC_SUBST(OS2_SURFACE_FEATURE)
7404 AC_SUBST(BEOS_SURFACE_FEATURE)
7405 AC_SUBST(DIRECTFB_SURFACE_FEATURE)
7406 AC_SUBST(FT_FONT_FEATURE)
7407 AC_SUBST(WIN32_FONT_FEATURE)
7408 AC_SUBST(QUARTZ_FONT_FEATURE)
7409 AC_SUBST(PNG_FUNCTIONS_FEATURE)
7410 AC_SUBST(QPAINTER_SURFACE_FEATURE)
7412 if test "$_WIN32_MSVC"; then
7413 MOZ_CAIRO_LIBS='$(DEPTH)/gfx/cairo/cairo/src/mozcairo.lib $(DEPTH)/gfx/cairo/libpixman/src/mozlibpixman.lib'
7415 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"
7417 if test "$MOZ_X11"; then
7418 MOZ_CAIRO_LIBS="$MOZ_CAIRO_LIBS $XLDFLAGS -lXrender -lfreetype -lfontconfig"
7422 CAIRO_FEATURES_H=gfx/cairo/cairo/src/cairo-features.h
7423 mv -f $CAIRO_FEATURES_H "$CAIRO_FEATURES_H".orig 2> /dev/null
7426 PKG_CHECK_MODULES(CAIRO, cairo >= $CAIRO_VERSION freetype2 fontconfig)
7427 MOZ_CAIRO_CFLAGS=$CAIRO_CFLAGS
7428 MOZ_CAIRO_LIBS=$CAIRO_LIBS
7429 if test "$MOZ_X11"; then
7430 PKG_CHECK_MODULES(CAIRO_XRENDER, cairo-xlib-xrender >= $CAIRO_VERSION)
7431 MOZ_CAIRO_LIBS="$MOZ_CAIRO_LIBS $XLDFLAGS $CAIRO_XRENDER_LIBS"
7432 MOZ_CAIRO_CFLAGS="$MOZ_CAIRO_CFLAGS $CAIRO_XRENDER_CFLAGS"
7436 AC_SUBST(MOZ_TREE_CAIRO)
7437 AC_SUBST(MOZ_CAIRO_CFLAGS)
7438 AC_SUBST(MOZ_CAIRO_LIBS)
7440 dnl ========================================================
7442 dnl ========================================================
7445 MOZ_ARG_ENABLE_BOOL(system-lcms,
7446 [ --enable-system-lcms Use system lcms (located with pkgconfig)],
7450 if test -z "$MOZ_NATIVE_LCMS"
7453 if test "$_WIN32_MSVC"; then
7454 if test -z "$BUILD_STATIC_LIBS" -a -z "$MOZ_ENABLE_LIBXUL"; then
7455 LCMS_CFLAGS=-DLCMS_DLL
7457 LCMS_LIBS='$(LIBXUL_DIST)/lib/mozlcms.lib'
7459 LCMS_LIBS='-L$(LIBXUL_DIST)/bin -lmozlcms'
7462 PKG_CHECK_MODULES(LCMS, lcms >= $LCMS_VERSION)
7465 AC_SUBST(MOZ_NATIVE_LCMS)
7466 AC_SUBST(LCMS_CFLAGS)
7469 dnl ========================================================
7471 dnl ========================================================
7472 MOZ_ARG_DISABLE_BOOL(xul,
7473 [ --disable-xul Disable XUL],
7475 if test "$MOZ_XUL"; then
7478 dnl remove extensions that require XUL
7479 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS | sed -e 's/inspector//' -e 's/venkman//' -e 's/irc//' -e 's/tasks//'`
7484 dnl ========================================================
7485 dnl Two ways to enable Python support:
7486 dnl --enable-extensions=python # select all available.
7487 dnl (MOZ_PYTHON_EXTENSIONS contains the list of extensions)
7489 dnl --enable-extensions=python/xpcom,... # select individual ones
7491 dnl If either is used, we locate the Python to use.
7492 dnl ========================================================
7494 dnl If 'python' appears anywhere in the extensions list, go lookin'...
7495 if test `echo "$MOZ_EXTENSIONS" | grep -c python` -ne 0; then
7496 dnl Allow PYTHON to point to the Python interpreter to use
7497 dnl (note that it must be the python executable - which we
7498 dnl run to locate the relevant paths etc)
7499 dnl If not set, we use whatever Python we can find.
7501 dnl Ask Python what its version number is
7503 MOZ_PYTHON_VER=`$PYTHON -c "import sys;print '%d%d' % sys.version_info[0:2]"`
7504 MOZ_PYTHON_VER_DOTTED=`$PYTHON -c "import sys;print '%d.%d' % sys.version_info[0:2]"`
7506 dnl Ask for the Python "prefix" (ie, home/source dir)
7507 MOZ_PYTHON_PREFIX=`$PYTHON -c "import sys; print sys.prefix"`
7508 dnl Setup the include and library directories.
7509 if test "$OS_ARCH" = "WINNT"; then
7510 MOZ_PYTHON_PREFIX=`$CYGPATH_W $MOZ_PYTHON_PREFIX | $CYGPATH_S`
7511 dnl Source trees have "include" and "PC" for .h, and "PCbuild" for .lib
7512 dnl Binary trees have "include" for .h, and "libs" for .lib
7513 dnl We add 'em both - along with quotes, to handle spaces.
7514 MOZ_PYTHON_DLL_SUFFIX=.pyd
7515 MOZ_PYTHON_INCLUDES="\"-I$MOZ_PYTHON_PREFIX/include\" \"-I$MOZ_PYTHON_PREFIX/PC\""
7516 MOZ_PYTHON_LIBS="\"/libpath:$MOZ_PYTHON_PREFIX/PCBuild\" \"/libpath:$MOZ_PYTHON_PREFIX/libs\""
7518 dnl Non-Windows include and libs
7519 MOZ_PYTHON_DLL_SUFFIX=$DLL_SUFFIX
7520 MOZ_PYTHON_INCLUDES="-I$MOZ_PYTHON_PREFIX/include/python$MOZ_PYTHON_VER_DOTTED"
7521 dnl Check for dynamic Python lib
7522 dnl - A static Python is no good - multiple dynamic libraries (xpcom
7523 dnl - core, xpcom loader, pydom etc) all need to share Python.
7524 dnl - Python 2.3's std --enable-shared configure option will
7525 dnl create a libpython2.3.so.1.0. We should first try this
7526 dnl dotted versioned .so file because this is the one that
7527 dnl the PyXPCOM build mechanics tries to link to.
7528 dnl XXX Should find a better way than hardcoding "1.0".
7529 dnl - Python developement tree dir layouts are NOT allowed here
7530 dnl because the PyXPCOM build just dies on it later anyway.
7531 dnl - Fixes to the above by Python/*nix knowledgable people welcome!
7532 if test -f "$MOZ_PYTHON_PREFIX/lib/libpython$MOZ_PYTHON_VER_DOTTED.so.1.0"; then
7533 MOZ_PYTHON_LIBS="-L$MOZ_PYTHON_PREFIX/lib -lpython$MOZ_PYTHON_VER_DOTTED"
7534 elif test -f "$MOZ_PYTHON_PREFIX/lib64/libpython$MOZ_PYTHON_VER_DOTTED.so.1.0"; then
7535 MOZ_PYTHON_LIBS="-L$MOZ_PYTHON_PREFIX/lib64 -lpython$MOZ_PYTHON_VER_DOTTED"
7536 elif test -f "$MOZ_PYTHON_PREFIX/lib/libpython$MOZ_PYTHON_VER_DOTTED.so"; then
7537 MOZ_PYTHON_LIBS="-L$MOZ_PYTHON_PREFIX/lib -lpython$MOZ_PYTHON_VER_DOTTED"
7538 elif test -f "$MOZ_PYTHON_PREFIX/libpython$MOZ_PYTHON_VER_DOTTED.so"; then
7539 dnl Don't Python development tree directory layout.
7540 MOZ_PYTHON_LIBS="-L$MOZ_PYTHON_PREFIX -lpython$MOZ_PYTHON_VER_DOTTED"
7541 AC_MSG_ERROR([The Python at $MOZ_PYTHON_PREFIX looks like a dev tree. The PyXPCOM build cannot handle this yet. You must 'make install' Python and use the installed tree.])
7542 elif test "$OS_ARCH" = "Darwin"; then
7543 dnl We do Darwin last, so if a custom non-framework build of
7544 dnl python is used on OSX, then it will be picked up first by
7545 dnl the logic above.
7546 MOZ_PYTHON_LIBS="-framework Python"
7548 AC_MSG_ERROR([Could not find build shared libraries for Python at $MOZ_PYTHON_PREFIX. This is required for PyXPCOM.])
7550 if test "$OS_ARCH" = "Linux"; then
7551 MOZ_PYTHON_LIBS="$MOZ_PYTHON_LIBS -lutil"
7554 dnl Handle "_d" on Windows
7555 if test "$OS_ARCH" = "WINNT" && test -n "$MOZ_DEBUG"; then
7556 MOZ_PYTHON_DEBUG_SUFFIX="_d"
7558 MOZ_PYTHON_DEBUG_SUFFIX=
7560 AC_MSG_RESULT(Building Python extensions using python-$MOZ_PYTHON_VER_DOTTED from $MOZ_PYTHON_PREFIX)
7563 dnl If the user asks for the 'python' extension, then we add
7564 dnl MOZ_PYTHON_EXTENSIONS to MOZ_EXTENSIONS - but with the leading 'python/'
7565 dnl Note the careful regex - it must match 'python' followed by anything
7566 dnl other than a '/', including the end-of-string.
7567 if test `echo "$MOZ_EXTENSIONS" | grep -c 'python\([[^/]]\|$\)'` -ne 0; then
7568 for pyext in $MOZ_PYTHON_EXTENSIONS; do
7569 MOZ_EXTENSIONS=`echo $MOZ_EXTENSIONS python/$pyext`
7572 dnl Later we may allow MOZ_PYTHON_EXTENSIONS to be specified on the
7573 dnl command-line, but not yet
7574 AC_SUBST(MOZ_PYTHON_EXTENSIONS)
7575 AC_SUBST(MOZ_PYTHON)
7576 AC_SUBST(MOZ_PYTHON_PREFIX)
7577 AC_SUBST(MOZ_PYTHON_INCLUDES)
7578 AC_SUBST(MOZ_PYTHON_LIBS)
7579 AC_SUBST(MOZ_PYTHON_VER)
7580 AC_SUBST(MOZ_PYTHON_VER_DOTTED)
7581 AC_SUBST(MOZ_PYTHON_DEBUG_SUFFIX)
7582 AC_SUBST(MOZ_PYTHON_DLL_SUFFIX)
7584 dnl ========================================================
7585 dnl disable profile sharing
7586 dnl ========================================================
7587 MOZ_ARG_DISABLE_BOOL(profilesharing,
7588 [ --disable-profilesharing Disable profile sharing],
7589 MOZ_PROFILESHARING=,
7590 MOZ_PROFILESHARING=1 )
7591 if test "$MOZ_PROFILESHARING"; then
7593 AC_DEFINE(MOZ_PROFILESHARING)
7596 dnl ========================================================
7598 dnl ========================================================
7599 MOZ_ARG_ENABLE_BOOL(ipcd,
7600 [ --enable-ipcd Enable IPC daemon],
7604 dnl ========================================================
7605 dnl disable profile locking
7606 dnl do no use this in applications that can have more than
7607 dnl one process accessing the profile directory.
7608 dnl ========================================================
7609 MOZ_ARG_DISABLE_BOOL(profilelocking,
7610 [ --disable-profilelocking Disable profile locking],
7611 MOZ_PROFILELOCKING=,
7612 MOZ_PROFILELOCKING=1 )
7613 if test "$MOZ_PROFILELOCKING"; then
7614 AC_DEFINE(MOZ_PROFILELOCKING)
7617 dnl ========================================================
7618 dnl disable rdf services
7619 dnl ========================================================
7620 MOZ_ARG_DISABLE_BOOL(rdf,
7621 [ --disable-rdf Disable RDF],
7623 if test "$MOZ_RDF"; then
7629 dnl ========================================================
7630 dnl necko configuration options
7631 dnl ========================================================
7634 dnl option to disable various necko protocols
7636 MOZ_ARG_ENABLE_STRING(necko-protocols,
7637 [ --enable-necko-protocols[={http,ftp,default,all,none}]
7638 Enable/disable specific protocol handlers],
7639 [ for option in `echo $enableval | sed 's/,/ /g'`; do
7640 if test "$option" = "yes" || test "$option" = "all"; then
7641 NECKO_PROTOCOLS="$NECKO_PROTOCOLS $NECKO_PROTOCOLS_DEFAULT"
7642 elif test "$option" = "no" || test "$option" = "none"; then
7644 elif test "$option" = "default"; then
7645 NECKO_PROTOCOLS="$NECKO_PROTOCOLS $NECKO_PROTOCOLS_DEFAULT"
7646 elif test `echo "$option" | grep -c \^-` != 0; then
7647 option=`echo $option | sed 's/^-//'`
7648 NECKO_PROTOCOLS=`echo "$NECKO_PROTOCOLS" | sed "s/ ${option}//"`
7650 NECKO_PROTOCOLS="$NECKO_PROTOCOLS $option"
7653 NECKO_PROTOCOLS="$NECKO_PROTOCOLS_DEFAULT")
7655 NECKO_PROTOCOLS=`${PERL} ${srcdir}/build/unix/uniq.pl ${NECKO_PROTOCOLS}`
7656 AC_SUBST(NECKO_PROTOCOLS)
7657 for p in $NECKO_PROTOCOLS; do
7658 AC_DEFINE_UNQUOTED(NECKO_PROTOCOL_$p)
7662 dnl option to disable necko's disk cache
7664 MOZ_ARG_DISABLE_BOOL(necko-disk-cache,
7665 [ --disable-necko-disk-cache
7666 Disable necko disk cache],
7669 AC_SUBST(NECKO_DISK_CACHE)
7670 if test "$NECKO_DISK_CACHE"; then
7671 AC_DEFINE(NECKO_DISK_CACHE)
7675 dnl option to minimize size of necko's i/o buffers
7677 MOZ_ARG_ENABLE_BOOL(necko-small-buffers,
7678 [ --enable-necko-small-buffers
7679 Minimize size of necko's i/o buffers],
7680 NECKO_SMALL_BUFFERS=1,
7681 NECKO_SMALL_BUFFERS=)
7682 AC_SUBST(NECKO_SMALL_BUFFERS)
7683 if test "$NECKO_SMALL_BUFFERS"; then
7684 AC_DEFINE(NECKO_SMALL_BUFFERS)
7688 dnl option to disable cookies
7690 MOZ_ARG_DISABLE_BOOL(cookies,
7691 [ --disable-cookies Disable cookie support],
7694 AC_SUBST(NECKO_COOKIES)
7695 if test "$NECKO_COOKIES"; then
7696 AC_DEFINE(NECKO_COOKIES)
7699 dnl NECKO_ configuration options are not global
7700 _NON_GLOBAL_ACDEFINES="$_NON_GLOBAL_ACDEFINES NECKO_"
7702 dnl Only build Mork if it's required
7704 if test "$MOZ_MORK"; then
7708 dnl Build the lightweight Mork reader if required
7709 AC_SUBST(MOZ_MORKREADER)
7710 if test "$MOZ_MORKREADER"; then
7711 AC_DEFINE(MOZ_MORKREADER)
7714 dnl ========================================================
7715 if test "$MOZ_DEBUG" || test "$NS_TRACE_MALLOC"; then
7716 MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS=
7719 dnl ========================================================
7721 dnl = Maintainer debug option (no --enable equivalent)
7723 dnl ========================================================
7728 AC_SUBST(AR_EXTRACT)
7732 AC_SUBST(AS_DASH_C_FLAG)
7737 AC_SUBST(USE_SHORT_LIBNAME)
7741 AC_SUBST(NS_USE_NATIVE)
7742 AC_SUBST(MOZ_WIDGET_TOOLKIT)
7743 AC_SUBST(MOZ_GFX_TOOLKIT)
7744 AC_SUBST(MOZ_UPDATE_XTERM)
7746 AC_SUBST(MOZ_PLATFORM_HILDON)
7748 AC_SUBST(NS_MAEMO_LOCATION)
7749 AC_SUBST(MOZ_AUTH_EXTENSION)
7750 AC_SUBST(MOZ_MATHML)
7751 AC_SUBST(MOZ_PERMISSIONS)
7753 AC_SUBST(MOZ_NO_INSPECTOR_APIS)
7754 AC_SUBST(MOZ_PREF_EXTENSIONS)
7756 AC_SUBST(MOZ_XSLT_STANDALONE)
7757 AC_SUBST(MOZ_JS_LIBS)
7760 AC_SUBST(MOZ_DEBUG_MODULES)
7761 AC_SUBST(MOZ_PROFILE_MODULES)
7762 AC_SUBST(MOZ_DEBUG_ENABLE_DEFS)
7763 AC_SUBST(MOZ_DEBUG_DISABLE_DEFS)
7764 AC_SUBST(MOZ_DEBUG_FLAGS)
7765 AC_SUBST(MOZ_DEBUG_LDFLAGS)
7766 AC_SUBST(WARNINGS_AS_ERRORS)
7767 AC_SUBST(MOZ_DBGRINFO_MODULES)
7768 AC_SUBST(MOZ_EXTENSIONS)
7769 AC_SUBST(MOZ_IMG_DECODERS)
7770 AC_SUBST(MOZ_IMG_ENCODERS)
7771 AC_SUBST(MOZ_JSDEBUGGER)
7773 AC_SUBST(MOZ_NO_XPCOM_OBSOLETE)
7774 AC_SUBST(MOZ_PLUGINS)
7775 AC_SUBST(ENABLE_EAZEL_PROFILER)
7776 AC_SUBST(EAZEL_PROFILER_CFLAGS)
7777 AC_SUBST(EAZEL_PROFILER_LIBS)
7778 AC_SUBST(MOZ_PERF_METRICS)
7779 AC_SUBST(GC_LEAK_DETECTOR)
7780 AC_SUBST(MOZ_LOG_REFCNT)
7784 AC_SUBST(MOZ_CALLGRIND)
7786 AC_SUBST(MOZ_XPCTOOLS)
7787 AC_SUBST(MOZ_JSLOADER)
7788 AC_SUBST(MOZ_USE_NATIVE_UCONV)
7789 AC_SUBST(MOZ_INSURE)
7790 AC_SUBST(MOZ_INSURE_DIRS)
7791 AC_SUBST(MOZ_INSURE_EXCLUDE_DIRS)
7792 AC_SUBST(MOZ_QUANTIFY)
7793 AC_SUBST(MOZ_INSURIFYING)
7795 AC_SUBST(MOZ_PLACES)
7796 AC_SUBST(MOZ_PLACES_BOOKMARKS)
7797 AC_SUBST(MOZ_STORAGE)
7799 AC_SUBST(NS_PRINTING)
7801 AC_SUBST(MOZ_JAVAXPCOM)
7802 AC_SUBST(JAVA_INCLUDE_PATH)
7807 AC_SUBST(MOZ_PROFILESHARING)
7808 AC_SUBST(MOZ_PROFILELOCKING)
7813 AC_SUBST(MOZ_XIE_LIBS)
7814 AC_SUBST(MOZ_ENABLE_POSTSCRIPT)
7816 AC_SUBST(XPCOM_USE_LEA)
7817 AC_SUBST(BUILD_STATIC_LIBS)
7818 AC_SUBST(MOZ_ENABLE_LIBXUL)
7819 AC_SUBST(ENABLE_TESTS)
7821 AC_SUBST(MOZ_UNIVERSALCHARDET)
7822 AC_SUBST(ACCESSIBILITY)
7823 AC_SUBST(MOZ_XPINSTALL)
7824 AC_SUBST(MOZ_VIEW_SOURCE)
7825 AC_SUBST(MOZ_SPELLCHECK)
7826 AC_SUBST(MOZ_XPFE_COMPONENTS)
7827 AC_SUBST(MOZ_USER_DIR)
7828 AC_SUBST(MOZ_CRASHREPORTER)
7830 AC_SUBST(ENABLE_STRIP)
7831 AC_SUBST(PKG_SKIP_STRIP)
7832 AC_SUBST(USE_ELF_DYNSTR_GC)
7833 AC_SUBST(INCREMENTAL_LINKER)
7834 AC_SUBST(MOZ_COMPONENTS_VERSION_SCRIPT_LDFLAGS)
7835 AC_SUBST(MOZ_COMPONENT_NSPR_LIBS)
7836 AC_SUBST(MOZ_XPCOM_OBSOLETE_LIBS)
7838 AC_SUBST(MOZ_FIX_LINK_PATHS)
7839 AC_SUBST(XPCOM_LIBS)
7840 AC_SUBST(XPCOM_FROZEN_LDOPTS)
7841 AC_SUBST(XPCOM_GLUE_LDOPTS)
7842 AC_SUBST(XPCOM_STANDALONE_GLUE_LDOPTS)
7844 AC_SUBST(USE_DEPENDENT_LIBS)
7846 AC_SUBST(MOZ_BUILD_ROOT)
7847 AC_SUBST(MOZ_OS2_TOOLS)
7848 AC_SUBST(MOZ_OS2_USE_DECLSPEC)
7850 AC_SUBST(MOZ_POST_DSO_LIB_COMMAND)
7851 AC_SUBST(MOZ_POST_PROGRAM_COMMAND)
7852 AC_SUBST(MOZ_TIMELINE)
7854 AC_SUBST(TARGET_DEVICE)
7856 AC_SUBST(MOZ_APP_NAME)
7857 AC_SUBST(MOZ_APP_DISPLAYNAME)
7858 AC_SUBST(MOZ_APP_VERSION)
7859 AC_SUBST(FIREFOX_VERSION)
7861 AC_SUBST(MOZ_PKG_SPECIAL)
7863 AC_SUBST(MOZILLA_OFFICIAL)
7864 AC_SUBST(BUILD_OFFICIAL)
7865 AC_SUBST(MOZ_MILESTONE_RELEASE)
7868 AC_SUBST(MOZ_PROFILE)
7869 AC_SUBST(MOZ_DEBUG_SYMBOLS)
7870 AC_SUBST(MOZ_MAPINFO)
7871 AC_SUBST(MOZ_BROWSE_INFO)
7872 AC_SUBST(MOZ_TOOLS_DIR)
7873 AC_SUBST(CYGWIN_WRAPPER)
7875 AC_SUBST(WIN32_REDIST_DIR)
7878 dnl Echo the CFLAGS to remove extra whitespace.
7885 $_MOZ_EXCEPTIONS_FLAGS \
7886 $_WARNINGS_CXXFLAGS \
7889 COMPILE_CFLAGS=`echo \
7894 COMPILE_CXXFLAGS=`echo \
7895 $_DEFINES_CXXFLAGS \
7899 AC_SUBST(SYSTEM_MAKEDEPEND)
7900 AC_SUBST(SYSTEM_JPEG)
7901 AC_SUBST(SYSTEM_PNG)
7902 AC_SUBST(SYSTEM_ZLIB)
7903 AC_SUBST(SYSTEM_BZ2)
7905 AC_SUBST(JPEG_CFLAGS)
7907 AC_SUBST(ZLIB_CFLAGS)
7909 AC_SUBST(BZ2_CFLAGS)
7911 AC_SUBST(PNG_CFLAGS)
7914 AC_SUBST(MOZ_JPEG_CFLAGS)
7915 AC_SUBST(MOZ_JPEG_LIBS)
7916 AC_SUBST(MOZ_ZLIB_CFLAGS)
7917 AC_SUBST(MOZ_ZLIB_LIBS)
7918 AC_SUBST(MOZ_BZ2_CFLAGS)
7919 AC_SUBST(MOZ_BZ2_LIBS)
7920 AC_SUBST(MOZ_PNG_CFLAGS)
7921 AC_SUBST(MOZ_PNG_LIBS)
7923 AC_SUBST(NSPR_CFLAGS)
7925 AC_SUBST(MOZ_NATIVE_NSPR)
7927 AC_SUBST(NSS_CFLAGS)
7929 AC_SUBST(NSS_DEP_LIBS)
7930 AC_SUBST(MOZ_NATIVE_NSS)
7935 AC_SUBST(COMPILE_CFLAGS)
7936 AC_SUBST(COMPILE_CXXFLAGS)
7939 AC_SUBST(CROSS_COMPILE)
7943 AC_SUBST(HOST_CFLAGS)
7944 AC_SUBST(HOST_CXXFLAGS)
7945 AC_SUBST(HOST_OPTIMIZE_FLAGS)
7947 AC_SUBST(HOST_AR_FLAGS)
7949 AC_SUBST(HOST_RANLIB)
7950 AC_SUBST(HOST_NSPR_MDCPUCFG)
7951 AC_SUBST(HOST_BIN_SUFFIX)
7952 AC_SUBST(HOST_OS_ARCH)
7954 AC_SUBST(TARGET_CPU)
7955 AC_SUBST(TARGET_VENDOR)
7957 AC_SUBST(TARGET_NSPR_MDCPUCFG)
7958 AC_SUBST(TARGET_MD_ARCH)
7959 AC_SUBST(TARGET_XPCOM_ABI)
7962 AC_SUBST(OS_RELEASE)
7965 AC_SUBST(MOZ_DISABLE_JAR_PACKAGING)
7966 AC_SUBST(MOZ_CHROME_FILE_FORMAT)
7968 AC_SUBST(WRAP_MALLOC_CFLAGS)
7969 AC_SUBST(WRAP_MALLOC_LIB)
7972 AC_SUBST(MKSHLIB_FORCE_ALL)
7973 AC_SUBST(MKSHLIB_UNFORCE_ALL)
7974 AC_SUBST(DSO_CFLAGS)
7975 AC_SUBST(DSO_PIC_CFLAGS)
7976 AC_SUBST(DSO_LDOPTS)
7977 AC_SUBST(LIB_PREFIX)
7978 AC_SUBST(DLL_PREFIX)
7979 AC_SUBST(DLL_SUFFIX)
7980 AC_DEFINE_UNQUOTED(MOZ_DLL_SUFFIX, "$DLL_SUFFIX")
7981 AC_SUBST(LIB_SUFFIX)
7982 AC_SUBST(OBJ_SUFFIX)
7983 AC_SUBST(BIN_SUFFIX)
7984 AC_SUBST(ASM_SUFFIX)
7985 AC_SUBST(IMPORT_LIB_SUFFIX)
7987 AC_SUBST(CC_VERSION)
7988 AC_SUBST(CXX_VERSION)
7989 AC_SUBST(MSMANIFEST_TOOL)
7991 if test "$USING_HCC"; then
7992 CC='${topsrcdir}/build/hcc'
7994 CXX='${topsrcdir}/build/hcpp'
7995 CXX="$CXX '$_OLDCXX'"
8000 dnl Check for missing components
8001 if test "$COMPILE_ENVIRONMENT"; then
8002 if test "$MOZ_X11"; then
8003 dnl ====================================================
8004 dnl = Check if X headers exist
8005 dnl ====================================================
8006 _SAVE_CFLAGS=$CFLAGS
8007 CFLAGS="$CFLAGS $XCFLAGS"
8011 #include <X11/Xlib.h>
8012 #include <X11/Intrinsic.h>
8016 if ((dpy = XOpenDisplay(NULL)) == NULL) {
8017 fprintf(stderr, ": can't open %s\n", XDisplayName(NULL));
8021 [ AC_MSG_ERROR([Could not compile basic X program.]) ])
8022 CFLAGS="$_SAVE_CFLAGS"
8024 if test ! -z "$MISSING_X"; then
8025 AC_MSG_ERROR([ Could not find the following X libraries: $MISSING_X ]);
8029 fi # COMPILE_ENVIRONMENT
8031 dnl Set various defines and substitutions
8032 dnl ========================================================
8034 if test "$OS_ARCH" = "BeOS"; then
8037 elif test "$OS_ARCH" = "Darwin"; then
8039 AC_DEFINE(UNIX_ASYNC_DNS)
8041 elif test "$OS_ARCH" = "OpenVMS"; then
8043 elif test "$OS_ARCH" != "WINNT" -a "$OS_ARCH" != "OS2" -a "$OS_ARCH" != "WINCE"; then
8045 AC_DEFINE(UNIX_ASYNC_DNS)
8048 AC_SUBST(MOZ_MOVEMAIL)
8050 AC_DEFINE(JS_THREADSAFE)
8052 if test "$MOZ_DEBUG"; then
8053 AC_DEFINE(MOZ_REFLOW_PERF)
8054 AC_DEFINE(MOZ_REFLOW_PERF_DSP)
8057 if test "$ACCESSIBILITY" -a "$MOZ_ENABLE_GTK2" ; then
8058 AC_DEFINE(MOZ_ACCESSIBILITY_ATK)
8059 ATK_FULL_VERSION=`$PKG_CONFIG --modversion atk`
8060 ATK_MAJOR_VERSION=`echo ${ATK_FULL_VERSION} | $AWK -F\. '{ print $1 }'`
8061 ATK_MINOR_VERSION=`echo ${ATK_FULL_VERSION} | $AWK -F\. '{ print $2 }'`
8062 ATK_REV_VERSION=`echo ${ATK_FULL_VERSION} | $AWK -F\. '{ print $3 }'`
8063 AC_DEFINE_UNQUOTED(ATK_MAJOR_VERSION, $ATK_MAJOR_VERSION)
8064 AC_DEFINE_UNQUOTED(ATK_MINOR_VERSION, $ATK_MINOR_VERSION)
8065 AC_DEFINE_UNQUOTED(ATK_REV_VERSION, $ATK_REV_VERSION)
8068 # Used for LD_LIBRARY_PATH of run_viewer target
8070 for lib_arg in $NSPR_LIBS $TK_LIBS; do
8072 -L* ) LIBS_PATH="${LIBS_PATH:+$LIBS_PATH:}"`expr $lib_arg : "-L\(.*\)"` ;;
8078 dnl ========================================================
8079 dnl Use cygwin wrapper for win32 builds, except MSYS/MinGW
8080 dnl ========================================================
8083 WIN_TOP_SRC=`cd $srcdir; pwd -W`
8086 HOST_CC="\$(CYGWIN_WRAPPER) $HOST_CC"
8087 HOST_CXX="\$(CYGWIN_WRAPPER) $HOST_CXX"
8088 CC="\$(CYGWIN_WRAPPER) $CC"
8089 CXX="\$(CYGWIN_WRAPPER) $CXX"
8090 CPP="\$(CYGWIN_WRAPPER) $CPP"
8091 LD="\$(CYGWIN_WRAPPER) $LD"
8092 AS="\$(CYGWIN_WRAPPER) $AS"
8093 RC="\$(CYGWIN_WRAPPER) $RC"
8094 MIDL="\$(CYGWIN_WRAPPER) $MIDL"
8095 CYGDRIVE_MOUNT=`mount -p | awk '{ if (/^\//) { print $1; exit } }'`
8096 WIN_TOP_SRC=`cygpath -a -w $srcdir | sed -e 's|\\\\|/|g'`
8100 AC_SUBST(CYGDRIVE_MOUNT)
8101 AC_SUBST(WIN_TOP_SRC)
8103 AC_SUBST(MOZILLA_VERSION)
8105 AC_SUBST(ac_configure_args)
8107 dnl Spit out some output
8108 dnl ========================================================
8110 dnl The following defines are used by xpcom
8111 _NON_GLOBAL_ACDEFINES="$_NON_GLOBAL_ACDEFINES
8113 HAVE_CPP_2BYTE_WCHAR_T
8114 HAVE_CPP_ACCESS_CHANGING_USING
8115 HAVE_CPP_AMBIGUITY_RESOLVING_USING
8117 HAVE_CPP_DYNAMIC_CAST_TO_VOID_PTR
8119 HAVE_CPP_MODERN_SPECIALIZE_TEMPLATE_SYNTAX
8120 HAVE_CPP_NAMESPACE_STD
8122 HAVE_CPP_PARTIAL_SPECIALIZATION
8123 HAVE_CPP_TROUBLE_COMPARING_TO_ZERO
8125 HAVE_CPP_UNAMBIGUOUS_STD_NOTEQUAL
8127 NEED_CPP_UNUSED_IMPLEMENTATIONS
8131 HAVE_ICONV_WITH_CONST_INPUT
8139 netwerk/necko-config.h
8140 xpcom/xpcom-config.h
8141 xpcom/xpcom-private.h
8144 # Save the defines header file before autoconf removes it.
8145 # (Do not add AC_DEFINE calls after this line.)
8146 _CONFIG_TMP=confdefs-tmp.h
8147 _CONFIG_DEFS_H=mozilla-config.h
8149 cat > $_CONFIG_TMP <<\EOF
8150 /* List of defines generated by configure. Included with preprocessor flag,
8151 * -include, to avoid long list of -D defines on the compile command-line.
8155 #ifndef _MOZILLA_CONFIG_H_
8156 #define _MOZILLA_CONFIG_H_
8159 _EGREP_PATTERN='^#define ('
8160 if test -n "$_NON_GLOBAL_ACDEFINES"; then
8161 for f in $_NON_GLOBAL_ACDEFINES; do
8162 _EGREP_PATTERN="${_EGREP_PATTERN}$f|"
8165 _EGREP_PATTERN="${_EGREP_PATTERN}dummy_never_defined)"
8167 sort confdefs.h | egrep -v "$_EGREP_PATTERN" >> $_CONFIG_TMP
8169 cat >> $_CONFIG_TMP <<\EOF
8171 #endif /* _MOZILLA_CONFIG_H_ */
8175 # Only write mozilla-config.h when something changes (or it doesn't exist)
8176 if cmp -s $_CONFIG_TMP $_CONFIG_DEFS_H; then
8179 AC_MSG_RESULT("creating $_CONFIG_DEFS_H")
8180 mv -f $_CONFIG_TMP $_CONFIG_DEFS_H
8182 echo ==== $_CONFIG_DEFS_H =================================
8186 dnl Probably shouldn't call this manually but we always want the output of DEFS
8187 rm -f confdefs.h.save
8188 mv confdefs.h confdefs.h.save
8189 egrep -v "$_EGREP_PATTERN" confdefs.h.save > confdefs.h
8190 AC_OUTPUT_MAKE_DEFS()
8192 AC_SUBST(MOZ_DEFINES)
8194 mv confdefs.h.save confdefs.h
8196 dnl Load the list of Makefiles to generate.
8197 dnl To add new Makefiles, edit allmakefiles.sh.
8198 dnl allmakefiles.sh sets the variable, MAKEFILES.
8199 . ${srcdir}/allmakefiles.sh
8201 dnl Run a perl script to quickly create the makefiles.
8202 dnl If it succeeds, it outputs a shell command to set CONFIG_FILES
8203 dnl for the files it cannot handle correctly. This way, config.status
8204 dnl will handle these files.
8205 dnl If it fails, nothing is set and config.status will run as usual.
8207 dnl This does not change the $MAKEFILES variable.
8209 dnl OpenVMS gets a line overflow on the long eval command, so use a temp file.
8211 if test -z "${AS_PERL}"; then
8212 echo $MAKEFILES | ${PERL} $srcdir/build/autoconf/acoutput-fast.pl > conftest.sh
8214 echo $MAKEFILES | ${PERL} $srcdir/build/autoconf/acoutput-fast.pl -nowrap --cygwin-srcdir=$srcdir > conftest.sh
8219 echo $MAKEFILES > unallmakefiles
8221 AC_OUTPUT($MAKEFILES)
8223 dnl Prevent the regeneration of cairo-features.h forcing rebuilds of gfx stuff
8224 if test "$CAIRO_FEATURES_H"; then
8225 if cmp -s $CAIRO_FEATURES_H "$CAIRO_FEATURES_H".orig; then
8226 mv -f "$CAIRO_FEATURES_H".orig "$CAIRO_FEATURES_H" 2> /dev/null
8228 rm -f "$CAIRO_FEATURES_H".orig 2> /dev/null
8232 dnl ========================================================
8233 dnl = Setup a nice relatively clean build environment for
8234 dnl = sub-configures.
8235 dnl ========================================================
8238 CFLAGS="$_SUBDIR_CFLAGS"
8239 CPPFLAGS="$_SUBDIR_CPPFLAGS"
8240 CXXFLAGS="$_SUBDIR_CXXFLAGS"
8241 LDFLAGS="$_SUBDIR_LDFLAGS"
8242 HOST_CC="$_SUBDIR_HOST_CC"
8243 HOST_CFLAGS="$_SUBDIR_HOST_CFLAGS"
8244 HOST_LDFLAGS="$_SUBDIR_HOST_LDFLAGS"
8250 if test "$COMPILE_ENVIRONMENT"; then
8251 if test -z "$MOZ_NATIVE_NSPR"; then
8252 ac_configure_args="$_SUBDIR_CONFIG_ARGS --with-dist-prefix=$MOZ_BUILD_ROOT/dist --with-mozilla"
8253 if test -z "$MOZ_DEBUG"; then
8254 ac_configure_args="$ac_configure_args --disable-debug"
8256 if test "$MOZ_OPTIMIZE" = "1"; then
8257 ac_configure_args="$ac_configure_args --enable-optimize"
8259 if test "$OS_ARCH" = "WINNT" && test "$NS_TRACE_MALLOC"; then
8260 ac_configure_args="$ac_configure_args --enable-debug --disable-optimize"
8262 if test -n "$HAVE_64BIT_OS"; then
8263 ac_configure_args="$ac_configure_args --enable-64bit"
8265 if test -n "$USE_ARM_KUSER"; then
8266 ac_configure_args="$ac_configure_args --with-arm-kuser"
8268 AC_OUTPUT_SUBDIRS(nsprpub)
8269 ac_configure_args="$_SUBDIR_CONFIG_ARGS"
8272 if test -z "$MOZ_NATIVE_NSPR"; then
8273 # Hack to deal with the fact that we use NSPR_CFLAGS everywhere
8274 AC_MSG_WARN([Recreating autoconf.mk with updated nspr-config output])
8275 if test "$OS_ARCH" != "WINNT" && test "$OS_ARCH" != "WINCE"; then
8276 NSPR_LIBS=`./nsprpub/config/nspr-config --prefix=$LIBXUL_DIST --exec-prefix=$MOZ_BUILD_ROOT/dist --libdir=$LIBXUL_DIST/lib --libs`
8277 $PERL -pi.bak -e "s '^NSPR_LIBS\\s*=.*'NSPR_LIBS = $NSPR_LIBS'" config/autoconf.mk
8278 NSPR_CFLAGS=`./nsprpub/config/nspr-config --prefix=$LIBXUL_DIST --exec-prefix=$MOZ_BUILD_ROOT/dist --includedir=$LIBXUL_DIST/include/nspr --cflags`
8279 $PERL -pi.bak -e "s '^NSPR_CFLAGS\\s*=.*'NSPR_CFLAGS = $NSPR_CFLAGS'" config/autoconf.mk
8281 rm -f config/autoconf.mk.bak
8284 fi # COMPILE_ENVIRONMENT