1 dnl -*- Mode: Autoconf; tab-width: 4; indent-tabs-mode: nil; -*-
3 dnl This Source Code Form is subject to the terms of the Mozilla Public
4 dnl License, v. 2.0. If a copy of the MPL was not distributed with this
5 dnl file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 AC_CONFIG_SRCDIR([pr/include/nspr.h])
11 AC_CONFIG_AUX_DIR(${srcdir}/build/autoconf)
14 dnl ========================================================
16 dnl ========================================================
31 _MACOSX_DEPLOYMENT_TARGET=
36 OBJDIR='$(OBJDIR_NAME)'
39 NSINSTALL='$(MOD_DEPTH)/config/$(OBJDIR_NAME)/nsinstall'
40 NOSUCHFILE=/no-such-file
41 LIBNSPR='-L$(dist_libdir) -lnspr$(MOD_MAJOR_VERSION)'
42 LIBPLC='-L$(dist_libdir) -lplc$(MOD_MAJOR_VERSION)'
53 dnl Link in libraries necessary to resolve all symbols for shared libs
56 dnl ========================================================
58 dnl = Dont change the following lines. Doing so breaks:
60 dnl = CFLAGS="-foo" ./configure
62 dnl ========================================================
64 CXXFLAGS="${CXXFLAGS=}"
66 DLLFLAGS="${DLLFLAGS=}"
67 HOST_CFLAGS="${HOST_CFLAGS=}"
68 HOST_LDFLAGS="${HOST_LDFLAGS=}"
71 *-cygwin*|*-mingw*|*-msys*)
72 # Check to see if we are really running in a msvc environemnt
74 AC_CHECK_PROGS(CC, cl)
75 cat > conftest.c <<EOF
81 $($CC -E conftest.c 2>/dev/null | grep COMPILER)
83 if test -n "$dummy"; then
94 if test -n "$_WIN32_MSVC"; then
96 SKIP_COMPILER_CHECKS=1
100 dnl ========================================================
101 dnl = Android uses a very custom (hacky) toolchain; we need to do this
102 dnl = here, so that the compiler checks can succeed
103 dnl ========================================================
105 AC_ARG_WITH(android-ndk,
106 [ --with-android-ndk=DIR
107 location where the Android NDK can be found],
108 android_ndk=$withval)
110 AC_ARG_WITH(android-toolchain,
111 [ --with-android-toolchain=DIR
112 location of the Android toolchain],
113 android_toolchain=$withval)
115 dnl The default android_version is different for each target cpu.
116 case "$target_cpu" in
125 AC_ARG_WITH(android-version,
126 [ --with-android-version=VER
127 Android platform version, default 5 for arm, 9 for x86/mips],
128 android_version=$withval)
130 AC_ARG_WITH(android-platform,
131 [ --with-android-platform=DIR
132 location of platform dir],
133 android_platform=$withval)
136 arm-linux*-android*|*-linuxandroid*)
137 android_tool_prefix="arm-linux-androideabi"
140 android_tool_prefix="i686-linux-android"
143 android_tool_prefix="mipsel-linux-android"
146 android_tool_prefix="$target_os"
151 *-android*|*-linuxandroid*)
152 if test -z "$android_ndk" ; then
153 AC_MSG_ERROR([You must specify --with-android-ndk=/path/to/ndk when targeting Android.])
156 if test -z "$android_toolchain" ; then
157 AC_MSG_CHECKING([for android toolchain directory])
159 kernel_name=`uname -s | tr "[[:upper:]]" "[[:lower:]]"`
161 case "$target_cpu" in
163 target_name=arm-linux-androideabi-4.4.3
166 target_name=x86-4.4.3
169 target_name=mipsel-linux-android-4.4.3
172 android_toolchain="$android_ndk"/toolchains/$target_name/prebuilt/$kernel_name-x86
174 if test -d "$android_toolchain" ; then
175 AC_MSG_RESULT([$android_toolchain])
177 AC_MSG_ERROR([not found. You have to specify --with-android-toolchain=/path/to/ndk/toolchain.])
181 if test -z "$android_platform" ; then
182 AC_MSG_CHECKING([for android platform directory])
184 case "$target_cpu" in
196 android_platform="$android_ndk"/platforms/android-"$android_version"/arch-"$target_name"
198 if test -d "$android_platform" ; then
199 AC_MSG_RESULT([$android_platform])
201 AC_MSG_ERROR([not found. You have to specify --with-android-platform=/path/to/ndk/platform.])
205 dnl Old NDK support. If minimum requirement is changed to NDK r8b,
206 dnl please remove this.
207 case "$target_cpu" in
209 if ! test -e "$android_toolchain"/bin/"$android_tool_prefix"-gcc; then
210 dnl Old NDK toolchain name
211 android_tool_prefix="i686-android-linux"
217 AS="$android_toolchain"/bin/"$android_tool_prefix"-as
218 CC="$android_toolchain"/bin/"$android_tool_prefix"-gcc
219 CXX="$android_toolchain"/bin/"$android_tool_prefix"-g++
220 CPP="$android_toolchain"/bin/"$android_tool_prefix"-cpp
221 LD="$android_toolchain"/bin/"$android_tool_prefix"-ld
222 AR="$android_toolchain"/bin/"$android_tool_prefix"-ar
223 RANLIB="$android_toolchain"/bin/"$android_tool_prefix"-ranlib
224 STRIP="$android_toolchain"/bin/"$android_tool_prefix"-strip
226 CPPFLAGS="-I$android_platform/usr/include $CPPFLAGS"
227 CFLAGS="-mandroid -I$android_platform/usr/include -fno-short-enums -fno-exceptions $CFLAGS"
228 CXXFLAGS="-mandroid -I$android_platform/usr/include -fpic -fno-short-enums -fno-exceptions $CXXFLAGS"
229 LDFLAGS="-mandroid -L$android_platform/usr/lib -Wl,-rpath-link=$android_platform/usr/lib --sysroot=$android_platform $LDFLAGS"
235 dnl ========================================================
237 dnl = Check options that may affect the compiler
239 dnl ========================================================
240 dist_prefix='${MOD_DEPTH}/dist'
241 dist_bindir='${dist_prefix}/bin'
242 dist_includedir='${dist_prefix}/include/nspr'
243 dist_libdir='${dist_prefix}/lib'
244 dnl If the --includedir option was not specified, add '/nspr' to autoconf's
245 dnl default value of includedir.
246 if test "${includedir}" = '${prefix}/include'; then
247 includedir='${prefix}/include/nspr'
250 AC_ARG_WITH(dist-prefix,
251 [ --with-dist-prefix=DIST_PREFIX
252 place build files in DIST_PREFIX [dist]],
253 dist_prefix=$withval)
255 AC_ARG_WITH(dist-bindir,
256 [ --with-dist-bindir=DIR build execuatables in DIR [DIST_PREFIX/bin]],
257 dist_bindir=$withval)
259 AC_ARG_WITH(dist-includedir,
260 [ --with-dist-includedir=DIR
261 build include files in DIR [DIST_PREFIX/include/nspr]],
262 dist_includedir=$withval)
264 AC_ARG_WITH(dist-libdir,
265 [ --with-dist-libdir=DIR build library files in DIR [DIST_PREFIX/lib]],
266 dist_libdir=$withval)
268 AC_SUBST(dist_prefix)
269 AC_SUBST(dist_bindir)
270 AC_SUBST(dist_includedir)
271 AC_SUBST(dist_libdir)
273 dnl Check if NSPR is being compiled for Mozilla
274 dnl Let --with-arg override environment setting
277 [ --with-mozilla Compile NSPR with Mozilla support],
278 [ if test "$withval" = "yes"; then
279 AC_DEFINE(MOZILLA_CLIENT)
284 [ if test -n "$MOZILLA_CLIENT"; then
285 AC_DEFINE(MOZILLA_CLIENT)
288 AC_ARG_ENABLE(optimize,
289 [ --enable-optimize[=OPT] Enable code optimizations (ie. -O2) ],
290 [ if test "$enableval" != "no"; then
292 if test -n "$enableval" -a "$enableval" != "yes"; then
293 _OPTIMIZE_FLAGS=`echo $enableval | sed -e 's|\\\ | |g'`
294 _SAVE_OPTIMIZE_FLAGS=$_OPTIMIZE_FLAGS
301 [ --enable-debug[=DBG] Enable debugging (using compiler flags DBG)],
302 [ if test "$enableval" != "no"; then
305 if test -n "$enableval" -a "$enableval" != "yes"; then
306 _DEBUG_FLAGS=`echo $enableval | sed -e 's|\\\ | |g'`
307 _SAVE_DEBUG_FLAGS=$_DEBUG_FLAGS
314 AC_ARG_ENABLE(debug-symbols,
315 [ --enable-debug-symbols[=DBG] Enable debugging symbols
316 (using compiler flags DBG)],
317 [ if test "$enableval" != "no"; then
319 if test -n "$enableval" -a "$enableval" != "yes"; then
320 if test -z "$_SAVE_DEBUG_FLAGS"; then
321 _DEBUG_FLAGS=`echo $enableval | sed -e 's|\\\ | |g'`
322 _SAVE_DEBUG_FLAGS=$_DEBUG_FLAGS
324 AC_MSG_ERROR([--enable-debug-symbols flags cannot be used with --enable-debug flags])
331 AC_ARG_ENABLE(win32-target,
332 [ --enable-win32-target=\$t
333 Specify win32 flavor. (WIN95 or WINNT)],
334 OS_TARGET=`echo $enableval | tr a-z A-Z`)
336 AC_ARG_ENABLE(symbian-target,
337 [ --enable-symbian-target=\$t
338 Specify symbian flavor. (WINSCW or GCCE)],
339 OS_TARGET=`echo $enableval | tr a-z A-Z`)
341 AC_ARG_ENABLE(debug-rtl,
342 [ --enable-debug-rtl Use the MSVC debug runtime library],
343 [ if test "$enableval" = "yes"; then
349 AC_ARG_ENABLE(static-rtl,
350 [ --enable-static-rtl Use the MSVC static runtime library],
351 [ if test "$enableval" = "yes"; then
356 [ --enable-n32 Enable n32 ABI support (IRIX only)],
357 [ if test "$enableval" = "yes"; then
359 else if test "$enableval" = "no"; then
365 [ --enable-x32 Enable x32 ABI support (x86_64 only)],
366 [ if test "$enableval" = "yes"; then
368 else if test "$enableval" = "no"; then
374 [ --enable-64bit Enable 64-bit support (on certain platforms)],
375 [ if test "$enableval" = "yes"; then
379 AC_ARG_ENABLE(mdupdate,
380 [ --enable-mdupdate Enable use of certain compilers' mdupdate feature],
381 [ if test "$enableval" = "yes"; then
386 [ --enable-cplus Enable some c++ api routines],
387 [ if test "$enableval" = "yes"; then
391 AC_ARG_WITH(arm-kuser,
392 [ --with-arm-kuser Use kuser helpers (Linux/ARM only)
393 (Requires kernel 2.6.13 or later)],
394 [ if test "$withval" = "yes"; then
395 AC_DEFINE(_PR_ARM_KUSER)
398 dnl ========================================================
399 dnl = Mac OS X SDK support
400 dnl ========================================================
401 AC_ARG_WITH(macos-sdk,
402 [ --with-macos-sdk=dir Location of platform SDK to use (Mac OS X only)],
403 MACOS_SDK_DIR=$withval)
405 AC_ARG_ENABLE(macos-target,
406 [ --enable-macos-target=VER
407 Set the minimum MacOS version needed at runtime
408 [10.2 for ppc, 10.4 for x86]],
409 [_MACOSX_DEPLOYMENT_TARGET=$enableval])
411 dnl ========================================================
413 dnl = Set the threading model
415 dnl ========================================================
419 case "${target_os}" in
431 dnl ========================================================
433 dnl = Set the default C compiler
435 dnl ========================================================
436 if test -z "$CC"; then
440 if test -z "$USE_NSPR_THREADS"; then
466 dnl ========================================================
468 dnl = Set the default C++ compiler
470 dnl ========================================================
471 if test -z "$CXX"; then
475 if test -z "$USE_NSPR_THREADS"; then
483 case "${target_os}" in
511 if test -z "$SKIP_PATH_CHECKS"; then
512 AC_PATH_PROG(WHOAMI, $WHOAMI whoami, echo not_whoami)
515 if test -n "$MOZ_DEBUG"; then
517 DEFINES="$DEFINES -UNDEBUG"
519 case "${target_os}" in
521 DEFINES="$DEFINES -DDEBUG_${USER}"
523 mks*|cygwin*|mingw*|msys*|os2*)
524 DEFINES="$DEFINES -DDEBUG_`echo ${USERNAME} | sed -e 's| |_|g'`"
527 DEFINES="$DEFINES -DDEBUG_`$WHOAMI`"
532 DEFINES="$DEFINES -UDEBUG"
535 if test -z "$SKIP_COMPILER_CHECKS"; then
536 dnl ========================================================
537 dnl Checks for compilers.
538 dnl ========================================================
539 if test "$target" != "$host"; then
540 echo "cross compiling from $host to $target"
543 case "$build:$target" in
544 powerpc-apple-darwin8*:i?86-apple-darwin*)
545 dnl The Darwin cross compiler doesn't necessarily point itself at a
546 dnl root that has libraries for the proper architecture, it defaults
547 dnl to the system root. The libraries in the system root on current
548 dnl versions of PPC OS X 10.4 aren't fat, so these target compiler
549 dnl checks will fail. Fake a working SDK in that case.
551 _SAVE_CXXFLAGS=$CXXFLAGS
552 CFLAGS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk $CFLAGS"
553 CXXFLAGS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk $CXXFLAGS"
557 AC_CHECK_PROGS(CC, $CC "${target_alias}-gcc" "${target}-gcc", echo)
559 dnl Now exit the conditional block to invoke AC_PROG_CC.
562 dnl In the latest versions of autoconf, AC_PROG_CC is a one-shot macro,
563 dnl declared with AC_DEFUN_ONCE. So it must not be expanded inside a
564 dnl conditional block. Invoke AC_PROG_CC outside any conditional block
565 dnl and before invoking AC_TRY_COMPILE (which requires AC_PROG_CC).
568 dnl Reenter the conditional blocks after invoking AC_PROG_CC.
569 if test "$target" != "$host"; then
570 if test -n "$USE_CPLUS"; then
571 AC_CHECK_PROGS(CXX, $CXX "${target_alias}-g++" "${target}-g++", echo)
576 case "$build:$target" in
577 powerpc-apple-darwin8*:i?86-apple-darwin*|*:arm*-apple-darwin*)
578 dnl Revert the changes made above. From this point on, the target
579 dnl compiler will never be used without applying the SDK to CFLAGS
580 dnl (see --with-macos-sdk below).
582 CXXFLAGS=$_SAVE_CXXFLAGS
586 AC_CHECK_PROGS(RANLIB, $RANLIB "${target_alias}-ranlib" "${target}-ranlib", echo)
587 AC_CHECK_PROGS(AR, $AR "${target_alias}-ar" "${target}-ar", echo)
588 AC_CHECK_PROGS(AS, $AS "${target_alias}-as" "${target}-as", echo)
589 AC_CHECK_PROGS(LD, $LD "${target_alias}-ld" "${target}-ld", echo)
590 AC_CHECK_PROGS(STRIP, $STRIP "${target_alias}-strip" "${target}-strip", echo)
591 AC_CHECK_PROGS(WINDRES, $WINDRES "${target_alias}-windres" "${target}-windres", echo)
594 _SAVE_CFLAGS="$CFLAGS"
595 _SAVE_LDFLAGS="$LDFLAGS"
597 AC_MSG_CHECKING([for $host compiler])
598 AC_CHECK_PROGS(HOST_CC, $HOST_CC gcc cc /usr/ucb/cc, "")
599 if test -z "$HOST_CC"; then
600 AC_MSG_ERROR([no acceptable cc found in \$PATH])
602 AC_MSG_RESULT([$HOST_CC])
605 CFLAGS="$HOST_CFLAGS"
606 LDFLAGS="$HOST_LDFLAGS"
608 AC_MSG_CHECKING([whether the $host compiler ($HOST_CC $HOST_CFLAGS $HOST_LDFLAGS) works])
609 AC_TRY_COMPILE([], [return 0;],
610 [AC_MSG_RESULT([yes])],
611 [AC_MSG_ERROR([installation or configuration problem: $host compiler $HOST_CC cannot create executables.])] )
615 LDFLAGS=$_SAVE_LDFLAGS
617 if test -n "$USE_CPLUS"; then
618 if test "$CC" = "cl" -a -z "$CXX"; then
625 AC_PATH_PROGS(AS, as, $CC)
626 AC_PATH_PROGS(AR, ar, echo not_ar)
627 AC_PATH_PROGS(LD, ld link, echo not_ld)
628 AC_PATH_PROGS(STRIP, strip, echo not_strip)
629 AC_PATH_PROGS(WINDRES, windres, echo not_windres)
630 if test -z "$HOST_CC"; then
633 if test -z "$HOST_CFLAGS"; then
634 HOST_CFLAGS="$CFLAGS"
640 if test "$GCC" = "yes"; then
643 if test "$GXX" = "yes"; then
646 if test "`echo | $AS -v 2>&1 | grep -c GNU`" != "0"; then
651 case "$build:$target" in
652 i?86-apple-darwin*:powerpc-apple-darwin*)
653 dnl cross_compiling will have erroneously been set to "no" in this
654 dnl case, because the x86 build host is able to run ppc code in a
655 dnl translated environment, making a cross compiler appear native.
660 if test "$cross_compiling" = "yes"; then
666 dnl ========================================================
667 dnl Check for gcc -pipe support
668 dnl ========================================================
669 AC_MSG_CHECKING([for gcc -pipe support])
670 if test -n "$GNU_CC" && test -n "$GNU_CXX" && test -n "$GNU_AS"; then
671 echo '#include <stdio.h>' > dummy-hello.c
672 echo 'int main() { printf("Hello World\n"); return 0; }' >> dummy-hello.c
673 ${CC} -S dummy-hello.c -o dummy-hello.s 2>&5
674 cat dummy-hello.s | ${AS} -o dummy-hello.S - 2>&5
680 if test "$_res_as_stdin" = "yes"; then
682 CFLAGS="$CFLAGS -pipe"
683 AC_TRY_COMPILE( [ #include <stdio.h> ],
684 [printf("Hello World\n");],
685 [_res_gcc_pipe="yes"],
686 [_res_gcc_pipe="no"] )
689 if test "$_res_as_stdin" = "yes" && test "$_res_gcc_pipe" = "yes"; then
691 CFLAGS="$CFLAGS -pipe"
692 CXXFLAGS="$CXXFLAGS -pipe"
696 rm -f dummy-hello.c dummy-hello.s dummy-hello.S dummy-hello a.out
697 AC_MSG_RESULT([$_res])
702 dnl ========================================================
703 dnl Check for pragma diagnostic
704 dnl ========================================================
706 AC_MSG_CHECKING([for pragma diagnostic])
707 if test "$GNU_CC" = "1"; then
708 cat >dummy-hello.c <<EOF
709 #ifdef _PR_HAS_PRAGMA_DIAGNOSTIC
710 #pragma GCC diagnostic push
711 #pragma GCC diagnostic ignored "-Wunused-but-set-variable"
718 ${CC} -Werror=unused-but-set-variable -S dummy-hello.c -o dummy-hello.s 2>&5
719 if test $? != 0; then
720 ${CC} -Werror=unused-but-set-variable -D_PR_HAS_PRAGMA_DIAGNOSTIC -S dummy-hello.c -o dummy-hello.s 2>&5
722 CFLAGS="$CFLAGS -D_PR_HAS_PRAGMA_DIAGNOSTIC=1"
730 rm -f dummy-hello.c dummy-hello.s
731 AC_MSG_RESULT([$_res])
736 dnl ========================================================
737 dnl Profile guided optimization
738 dnl ========================================================
739 dnl Test for profiling options
740 dnl Under gcc 3.4+, use -fprofile-generate/-fprofile-use
742 _SAVE_CFLAGS="$CFLAGS"
743 CFLAGS="$CFLAGS -fprofile-generate -fprofile-correction"
745 AC_MSG_CHECKING([whether C compiler supports -fprofile-generate])
746 AC_TRY_COMPILE([], [return 0;],
747 [ PROFILE_GEN_CFLAGS="-fprofile-generate"
748 result="yes" ], result="no")
749 AC_MSG_RESULT([$result])
751 if test $result = "yes"; then
752 PROFILE_GEN_LDFLAGS="-fprofile-generate"
753 PROFILE_USE_CFLAGS="-fprofile-use -fprofile-correction -Wcoverage-mismatch"
754 PROFILE_USE_LDFLAGS="-fprofile-use"
757 CFLAGS="$_SAVE_CFLAGS"
759 dnl ===============================================================
760 dnl Check for .hidden assembler directive and visibility attribute.
761 dnl Borrowed from glibc configure.in
762 dnl ===============================================================
763 if test "$GNU_CC"; then
764 AC_CACHE_CHECK(for visibility(hidden) attribute,
765 ac_cv_visibility_hidden,
766 [cat > conftest.c <<EOF
767 int foo __attribute__ ((visibility ("hidden"))) = 1;
769 ac_cv_visibility_hidden=no
770 if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
771 if grep '\.hidden.*foo' conftest.s >/dev/null; then
772 ac_cv_visibility_hidden=yes
777 if test "$ac_cv_visibility_hidden" = "yes"; then
778 AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE)
779 AC_CACHE_CHECK(for visibility pragma support,
780 ac_cv_visibility_pragma,
781 [cat > conftest.c <<EOF
782 #pragma GCC visibility push(hidden)
784 #pragma GCC visibility push(default)
787 ac_cv_visibility_pragma=no
788 if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
789 if grep '\.hidden.*foo_hidden' conftest.s >/dev/null; then
790 if ! grep '\.hidden.*foo_default' conftest.s > /dev/null; then
791 ac_cv_visibility_pragma=yes
797 if test "$ac_cv_visibility_pragma" = "yes"; then
798 AC_DEFINE(HAVE_VISIBILITY_PRAGMA)
799 # To work around a build problem on Linux x86-64 (Bugzilla bug
800 # 293438), we use the -fvisibility=hidden flag. This flag is less
801 # optimal than #pragma GCC visibility push(hidden) because the flag
802 # assumes that symbols defined outside the current source file have
803 # the default visibility. This has the advantage that we don't need
804 # to wrap system header files, but has the disadvantage that calls
805 # to hidden symbols defined in other source files cannot be
806 # optimized by the compiler. The -fvisibility=hidden flag does
807 # hide and export symbols correctly.
808 #VISIBILITY_FLAGS='-I$(dist_includedir)/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h'
809 #WRAP_SYSTEM_INCLUDES=1
810 VISIBILITY_FLAGS="-fvisibility=hidden"
811 WRAP_SYSTEM_INCLUDES=
816 fi # SKIP_COMPILER_CHECKS
818 dnl ========================================================
819 dnl Checks for programs.
820 dnl ========================================================
821 if test -z "$SKIP_PATH_CHECKS"; then
822 AC_PATH_PROGS(PERL, perl5 perl, echo not_perl)
823 elif test -z "$PERL"; then
827 dnl ========================================================
828 dnl Default platform specific options
829 dnl ========================================================
834 MKSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
842 if test -n "$CROSS_COMPILE"; then
843 OS_ARCH=`echo $target_os | sed -e 's|/|_|g'`
845 OS_TEST="${target_cpu}"
846 case "${target_os}" in
847 linux*) OS_ARCH=Linux ;;
848 solaris*) OS_ARCH=SunOS OS_RELEASE=5 ;;
849 mingw*) OS_ARCH=WINNT CPU_ARCH=x86 ;;
850 darwin*) OS_ARCH=Darwin ;;
851 riscos*) OS_ARCH=RISCOS ;;
854 OS_ARCH=`uname -s | sed -e 's|/|_|g'`
855 OS_RELEASE=`uname -r`
859 if test "$OS_ARCH" = "IRIX64"; then
863 if test "$OS_ARCH" = "AIX"; then
864 OS_RELEASE=`uname -v`.`uname -r`
867 if test "$OS_ARCH" = "FreeBSD"; then
868 OS_RELEASE=`echo $OS_RELEASE | sed 's/-.*//'`
871 if test "$OS_ARCH" = "Linux"; then
872 OS_RELEASE=`echo $OS_RELEASE | sed 's/-.*//'`
873 OS_RELEASE=`echo $OS_RELEASE | awk -F\. '{ print $1 "." $2 }'`
876 #######################################################################
877 # Master "Core Components" macros for getting the OS target #
878 #######################################################################
881 # Note: OS_TARGET should be specified on the command line for gmake.
882 # When OS_TARGET=WIN95 is specified, then a Windows 95 target is built.
883 # The difference between the Win95 target and the WinNT target is that
884 # the WinNT target uses Windows NT specific features not available
885 # in Windows 95. The Win95 target will run on Windows NT, but (supposedly)
886 # at lesser performance (the Win95 target uses threads; the WinNT target
889 # If OS_TARGET is not specified, it defaults to $(OS_ARCH), i.e., no
894 # The following hack allows one to build on a WIN95 machine (as if
895 # s/he were cross-compiling on a WINNT host for a WIN95 target).
896 # It also accomodates for MKS's uname.exe. If you never intend
897 # to do development on a WIN95 machine, you don't need this hack.
908 CYGWIN_9*|CYGWIN_ME*)
909 OS_ARCH='CYGWIN_NT-4.0'
919 # On WIN32, we also define the variable CPU_ARCH.
925 # If uname -s returns "Windows_NT", we assume that we are using
926 # the uname.exe in MKS toolkit.
928 # The -r option of MKS uname only returns the major version number.
929 # So we need to use its -v option to get the minor version number.
930 # Moreover, it doesn't have the -p option, so we need to use uname -m.
933 OS_MINOR_RELEASE=`uname -v`
934 if test "$OS_MINOR_RELEASE" = "00"; then
937 OS_RELEASE="${OS_RELEASE}.${OS_MINOR_RELEASE}"
940 # MKS's uname -m returns "586" on a Pentium machine.
942 if echo "$CPU_ARCH" | grep -c 86 >/dev/null; then
946 CYGWIN_NT*|MINGW*_NT*|MSYS_NT*)
948 # If uname -s returns "CYGWIN_NT-4.0", we assume that we are using
949 # the uname.exe in the Cygwin tools.
950 # If uname -s returns "MINGW32_NT-5.1", we assume that we are using
951 # the uname.exe in the MSYS tools.
952 # If uname -s returns "MSYS_NT-6.3", we assume that we are using
953 # the uname.exe in the MSYS2 tools.
955 OS_RELEASE=`expr $OS_ARCH : '.*NT-\(.*\)'`
959 # Cygwin's uname -m returns "i686" on a Pentium Pro machine.
961 if echo "$CPU_ARCH" | grep -c 86 >/dev/null; then
967 if test -n "$MOZILLA_CLIENT" && test "$OS_ARCH" = "WINNT"; then
969 if test -n "$MOZ_DEBUG" -a -z "$USE_DEBUG_RTL"; then
973 if test -z "$OS_TARGET"; then
976 if test "$OS_TARGET" = "WIN95"; then
979 OS_CONFIG="${OS_TARGET}${OS_RELEASE}"
981 dnl ========================================================
982 dnl Enable high-memory support on OS/2 by default.
983 dnl ========================================================
984 AC_ARG_ENABLE(os2-high-mem,
985 [ --disable-os2-high-mem Disable high-memory support on OS/2],
986 [ if test "$enableval" = "no"; then
989 MOZ_OS2_HIGH_MEMORY=1
992 dnl ========================================================
993 dnl = ARM toolchain tweaks
994 dnl ========================================================
997 MOZ_ALIGN=toolchain-default
1000 arm*-android*|arm*-linuxandroid*)
1004 MOZ_FLOAT_ABI=softfp
1009 if test -n "$MOZ_PLATFORM_MAEMO"; then
1012 MOZ_FLOAT_ABI=softfp
1014 if test "$MOZ_PLATFORM_MAEMO" = 6; then
1020 dnl Kept for compatibility with some buildbot mozconfig
1021 AC_ARG_ENABLE(thumb2, [], MOZ_THUMB=$enableval)
1024 [ --with-thumb[[=yes|no|toolchain-default]]]
1025 [ Use Thumb instruction set (-mthumb)],
1026 if test -z "$GNU_CC"; then
1027 AC_MSG_ERROR([--with-thumb is not supported on non-GNU toolchain-defaults])
1031 AC_ARG_WITH(thumb-interwork,
1032 [ --with-thumb-interwork[[=yes|no|toolchain-default]]
1033 Use Thumb/ARM instuctions interwork (-mthumb-interwork)],
1034 if test -z "$GNU_CC"; then
1035 AC_MSG_ERROR([--with-thumb-interwork is not supported on non-GNU toolchain-defaults])
1037 MOZ_THUMB_INTERWORK=$withval)
1040 [ --with-arch=[[type|toolchain-default]]
1041 Use specific CPU features (-march=type)],
1042 if test -z "$GNU_CC"; then
1043 AC_MSG_ERROR([--with-arch is not supported on non-GNU toolchain-defaults])
1048 [ --with-fpu=[[type|toolchain-default]]
1049 Use specific FPU type (-mfpu=type)],
1050 if test -z "$GNU_CC"; then
1051 AC_MSG_ERROR([--with-fpu is not supported on non-GNU toolchain-defaults])
1055 AC_ARG_WITH(float-abi,
1056 [ --with-float-abi=[[type|toolchain-default]]
1057 Use specific arm float ABI (-mfloat-abi=type)],
1058 if test -z "$GNU_CC"; then
1059 AC_MSG_ERROR([--with-float-abi is not supported on non-GNU toolchain-defaults])
1061 MOZ_FLOAT_ABI=$withval)
1063 AC_ARG_WITH(soft-float,
1064 [ --with-soft-float[[=yes|no|toolchain-default]]
1065 Use soft float library (-msoft-float)],
1066 if test -z "$GNU_CC"; then
1067 AC_MSG_ERROR([--with-soft-float is not supported on non-GNU toolchain-defaults])
1069 MOZ_SOFT_FLOAT=$withval)
1072 toolchain-default|"")
1076 arch_flag="-march=$MOZ_ARCH"
1080 case "$MOZ_THUMB" in
1083 thumb_flag="-mthumb"
1090 _SAVE_CFLAGS="$CFLAGS"
1092 AC_TRY_COMPILE([],[return sizeof(__thumb2__);],
1095 CFLAGS="$_SAVE_CFLAGS"
1100 case "$MOZ_THUMB_INTERWORK" in
1102 thumb_interwork_flag="-mthumb-interwork"
1105 thumb_interwork_flag="-mno-thumb-interwork"
1107 *) # toolchain-default
1108 thumb_interwork_flag=""
1113 toolchain-default|"")
1117 fpu_flag="-mfpu=$MOZ_FPU"
1121 case "$MOZ_FLOAT_ABI" in
1122 toolchain-default|"")
1126 float_abi_flag="-mfloat-abi=$MOZ_FLOAT_ABI"
1130 case "$MOZ_SOFT_FLOAT" in
1132 soft_float_flag="-msoft-float"
1135 soft_float_flag="-mno-soft-float"
1137 *) # toolchain-default
1142 case "$MOZ_ALIGN" in
1143 toolchain-default|"")
1147 align_flag="-mno-unaligned-access"
1150 align_flag="-munaligned-access"
1157 if test -n "$align_flag"; then
1158 _SAVE_CFLAGS="$CFLAGS"
1159 CFLAGS="$CFLAGS $align_flag"
1160 AC_MSG_CHECKING(whether alignment flag ($align_flag) is supported)
1161 AC_TRY_COMPILE([],[],,align_flag="")
1162 CFLAGS="$_SAVE_CFLAGS"
1165 dnl Use echo to avoid accumulating space characters
1166 all_flags=`echo $arch_flag $thumb_flag $thumb_interwork_flag $fpu_flag $float_abi_flag $soft_float_flag $align_flag`
1167 if test -n "$all_flags"; then
1168 _SAVE_CFLAGS="$CFLAGS"
1170 AC_MSG_CHECKING(whether the chosen combination of compiler flags ($all_flags) works)
1171 AC_TRY_COMPILE([],[return 0;],
1172 AC_MSG_RESULT([yes]),
1175 CFLAGS="$_SAVE_CFLAGS $all_flags"
1176 CXXFLAGS="$CXXFLAGS $all_flags"
1177 ASFLAGS="$ASFLAGS $all_flags"
1178 if test -n "$thumb_flag"; then
1179 LDFLAGS="$LDFLAGS $thumb_flag"
1183 dnl ========================================================
1184 dnl Override of system specific host options
1185 dnl ========================================================
1191 NSINSTALL='$(CYGWIN_WRAPPER) nsinstall'
1192 if test `echo "${PATH}" | grep -c \;` = 0; then
1193 CYGWIN_WRAPPER='sh $(topsrcdir)/build/cygwin-wrapper'
1197 HOST_CFLAGS="$HOST_CFLAGS -DXP_BEOS -DBeOS -DBEOS -D_POSIX_SOURCE"
1202 HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX"
1206 dnl ========================================================
1207 dnl Override of system specific target options
1208 dnl ========================================================
1215 DSO_LDOPTS='-brtl -bnortllib -bM:SRE -bnoentry -bexpall -blibpath:/usr/lib:/lib'
1216 AC_CHECK_HEADER(sys/atomic_op.h, AC_DEFINE(AIX_HAVE_ATOMIC_OP_H))
1217 case "${target_os}" in
1219 AC_DEFINE(AIX_RENAME_SELECT)
1220 AC_DEFINE(_PR_NO_LARGE_FILES)
1221 AIX_LINK_OPTS='-bnso -berok'
1222 PR_MD_ASFILES=os_AIX.s
1225 AC_DEFINE(AIX_TIMERS)
1226 AC_DEFINE(_PR_NO_LARGE_FILES)
1230 AIX_LINK_OPTS='-bnso -berok'
1231 LIBNSPR='-L$(dist_libdir) -lnspr$(MOD_MAJOR_VERSION)_shr'
1232 LIBPLC='-L$(dist_libdir) -lplc$(MOD_MAJOR_VERSION)_shr'
1235 AC_DEFINE(AIX_TIMERS)
1236 AC_DEFINE(_PR_HAVE_OFF64_T)
1237 AIX_LINK_OPTS='-brtl -bnso -berok'
1240 AC_DEFINE(AIX_TIMERS)
1241 AC_DEFINE(_PR_HAVE_OFF64_T)
1242 AC_DEFINE(AIX4_3_PLUS)
1243 AC_DEFINE(HAVE_SOCKLEN_T)
1244 AC_DEFINE(HAVE_FCNTL_FILE_LOCKING)
1246 AIX_LINK_OPTS='-brtl -bnso -berok'
1249 AC_DEFINE(AIX_TIMERS)
1250 AC_DEFINE(_PR_HAVE_OFF64_T)
1251 AC_DEFINE(AIX4_3_PLUS)
1252 AC_DEFINE(HAVE_SOCKLEN_T)
1253 AC_DEFINE(HAVE_FCNTL_FILE_LOCKING)
1255 AIX_LINK_OPTS='-brtl -bnso -berok'
1258 CFLAGS="$CFLAGS -qro -qroconst"
1259 AIX_WRAP='$(DIST)/lib/aixwrap.o'
1260 AIX_TMP='./_aix_tmp.o'
1261 if test -n "$USE_64"; then
1262 MDCPUCFG_H=_aix64.cfg
1265 MDCPUCFG_H=_aix32.cfg
1268 RESOLVE_LINK_SYMBOLS=1
1275 AC_DEFINE(_POSIX_SOURCE)
1277 MDCPUCFG_H=_beos.cfg
1280 RESOLVE_LINK_SYMBOLS=1
1281 case "${target_cpu}" in
1284 _DEBUG_FLAGS='-gdwarf-2 -O0'
1285 MKSHLIB='$(CCC) $(DSO_LDOPTS) -o $@'
1286 AC_CHECK_LIB(bind, gethostbyaddr, [OS_LIBS="$OS_LIBS -lbind -lsocket"])
1292 DSO_LDOPTS='-xms -export pragma -init _init_routine_ -term _term_routine_ -lroot -lnet /boot/develop/lib/ppc/glue-noinit.a /boot/develop/lib/ppc/init_term_dyn.o /boot/develop/lib/ppc/start_dyn.o'
1294 _DEBUG_FLAGS='-g -O0'
1302 AC_DEFINE(NEED_BSDREGEX)
1304 CFLAGS="$CFLAGS -Wall -Wno-format"
1305 CXXFLAGS="$CXXFLAGS -Wall -Wno-format"
1307 if echo "$OS_TEST" | grep -c 86 >/dev/null; then
1309 elif echo "$OS_TEST" | grep -c sparc >/dev/null; then
1313 MDCPUCFG_H=_bsdi.cfg
1318 case "$target_os" in
1320 AC_DEFINE(_PR_BSDI_JMPBUF_IS_ARRAY)
1321 AC_DEFINE(_PR_STAT_HAS_ONLY_ST_ATIME)
1322 AC_DEFINE(_PR_NEED_H_ERRNO)
1329 AC_DEFINE(_PR_TIMESPEC_HAS_TS_SEC)
1330 AC_DEFINE(_PR_BSDI_JMPBUF_IS_ARRAY)
1332 AC_DEFINE(USE_DLFCN)
1333 AC_DEFINE(_PR_STAT_HAS_ST_ATIMESPEC)
1334 PR_MD_ASFILES=os_BSD_OS_386_2.s
1338 AC_DEFINE(_PR_SELECT_CONST_TIMEVAL)
1339 AC_DEFINE(_PR_BSDI_JMPBUF_IS_STRUCT)
1341 AC_DEFINE(USE_DLFCN)
1342 AC_DEFINE(_PR_STAT_HAS_ST_ATIMESPEC)
1343 MKSHLIB='$(CC) -o $@ $(DSO_LDOPTS)'
1345 DSO_LDOPTS='-shared -Wl,-soname,$(@:$(OBJDIR)/%.so=%.so)'
1347 case "$target_os" in
1348 bsdi4.2* | bsdi4.3* | bsdi5.*)
1349 AC_DEFINE(_PR_HAVE_GETPROTO_R)
1350 AC_DEFINE(_PR_HAVE_GETPROTO_R_POINTER)
1355 AC_DEFINE(_PR_SELECT_CONST_TIMEVAL)
1356 AC_DEFINE(_PR_BSDI_JMPBUF_IS_STRUCT)
1358 AC_DEFINE(USE_DLFCN)
1359 AC_DEFINE(_PR_STAT_HAS_ST_ATIMESPEC)
1368 AC_DEFINE(HAVE_BSD_FLOCK)
1369 AC_DEFINE(HAVE_SOCKLEN_T)
1370 AC_DEFINE(HAVE_POINTER_LOCALTIME_R)
1372 HOST_DARWIN_MAJOR=`echo "$build_os" | sed -E -e 's/^darwin([0-9]+).*$/\1/'`
1374 if test "$HOST_DARWIN_MAJOR" -ge 15 ; then
1375 AC_DEFINE(HAS_CONNECTX)
1377 AS='$(CC) -x assembler-with-cpp'
1378 CFLAGS="$CFLAGS -Wall -fno-common"
1379 case "${target_cpu}" in
1384 if test -n "$USE_64"; then
1394 if test "`echo $CC | grep -c '\-arch '`" = "0"; then
1395 CC="$CC -arch $CPU_ARCH"
1397 AC_CHECK_HEADER(crt_externs.h, AC_DEFINE(HAVE_CRT_EXTERNS_H))
1399 DSO_LDOPTS='-dynamiclib -compatibility_version 1 -current_version 1 -all_load -install_name @executable_path/$@ -headerpad_max_install_names'
1401 MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
1402 STRIP="$STRIP -x -S"
1405 MDCPUCFG_H=_darwin.cfg
1406 PR_MD_CSRCS=darwin.c
1407 PR_MD_ASFILES=os_Darwin.s
1409 # Add Mac OS X support for loading CFM & CFBundle plugins
1410 if test -f "${MACOS_SDK_DIR}/System/Library/Frameworks/Carbon.framework/Carbon"; then
1411 AC_DEFINE(XP_MACOSX)
1414 if test -n "$_MACOSX_DEPLOYMENT_TARGET" ; then
1415 dnl Use the specified value
1416 export MACOSX_DEPLOYMENT_TARGET=$_MACOSX_DEPLOYMENT_TARGET
1417 elif test -z "$MACOSX_DEPLOYMENT_TARGET" ; then
1418 dnl No value specified on the command line or in the environment,
1419 dnl use the lesser of the library's minimum or the architecture's
1421 case "${target_cpu}" in
1423 dnl Architecture minimum 10.2
1424 export MACOSX_DEPLOYMENT_TARGET=10.2
1427 dnl Architecture minimum 10.4
1428 export MACOSX_DEPLOYMENT_TARGET=10.4
1433 dnl MACOS_SDK_DIR will be set to the SDK location whenever one is
1434 dnl in use. NEXT_ROOT will be set and exported if it's needed for
1437 if test "$MACOS_SDK_DIR"; then
1438 dnl Sync this section with the one in Mozilla's top level.
1440 if test ! -d "$MACOS_SDK_DIR"; then
1441 AC_MSG_ERROR([SDK not found. When using --with-macos-sdk, you must
1442 specify a valid SDK. SDKs are installed when the optional cross-development
1443 tools are selected during the Xcode/Developer Tools installation.])
1447 CC_VERSION=`$CC -v 2>&1 | grep 'gcc version'`
1448 GCC_VERSION_FULL=`echo $CC_VERSION | $PERL -pe 's/^.*gcc version ([^ ]*).*/$1/'`
1449 GCC_VERSION=`echo $GCC_VERSION_FULL | $PERL -pe '(split(/\./))[0]>=4&&s/(^\d*\.\d*).*/$1/;'`
1451 GCC_VERSION_MAJOR=`echo $GCC_VERSION_FULL | $PERL -pe 's/(^\d*).*/$1/;'`
1452 if test "$GCC_VERSION_MAJOR" -lt "4" ; then
1453 SDK_C_FRAMEWORK="-F${MACOS_SDK_DIR}/System/Library/Frameworks"
1454 if test -d "${MACOS_SDK_DIR}/Library/Frameworks" ; then
1455 SDK_C_FRAMEWORK="$SDK_C_FRAMEWORK -F${MACOS_SDK_DIR}/Library/Frameworks"
1458 SDK_C_INCLUDE="-isystem ${MACOS_SDK_DIR}/usr/include/gcc/darwin/${GCC_VERSION} -isystem ${MACOS_SDK_DIR}/usr/include ${SDK_C_FRAMEWORK}"
1460 CFLAGS="$CFLAGS -nostdinc ${SDK_C_INCLUDE}"
1462 dnl CPP needs to be set for AC_CHECK_HEADER.
1463 CPP="$CPP -nostdinc ${SDK_C_INCLUDE}"
1466 HOST_DARWIN_MAJOR=`echo "$build_os" | sed -E -e 's/^darwin([0-9]+).*$/\1/'`
1468 if test "$HOST_DARWIN_MAJOR" -lt 9 ; then
1469 dnl The build host is running Tiger (10.4) or earlier.
1470 dnl ld support for -syslibroot is compiler-agnostic, but
1471 dnl only available on Tiger and later. On Tiger and
1472 dnl earlier build hosts, just rely on NEXT_ROOT, because
1473 dnl it's not been shown to cause any problems.
1474 MACOS_SDK_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 ${SDK_C_FRAMEWORK}"
1476 dnl The build host is running Leopard (10.5) or later.
1477 dnl With NEXT_ROOT set, the linker will still not apply
1478 dnl it when resolving dependencies. This causes problems
1479 dnl on Leopard, where an SDK depends on frameworks which
1480 dnl were present in earlier OS releases (and the associated
1481 dnl SDK) but not in Leopard. -syslibroot does not have
1482 dnl this problem, but it results in harmless warnings when
1483 dnl NEXT_ROOT is set. NEXT_ROOT needs to remain set even
1484 dnl on Leopard because the compiler uses it too.
1485 MACOS_SDK_LIBS="-Wl,-syslibroot,${MACOS_SDK_DIR}"
1488 LDFLAGS="${MACOS_SDK_LIBS} $LDFLAGS"
1489 export NEXT_ROOT=$MACOS_SDK_DIR
1491 if test -n "$CROSS_COMPILE" ; then
1492 dnl NEXT_ROOT will be in the environment, but it
1493 dnl shouldn't be set for the build host. HOST_CXX is
1494 dnl presently unused.
1495 HOST_CC="NEXT_ROOT= $HOST_CC"
1496 HOST_CXX="NEXT_ROOT= $HOST_CXX"
1499 dnl gcc >= 4.0 uses different paths than above, but knows
1500 dnl how to find them itself.
1501 CFLAGS="$CFLAGS -isysroot ${MACOS_SDK_DIR}"
1503 dnl CPP needs to be set for AC_CHECK_HEADER.
1504 CPP="$CPP -isysroot ${MACOS_SDK_DIR}"
1506 dnl If gcc >= 4.0.0, we're guaranteed to be on Tiger, which
1507 dnl has an ld that supports -syslibroot. Don't set
1508 dnl NEXT_ROOT because it will be ignored and cause
1509 dnl warnings when -syslibroot is specified.
1510 if test "$GCC_VERSION_FULL" != "4.0.0" ; then
1511 dnl gcc > 4.0.0 will pass -syslibroot to ld automatically
1512 dnl based on the -isysroot it receives.
1513 LDFLAGS="$LDFLAGS -isysroot ${MACOS_SDK_DIR}"
1515 dnl gcc 4.0.0 doesn't pass -syslibroot to ld, it needs
1517 LDFLAGS="$LDFLAGS -Wl,-syslibroot,${MACOS_SDK_DIR}"
1526 AC_DEFINE(_PR_LOCAL_THREADS_ONLY)
1530 AC_DEFINE(_DGUX_SOURCE)
1531 AC_DEFINE(_POSIX4A_DRAFT6_SOURCE)
1535 MDCPUCFG_H=_dgux.cfg
1540 if test -z "$USE_NSPR_THREADS"; then
1545 AC_DEFINE(HAVE_BSD_FLOCK)
1546 AC_DEFINE(HAVE_SOCKLEN_T)
1547 AC_DEFINE(HAVE_POINTER_LOCALTIME_R)
1548 CFLAGS="$CFLAGS $(DSO_CFLAGS) -ansi -Wall"
1549 MOZ_OBJFORMAT=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
1550 if test "$MOZ_OBJFORMAT" = "elf"; then
1555 MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
1557 DSO_LDOPTS='-shared -Wl,-soname -Wl,$(notdir $@)'
1558 MDCPUCFG_H=_freebsd.cfg
1559 PR_MD_CSRCS=freebsd.c
1565 AC_DEFINE(_HPUX_SOURCE)
1566 # OSF1 and HPUX report the POLLHUP event for a socket when the
1567 # shutdown(SHUT_WR) operation is called for the remote end, even though
1568 # the socket is still writeable. Use select(), instead of poll(), to
1569 # workaround this problem.
1570 AC_DEFINE(_PR_POLL_WITH_SELECT)
1571 AC_DEFINE(_USE_BIG_FDS)
1572 DSO_LDOPTS='-b +h $(notdir $@)'
1574 if test "$OS_TEST" = "ia64"; then
1576 DSO_LDOPTS="$DSO_LDOPTS +b '\$\$ORIGIN'"
1577 CPU_ARCH_TAG=_$OS_TEST
1578 if test -z "$USE_64"; then
1581 PR_MD_ASFILES=os_HPUX_ia64.s
1585 PR_MD_ASFILES=os_HPUX.s
1587 if test -n "$USE_64"; then
1588 MDCPUCFG_H=_hpux64.cfg
1590 MDCPUCFG_H=_hpux32.cfg
1592 if test -z "$GNU_CC"; then
1598 ASFLAGS="$ASFLAGS -x assembler-with-cpp"
1601 if test -n "$MOZILLA_CLIENT"; then
1602 DEFAULT_IMPL_STRATEGY=_EMU
1605 if echo "$OS_RELEASE" | grep ^A.09 >/dev/null; then
1606 AC_DEFINE(_PR_NEED_H_ERRNO)
1608 DEFAULT_IMPL_STRATEGY=_EMU
1612 if echo "$OS_RELEASE" | egrep '^(A.09|B.10)' >/dev/null; then
1613 AC_DEFINE(_PR_NO_LARGE_FILES)
1616 if echo "$OS_RELEASE" | egrep '^(B.10.10|B.10.20)' >/dev/null; then
1617 AC_DEFINE(_PR_NEED_H_ERRNO)
1620 if echo "$OS_RELEASE" | egrep '^(B.10.10|B.10.20)' >/dev/null; then
1621 AC_DEFINE(HAVE_INT_LOCALTIME_R)
1624 if echo "$OS_RELEASE" | egrep '^(B.10.30|B.11)' >/dev/null; then
1625 AC_DEFINE(HAVE_POINTER_LOCALTIME_R)
1628 # HP-UX 11i v2 (B.11.23) or higher
1630 case "$OS_RELEASE" in
1631 [C-Z]*|B.[2-9]*|B.1[2-9]*|B.11.[3-9]*|B.11.2[3-9]*)
1637 if test "$OS_RELEASE" = "B.10.01"; then
1639 DEFAULT_IMPL_STRATEGY=_EMU
1642 if test "$OS_RELEASE" = "B.10.10"; then
1644 AC_DEFINE(HPUX10_10)
1645 DEFAULT_IMPL_STRATEGY=_PTH
1648 if test "$OS_RELEASE" = "B.10.20"; then
1650 AC_DEFINE(HPUX10_20)
1651 if test -z "$GNU_CC"; then
1652 CFLAGS="$CFLAGS +DAportable +DS1.1"
1653 CXXFLAGS="$CXXFLAGS +DAportable +DS1.1"
1655 DEFAULT_IMPL_STRATEGY=_PTH
1658 if test "$OS_RELEASE" = "B.10.30"; then
1660 AC_DEFINE(HPUX10_30)
1661 if test -z "$GNU_CC"; then
1662 CFLAGS="$CFLAGS +DAportable +DS1.1"
1663 CXXFLAGS="$CXXFLAGS +DAportable +DS1.1"
1665 DEFAULT_IMPL_STRATEGY=_PTH
1668 if echo "$OS_RELEASE" | grep ^B.11 >/dev/null; then
1671 AC_DEFINE(_LARGEFILE64_SOURCE)
1672 AC_DEFINE(_PR_HAVE_OFF64_T)
1673 AC_DEFINE(HAVE_FCNTL_FILE_LOCKING)
1674 if test -z "$GNU_CC"; then
1675 if test -z "$USE_64"; then
1676 if test "$OS_TEST" = "ia64"; then
1677 CFLAGS="$CFLAGS +DD32"
1678 CXXFLAGS="$CXXFLAGS +DD32"
1680 CFLAGS="$CFLAGS +DAportable +DS2.0"
1681 CXXFLAGS="$CXXFLAGS +DAportable +DS2.0"
1684 if test "$OS_TEST" = "ia64"; then
1685 CFLAGS="$CFLAGS +DD64"
1686 CXXFLAGS="$CXXFLAGS +DD64"
1688 CFLAGS="$CFLAGS +DA2.0W +DS2.0"
1689 CXXFLAGS="$CXXFLAGS +DA2.0W +DS2.0"
1693 DEFAULT_IMPL_STRATEGY=_PTH
1696 if test "$DEFAULT_IMPL_STRATEGY" = "_EMU"; then
1700 elif test "$DEFAULT_IMPL_STRATEGY" = "_PTH"; then
1702 if test "$USE_NSPR_THREADS"; then
1705 if test "$USE_USER_PTHREADS"; then
1715 AC_DEFINE(_SGI_MP_SOURCE)
1716 AC_DEFINE(HAVE_FCNTL_FILE_LOCKING)
1718 PR_MD_ASFILES=os_Irix.s
1719 MKSHLIB='$(LD) $(DSO_LDOPTS) -rdata_shared -shared -soname $(notdir $@) -o $@'
1721 RESOLVE_LINK_SYMBOLS=1
1722 if test -n "$USE_64"; then
1723 MDCPUCFG_H=_irix64.cfg
1725 MDCPUCFG_H=_irix32.cfg
1727 case "${target_os}" in
1744 if test "$GNU_CC"; then
1746 dnl If we are using gcc with native binutils, we need to
1748 dnl #lineno "filename" num num
1749 dnl lines, which confuse IRIX native as. Add -Wp,-P to the
1750 dnl gcc command line, which passes -P to the preprocessor.
1752 AS='$(CC) -Wp,-P -x assembler-with-cpp -D_ASM -mips2 $(INCLUDES)'
1753 CFLAGS="$CFLAGS -Wall -Wno-format"
1754 _OPTIMIZE_FLAGS="-O6"
1756 if test -n "$USE_N32"; then
1757 AS='as -D_ASM $(INCLUDES) -n32'
1759 AS='as -D_ASM $(INCLUDES)'
1761 CFLAGS="$CFLAGS -fullwarn -xansi"
1762 if test "$USE_N32"; then
1763 _OPTIMIZE_FLAGS="-O -OPT:Olimit=4000"
1765 _OPTIMIZE_FLAGS="-O -Olimit 4000"
1767 if test "$USE_MDUPDATE"; then
1768 CFLAGS="$CFLAGS -MDupdate \$(DEPENDENCIES)"
1772 CFLAGS="$CFLAGS -multigot"
1773 DSO_LDOPTS="-no_unresolved"
1774 if test "$USE_N32"; then
1775 CFLAGS="$CFLAGS -n32 -woff 1209"
1776 DSO_LDOPTS="$DSO_LDOPTS -n32"
1778 if test "$USE_64"; then
1779 CFLAGS="$CFLAGS -64"
1781 CFLAGS="$CFLAGS -32"
1786 CFLAGS="$CFLAGS -xgot"
1790 if test "${target_os}" = "irix5.3"; then
1793 case "${target_os}" in
1795 if test -z "$GNU_CC"; then
1796 CFLAGS="$CFLAGS -mips3"
1798 AC_DEFINE(_PR_HAVE_GETPROTO_R)
1799 AC_DEFINE(_PR_HAVE_GETPROTO_R_POINTER)
1800 AC_DEFINE(_PR_HAVE_SGI_PRDA_PROCMASK)
1805 AC_DEFINE(_PR_HAVE_SGI_PRDA_PROCMASK)
1810 *-linux*|*-gnu*|*-k*bsd*-gnu|*-android*|*-linuxandroid*)
1811 if test -z "$USE_NSPR_THREADS"; then
1816 AC_DEFINE(_GNU_SOURCE)
1817 AC_DEFINE(HAVE_FCNTL_FILE_LOCKING)
1818 AC_DEFINE(HAVE_POINTER_LOCALTIME_R)
1820 *-android*|*-linuxandroid*)
1828 CFLAGS="$CFLAGS -Wall"
1829 CXXFLAGS="$CXXFLAGS -Wall"
1830 MDCPUCFG_H=_linux.cfg
1832 MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
1834 DSO_LDOPTS='-shared -Wl,-soname -Wl,$(notdir $@)'
1836 _DEBUG_FLAGS="-g -fno-inline" # most people on linux use gcc/gdb, and that
1837 # combo is not yet good at debugging inlined
1838 # functions (even when using DWARF2 as the
1841 if echo "$OS_TEST" | grep -c 86 >/dev/null; then
1846 CPU_ARCH_TAG=_${CPU_ARCH}
1847 case "${target_cpu}" in
1851 CFLAGS="$CFLAGS -mieee"
1852 CXXFLAGS="$CXXFLAGS -mieee"
1856 PR_MD_ASFILES=os_Linux_x86.s
1859 PR_MD_ASFILES=os_Linux_ia64.s
1862 if test -n "$USE_64"; then
1863 PR_MD_ASFILES=os_Linux_x86_64.s
1864 elif test -n "$USE_X32"; then
1865 PR_MD_ASFILES=os_Linux_x86_64.s
1870 PR_MD_ASFILES=os_Linux_x86.s
1876 PR_MD_ASFILES=os_Linux_ppc.s
1879 if test -n "$USE_64"; then
1883 PR_MD_ASFILES=os_Linux_ppc.s
1889 *-mingw*|*-msys*|*-cygwin*|*-mks*)
1892 PR_MD_ARCH_DIR=windows
1893 RESOLVE_LINK_SYMBOLS=1
1895 if test -n "$GNU_CC"; then
1897 CXX="$CXX -mwindows"
1899 MKSHLIB='$(CC) -shared -Wl,--export-all-symbols -Wl,--out-implib -Wl,$(IMPORT_LIBRARY) $(DLLBASE) -o $(subst $(OBJDIR)/,,$(SHARED_LIBRARY))'
1901 # Use temp file for windres (bug 213281)
1902 RCFLAGS='-O coff --use-temp-file'
1905 AR='lib -NOLOGO -OUT:"$@"'
1907 RANLIB='echo not_ranlib'
1908 STRIP='echo not_strip'
1910 GARBAGE='$(OBJDIR)/vc20.pdb $(OBJDIR)/vc40.pdb'
1915 # Determine compiler version
1917 _MSVC_VER_FILTER='s|.* \([0-9]\+\.[0-9]\+\.[0-9]\+\(\.[0-9]\+\)\?\).*|\1|p'
1919 CC_VERSION=`${CC} -v 2>&1 | sed -ne "$_MSVC_VER_FILTER"`
1920 if test -z "$CC_VERSION"; then
1921 AC_MSG_ERROR([Could not determine MSC version.])
1924 _CC_MAJOR_VERSION=`echo ${CC_VERSION} | awk -F\. '{ print $1 }'`
1925 _CC_MINOR_VERSION=`echo ${CC_VERSION} | awk -F\. '{ print $2 }'`
1926 _CC_RELEASE=`echo ${CC_VERSION} | awk -F\. '{ print $3 }'`
1927 _CC_BUILD=`echo ${CC_VERSION} | awk -F\. '{ print $4 }'`
1928 MSC_VER=${_CC_MAJOR_VERSION}${_CC_MINOR_VERSION}
1930 if test "$_CC_MAJOR_VERSION" -eq "14"; then
1931 dnl -DYNAMICBASE is only supported on VC8SP1 or newer,
1932 dnl so be very specific here!
1933 dnl VC8 is 14.00.50727.42, VC8SP1 is 14.00.50727.762
1934 if test $_CC_RELEASE -gt 50727; then
1936 elif test $_CC_BUILD -ge 762; then
1939 AC_DEFINE(_CRT_SECURE_NO_DEPRECATE)
1940 AC_DEFINE(_CRT_NONSTDC_NO_DEPRECATE)
1941 elif test $_CC_MAJOR_VERSION -ge 15; then
1943 AC_DEFINE(_CRT_SECURE_NO_WARNINGS)
1944 AC_DEFINE(_CRT_NONSTDC_NO_WARNINGS)
1947 if test -n "$_USE_DYNAMICBASE"; then
1948 DLLFLAGS="$DLLFLAGS -DYNAMICBASE"
1951 # Ensure that mt is Microsoft (R) Manifest Tool and not magnetic
1952 # tape manipulation utility (or something else)
1953 if test "$MSC_VER" -ge "1400"; then
1955 _MSMT_VER_FILTER='s|.* \([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*|\1|p'
1958 MSMT_TOOL=`mt 2>&1|grep 'Microsoft (R) Manifest Tool'`
1959 if test -n "$MSMT_TOOL"; then
1960 MSMANIFEST_TOOL_VERSION=`echo ${MSMT_TOOL}|sed -ne "$_MSMT_VER_FILTER"`
1961 if test -z "$MSMANIFEST_TOOL_VERSION"; then
1962 AC_MSG_WARN([Unknown version of the Microsoft (R) Manifest Tool.])
1967 AC_MSG_ERROR([Microsoft (R) Manifest Tool must be in your \$PATH.])
1971 CFLAGS="$CFLAGS -W3 -nologo -GF -Gy"
1972 DLLFLAGS="$DLLFLAGS -OUT:\"\$@\""
1976 PROFILE_GEN_CFLAGS="-GL"
1977 PROFILE_GEN_LDFLAGS="-LTCG:PGINSTRUMENT"
1978 PROFILE_USE_CFLAGS="-GL -wd4624 -wd4952"
1979 PROFILE_USE_LDFLAGS="-LTCG:PGUPDATE"
1981 if test "$MSC_VER" -ge "1800"; then
1982 dnl Visual C++ 2013 requires -FS when parallel building with
1983 dnl make -jN. If not specified, compiler sometimes emits C1041
1985 CFLAGS="$CFLAGS -FS"
1986 dnl -Gw can benefit when using linker optimization on PGO.
1987 dnl http://blogs.msdn.com/b/vcblog/archive/2013/09/11/introducing-gw-compiler-switch.aspx
1988 PROFILE_GEN_CFLAGS="$PROFILE_GEN_CFLAGS -Gw"
1989 PROFILE_USE_CFLAGS="$PROFILE_USE_CFLAGS -Gw"
1992 if test -z "$MOZ_OPTIMIZE"; then
1993 CFLAGS="$CFLAGS -Od"
1996 if test "$USE_DEBUG_RTL" = 1; then
1997 if test -n "$USE_STATIC_RTL"; then
1998 CFLAGS="$CFLAGS -MTd"
2000 CFLAGS="$CFLAGS -MDd"
2003 if test -n "$USE_STATIC_RTL"; then
2004 CFLAGS="$CFLAGS -MT"
2006 CFLAGS="$CFLAGS -MD"
2010 if test -n "$MOZ_DEBUG"; then
2013 DEFINES="$DEFINES -U_DEBUG"
2016 if test -n "$MOZ_DEBUG_SYMBOLS"; then
2017 if test -n "$MOZ_OPTIMIZE"; then
2018 DLLFLAGS="$DLLFLAGS -DEBUG -OPT:REF"
2019 LDFLAGS="$LDFLAGS -DEBUG -OPT:REF"
2021 DLLFLAGS="$DLLFLAGS -DEBUG"
2022 LDFLAGS="$LDFLAGS -DEBUG"
2026 OS_DLLFLAGS="-nologo -DLL -SUBSYSTEM:WINDOWS"
2027 if test "$MSC_VER" -le "1200" -a -z "$MOZ_DEBUG_SYMBOLS"; then
2028 OS_DLLFLAGS="$OS_DLLFLAGS -PDB:NONE"
2031 if test "$OS_TARGET" = "WINNT"; then
2032 CFLAGS="$CFLAGS -GT"
2033 LIBNSPR='$(dist_libdir)/libnspr$(MOD_MAJOR_VERSION).$(LIB_SUFFIX)'
2034 LIBPLC='$(dist_libdir)/libplc$(MOD_MAJOR_VERSION).$(LIB_SUFFIX)'
2036 LIBNSPR='$(dist_libdir)/nspr$(MOD_MAJOR_VERSION).$(LIB_SUFFIX)'
2037 LIBPLC='$(dist_libdir)/plc$(MOD_MAJOR_VERSION).$(LIB_SUFFIX)'
2041 if test -n "$USE_STATIC_TLS"; then
2042 AC_DEFINE(_PR_USE_STATIC_TLS)
2045 if test "$OS_TARGET" = "WINNT"; then
2049 # undefine WINNT as some versions of mingw gcc define it by default
2050 DEFINES="$DEFINES -UWINNT"
2051 AC_DEFINE(_PR_GLOBAL_THREADS_ONLY)
2054 if test "$CPU_ARCH" = "x86"; then
2057 CPU_ARCH_TAG=$CPU_ARCH
2060 if test "$USE_DEBUG_RTL" = 1; then
2064 case "$OS_TARGET" in
2066 MDCPUCFG_H=_winnt.cfg
2069 MDCPUCFG_H=_win95.cfg
2072 AC_MSG_ERROR([Missing OS_TARGET for ${target}. Use --enable-win32-target to set.])
2076 case "$target_cpu" in
2078 if test -n "$USE_64"; then
2082 if test -z "$GNU_CC" -a "$MSC_VER" -ge "1700"; then
2083 dnl Visual C++ 2012 defaults to -arch:SSE2. Use -arch:IA32
2084 dnl to avoid requiring SSE2.
2085 CFLAGS="$CFLAGS -arch:IA32"
2102 AC_DEFINE(_CPU_ARCH_NOT_DEFINED)
2110 AC_DEFINE(HAVE_BSD_FLOCK)
2111 AC_DEFINE(HAVE_SOCKLEN_T)
2112 AC_DEFINE(HAVE_POINTER_LOCALTIME_R)
2113 if test -z "$USE_NSPR_THREADS"; then
2116 MDCPUCFG_H=_netbsd.cfg
2117 PR_MD_CSRCS=netbsd.c
2119 DSO_CFLAGS='-fPIC -DPIC'
2120 CFLAGS="$CFLAGS -ansi -Wall"
2121 CXXFLAGS="$CXXFLAGS -ansi -Wall"
2122 MKSHLIB='$(CC) -o $@ $(DSO_LDOPTS)'
2124 if test -z "$OBJECT_FMT"; then
2125 if echo __ELF__ | ${CC-cc} -E - | grep -q __ELF__ 2>/dev/null; then
2128 DSO_LDOPTS='-shared'
2132 DSO_LDOPTS='-shared -Wl,-soname,$(notdir $@)'
2136 if test "$LIBRUNPATH"; then
2137 DSO_LDOPTS="$DSO_LDOPTS -Wl,-R$LIBRUNPATH"
2144 AC_DEFINE(_QNX_SOURCE)
2145 AC_DEFINE(HAVE_POINTER_LOCALTIME_R)
2148 MKSHLIB='$(CC) $(DSO_LDOPTS) -Wl,-soname -Wl,$(notdir $@) -o $@'
2151 OS_LIBS="$OS_LIBS -lsocket"
2152 _OPTIMIZE_FLAGS="-O1"
2153 _DEBUG_FLAGS="-gstabs"
2159 AC_DEFINE(HAVE_BSD_FLOCK)
2160 AC_DEFINE(HAVE_SOCKLEN_T)
2161 AC_DEFINE(HAVE_POINTER_LOCALTIME_R)
2162 CFLAGS="$CFLAGS -ansi -Wall"
2163 CXXFLAGS="$CXXFLAGS -ansi -Wall"
2166 MDCPUCFG_H=_openbsd.cfg
2167 PR_MD_CSRCS=openbsd.c
2169 if test -z "$USE_NSPR_THREADS"; then
2172 DSO_LDOPTS='-shared -fPIC -Wl,-soname,$(notdir $@)'
2173 MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
2177 SHELL_OVERRIDE="SHELL = /usr/bin/ksh"
2180 AC_DEFINE(_REENTRANT)
2181 # OSF1 and HPUX report the POLLHUP event for a socket when the
2182 # shutdown(SHUT_WR) operation is called for the remote end, even though
2183 # the socket is still writeable. Use select(), instead of poll(), to
2184 # workaround this problem.
2185 AC_DEFINE(_PR_POLL_WITH_SELECT)
2187 if echo "$OS_RELEASE" | egrep -c '(V2.0|V3.2)' 2>/dev/null ; then
2191 if test -z "$GNU_CC"; then
2192 CC="$CC -std1 -ieee_with_inexact"
2193 if test "$OS_RELEASE" != "V2.0"; then
2194 CC="$CC -readonly_strings"
2196 _OPTIMIZE_FLAGS="$_OPTIMIZE_FLAGS -Olimit 4000"
2197 AC_CHECK_HEADER(machine/builtins.h, AC_DEFINE(OSF1_HAVE_MACHINE_BUILTINS_H))
2199 CFLAGS="$CFLAGS -mieee"
2200 CXXFLAGS="$CXXFLAGS -mieee"
2203 if echo $OS_RELEASE | egrep -c '(V2.0|V3.2)' 2>/dev/null; then
2204 AC_DEFINE(HAVE_INT_LOCALTIME_R)
2206 AC_DEFINE(HAVE_FCNTL_FILE_LOCKING)
2207 AC_DEFINE(HAVE_POINTER_LOCALTIME_R)
2209 if echo $OS_RELEASE | grep -c V4.0 >/dev/null; then
2210 AC_DEFINE(OSF1V4_MAP_PRIVATE_BUG)
2212 DSO_LDOPTS='-shared -all -expect_unresolved "*" -soname $(notdir $@)'
2213 MDCPUCFG_H=_osf1.cfg
2220 AC_DEFINE(_PR_NEED_H_ERRNO)
2229 AC_DEFINE(_PR_NEED_H_ERRNO)
2231 MDCPUCFG_H=_riscos.cfg
2232 PR_MD_CSRCS=riscos.c
2234 DSO_LDOPTS='-shared -Wl,-soname -Wl,$(notdir $@)'
2235 MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
2244 AC_DEFINE(_PR_NEED_H_ERRNO)
2245 CC='cc -b elf -KPIC'
2246 CXX='$(NSDEPTH)/build/hcpp CC +.cpp +w'
2249 DSO_LDOPTS='-b elf -G'
2250 MDCPUCFG_H=_scoos.cfg
2255 if test -z "$USE_NSPR_THREADS"; then
2264 AC_DEFINE(HAVE_FCNTL_FILE_LOCKING)
2266 MDCPUCFG_H=_solaris.cfg
2267 PR_MD_CSRCS=solaris.c
2269 MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
2270 RESOLVE_LINK_SYMBOLS=1
2271 case "${OS_RELEASE}" in
2275 # It is safe to use the -Bdirect linker flag on Solaris 10 or later.
2279 if test -n "$GNU_CC"; then
2281 if `$CC -print-prog-name=ld` -v 2>&1 | grep -c GNU >/dev/null; then
2284 DSO_LDOPTS='-shared -Wl,-h,$(notdir $@),-z,combreloc,-z,defs,-z,ignore'
2285 if test -n "$USE_B_DIRECT"; then
2286 DSO_LDOPTS="$DSO_LDOPTS,-Bdirect"
2290 DSO_LDOPTS='-G -h $(notdir $@) -z combreloc -z defs -z ignore'
2291 if test -n "$USE_B_DIRECT"; then
2292 DSO_LDOPTS="$DSO_LDOPTS -Bdirect"
2295 if test -n "$GNU_CC"; then
2296 CFLAGS="$CFLAGS -Wall"
2297 CXXFLAGS="$CXXFLAGS -Wall"
2298 if test -n "$USE_MDUPDATE"; then
2299 CFLAGS="$CFLAGS -MDupdate \$(DEPENDENCIES)"
2300 CXXFLAGS="$CXXFLAGS -MDupdate \$(DEPENDENCIES)"
2302 GCC_AS=`$CC -print-prog-name=as`
2303 if test "`echo | $GCC_AS -v 2>&1 | grep -c GNU`" != "0"; then
2307 CFLAGS="$CFLAGS -xstrconst"
2308 CXXFLAGS="$CXXFLAGS -Qoption cg -xstrconst -features=tmplife"
2309 if test -z "$MOZ_OPTIMIZE"; then
2310 CFLAGS="$CFLAGS -xs"
2311 CXXFLAGS="$CXXFLAGS -xs"
2313 _OPTIMIZE_FLAGS=-xO4
2315 if test -z "$GNU_AS"; then
2316 ASFLAGS="$ASFLAGS -Wa,-P"
2318 if test -n "$USE_64"; then
2319 if test -n "$GNU_CC"; then
2323 if test "$OS_TEST" = "i86pc"; then
2324 CC="$CC -xarch=amd64"
2325 CXX="$CXX -xarch=amd64"
2328 CXX="$CXX -xarch=v9"
2332 if test "$OS_TEST" = "i86pc"; then
2333 if test -z "$USE_64"; then
2336 CPU_ARCH_TAG=_$OS_TEST
2337 # The default debug format, DWARF (-g), is not supported by gcc
2338 # on i386-ANY-sysv4/solaris, but the stabs format is. It is
2339 # assumed that the Solaris assembler /usr/ccs/bin/as is used.
2340 # If your gcc uses GNU as, you do not need the -Wa,-s option.
2341 if test -n "$MOZ_DEBUG" && test -n "$GNU_CC"; then
2342 _DEBUG_FLAGS=-gstabs
2343 if test -z "$GNU_AS"; then
2344 _DEBUG_FLAGS="$_DEBUG_FLAGS -Wa,-s"
2348 case "${target_os}" in
2350 AC_DEFINE(_PR_NO_LARGE_FILES)
2353 AC_DEFINE(_PR_NO_LARGE_FILES)
2356 AC_DEFINE(SOLARIS2_5)
2359 AC_DEFINE(_PR_HAVE_OFF64_T)
2360 # The lfcompile64(5) man page on Solaris 2.6 says:
2361 # For applications that do not wish to conform to the POSIX or
2362 # X/Open specifications, the 64-bit transitional interfaces
2363 # are available by default. No compile-time flags need to be
2365 # But gcc 2.7.2.x fails to define _LARGEFILE64_SOURCE by default.
2366 # The native compiler, gcc 2.8.x, and egcs don't have this problem.
2367 if test -n "$GNU_CC"; then
2368 AC_DEFINE(_LARGEFILE64_SOURCE)
2372 case "${target_os}" in
2384 # Solaris 8 or higher has IPv6.
2385 AC_DEFINE(_PR_INET6)
2388 if test "$CPU_ARCH" = "sparc"; then
2389 # 64-bit Solaris SPARC requires V9 architecture, so the following
2391 if test -z "$USE_64"; then
2392 ULTRASPARC_LIBRARY=nspr_flt
2395 # Purify requires that binaries linked against nspr also
2396 # be linked against -lrt (or -lposix4) so add it to OS_LIBS
2398 _librt=`echo $_rev 5.6 | awk '{ if ($1 > $2) print "-lrt"; else print "-lposix4" }'`
2399 OS_LIBS="$OS_LIBS $_librt"
2408 if echo $OS_RELEASE | grep -c 2.1 2>/dev/null; then
2409 AC_DEFINE(_PR_NO_LARGE_FILES)
2410 CC='$(NSDEPTH)/build/hcc cc'
2411 CXX='$(NSDEPTH)/build/hcpp CC'
2412 MDCPUCFG_H=_unixware.cfg
2414 AC_DEFINE(_LARGEFILE64_SOURCE)
2415 AC_DEFINE(_PR_HAVE_OFF64_T)
2416 AC_DEFINE(_PR_HAVE_SOCKADDR_LEN)
2417 MDCPUCFG_H=_unixware7.cfg
2419 PR_MD_CSRCS=unixware.c
2425 AC_ARG_WITH(symbian-sdk,
2426 [ --with-symbian-sdk=SYMBIAN_SDK_DIR
2427 The path to the Symbian SDK],
2428 SYMBIAN_SDK_DIR=$withval)
2430 echo -----------------------------------------------------------------------------
2431 echo Building with Symbian SDK in: $SYMBIAN_SDK_DIR
2432 echo -----------------------------------------------------------------------------
2437 AC_DEFINE(__SYMBIAN32__)
2440 AC_DEFINE(__SUPPORT_CPP_EXCEPTIONS__)
2441 AC_DEFINE(MOZ_STDERR_TO_STDOUT)
2442 AC_DEFINE(HAVE_FCNTL_FILE_LOCKING)
2443 AC_DEFINE(HAVE_SOCKLEN_T)
2451 MDCPUCFG_H=_symbian.cfg
2452 PR_MD_CSRCS=symbian.c
2454 RANLIB='echo no ranlib '
2457 OS_EXE_CFLAGS="$OS_EXE_CFLAGS -D__EXE__"
2458 CFLAGS="$CFLAGS -MD -nostdinc"
2459 SYMBIAN_SYS_INCLUDE="-I$SYMBIAN_SDK_DIR/Epoc32/include/variant -I$SYMBIAN_SDK_DIR/Epoc32/include -I$SYMBIAN_SDK_DIR/Epoc32/include/stdapis"
2460 echo -------------------------------------------------------
2461 echo SYMBIAN_SYS_INCLUDE is: $SYMBIAN_SYS_INCLUDE
2462 echo -------------------------------------------------------
2463 case "$OS_TARGET" in
2469 WINSCW_LD_DIR="\$(SYMBIAN_SDK_DIR)/EPOC32/RELEASE/WINSCW/UDEB"
2470 CFLAGS="$CFLAGS -O0 -inline off -wchar_t off -align 4 -warnings on -w nohidevirtual,nounusedexpr -msgstyle gcc -enum int -str pool -exc ms -trigraphs on -nostderr -gccdep -cwd source -i- -I\$(VPATH)"
2471 SYMBIAN_SYS_INCLUDE="$SYMBIAN_SYS_INCLUDE -include Symbian_OS_v9.2.hrh"
2472 AR_FLAGS="-library -msgstyle gcc -stdlib -subsystem windows -noimplib -o \$@"
2476 AC_DEFINE(__WINSCW__)
2477 DEFINES="$DEFINES -U_WIN32"
2480 CFLAGS="$CFLAGS -Wall -Wno-unknown-pragmas -fexceptions -march=armv5t -mapcs -pipe -x c -msoft-float"
2481 CXXFLAGS="$CXXFLAGS $CFLAGS -Wno-ctor-dtor-privacy"
2482 SYMBIAN_SYS_INCLUDE="$SYMBIAN_SYS_INCLUDE -include $SYMBIAN_SDK_DIR/EPOC32/INCLUDE/GCCE/GCCE.h"
2485 DEFINES="$DEFINES -D__PRODUCT_INCLUDE__=$SYMBIAN_SDK_DIR/Epoc32/include/variant/Symbian_OS_v9.2.hrh"
2488 AC_MSG_ERROR([Missing OS_TARGET for ${target}. Set --enable-symbian-target to with 'WINSCW' or 'GCCE'.])
2491 CFLAGS="$CFLAGS ${SYMBIAN_SYS_INCLUDE}"
2497 AC_DEFINE(BSD_SELECT)
2498 AC_DEFINE(TCPV40HDRS)
2506 RESOLVE_LINK_SYMBOLS=1
2511 CFLAGS="$CFLAGS -Wall -Zomf"
2512 CXXFLAGS="$CFLAGS -Wall -Zomf"
2513 MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
2515 DSO_LDOPTS='-Zomf -Zdll'
2517 _OPTIMIZE_FLAGS="-O2 -s"
2518 _DEBUG_FLAGS="-g -fno-inline"
2519 if test -n "$MOZ_OPTIMIZE"; then
2520 DSO_LDOPTS="$DSO_LDOPTS -Zlinker /EXEPACK:2 -Zlinker /PACKCODE -Zlinker /PACKDATA"
2524 if test -n "$MOZ_OS2_HIGH_MEMORY"; then
2525 LDFLAGS="$LDFLAGS -Zhigh-mem"
2526 AC_DEFINE(MOZ_OS2_HIGH_MEMORY)
2529 # GCC for OS/2 currently predefines these, but we don't want them
2530 DEFINES="$DEFINES -Uunix -U__unix -U__unix__"
2539 if test -z "$SKIP_LIBRARY_CHECKS"; then
2540 dnl ========================================================
2541 dnl Check for system libraries
2542 dnl ========================================================
2545 dnl We don't want anything to link with libdl even if it's present on OS X,
2546 dnl since it's not used and not part of the default installation.
2547 dnl The same goes for BeOS.
2548 dnl OS/2 has dlfcn in libc.
2551 *-darwin*|*-beos*|*-os2*)
2554 AC_CHECK_LIB(dl, dlopen,
2555 [AC_CHECK_HEADER(dlfcn.h,
2556 OS_LIBS="-ldl $OS_LIBS")])
2561 dnl ========================================================
2562 dnl Check for system header files.
2563 dnl ========================================================
2565 dnl ========================================================
2566 dnl Check for typedefs and structs
2567 dnl ========================================================
2569 dnl ========================================================
2570 dnl Checks for library functions.
2571 dnl ========================================================
2572 AC_PROG_GCC_TRADITIONAL
2574 LIBS="$LIBS $OS_LIBS"
2575 AC_CHECK_FUNCS(dladdr gettid lchown setpriority strerror syscall dnl
2576 secure_getenv __secure_getenv)
2579 dnl ========================================================
2581 dnl ========================================================
2583 dnl ======================================================
2584 dnl = Enable compiling with ccache
2585 dnl ======================================================
2587 [ --with-ccache[=path/to/ccache]
2588 Enable compiling with ccache],
2589 CCACHE=$withval, CCACHE="no")
2591 if test "$CCACHE" != "no"; then
2592 if test -n "$CCACHE"; then
2593 if test "$CCACHE" = "yes"; then
2596 if test ! -e "$CCACHE"; then
2597 AC_MSG_ERROR([$CCACHE not found])
2601 AC_PATH_PROGS(CCACHE, $CCACHE ccache)
2602 if test -z "$CCACHE" -o "$CCACHE" = ":"; then
2603 AC_MSG_ERROR([ccache not found])
2604 elif test -x "$CCACHE"; then
2608 AC_MSG_ERROR([$CCACHE is not executable])
2612 dnl ========================================================
2614 dnl = --enable-strip
2616 dnl = Enable stripping of libs and executables
2618 dnl ========================================================
2619 AC_ARG_ENABLE(strip,
2620 [ --enable-strip Enable stripping of shared libs and programs],
2621 [ if test "$enableval" = "yes"; then
2625 dnl Check for hpux options
2626 case "${target_os}" in
2628 if test -z "$GNU_CC"; then
2630 AC_CACHE_CHECK(for +Olit support,
2631 ac_cv_hpux_usable_olit_option,
2632 dnl since aCC doesn't throw an error on invalid options,
2633 dnl we have to test this the hard way
2634 [ac_cv_hpux_usable_olit_option=no
2636 echo 'int main() { return 0; }' | cat > conftest.c
2637 ${CC-cc} ${CFLAGS} +Olit=all -o conftest conftest.c > conftest.out 2>&1
2638 if test $? -eq 0; then
2639 if test -z "`egrep -i '(unrecognize|unknown)' conftest.out`"; then
2640 ac_cv_hpux_usable_olit_option=yes
2646 if test "$ac_cv_hpux_usable_olit_option" = "yes"; then
2647 CFLAGS="$CFLAGS +Olit=all"
2648 CXXFLAGS="$CXXFLAGS +Olit=all"
2650 CFLAGS="$CFLAGS +ESlit"
2651 CXXFLAGS="$CXXFLAGS +ESlit"
2657 case "$target_os" in
2662 AC_CHECK_LIB(pthreads, pthread_create,
2663 _HAVE_PTHREADS=1 _PTHREAD_LDFLAGS="-lpthreads",
2664 AC_CHECK_LIB(pthread, pthread_create,
2665 _HAVE_PTHREADS=1 _PTHREAD_LDFLAGS="-lpthread",
2666 AC_CHECK_LIB(c_r, pthread_create,
2667 _HAVE_PTHREADS=1 _PTHREAD_LDFLAGS="-lc_r",
2668 AC_CHECK_LIB(c, pthread_create,
2677 AC_ARG_WITH(pthreads,
2678 [ --with-pthreads Use system pthreads library as thread subsystem],
2679 [ if test "$withval" = "yes"; then
2680 if test -n "$_HAVE_PTHREADS"; then
2685 AC_MSG_ERROR([ --with-pthreads specified for a system without pthread support ]);
2691 [ if test -n "$_HAVE_PTHREADS" && test -z "$USE_USER_PTHREADS" && test -z "$USE_NSPR_THREADS"; then
2697 AC_ARG_ENABLE(user-pthreads,
2698 [ --enable-user-pthreads Build using userland pthreads],
2699 [ if test "$enableval" = "yes"; then
2700 if test -n "$_HAVE_PTHREADS"; then
2705 AC_MSG_ERROR([ --enable-user-pthreads specified for a system without pthread support ]);
2709 AC_ARG_ENABLE(nspr-threads,
2710 [ --enable-nspr-threads Build using classic nspr threads],
2711 [ if test "$enableval" = "yes"; then
2719 AC_ARG_WITH(bthreads,
2720 [ --with-bthreads Use system bthreads library as thread subsystem
2722 [ if test "$withval" = "yes"; then
2730 fi # SKIP_LIBRARY_CHECKS
2733 [ --enable-ipv6 Compile ipv6 support],
2734 [ if test "$enableval" = "yes"; then
2740 if test -n "$USE_PTHREADS"; then
2741 dnl See if -pthread is supported.
2743 ac_cv_have_dash_pthread=no
2744 AC_MSG_CHECKING(whether ${CC-cc} accepts -pthread)
2745 echo 'int main() { return 0; }' | cat > conftest.c
2746 ${CC-cc} -pthread -o conftest conftest.c > conftest.out 2>&1
2747 if test $? -eq 0; then
2748 if test -z "`egrep -i '(unrecognize|unknown)' conftest.out | grep pthread`" && test -z "`egrep -i '(error|incorrect)' conftest.out`" ; then
2749 ac_cv_have_dash_pthread=yes
2750 case "$target_os" in
2752 # Freebsd doesn't use -pthread for compiles, it uses them for linking
2755 CFLAGS="$CFLAGS -pthread"
2756 CXXFLAGS="$CXXFLAGS -pthread"
2762 AC_MSG_RESULT($ac_cv_have_dash_pthread)
2765 dnl See if -pthreads is supported.
2767 ac_cv_have_dash_pthreads=no
2768 if test "$ac_cv_have_dash_pthread" = "no"; then
2769 AC_MSG_CHECKING(whether ${CC-cc} accepts -pthreads)
2770 echo 'int main() { return 0; }' | cat > conftest.c
2771 ${CC-cc} -pthreads -o conftest conftest.c > conftest.out 2>&1
2772 if test $? -eq 0; then
2773 if test -z "`egrep -i '(unrecognize|unknown)' conftest.out | grep pthreads`" && test -z "`egrep -i '(error|incorrect)' conftest.out`" ; then
2774 ac_cv_have_dash_pthreads=yes
2775 CFLAGS="$CFLAGS -pthreads"
2776 CXXFLAGS="$CXXFLAGS -pthreads"
2780 AC_MSG_RESULT($ac_cv_have_dash_pthreads)
2785 if test "$ac_cv_have_dash_pthreads" = "yes"; then
2790 AC_DEFINE(_REENTRANT)
2791 AC_DEFINE(_THREAD_SAFE)
2792 dnl -pthread links in -lc_r, so don't specify it explicitly.
2793 if test "$ac_cv_have_dash_pthread" = "yes"; then
2794 _PTHREAD_LDFLAGS="-pthread"
2796 _PTHREAD_LDFLAGS="-lc_r"
2800 if test "$ac_cv_have_dash_pthread" = "yes"; then
2801 _PTHREAD_LDFLAGS="-pthread"
2805 AC_DEFINE(_THREAD_SAFE)
2806 dnl -pthread links in -lc_r, so don't specify it explicitly.
2807 if test "$ac_cv_have_dash_pthread" = "yes"; then
2812 if test "$ac_cv_have_dash_pthread" = "yes"; then
2813 _PTHREAD_LDFLAGS=-pthread
2816 *-linux*|*-gnu*|*-k*bsd*-gnu)
2817 AC_DEFINE(_REENTRANT)
2822 if test -n "$USE_USER_PTHREADS"; then
2829 dnl Special thread exceptions
2833 if test -n "$USE_NSPR_THREADS"; then
2834 AC_DEFINE(_PR_LOCAL_THREADS_ONLY)
2836 case "$target_os" in
2838 if test -z "$USE_PTHREADS"; then
2839 AC_DEFINE(AIX_RENAME_SELECT)
2843 if test -z "$USE_NSPR_THREADS"; then
2844 AC_DEFINE(HAVE_POINTER_LOCALTIME_R)
2848 if test -z "$USE_NSPR_THREADS"; then
2849 AC_DEFINE(HAVE_POINTER_LOCALTIME_R)
2851 if test -n "$USE_PTHREADS"; then
2852 AC_DEFINE(_PR_HAVE_THREADSAFE_GETHOST)
2856 if test -z "$USE_NSPR_THREADS"; then
2857 AC_DEFINE(HAVE_POINTER_LOCALTIME_R)
2859 if test -n "$USE_PTHREADS"; then
2860 AC_DEFINE(_PR_HAVE_THREADSAFE_GETHOST)
2866 if test -n "$USE_PTHREADS"; then
2867 AC_DEFINE(_PR_NEED_PTHREAD_INIT)
2871 if test -n "$USE_NSPR_THREADS"; then
2872 AC_DEFINE(_PR_LOCAL_THREADS_ONLY)
2876 if test -n "$USE_NSPR_THREADS"; then
2877 AC_DEFINE(_PR_LOCAL_THREADS_ONLY)
2879 if test "$USE_PTHREADS"; then
2880 AC_DEFINE_UNQUOTED(_POSIX_C_SOURCE,199506L)
2881 AC_DEFINE(_PR_HAVE_THREADSAFE_GETHOST)
2883 if test "$USE_USER_PTHREADS"; then
2884 AC_DEFINE_UNQUOTED(_POSIX_C_SOURCE,199506L)
2888 if test "${target_os}" = "irix6.5"; then
2889 if test -n "$USE_PTHREADS"; then
2890 AC_DEFINE(_PR_HAVE_GETHOST_R)
2891 AC_DEFINE(_PR_HAVE_GETHOST_R_POINTER)
2895 *-linux*|*-gnu*|*-k*bsd*-gnu)
2896 if test -n "$USE_NSPR_THREADS"; then
2897 AC_DEFINE(_PR_LOCAL_THREADS_ONLY)
2900 *-mingw*|*-msys*|*-cygwin*|*-mks*|*-os2*|*-beos*)
2901 dnl win32, os2 & beos cannot use pthreads
2906 *-netbsd*|*-openbsd*)
2907 if test -n "$USE_NSPR_THREADS"; then
2908 AC_DEFINE(_PR_LOCAL_THREADS_ONLY)
2912 if test -n "$USE_NSPR_THREADS"; then
2913 AC_DEFINE(_PR_LOCAL_THREADS_ONLY)
2915 if test -n "$USE_PTHREADS"; then
2916 if echo $OS_RELEASE | egrep -c '(V2.0|V3.2)' 2>/dev/null; then
2919 AC_DEFINE(_PR_HAVE_THREADSAFE_GETHOST)
2924 if test -n "$USE_NSPR_THREADS"; then
2925 AC_DEFINE(_PR_LOCAL_THREADS_ONLY)
2927 if test -n "$USE_PTHREADS"; then
2928 AC_DEFINE(_REENTRANT)
2929 AC_DEFINE(HAVE_POINTER_LOCALTIME_R)
2930 if test "$OS_TEST" = "i86pc"; then
2931 if test -n "$USE_64"; then
2932 PR_MD_ASFILES=os_SunOS_x86_64.s
2934 PR_MD_ASFILES=os_SunOS_x86.s
2937 if test -n "$USE_64"; then
2938 PR_MD_ASFILES=os_SunOS_sparcv9.s
2944 if test -n "$USE_PTHREADS"; then
2945 AC_DEFINE(_PR_HAVE_GETHOST_R)
2946 AC_DEFINE(_PR_HAVE_GETHOST_R_POINTER)
2951 OS_LIBS="$_PTHREAD_LDFLAGS $OS_LIBS"
2953 dnl If the user passed in arg to --enable-optimize or --enable-debug,
2954 dnl make sure that we use it.
2955 if test -n "$_SAVE_OPTIMIZE_FLAGS"; then
2956 _OPTIMIZE_FLAGS="$_SAVE_OPTIMIZE_FLAGS"
2959 if test -n "$_SAVE_DEBUG_FLAGS"; then
2960 _DEBUG_FLAGS="$_SAVE_DEBUG_FLAGS"
2963 if test -n "$MOZ_OPTIMIZE"; then
2964 CFLAGS="$CFLAGS $_OPTIMIZE_FLAGS"
2965 CXXFLAGS="$CXXFLAGS $_OPTIMIZE_FLAGS"
2968 if test -n "$MOZ_DEBUG_SYMBOLS"; then
2969 CFLAGS="$CFLAGS $_DEBUG_FLAGS"
2970 CXXFLAGS="$CXXFLAGS $_DEBUG_FLAGS"
2973 if test -n "$MOZ_OPTIMIZE"; then
2979 if test -n "$USE_64"; then
2983 RELEASE_OBJDIR_NAME="${OS_CONFIG}${CPU_ARCH_TAG}${COMPILER_TAG}${IMPL_STRATEGY}${OBJDIR_TAG}.${OBJDIR_SUFFIX}"
2985 dnl ========================================================
2986 dnl Use cygwin wrapper for win32 builds, except MSYS/MinGW
2987 dnl ========================================================
2988 case "$target_os" in
2990 CC="\$(CYGWIN_WRAPPER) $CC"
2991 CXX="\$(CYGWIN_WRAPPER) $CXX"
2992 RC="\$(CYGWIN_WRAPPER) $RC"
2996 dnl ========================================================
2997 dnl = Use malloc wrapper lib
2998 dnl ========================================================
2999 AC_ARG_ENABLE(wrap-malloc,
3000 [ --enable-wrap-malloc Wrap malloc calls (gnu linker only)],
3001 [ if test "$enableval" = "yes"; then
3005 if test -n "$_WRAP_MALLOC"; then
3006 if test -n "$GNU_CC"; then
3007 WRAP_LDFLAGS="${WRAP_LDFLAGS} -Wl,--wrap=malloc,--wrap=calloc,--wrap=valloc,--wrap=free,--wrap=realloc,--wrap=memalign"
3008 WRAP_LDFLAGS="${WRAP_LDFLAGS} -Wl,--wrap=__builtin_new,--wrap=__builtin_vec_new,--wrap=__builtin_delete,--wrap=__builtin_vec_delete"
3009 WRAP_LDFLAGS="${WRAP_LDFLAGS} -Wl,--wrap=strdup,--wrap=strndup"
3010 WRAP_LDFLAGS="${WRAP_LDFLAGS} -Wl,--wrap=posix_memalign,--wrap=malloc_usable_size"
3012 AC_MSG_ERROR([--enable-wrap-malloc is not supported for non-GNU toolchains])
3016 dnl ========================================================
3017 dnl = Location of malloc wrapper lib
3018 dnl ========================================================
3019 AC_ARG_WITH(wrap-malloc,
3020 [ --with-wrap-malloc=SHAREDLIB Location of malloc wrapper library],
3021 WRAP_LDFLAGS="${WRAP_LDFLAGS} $withval")
3023 dnl ========================================================
3024 dnl Substitution of found variables.
3025 dnl ========================================================
3026 AC_SUBST(SHELL_OVERRIDE)
3028 AC_SUBST(MOZILLA_CLIENT)
3035 AC_SUBST(HOST_CFLAGS)
3037 AC_SUBST(HOST_LDFLAGS)
3039 AC_SUBST(GCC_USE_GNU_LD)
3041 AC_SUBST(CROSS_COMPILE)
3043 AC_SUBST(MOZ_OPTIMIZE)
3045 AC_SUBST(MOZ_DEBUG_SYMBOLS)
3052 AC_SUBST(OBJECT_MODE)
3053 AC_SUBST(ENABLE_STRIP)
3055 AC_SUBST(USE_PTHREADS)
3056 AC_SUBST(USE_BTHREADS)
3057 AC_SUBST(USE_USER_PTHREADS)
3058 AC_SUBST(USE_NSPR_THREADS)
3063 AC_SUBST(MOD_MAJOR_VERSION)
3064 AC_SUBST(MOD_MINOR_VERSION)
3065 AC_SUBST(MOD_PATCH_VERSION)
3066 AC_SUBST(NSPR_MODNAME)
3067 AC_SUBST(MDCPUCFG_H)
3068 AC_SUBST(PR_MD_CSRCS)
3069 AC_SUBST(PR_MD_ASFILES)
3070 AC_SUBST(PR_MD_ARCH_DIR)
3073 AC_SUBST(OBJ_SUFFIX)
3074 AC_SUBST(LIB_SUFFIX)
3075 AC_SUBST(DLL_SUFFIX)
3076 AC_SUBST(ASM_SUFFIX)
3077 AC_SUBST(WRAP_LDFLAGS)
3079 AC_SUBST(DSO_CFLAGS)
3080 AC_SUBST(DSO_LDOPTS)
3084 AC_SUBST(OS_RELEASE)
3086 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
3101 AC_SUBST(PROFILE_GEN_CFLAGS)
3102 AC_SUBST(PROFILE_GEN_LDFLAGS)
3103 AC_SUBST(PROFILE_USE_CFLAGS)
3104 AC_SUBST(PROFILE_USE_LDFLAGS)
3107 AC_SUBST(RESOLVE_LINK_SYMBOLS)
3108 AC_SUBST(AIX_LINK_OPTS)
3109 AC_SUBST(NOSUCHFILE)
3110 AC_SUBST(MOZ_OBJFORMAT)
3111 AC_SUBST(ULTRASPARC_LIBRARY)
3114 AC_SUBST(OBJDIR_NAME)
3115 AC_SUBST(RELEASE_OBJDIR_NAME)
3122 AC_SUBST(OS_DLLFLAGS)
3123 AC_SUBST(CYGWIN_WRAPPER)
3124 AC_SUBST(VISIBILITY_FLAGS)
3125 AC_SUBST(WRAP_SYSTEM_INCLUDES)
3126 AC_SUBST(MACOS_SDK_DIR)
3127 AC_SUBST(SYMBIAN_SDK_DIR)
3131 dnl ========================================================
3132 dnl Generate output files.
3133 dnl ========================================================
3145 lib/libc/include/Makefile
3146 lib/libc/src/Makefile
3151 pr/include/md/Makefile
3152 pr/include/obsolete/Makefile
3153 pr/include/private/Makefile
3156 pr/src/linking/Makefile
3157 pr/src/malloc/Makefile
3159 pr/src/md/${PR_MD_ARCH_DIR}/Makefile
3160 pr/src/memory/Makefile
3161 pr/src/misc/Makefile
3162 pr/src/threads/Makefile
3164 pr/tests/dll/Makefile
3167 if test "$OS_TARGET" = "Linux"; then
3168 MAKEFILES="$MAKEFILES
3171 elif test "$OS_TARGET" = "SunOS"; then
3172 MAKEFILES="$MAKEFILES
3173 pkg/solaris/Makefile
3174 pkg/solaris/SUNWpr/Makefile
3175 pkg/solaris/SUNWprd/Makefile
3179 if test -z "$USE_PTHREADS" && test -z "$USE_BTHREADS"; then
3180 MAKEFILES="$MAKEFILES
3181 pr/src/threads/combined/Makefile
3183 elif test -n "$USE_PTHREADS"; then
3184 MAKEFILES="$MAKEFILES
3185 pr/src/pthreads/Makefile
3187 elif test -n "$USE_BTHREADS"; then
3188 MAKEFILES="$MAKEFILES
3189 pr/src/bthreads/Makefile
3193 if test -n "$USE_CPLUS"; then
3194 MAKEFILES="$MAKEFILES
3195 pr/src/cplus/Makefile
3196 pr/src/cplus/tests/Makefile
3200 echo $MAKEFILES > unallmakefiles
3202 AC_CONFIG_FILES([$MAKEFILES])
3203 AC_CONFIG_COMMANDS([default], [chmod +x config/nspr-config])