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"
150 dnl ========================================================
151 dnl = Gonk is a fork of Android used for Mozilla's B2G project.
152 dnl = Configuration is done largely by the top level config
153 dnl = and the specified gonk directory doesn't matter here.
154 dnl ========================================================
157 [ --with-gonk=DIR location of gonk dir],
160 if test -n "$gonkdir" ; then
161 dnl Most things are directly configured by env vars when building for gonk
166 *-android*|*-linuxandroid*)
167 if test -z "$android_ndk" ; then
168 AC_MSG_ERROR([You must specify --with-android-ndk=/path/to/ndk when targeting Android.])
171 if test -z "$android_toolchain" ; then
172 AC_MSG_CHECKING([for android toolchain directory])
174 kernel_name=`uname -s | tr "[[:upper:]]" "[[:lower:]]"`
176 case "$target_cpu" in
178 target_name=arm-linux-androideabi-4.4.3
181 target_name=x86-4.4.3
184 target_name=mipsel-linux-android-4.4.3
187 android_toolchain="$android_ndk"/toolchains/$target_name/prebuilt/$kernel_name-x86
189 if test -d "$android_toolchain" ; then
190 AC_MSG_RESULT([$android_toolchain])
192 AC_MSG_ERROR([not found. You have to specify --with-android-toolchain=/path/to/ndk/toolchain.])
196 if test -z "$android_platform" ; then
197 AC_MSG_CHECKING([for android platform directory])
199 case "$target_cpu" in
211 android_platform="$android_ndk"/platforms/android-"$android_version"/arch-"$target_name"
213 if test -d "$android_platform" ; then
214 AC_MSG_RESULT([$android_platform])
216 AC_MSG_ERROR([not found. You have to specify --with-android-platform=/path/to/ndk/platform.])
220 dnl Old NDK support. If minimum requirement is changed to NDK r8b,
221 dnl please remove this.
222 case "$target_cpu" in
224 if ! test -e "$android_toolchain"/bin/"$android_tool_prefix"-gcc; then
225 dnl Old NDK toolchain name
226 android_tool_prefix="i686-android-linux"
232 AS="$android_toolchain"/bin/"$android_tool_prefix"-as
233 CC="$android_toolchain"/bin/"$android_tool_prefix"-gcc
234 CXX="$android_toolchain"/bin/"$android_tool_prefix"-g++
235 CPP="$android_toolchain"/bin/"$android_tool_prefix"-cpp
236 LD="$android_toolchain"/bin/"$android_tool_prefix"-ld
237 AR="$android_toolchain"/bin/"$android_tool_prefix"-ar
238 RANLIB="$android_toolchain"/bin/"$android_tool_prefix"-ranlib
239 STRIP="$android_toolchain"/bin/"$android_tool_prefix"-strip
241 CPPFLAGS="-I$android_platform/usr/include $CPPFLAGS"
242 CFLAGS="-mandroid -I$android_platform/usr/include -fno-short-enums -fno-exceptions $CFLAGS"
243 CXXFLAGS="-mandroid -I$android_platform/usr/include -fpic -fno-short-enums -fno-exceptions $CXXFLAGS"
244 LDFLAGS="-mandroid -L$android_platform/usr/lib -Wl,-rpath-link=$android_platform/usr/lib --sysroot=$android_platform $LDFLAGS"
251 dnl ========================================================
253 dnl = Check options that may affect the compiler
255 dnl ========================================================
256 dist_prefix='${MOD_DEPTH}/dist'
257 dist_bindir='${dist_prefix}/bin'
258 dist_includedir='${dist_prefix}/include/nspr'
259 dist_libdir='${dist_prefix}/lib'
260 dnl If the --includedir option was not specified, add '/nspr' to autoconf's
261 dnl default value of includedir.
262 if test "${includedir}" = '${prefix}/include'; then
263 includedir='${prefix}/include/nspr'
266 AC_ARG_WITH(dist-prefix,
267 [ --with-dist-prefix=DIST_PREFIX
268 place build files in DIST_PREFIX [dist]],
269 dist_prefix=$withval)
271 AC_ARG_WITH(dist-bindir,
272 [ --with-dist-bindir=DIR build execuatables in DIR [DIST_PREFIX/bin]],
273 dist_bindir=$withval)
275 AC_ARG_WITH(dist-includedir,
276 [ --with-dist-includedir=DIR
277 build include files in DIR [DIST_PREFIX/include/nspr]],
278 dist_includedir=$withval)
280 AC_ARG_WITH(dist-libdir,
281 [ --with-dist-libdir=DIR build library files in DIR [DIST_PREFIX/lib]],
282 dist_libdir=$withval)
284 AC_SUBST(dist_prefix)
285 AC_SUBST(dist_bindir)
286 AC_SUBST(dist_includedir)
287 AC_SUBST(dist_libdir)
289 dnl Check if NSPR is being compiled for Mozilla
290 dnl Let --with-arg override environment setting
293 [ --with-mozilla Compile NSPR with Mozilla support],
294 [ if test "$withval" = "yes"; then
295 AC_DEFINE(MOZILLA_CLIENT)
300 [ if test -n "$MOZILLA_CLIENT"; then
301 AC_DEFINE(MOZILLA_CLIENT)
304 AC_ARG_ENABLE(optimize,
305 [ --enable-optimize[=OPT] Enable code optimizations (ie. -O2) ],
306 [ if test "$enableval" != "no"; then
308 if test -n "$enableval" -a "$enableval" != "yes"; then
309 _OPTIMIZE_FLAGS=`echo $enableval | sed -e 's|\\\ | |g'`
310 _SAVE_OPTIMIZE_FLAGS=$_OPTIMIZE_FLAGS
317 [ --enable-debug[=DBG] Enable debugging (using compiler flags DBG)],
318 [ if test "$enableval" != "no"; then
321 if test -n "$enableval" -a "$enableval" != "yes"; then
322 _DEBUG_FLAGS=`echo $enableval | sed -e 's|\\\ | |g'`
323 _SAVE_DEBUG_FLAGS=$_DEBUG_FLAGS
330 AC_ARG_ENABLE(debug-symbols,
331 [ --enable-debug-symbols[=DBG] Enable debugging symbols
332 (using compiler flags DBG)],
333 [ if test "$enableval" != "no"; then
335 if test -n "$enableval" -a "$enableval" != "yes"; then
336 if test -z "$_SAVE_DEBUG_FLAGS"; then
337 _DEBUG_FLAGS=`echo $enableval | sed -e 's|\\\ | |g'`
338 _SAVE_DEBUG_FLAGS=$_DEBUG_FLAGS
340 AC_MSG_ERROR([--enable-debug-symbols flags cannot be used with --enable-debug flags])
347 AC_ARG_ENABLE(win32-target,
348 [ --enable-win32-target=\$t
349 Specify win32 flavor. (WIN95 or WINNT)],
350 OS_TARGET=`echo $enableval | tr a-z A-Z`)
352 AC_ARG_ENABLE(symbian-target,
353 [ --enable-symbian-target=\$t
354 Specify symbian flavor. (WINSCW or GCCE)],
355 OS_TARGET=`echo $enableval | tr a-z A-Z`)
357 AC_ARG_ENABLE(debug-rtl,
358 [ --enable-debug-rtl Use the MSVC debug runtime library],
359 [ if test "$enableval" = "yes"; then
365 AC_ARG_ENABLE(static-rtl,
366 [ --enable-static-rtl Use the MSVC static runtime library],
367 [ if test "$enableval" = "yes"; then
372 [ --enable-n32 Enable n32 ABI support (IRIX only)],
373 [ if test "$enableval" = "yes"; then
375 else if test "$enableval" = "no"; then
381 [ --enable-x32 Enable x32 ABI support (x86_64 only)],
382 [ if test "$enableval" = "yes"; then
384 else if test "$enableval" = "no"; then
390 [ --enable-64bit Enable 64-bit support (on certain platforms)],
391 [ if test "$enableval" = "yes"; then
395 AC_ARG_ENABLE(mdupdate,
396 [ --enable-mdupdate Enable use of certain compilers' mdupdate feature],
397 [ if test "$enableval" = "yes"; then
402 [ --enable-cplus Enable some c++ api routines],
403 [ if test "$enableval" = "yes"; then
407 AC_ARG_WITH(arm-kuser,
408 [ --with-arm-kuser Use kuser helpers (Linux/ARM only)
409 (Requires kernel 2.6.13 or later)],
410 [ if test "$withval" = "yes"; then
411 AC_DEFINE(_PR_ARM_KUSER)
414 dnl ========================================================
415 dnl = Mac OS X SDK support
416 dnl ========================================================
417 AC_ARG_WITH(macos-sdk,
418 [ --with-macos-sdk=dir Location of platform SDK to use (Mac OS X only)],
419 MACOS_SDK_DIR=$withval)
421 AC_ARG_ENABLE(macos-target,
422 [ --enable-macos-target=VER
423 Set the minimum MacOS version needed at runtime
424 [10.2 for ppc, 10.4 for x86]],
425 [_MACOSX_DEPLOYMENT_TARGET=$enableval])
427 dnl ========================================================
429 dnl = Set the threading model
431 dnl ========================================================
435 case "${target_os}" in
447 dnl ========================================================
449 dnl = Set the default C compiler
451 dnl ========================================================
452 if test -z "$CC"; then
456 if test -z "$USE_NSPR_THREADS"; then
482 dnl ========================================================
484 dnl = Set the default C++ compiler
486 dnl ========================================================
487 if test -z "$CXX"; then
491 if test -z "$USE_NSPR_THREADS"; then
499 case "${target_os}" in
527 if test -z "$SKIP_PATH_CHECKS"; then
528 AC_PATH_PROG(WHOAMI, $WHOAMI whoami, echo not_whoami)
531 if test -n "$MOZ_DEBUG"; then
533 DEFINES="$DEFINES -UNDEBUG"
535 case "${target_os}" in
537 DEFINES="$DEFINES -DDEBUG_${USER}"
539 mks*|cygwin*|mingw*|msys*|os2*)
540 DEFINES="$DEFINES -DDEBUG_`echo ${USERNAME} | sed -e 's| |_|g'`"
543 DEFINES="$DEFINES -DDEBUG_`$WHOAMI`"
548 DEFINES="$DEFINES -UDEBUG"
551 if test -z "$SKIP_COMPILER_CHECKS"; then
552 dnl ========================================================
553 dnl Checks for compilers.
554 dnl ========================================================
555 if test "$target" != "$host"; then
556 echo "cross compiling from $host to $target"
559 case "$build:$target" in
560 powerpc-apple-darwin8*:i?86-apple-darwin*)
561 dnl The Darwin cross compiler doesn't necessarily point itself at a
562 dnl root that has libraries for the proper architecture, it defaults
563 dnl to the system root. The libraries in the system root on current
564 dnl versions of PPC OS X 10.4 aren't fat, so these target compiler
565 dnl checks will fail. Fake a working SDK in that case.
567 _SAVE_CXXFLAGS=$CXXFLAGS
568 CFLAGS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk $CFLAGS"
569 CXXFLAGS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk $CXXFLAGS"
573 AC_CHECK_PROGS(CC, $CC "${target_alias}-gcc" "${target}-gcc", echo)
575 dnl Now exit the conditional block to invoke AC_PROG_CC.
578 dnl In the latest versions of autoconf, AC_PROG_CC is a one-shot macro,
579 dnl declared with AC_DEFUN_ONCE. So it must not be expanded inside a
580 dnl conditional block. Invoke AC_PROG_CC outside any conditional block
581 dnl and before invoking AC_TRY_COMPILE (which requires AC_PROG_CC).
584 dnl Reenter the conditional blocks after invoking AC_PROG_CC.
585 if test "$target" != "$host"; then
586 if test -n "$USE_CPLUS"; then
587 AC_CHECK_PROGS(CXX, $CXX "${target_alias}-g++" "${target}-g++", echo)
592 case "$build:$target" in
593 powerpc-apple-darwin8*:i?86-apple-darwin*|*:arm*-apple-darwin*)
594 dnl Revert the changes made above. From this point on, the target
595 dnl compiler will never be used without applying the SDK to CFLAGS
596 dnl (see --with-macos-sdk below).
598 CXXFLAGS=$_SAVE_CXXFLAGS
602 AC_CHECK_PROGS(RANLIB, $RANLIB "${target_alias}-ranlib" "${target}-ranlib", echo)
603 AC_CHECK_PROGS(AR, $AR "${target_alias}-ar" "${target}-ar", echo)
604 AC_CHECK_PROGS(AS, $AS "${target_alias}-as" "${target}-as", echo)
605 AC_CHECK_PROGS(LD, $LD "${target_alias}-ld" "${target}-ld", echo)
606 AC_CHECK_PROGS(STRIP, $STRIP "${target_alias}-strip" "${target}-strip", echo)
607 AC_CHECK_PROGS(WINDRES, $WINDRES "${target_alias}-windres" "${target}-windres", echo)
610 _SAVE_CFLAGS="$CFLAGS"
611 _SAVE_LDFLAGS="$LDFLAGS"
613 AC_MSG_CHECKING([for $host compiler])
614 AC_CHECK_PROGS(HOST_CC, $HOST_CC gcc cc /usr/ucb/cc, "")
615 if test -z "$HOST_CC"; then
616 AC_MSG_ERROR([no acceptable cc found in \$PATH])
618 AC_MSG_RESULT([$HOST_CC])
621 CFLAGS="$HOST_CFLAGS"
622 LDFLAGS="$HOST_LDFLAGS"
624 AC_MSG_CHECKING([whether the $host compiler ($HOST_CC $HOST_CFLAGS $HOST_LDFLAGS) works])
625 AC_TRY_COMPILE([], [return 0;],
626 [AC_MSG_RESULT([yes])],
627 [AC_MSG_ERROR([installation or configuration problem: $host compiler $HOST_CC cannot create executables.])] )
631 LDFLAGS=$_SAVE_LDFLAGS
633 if test -n "$USE_CPLUS"; then
634 if test "$CC" = "cl" -a -z "$CXX"; then
641 AC_PATH_PROGS(AS, as, $CC)
642 AC_PATH_PROGS(AR, ar, echo not_ar)
643 AC_PATH_PROGS(LD, ld link, echo not_ld)
644 AC_PATH_PROGS(STRIP, strip, echo not_strip)
645 AC_PATH_PROGS(WINDRES, windres, echo not_windres)
646 if test -z "$HOST_CC"; then
649 if test -z "$HOST_CFLAGS"; then
650 HOST_CFLAGS="$CFLAGS"
656 if test "$GCC" = "yes"; then
659 if test "$GXX" = "yes"; then
662 if test "`echo | $AS -v 2>&1 | grep -c GNU`" != "0"; then
667 case "$build:$target" in
668 i?86-apple-darwin*:powerpc-apple-darwin*)
669 dnl cross_compiling will have erroneously been set to "no" in this
670 dnl case, because the x86 build host is able to run ppc code in a
671 dnl translated environment, making a cross compiler appear native.
676 if test "$cross_compiling" = "yes"; then
682 dnl ========================================================
683 dnl Check for gcc -pipe support
684 dnl ========================================================
685 AC_MSG_CHECKING([for gcc -pipe support])
686 if test -n "$GNU_CC" && test -n "$GNU_CXX" && test -n "$GNU_AS"; then
687 echo '#include <stdio.h>' > dummy-hello.c
688 echo 'int main() { printf("Hello World\n"); return 0; }' >> dummy-hello.c
689 ${CC} -S dummy-hello.c -o dummy-hello.s 2>&5
690 cat dummy-hello.s | ${AS} -o dummy-hello.S - 2>&5
696 if test "$_res_as_stdin" = "yes"; then
698 CFLAGS="$CFLAGS -pipe"
699 AC_TRY_COMPILE( [ #include <stdio.h> ],
700 [printf("Hello World\n");],
701 [_res_gcc_pipe="yes"],
702 [_res_gcc_pipe="no"] )
705 if test "$_res_as_stdin" = "yes" && test "$_res_gcc_pipe" = "yes"; then
707 CFLAGS="$CFLAGS -pipe"
708 CXXFLAGS="$CXXFLAGS -pipe"
712 rm -f dummy-hello.c dummy-hello.s dummy-hello.S dummy-hello a.out
713 AC_MSG_RESULT([$_res])
718 dnl ========================================================
719 dnl Check for pragma diagnostic
720 dnl ========================================================
722 AC_MSG_CHECKING([for pragma diagnostic])
723 if test "$GNU_CC" = "1"; then
724 cat >dummy-hello.c <<EOF
725 #ifdef _PR_HAS_PRAGMA_DIAGNOSTIC
726 #pragma GCC diagnostic push
727 #pragma GCC diagnostic ignored "-Wunused-but-set-variable"
734 ${CC} -Werror=unused-but-set-variable -S dummy-hello.c -o dummy-hello.s 2>&5
735 if test $? != 0; then
736 ${CC} -Werror=unused-but-set-variable -D_PR_HAS_PRAGMA_DIAGNOSTIC -S dummy-hello.c -o dummy-hello.s 2>&5
738 CFLAGS="$CFLAGS -D_PR_HAS_PRAGMA_DIAGNOSTIC=1"
746 rm -f dummy-hello.c dummy-hello.s
747 AC_MSG_RESULT([$_res])
752 dnl ========================================================
753 dnl Profile guided optimization
754 dnl ========================================================
755 dnl Test for profiling options
756 dnl Under gcc 3.4+, use -fprofile-generate/-fprofile-use
758 _SAVE_CFLAGS="$CFLAGS"
759 CFLAGS="$CFLAGS -fprofile-generate -fprofile-correction"
761 AC_MSG_CHECKING([whether C compiler supports -fprofile-generate])
762 AC_TRY_COMPILE([], [return 0;],
763 [ PROFILE_GEN_CFLAGS="-fprofile-generate"
764 result="yes" ], result="no")
765 AC_MSG_RESULT([$result])
767 if test $result = "yes"; then
768 PROFILE_GEN_LDFLAGS="-fprofile-generate"
769 PROFILE_USE_CFLAGS="-fprofile-use -fprofile-correction -Wcoverage-mismatch"
770 PROFILE_USE_LDFLAGS="-fprofile-use"
773 CFLAGS="$_SAVE_CFLAGS"
775 dnl ===============================================================
776 dnl Check for .hidden assembler directive and visibility attribute.
777 dnl Borrowed from glibc configure.in
778 dnl ===============================================================
779 if test "$GNU_CC"; then
780 AC_CACHE_CHECK(for visibility(hidden) attribute,
781 ac_cv_visibility_hidden,
782 [cat > conftest.c <<EOF
783 int foo __attribute__ ((visibility ("hidden"))) = 1;
785 ac_cv_visibility_hidden=no
786 if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
787 if grep '\.hidden.*foo' conftest.s >/dev/null; then
788 ac_cv_visibility_hidden=yes
793 if test "$ac_cv_visibility_hidden" = "yes"; then
794 AC_DEFINE(HAVE_VISIBILITY_HIDDEN_ATTRIBUTE)
795 AC_CACHE_CHECK(for visibility pragma support,
796 ac_cv_visibility_pragma,
797 [cat > conftest.c <<EOF
798 #pragma GCC visibility push(hidden)
800 #pragma GCC visibility push(default)
803 ac_cv_visibility_pragma=no
804 if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
805 if grep '\.hidden.*foo_hidden' conftest.s >/dev/null; then
806 if ! grep '\.hidden.*foo_default' conftest.s > /dev/null; then
807 ac_cv_visibility_pragma=yes
813 if test "$ac_cv_visibility_pragma" = "yes"; then
814 AC_DEFINE(HAVE_VISIBILITY_PRAGMA)
815 # To work around a build problem on Linux x86-64 (Bugzilla bug
816 # 293438), we use the -fvisibility=hidden flag. This flag is less
817 # optimal than #pragma GCC visibility push(hidden) because the flag
818 # assumes that symbols defined outside the current source file have
819 # the default visibility. This has the advantage that we don't need
820 # to wrap system header files, but has the disadvantage that calls
821 # to hidden symbols defined in other source files cannot be
822 # optimized by the compiler. The -fvisibility=hidden flag does
823 # hide and export symbols correctly.
824 #VISIBILITY_FLAGS='-I$(dist_includedir)/system_wrappers -include $(topsrcdir)/config/gcc_hidden.h'
825 #WRAP_SYSTEM_INCLUDES=1
826 VISIBILITY_FLAGS="-fvisibility=hidden"
827 WRAP_SYSTEM_INCLUDES=
832 fi # SKIP_COMPILER_CHECKS
834 dnl ========================================================
835 dnl Checks for programs.
836 dnl ========================================================
837 if test -z "$SKIP_PATH_CHECKS"; then
838 AC_PATH_PROGS(PERL, perl5 perl, echo not_perl)
839 elif test -z "$PERL"; then
843 dnl ========================================================
844 dnl Default platform specific options
845 dnl ========================================================
850 MKSHLIB='$(LD) $(DSO_LDOPTS) -o $@'
858 if test -n "$CROSS_COMPILE"; then
859 OS_ARCH=`echo $target_os | sed -e 's|/|_|g'`
861 OS_TEST="${target_cpu}"
862 case "${target_os}" in
863 linux*) OS_ARCH=Linux ;;
864 solaris*) OS_ARCH=SunOS OS_RELEASE=5 ;;
865 mingw*) OS_ARCH=WINNT CPU_ARCH=x86 ;;
866 darwin*) OS_ARCH=Darwin ;;
867 riscos*) OS_ARCH=RISCOS ;;
870 OS_ARCH=`uname -s | sed -e 's|/|_|g'`
871 OS_RELEASE=`uname -r`
875 if test "$OS_ARCH" = "IRIX64"; then
879 if test "$OS_ARCH" = "AIX"; then
880 OS_RELEASE=`uname -v`.`uname -r`
883 if test "$OS_ARCH" = "FreeBSD"; then
884 OS_RELEASE=`echo $OS_RELEASE | sed 's/-.*//'`
887 if test "$OS_ARCH" = "Linux"; then
888 OS_RELEASE=`echo $OS_RELEASE | sed 's/-.*//'`
889 OS_RELEASE=`echo $OS_RELEASE | awk -F\. '{ print $1 "." $2 }'`
892 #######################################################################
893 # Master "Core Components" macros for getting the OS target #
894 #######################################################################
897 # Note: OS_TARGET should be specified on the command line for gmake.
898 # When OS_TARGET=WIN95 is specified, then a Windows 95 target is built.
899 # The difference between the Win95 target and the WinNT target is that
900 # the WinNT target uses Windows NT specific features not available
901 # in Windows 95. The Win95 target will run on Windows NT, but (supposedly)
902 # at lesser performance (the Win95 target uses threads; the WinNT target
905 # If OS_TARGET is not specified, it defaults to $(OS_ARCH), i.e., no
910 # The following hack allows one to build on a WIN95 machine (as if
911 # s/he were cross-compiling on a WINNT host for a WIN95 target).
912 # It also accomodates for MKS's uname.exe. If you never intend
913 # to do development on a WIN95 machine, you don't need this hack.
924 CYGWIN_9*|CYGWIN_ME*)
925 OS_ARCH='CYGWIN_NT-4.0'
935 # On WIN32, we also define the variable CPU_ARCH.
941 # If uname -s returns "Windows_NT", we assume that we are using
942 # the uname.exe in MKS toolkit.
944 # The -r option of MKS uname only returns the major version number.
945 # So we need to use its -v option to get the minor version number.
946 # Moreover, it doesn't have the -p option, so we need to use uname -m.
949 OS_MINOR_RELEASE=`uname -v`
950 if test "$OS_MINOR_RELEASE" = "00"; then
953 OS_RELEASE="${OS_RELEASE}.${OS_MINOR_RELEASE}"
956 # MKS's uname -m returns "586" on a Pentium machine.
958 if echo "$CPU_ARCH" | grep -c 86 >/dev/null; then
962 CYGWIN_NT*|MINGW*_NT*|MSYS_NT*)
964 # If uname -s returns "CYGWIN_NT-4.0", we assume that we are using
965 # the uname.exe in the Cygwin tools.
966 # If uname -s returns "MINGW32_NT-5.1", we assume that we are using
967 # the uname.exe in the MSYS tools.
968 # If uname -s returns "MSYS_NT-6.3", we assume that we are using
969 # the uname.exe in the MSYS2 tools.
971 OS_RELEASE=`expr $OS_ARCH : '.*NT-\(.*\)'`
975 # Cygwin's uname -m returns "i686" on a Pentium Pro machine.
977 if echo "$CPU_ARCH" | grep -c 86 >/dev/null; then
983 if test -n "$MOZILLA_CLIENT" && test "$OS_ARCH" = "WINNT"; then
985 if test -n "$MOZ_DEBUG" -a -z "$USE_DEBUG_RTL"; then
989 if test -z "$OS_TARGET"; then
992 if test "$OS_TARGET" = "WIN95"; then
995 OS_CONFIG="${OS_TARGET}${OS_RELEASE}"
997 dnl ========================================================
998 dnl Enable high-memory support on OS/2 by default.
999 dnl ========================================================
1000 AC_ARG_ENABLE(os2-high-mem,
1001 [ --disable-os2-high-mem Disable high-memory support on OS/2],
1002 [ if test "$enableval" = "no"; then
1003 MOZ_OS2_HIGH_MEMORY=
1005 MOZ_OS2_HIGH_MEMORY=1
1008 dnl ========================================================
1009 dnl = ARM toolchain tweaks
1010 dnl ========================================================
1013 MOZ_ALIGN=toolchain-default
1016 arm*-android*|arm*-linuxandroid*)
1020 MOZ_FLOAT_ABI=softfp
1025 if test -n "$MOZ_PLATFORM_MAEMO"; then
1028 MOZ_FLOAT_ABI=softfp
1030 if test "$MOZ_PLATFORM_MAEMO" = 6; then
1036 dnl Kept for compatibility with some buildbot mozconfig
1037 AC_ARG_ENABLE(thumb2, [], MOZ_THUMB=$enableval)
1040 [ --with-thumb[[=yes|no|toolchain-default]]]
1041 [ Use Thumb instruction set (-mthumb)],
1042 if test -z "$GNU_CC"; then
1043 AC_MSG_ERROR([--with-thumb is not supported on non-GNU toolchain-defaults])
1047 AC_ARG_WITH(thumb-interwork,
1048 [ --with-thumb-interwork[[=yes|no|toolchain-default]]
1049 Use Thumb/ARM instuctions interwork (-mthumb-interwork)],
1050 if test -z "$GNU_CC"; then
1051 AC_MSG_ERROR([--with-thumb-interwork is not supported on non-GNU toolchain-defaults])
1053 MOZ_THUMB_INTERWORK=$withval)
1056 [ --with-arch=[[type|toolchain-default]]
1057 Use specific CPU features (-march=type)],
1058 if test -z "$GNU_CC"; then
1059 AC_MSG_ERROR([--with-arch is not supported on non-GNU toolchain-defaults])
1064 [ --with-fpu=[[type|toolchain-default]]
1065 Use specific FPU type (-mfpu=type)],
1066 if test -z "$GNU_CC"; then
1067 AC_MSG_ERROR([--with-fpu is not supported on non-GNU toolchain-defaults])
1071 AC_ARG_WITH(float-abi,
1072 [ --with-float-abi=[[type|toolchain-default]]
1073 Use specific arm float ABI (-mfloat-abi=type)],
1074 if test -z "$GNU_CC"; then
1075 AC_MSG_ERROR([--with-float-abi is not supported on non-GNU toolchain-defaults])
1077 MOZ_FLOAT_ABI=$withval)
1079 AC_ARG_WITH(soft-float,
1080 [ --with-soft-float[[=yes|no|toolchain-default]]
1081 Use soft float library (-msoft-float)],
1082 if test -z "$GNU_CC"; then
1083 AC_MSG_ERROR([--with-soft-float is not supported on non-GNU toolchain-defaults])
1085 MOZ_SOFT_FLOAT=$withval)
1088 toolchain-default|"")
1092 arch_flag="-march=$MOZ_ARCH"
1096 case "$MOZ_THUMB" in
1099 thumb_flag="-mthumb"
1106 _SAVE_CFLAGS="$CFLAGS"
1108 AC_TRY_COMPILE([],[return sizeof(__thumb2__);],
1111 CFLAGS="$_SAVE_CFLAGS"
1116 case "$MOZ_THUMB_INTERWORK" in
1118 thumb_interwork_flag="-mthumb-interwork"
1121 thumb_interwork_flag="-mno-thumb-interwork"
1123 *) # toolchain-default
1124 thumb_interwork_flag=""
1129 toolchain-default|"")
1133 fpu_flag="-mfpu=$MOZ_FPU"
1137 case "$MOZ_FLOAT_ABI" in
1138 toolchain-default|"")
1142 float_abi_flag="-mfloat-abi=$MOZ_FLOAT_ABI"
1146 case "$MOZ_SOFT_FLOAT" in
1148 soft_float_flag="-msoft-float"
1151 soft_float_flag="-mno-soft-float"
1153 *) # toolchain-default
1158 case "$MOZ_ALIGN" in
1159 toolchain-default|"")
1163 align_flag="-mno-unaligned-access"
1166 align_flag="-munaligned-access"
1173 if test -n "$align_flag"; then
1174 _SAVE_CFLAGS="$CFLAGS"
1175 CFLAGS="$CFLAGS $align_flag"
1176 AC_MSG_CHECKING(whether alignment flag ($align_flag) is supported)
1177 AC_TRY_COMPILE([],[],,align_flag="")
1178 CFLAGS="$_SAVE_CFLAGS"
1181 dnl Use echo to avoid accumulating space characters
1182 all_flags=`echo $arch_flag $thumb_flag $thumb_interwork_flag $fpu_flag $float_abi_flag $soft_float_flag $align_flag`
1183 if test -n "$all_flags"; then
1184 _SAVE_CFLAGS="$CFLAGS"
1186 AC_MSG_CHECKING(whether the chosen combination of compiler flags ($all_flags) works)
1187 AC_TRY_COMPILE([],[return 0;],
1188 AC_MSG_RESULT([yes]),
1191 CFLAGS="$_SAVE_CFLAGS $all_flags"
1192 CXXFLAGS="$CXXFLAGS $all_flags"
1193 ASFLAGS="$ASFLAGS $all_flags"
1194 if test -n "$thumb_flag"; then
1195 LDFLAGS="$LDFLAGS $thumb_flag"
1199 dnl ========================================================
1200 dnl Override of system specific host options
1201 dnl ========================================================
1207 NSINSTALL='$(CYGWIN_WRAPPER) nsinstall'
1208 if test `echo "${PATH}" | grep -c \;` = 0; then
1209 CYGWIN_WRAPPER='sh $(topsrcdir)/build/cygwin-wrapper'
1213 HOST_CFLAGS="$HOST_CFLAGS -DXP_BEOS -DBeOS -DBEOS -D_POSIX_SOURCE"
1218 HOST_CFLAGS="$HOST_CFLAGS -DXP_UNIX"
1222 dnl ========================================================
1223 dnl Override of system specific target options
1224 dnl ========================================================
1231 DSO_LDOPTS='-brtl -bnortllib -bM:SRE -bnoentry -bexpall -blibpath:/usr/lib:/lib'
1232 AC_CHECK_HEADER(sys/atomic_op.h, AC_DEFINE(AIX_HAVE_ATOMIC_OP_H))
1233 case "${target_os}" in
1235 AC_DEFINE(AIX_RENAME_SELECT)
1236 AC_DEFINE(_PR_NO_LARGE_FILES)
1237 AIX_LINK_OPTS='-bnso -berok'
1238 PR_MD_ASFILES=os_AIX.s
1241 AC_DEFINE(AIX_TIMERS)
1242 AC_DEFINE(_PR_NO_LARGE_FILES)
1246 AIX_LINK_OPTS='-bnso -berok'
1247 LIBNSPR='-L$(dist_libdir) -lnspr$(MOD_MAJOR_VERSION)_shr'
1248 LIBPLC='-L$(dist_libdir) -lplc$(MOD_MAJOR_VERSION)_shr'
1251 AC_DEFINE(AIX_TIMERS)
1252 AC_DEFINE(_PR_HAVE_OFF64_T)
1253 AIX_LINK_OPTS='-brtl -bnso -berok'
1256 AC_DEFINE(AIX_TIMERS)
1257 AC_DEFINE(_PR_HAVE_OFF64_T)
1258 AC_DEFINE(AIX4_3_PLUS)
1259 AC_DEFINE(HAVE_SOCKLEN_T)
1260 AC_DEFINE(HAVE_FCNTL_FILE_LOCKING)
1262 AIX_LINK_OPTS='-brtl -bnso -berok'
1265 AC_DEFINE(AIX_TIMERS)
1266 AC_DEFINE(_PR_HAVE_OFF64_T)
1267 AC_DEFINE(AIX4_3_PLUS)
1268 AC_DEFINE(HAVE_SOCKLEN_T)
1269 AC_DEFINE(HAVE_FCNTL_FILE_LOCKING)
1271 AIX_LINK_OPTS='-brtl -bnso -berok'
1274 CFLAGS="$CFLAGS -qro -qroconst"
1275 AIX_WRAP='$(DIST)/lib/aixwrap.o'
1276 AIX_TMP='./_aix_tmp.o'
1277 if test -n "$USE_64"; then
1278 MDCPUCFG_H=_aix64.cfg
1281 MDCPUCFG_H=_aix32.cfg
1284 RESOLVE_LINK_SYMBOLS=1
1291 AC_DEFINE(_POSIX_SOURCE)
1293 MDCPUCFG_H=_beos.cfg
1296 RESOLVE_LINK_SYMBOLS=1
1297 case "${target_cpu}" in
1300 _DEBUG_FLAGS='-gdwarf-2 -O0'
1301 MKSHLIB='$(CCC) $(DSO_LDOPTS) -o $@'
1302 AC_CHECK_LIB(bind, gethostbyaddr, [OS_LIBS="$OS_LIBS -lbind -lsocket"])
1308 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'
1310 _DEBUG_FLAGS='-g -O0'
1318 AC_DEFINE(NEED_BSDREGEX)
1320 CFLAGS="$CFLAGS -Wall -Wno-format"
1321 CXXFLAGS="$CXXFLAGS -Wall -Wno-format"
1323 if echo "$OS_TEST" | grep -c 86 >/dev/null; then
1325 elif echo "$OS_TEST" | grep -c sparc >/dev/null; then
1329 MDCPUCFG_H=_bsdi.cfg
1334 case "$target_os" in
1336 AC_DEFINE(_PR_BSDI_JMPBUF_IS_ARRAY)
1337 AC_DEFINE(_PR_STAT_HAS_ONLY_ST_ATIME)
1338 AC_DEFINE(_PR_NEED_H_ERRNO)
1345 AC_DEFINE(_PR_TIMESPEC_HAS_TS_SEC)
1346 AC_DEFINE(_PR_BSDI_JMPBUF_IS_ARRAY)
1348 AC_DEFINE(USE_DLFCN)
1349 AC_DEFINE(_PR_STAT_HAS_ST_ATIMESPEC)
1350 PR_MD_ASFILES=os_BSD_OS_386_2.s
1354 AC_DEFINE(_PR_SELECT_CONST_TIMEVAL)
1355 AC_DEFINE(_PR_BSDI_JMPBUF_IS_STRUCT)
1357 AC_DEFINE(USE_DLFCN)
1358 AC_DEFINE(_PR_STAT_HAS_ST_ATIMESPEC)
1359 MKSHLIB='$(CC) -o $@ $(DSO_LDOPTS)'
1361 DSO_LDOPTS='-shared -Wl,-soname,$(@:$(OBJDIR)/%.so=%.so)'
1363 case "$target_os" in
1364 bsdi4.2* | bsdi4.3* | bsdi5.*)
1365 AC_DEFINE(_PR_HAVE_GETPROTO_R)
1366 AC_DEFINE(_PR_HAVE_GETPROTO_R_POINTER)
1371 AC_DEFINE(_PR_SELECT_CONST_TIMEVAL)
1372 AC_DEFINE(_PR_BSDI_JMPBUF_IS_STRUCT)
1374 AC_DEFINE(USE_DLFCN)
1375 AC_DEFINE(_PR_STAT_HAS_ST_ATIMESPEC)
1384 AC_DEFINE(HAVE_BSD_FLOCK)
1385 AC_DEFINE(HAVE_SOCKLEN_T)
1386 AC_DEFINE(HAVE_POINTER_LOCALTIME_R)
1388 HOST_DARWIN_MAJOR=`echo "$build_os" | sed -E -e 's/^darwin([0-9]+).*$/\1/'`
1390 if test "$HOST_DARWIN_MAJOR" -ge 15 ; then
1391 AC_DEFINE(HAS_CONNECTX)
1393 AS='$(CC) -x assembler-with-cpp'
1394 CFLAGS="$CFLAGS -Wall -fno-common"
1395 case "${target_cpu}" in
1400 if test -n "$USE_64"; then
1410 if test "`echo $CC | grep -c '\-arch '`" = "0"; then
1411 CC="$CC -arch $CPU_ARCH"
1413 AC_CHECK_HEADER(crt_externs.h, AC_DEFINE(HAVE_CRT_EXTERNS_H))
1415 DSO_LDOPTS='-dynamiclib -compatibility_version 1 -current_version 1 -all_load -install_name @executable_path/$@ -headerpad_max_install_names'
1417 MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
1418 STRIP="$STRIP -x -S"
1421 MDCPUCFG_H=_darwin.cfg
1422 PR_MD_CSRCS=darwin.c
1423 PR_MD_ASFILES=os_Darwin.s
1425 # Add Mac OS X support for loading CFM & CFBundle plugins
1426 if test -f "${MACOS_SDK_DIR}/System/Library/Frameworks/Carbon.framework/Carbon"; then
1427 AC_DEFINE(XP_MACOSX)
1430 if test -n "$_MACOSX_DEPLOYMENT_TARGET" ; then
1431 dnl Use the specified value
1432 export MACOSX_DEPLOYMENT_TARGET=$_MACOSX_DEPLOYMENT_TARGET
1433 elif test -z "$MACOSX_DEPLOYMENT_TARGET" ; then
1434 dnl No value specified on the command line or in the environment,
1435 dnl use the lesser of the library's minimum or the architecture's
1437 case "${target_cpu}" in
1439 dnl Architecture minimum 10.2
1440 export MACOSX_DEPLOYMENT_TARGET=10.2
1443 dnl Architecture minimum 10.4
1444 export MACOSX_DEPLOYMENT_TARGET=10.4
1449 dnl MACOS_SDK_DIR will be set to the SDK location whenever one is
1450 dnl in use. NEXT_ROOT will be set and exported if it's needed for
1453 if test "$MACOS_SDK_DIR"; then
1454 dnl Sync this section with the one in Mozilla's top level.
1456 if test ! -d "$MACOS_SDK_DIR"; then
1457 AC_MSG_ERROR([SDK not found. When using --with-macos-sdk, you must
1458 specify a valid SDK. SDKs are installed when the optional cross-development
1459 tools are selected during the Xcode/Developer Tools installation.])
1463 CC_VERSION=`$CC -v 2>&1 | grep 'gcc version'`
1464 GCC_VERSION_FULL=`echo $CC_VERSION | $PERL -pe 's/^.*gcc version ([^ ]*).*/$1/'`
1465 GCC_VERSION=`echo $GCC_VERSION_FULL | $PERL -pe '(split(/\./))[0]>=4&&s/(^\d*\.\d*).*/$1/;'`
1467 GCC_VERSION_MAJOR=`echo $GCC_VERSION_FULL | $PERL -pe 's/(^\d*).*/$1/;'`
1468 if test "$GCC_VERSION_MAJOR" -lt "4" ; then
1469 SDK_C_FRAMEWORK="-F${MACOS_SDK_DIR}/System/Library/Frameworks"
1470 if test -d "${MACOS_SDK_DIR}/Library/Frameworks" ; then
1471 SDK_C_FRAMEWORK="$SDK_C_FRAMEWORK -F${MACOS_SDK_DIR}/Library/Frameworks"
1474 SDK_C_INCLUDE="-isystem ${MACOS_SDK_DIR}/usr/include/gcc/darwin/${GCC_VERSION} -isystem ${MACOS_SDK_DIR}/usr/include ${SDK_C_FRAMEWORK}"
1476 CFLAGS="$CFLAGS -nostdinc ${SDK_C_INCLUDE}"
1478 dnl CPP needs to be set for AC_CHECK_HEADER.
1479 CPP="$CPP -nostdinc ${SDK_C_INCLUDE}"
1482 HOST_DARWIN_MAJOR=`echo "$build_os" | sed -E -e 's/^darwin([0-9]+).*$/\1/'`
1484 if test "$HOST_DARWIN_MAJOR" -lt 9 ; then
1485 dnl The build host is running Tiger (10.4) or earlier.
1486 dnl ld support for -syslibroot is compiler-agnostic, but
1487 dnl only available on Tiger and later. On Tiger and
1488 dnl earlier build hosts, just rely on NEXT_ROOT, because
1489 dnl it's not been shown to cause any problems.
1490 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}"
1492 dnl The build host is running Leopard (10.5) or later.
1493 dnl With NEXT_ROOT set, the linker will still not apply
1494 dnl it when resolving dependencies. This causes problems
1495 dnl on Leopard, where an SDK depends on frameworks which
1496 dnl were present in earlier OS releases (and the associated
1497 dnl SDK) but not in Leopard. -syslibroot does not have
1498 dnl this problem, but it results in harmless warnings when
1499 dnl NEXT_ROOT is set. NEXT_ROOT needs to remain set even
1500 dnl on Leopard because the compiler uses it too.
1501 MACOS_SDK_LIBS="-Wl,-syslibroot,${MACOS_SDK_DIR}"
1504 LDFLAGS="${MACOS_SDK_LIBS} $LDFLAGS"
1505 export NEXT_ROOT=$MACOS_SDK_DIR
1507 if test -n "$CROSS_COMPILE" ; then
1508 dnl NEXT_ROOT will be in the environment, but it
1509 dnl shouldn't be set for the build host. HOST_CXX is
1510 dnl presently unused.
1511 HOST_CC="NEXT_ROOT= $HOST_CC"
1512 HOST_CXX="NEXT_ROOT= $HOST_CXX"
1515 dnl gcc >= 4.0 uses different paths than above, but knows
1516 dnl how to find them itself.
1517 CFLAGS="$CFLAGS -isysroot ${MACOS_SDK_DIR}"
1519 dnl CPP needs to be set for AC_CHECK_HEADER.
1520 CPP="$CPP -isysroot ${MACOS_SDK_DIR}"
1522 dnl If gcc >= 4.0.0, we're guaranteed to be on Tiger, which
1523 dnl has an ld that supports -syslibroot. Don't set
1524 dnl NEXT_ROOT because it will be ignored and cause
1525 dnl warnings when -syslibroot is specified.
1526 if test "$GCC_VERSION_FULL" != "4.0.0" ; then
1527 dnl gcc > 4.0.0 will pass -syslibroot to ld automatically
1528 dnl based on the -isysroot it receives.
1529 LDFLAGS="$LDFLAGS -isysroot ${MACOS_SDK_DIR}"
1531 dnl gcc 4.0.0 doesn't pass -syslibroot to ld, it needs
1533 LDFLAGS="$LDFLAGS -Wl,-syslibroot,${MACOS_SDK_DIR}"
1542 AC_DEFINE(_PR_LOCAL_THREADS_ONLY)
1546 AC_DEFINE(_DGUX_SOURCE)
1547 AC_DEFINE(_POSIX4A_DRAFT6_SOURCE)
1551 MDCPUCFG_H=_dgux.cfg
1556 if test -z "$USE_NSPR_THREADS"; then
1561 AC_DEFINE(HAVE_BSD_FLOCK)
1562 AC_DEFINE(HAVE_SOCKLEN_T)
1563 AC_DEFINE(HAVE_POINTER_LOCALTIME_R)
1564 CFLAGS="$CFLAGS $(DSO_CFLAGS) -ansi -Wall"
1565 MOZ_OBJFORMAT=`test -x /usr/bin/objformat && /usr/bin/objformat || echo elf`
1566 if test "$MOZ_OBJFORMAT" = "elf"; then
1571 MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
1573 DSO_LDOPTS='-shared -Wl,-soname -Wl,$(notdir $@)'
1574 MDCPUCFG_H=_freebsd.cfg
1575 PR_MD_CSRCS=freebsd.c
1581 AC_DEFINE(_HPUX_SOURCE)
1582 # OSF1 and HPUX report the POLLHUP event for a socket when the
1583 # shutdown(SHUT_WR) operation is called for the remote end, even though
1584 # the socket is still writeable. Use select(), instead of poll(), to
1585 # workaround this problem.
1586 AC_DEFINE(_PR_POLL_WITH_SELECT)
1587 AC_DEFINE(_USE_BIG_FDS)
1588 DSO_LDOPTS='-b +h $(notdir $@)'
1590 if test "$OS_TEST" = "ia64"; then
1592 DSO_LDOPTS="$DSO_LDOPTS +b '\$\$ORIGIN'"
1593 CPU_ARCH_TAG=_$OS_TEST
1594 if test -z "$USE_64"; then
1597 PR_MD_ASFILES=os_HPUX_ia64.s
1601 PR_MD_ASFILES=os_HPUX.s
1603 if test -n "$USE_64"; then
1604 MDCPUCFG_H=_hpux64.cfg
1606 MDCPUCFG_H=_hpux32.cfg
1608 if test -z "$GNU_CC"; then
1614 ASFLAGS="$ASFLAGS -x assembler-with-cpp"
1617 if test -n "$MOZILLA_CLIENT"; then
1618 DEFAULT_IMPL_STRATEGY=_EMU
1621 if echo "$OS_RELEASE" | grep ^A.09 >/dev/null; then
1622 AC_DEFINE(_PR_NEED_H_ERRNO)
1624 DEFAULT_IMPL_STRATEGY=_EMU
1628 if echo "$OS_RELEASE" | egrep '^(A.09|B.10)' >/dev/null; then
1629 AC_DEFINE(_PR_NO_LARGE_FILES)
1632 if echo "$OS_RELEASE" | egrep '^(B.10.10|B.10.20)' >/dev/null; then
1633 AC_DEFINE(_PR_NEED_H_ERRNO)
1636 if echo "$OS_RELEASE" | egrep '^(B.10.10|B.10.20)' >/dev/null; then
1637 AC_DEFINE(HAVE_INT_LOCALTIME_R)
1640 if echo "$OS_RELEASE" | egrep '^(B.10.30|B.11)' >/dev/null; then
1641 AC_DEFINE(HAVE_POINTER_LOCALTIME_R)
1644 # HP-UX 11i v2 (B.11.23) or higher
1646 case "$OS_RELEASE" in
1647 [C-Z]*|B.[2-9]*|B.1[2-9]*|B.11.[3-9]*|B.11.2[3-9]*)
1653 if test "$OS_RELEASE" = "B.10.01"; then
1655 DEFAULT_IMPL_STRATEGY=_EMU
1658 if test "$OS_RELEASE" = "B.10.10"; then
1660 AC_DEFINE(HPUX10_10)
1661 DEFAULT_IMPL_STRATEGY=_PTH
1664 if test "$OS_RELEASE" = "B.10.20"; then
1666 AC_DEFINE(HPUX10_20)
1667 if test -z "$GNU_CC"; then
1668 CFLAGS="$CFLAGS +DAportable +DS1.1"
1669 CXXFLAGS="$CXXFLAGS +DAportable +DS1.1"
1671 DEFAULT_IMPL_STRATEGY=_PTH
1674 if test "$OS_RELEASE" = "B.10.30"; then
1676 AC_DEFINE(HPUX10_30)
1677 if test -z "$GNU_CC"; then
1678 CFLAGS="$CFLAGS +DAportable +DS1.1"
1679 CXXFLAGS="$CXXFLAGS +DAportable +DS1.1"
1681 DEFAULT_IMPL_STRATEGY=_PTH
1684 if echo "$OS_RELEASE" | grep ^B.11 >/dev/null; then
1687 AC_DEFINE(_LARGEFILE64_SOURCE)
1688 AC_DEFINE(_PR_HAVE_OFF64_T)
1689 AC_DEFINE(HAVE_FCNTL_FILE_LOCKING)
1690 if test -z "$GNU_CC"; then
1691 if test -z "$USE_64"; then
1692 if test "$OS_TEST" = "ia64"; then
1693 CFLAGS="$CFLAGS +DD32"
1694 CXXFLAGS="$CXXFLAGS +DD32"
1696 CFLAGS="$CFLAGS +DAportable +DS2.0"
1697 CXXFLAGS="$CXXFLAGS +DAportable +DS2.0"
1700 if test "$OS_TEST" = "ia64"; then
1701 CFLAGS="$CFLAGS +DD64"
1702 CXXFLAGS="$CXXFLAGS +DD64"
1704 CFLAGS="$CFLAGS +DA2.0W +DS2.0"
1705 CXXFLAGS="$CXXFLAGS +DA2.0W +DS2.0"
1709 DEFAULT_IMPL_STRATEGY=_PTH
1712 if test "$DEFAULT_IMPL_STRATEGY" = "_EMU"; then
1716 elif test "$DEFAULT_IMPL_STRATEGY" = "_PTH"; then
1718 if test "$USE_NSPR_THREADS"; then
1721 if test "$USE_USER_PTHREADS"; then
1731 AC_DEFINE(_SGI_MP_SOURCE)
1732 AC_DEFINE(HAVE_FCNTL_FILE_LOCKING)
1734 PR_MD_ASFILES=os_Irix.s
1735 MKSHLIB='$(LD) $(DSO_LDOPTS) -rdata_shared -shared -soname $(notdir $@) -o $@'
1737 RESOLVE_LINK_SYMBOLS=1
1738 if test -n "$USE_64"; then
1739 MDCPUCFG_H=_irix64.cfg
1741 MDCPUCFG_H=_irix32.cfg
1743 case "${target_os}" in
1760 if test "$GNU_CC"; then
1762 dnl If we are using gcc with native binutils, we need to
1764 dnl #lineno "filename" num num
1765 dnl lines, which confuse IRIX native as. Add -Wp,-P to the
1766 dnl gcc command line, which passes -P to the preprocessor.
1768 AS='$(CC) -Wp,-P -x assembler-with-cpp -D_ASM -mips2 $(INCLUDES)'
1769 CFLAGS="$CFLAGS -Wall -Wno-format"
1770 _OPTIMIZE_FLAGS="-O6"
1772 if test -n "$USE_N32"; then
1773 AS='as -D_ASM $(INCLUDES) -n32'
1775 AS='as -D_ASM $(INCLUDES)'
1777 CFLAGS="$CFLAGS -fullwarn -xansi"
1778 if test "$USE_N32"; then
1779 _OPTIMIZE_FLAGS="-O -OPT:Olimit=4000"
1781 _OPTIMIZE_FLAGS="-O -Olimit 4000"
1783 if test "$USE_MDUPDATE"; then
1784 CFLAGS="$CFLAGS -MDupdate \$(DEPENDENCIES)"
1788 CFLAGS="$CFLAGS -multigot"
1789 DSO_LDOPTS="-no_unresolved"
1790 if test "$USE_N32"; then
1791 CFLAGS="$CFLAGS -n32 -woff 1209"
1792 DSO_LDOPTS="$DSO_LDOPTS -n32"
1794 if test "$USE_64"; then
1795 CFLAGS="$CFLAGS -64"
1797 CFLAGS="$CFLAGS -32"
1802 CFLAGS="$CFLAGS -xgot"
1806 if test "${target_os}" = "irix5.3"; then
1809 case "${target_os}" in
1811 if test -z "$GNU_CC"; then
1812 CFLAGS="$CFLAGS -mips3"
1814 AC_DEFINE(_PR_HAVE_GETPROTO_R)
1815 AC_DEFINE(_PR_HAVE_GETPROTO_R_POINTER)
1816 AC_DEFINE(_PR_HAVE_SGI_PRDA_PROCMASK)
1821 AC_DEFINE(_PR_HAVE_SGI_PRDA_PROCMASK)
1826 *-linux*|*-gnu*|*-k*bsd*-gnu|*-android*|*-linuxandroid*)
1827 if test -z "$USE_NSPR_THREADS"; then
1832 AC_DEFINE(_GNU_SOURCE)
1833 AC_DEFINE(HAVE_FCNTL_FILE_LOCKING)
1834 AC_DEFINE(HAVE_POINTER_LOCALTIME_R)
1836 *-android*|*-linuxandroid*)
1844 CFLAGS="$CFLAGS -Wall"
1845 CXXFLAGS="$CXXFLAGS -Wall"
1846 MDCPUCFG_H=_linux.cfg
1848 MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
1850 DSO_LDOPTS='-shared -Wl,-soname -Wl,$(notdir $@)'
1852 _DEBUG_FLAGS="-g -fno-inline" # most people on linux use gcc/gdb, and that
1853 # combo is not yet good at debugging inlined
1854 # functions (even when using DWARF2 as the
1857 if echo "$OS_TEST" | grep -c 86 >/dev/null; then
1862 CPU_ARCH_TAG=_${CPU_ARCH}
1863 case "${target_cpu}" in
1867 CFLAGS="$CFLAGS -mieee"
1868 CXXFLAGS="$CXXFLAGS -mieee"
1872 PR_MD_ASFILES=os_Linux_x86.s
1875 PR_MD_ASFILES=os_Linux_ia64.s
1878 if test -n "$USE_64"; then
1879 PR_MD_ASFILES=os_Linux_x86_64.s
1880 elif test -n "$USE_X32"; then
1881 PR_MD_ASFILES=os_Linux_x86_64.s
1886 PR_MD_ASFILES=os_Linux_x86.s
1892 PR_MD_ASFILES=os_Linux_ppc.s
1895 if test -n "$USE_64"; then
1899 PR_MD_ASFILES=os_Linux_ppc.s
1905 *-mingw*|*-msys*|*-cygwin*|*-mks*)
1908 PR_MD_ARCH_DIR=windows
1909 RESOLVE_LINK_SYMBOLS=1
1911 if test -n "$GNU_CC"; then
1913 CXX="$CXX -mwindows"
1915 MKSHLIB='$(CC) -shared -Wl,--export-all-symbols -Wl,--out-implib -Wl,$(IMPORT_LIBRARY) $(DLLBASE) -o $(subst $(OBJDIR)/,,$(SHARED_LIBRARY))'
1917 # Use temp file for windres (bug 213281)
1918 RCFLAGS='-O coff --use-temp-file'
1921 AR='lib -NOLOGO -OUT:"$@"'
1923 RANLIB='echo not_ranlib'
1924 STRIP='echo not_strip'
1926 GARBAGE='$(OBJDIR)/vc20.pdb $(OBJDIR)/vc40.pdb'
1931 # Determine compiler version
1933 _MSVC_VER_FILTER='s|.* \([0-9]\+\.[0-9]\+\.[0-9]\+\(\.[0-9]\+\)\?\).*|\1|p'
1935 CC_VERSION=`${CC} -v 2>&1 | sed -ne "$_MSVC_VER_FILTER"`
1936 if test -z "$CC_VERSION"; then
1937 AC_MSG_ERROR([Could not determine MSC version.])
1940 _CC_MAJOR_VERSION=`echo ${CC_VERSION} | awk -F\. '{ print $1 }'`
1941 _CC_MINOR_VERSION=`echo ${CC_VERSION} | awk -F\. '{ print $2 }'`
1942 _CC_RELEASE=`echo ${CC_VERSION} | awk -F\. '{ print $3 }'`
1943 _CC_BUILD=`echo ${CC_VERSION} | awk -F\. '{ print $4 }'`
1944 MSC_VER=${_CC_MAJOR_VERSION}${_CC_MINOR_VERSION}
1946 if test "$_CC_MAJOR_VERSION" -eq "14"; then
1947 dnl -DYNAMICBASE is only supported on VC8SP1 or newer,
1948 dnl so be very specific here!
1949 dnl VC8 is 14.00.50727.42, VC8SP1 is 14.00.50727.762
1950 if test $_CC_RELEASE -gt 50727; then
1952 elif test $_CC_BUILD -ge 762; then
1955 AC_DEFINE(_CRT_SECURE_NO_DEPRECATE)
1956 AC_DEFINE(_CRT_NONSTDC_NO_DEPRECATE)
1957 elif test $_CC_MAJOR_VERSION -ge 15; then
1959 AC_DEFINE(_CRT_SECURE_NO_WARNINGS)
1960 AC_DEFINE(_CRT_NONSTDC_NO_WARNINGS)
1963 if test -n "$_USE_DYNAMICBASE"; then
1964 DLLFLAGS="$DLLFLAGS -DYNAMICBASE"
1967 # Ensure that mt is Microsoft (R) Manifest Tool and not magnetic
1968 # tape manipulation utility (or something else)
1969 if test "$MSC_VER" -ge "1400"; then
1971 _MSMT_VER_FILTER='s|.* \([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*|\1|p'
1974 MSMT_TOOL=`mt 2>&1|grep 'Microsoft (R) Manifest Tool'`
1975 if test -n "$MSMT_TOOL"; then
1976 MSMANIFEST_TOOL_VERSION=`echo ${MSMT_TOOL}|sed -ne "$_MSMT_VER_FILTER"`
1977 if test -z "$MSMANIFEST_TOOL_VERSION"; then
1978 AC_MSG_WARN([Unknown version of the Microsoft (R) Manifest Tool.])
1983 AC_MSG_ERROR([Microsoft (R) Manifest Tool must be in your \$PATH.])
1987 CFLAGS="$CFLAGS -W3 -nologo -GF -Gy"
1988 DLLFLAGS="$DLLFLAGS -OUT:\"\$@\""
1992 PROFILE_GEN_CFLAGS="-GL"
1993 PROFILE_GEN_LDFLAGS="-LTCG:PGINSTRUMENT"
1994 PROFILE_USE_CFLAGS="-GL -wd4624 -wd4952"
1995 PROFILE_USE_LDFLAGS="-LTCG:PGUPDATE"
1997 if test "$MSC_VER" -ge "1800"; then
1998 dnl Visual C++ 2013 requires -FS when parallel building with
1999 dnl make -jN. If not specified, compiler sometimes emits C1041
2001 CFLAGS="$CFLAGS -FS"
2002 dnl -Gw can benefit when using linker optimization on PGO.
2003 dnl http://blogs.msdn.com/b/vcblog/archive/2013/09/11/introducing-gw-compiler-switch.aspx
2004 PROFILE_GEN_CFLAGS="$PROFILE_GEN_CFLAGS -Gw"
2005 PROFILE_USE_CFLAGS="$PROFILE_USE_CFLAGS -Gw"
2008 if test -z "$MOZ_OPTIMIZE"; then
2009 CFLAGS="$CFLAGS -Od"
2012 if test "$USE_DEBUG_RTL" = 1; then
2013 if test -n "$USE_STATIC_RTL"; then
2014 CFLAGS="$CFLAGS -MTd"
2016 CFLAGS="$CFLAGS -MDd"
2019 if test -n "$USE_STATIC_RTL"; then
2020 CFLAGS="$CFLAGS -MT"
2022 CFLAGS="$CFLAGS -MD"
2026 if test -n "$MOZ_DEBUG"; then
2029 DEFINES="$DEFINES -U_DEBUG"
2032 if test -n "$MOZ_DEBUG_SYMBOLS"; then
2033 if test -n "$MOZ_OPTIMIZE"; then
2034 DLLFLAGS="$DLLFLAGS -DEBUG -OPT:REF"
2035 LDFLAGS="$LDFLAGS -DEBUG -OPT:REF"
2037 DLLFLAGS="$DLLFLAGS -DEBUG"
2038 LDFLAGS="$LDFLAGS -DEBUG"
2042 OS_DLLFLAGS="-nologo -DLL -SUBSYSTEM:WINDOWS"
2043 if test "$MSC_VER" -le "1200" -a -z "$MOZ_DEBUG_SYMBOLS"; then
2044 OS_DLLFLAGS="$OS_DLLFLAGS -PDB:NONE"
2047 if test "$OS_TARGET" = "WINNT"; then
2048 CFLAGS="$CFLAGS -GT"
2049 LIBNSPR='$(dist_libdir)/libnspr$(MOD_MAJOR_VERSION).$(LIB_SUFFIX)'
2050 LIBPLC='$(dist_libdir)/libplc$(MOD_MAJOR_VERSION).$(LIB_SUFFIX)'
2052 LIBNSPR='$(dist_libdir)/nspr$(MOD_MAJOR_VERSION).$(LIB_SUFFIX)'
2053 LIBPLC='$(dist_libdir)/plc$(MOD_MAJOR_VERSION).$(LIB_SUFFIX)'
2057 if test -n "$USE_STATIC_TLS"; then
2058 AC_DEFINE(_PR_USE_STATIC_TLS)
2061 if test "$OS_TARGET" = "WINNT"; then
2065 # undefine WINNT as some versions of mingw gcc define it by default
2066 DEFINES="$DEFINES -UWINNT"
2067 AC_DEFINE(_PR_GLOBAL_THREADS_ONLY)
2070 if test "$CPU_ARCH" = "x86"; then
2073 CPU_ARCH_TAG=$CPU_ARCH
2076 if test "$USE_DEBUG_RTL" = 1; then
2080 case "$OS_TARGET" in
2082 MDCPUCFG_H=_winnt.cfg
2085 MDCPUCFG_H=_win95.cfg
2088 AC_MSG_ERROR([Missing OS_TARGET for ${target}. Use --enable-win32-target to set.])
2092 case "$target_cpu" in
2094 if test -n "$USE_64"; then
2098 if test -z "$GNU_CC" -a "$MSC_VER" -ge "1700"; then
2099 dnl Visual C++ 2012 defaults to -arch:SSE2. Use -arch:IA32
2100 dnl to avoid requiring SSE2.
2101 CFLAGS="$CFLAGS -arch:IA32"
2118 AC_DEFINE(_CPU_ARCH_NOT_DEFINED)
2126 AC_DEFINE(HAVE_BSD_FLOCK)
2127 AC_DEFINE(HAVE_SOCKLEN_T)
2128 AC_DEFINE(HAVE_POINTER_LOCALTIME_R)
2129 if test -z "$USE_NSPR_THREADS"; then
2132 MDCPUCFG_H=_netbsd.cfg
2133 PR_MD_CSRCS=netbsd.c
2135 DSO_CFLAGS='-fPIC -DPIC'
2136 CFLAGS="$CFLAGS -ansi -Wall"
2137 CXXFLAGS="$CXXFLAGS -ansi -Wall"
2138 MKSHLIB='$(CC) -o $@ $(DSO_LDOPTS)'
2140 if test -z "$OBJECT_FMT"; then
2141 if echo __ELF__ | ${CC-cc} -E - | grep -q __ELF__ 2>/dev/null; then
2144 DSO_LDOPTS='-shared'
2148 DSO_LDOPTS='-shared -Wl,-soname,$(notdir $@)'
2152 if test "$LIBRUNPATH"; then
2153 DSO_LDOPTS="$DSO_LDOPTS -Wl,-R$LIBRUNPATH"
2160 AC_DEFINE(_QNX_SOURCE)
2161 AC_DEFINE(HAVE_POINTER_LOCALTIME_R)
2164 MKSHLIB='$(CC) $(DSO_LDOPTS) -Wl,-soname -Wl,$(notdir $@) -o $@'
2167 OS_LIBS="$OS_LIBS -lsocket"
2168 _OPTIMIZE_FLAGS="-O1"
2169 _DEBUG_FLAGS="-gstabs"
2175 AC_DEFINE(HAVE_BSD_FLOCK)
2176 AC_DEFINE(HAVE_SOCKLEN_T)
2177 AC_DEFINE(HAVE_POINTER_LOCALTIME_R)
2178 CFLAGS="$CFLAGS -ansi -Wall"
2179 CXXFLAGS="$CXXFLAGS -ansi -Wall"
2182 MDCPUCFG_H=_openbsd.cfg
2183 PR_MD_CSRCS=openbsd.c
2185 if test -z "$USE_NSPR_THREADS"; then
2188 DSO_LDOPTS='-shared -fPIC -Wl,-soname,$(notdir $@)'
2189 MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
2193 SHELL_OVERRIDE="SHELL = /usr/bin/ksh"
2196 AC_DEFINE(_REENTRANT)
2197 # OSF1 and HPUX report the POLLHUP event for a socket when the
2198 # shutdown(SHUT_WR) operation is called for the remote end, even though
2199 # the socket is still writeable. Use select(), instead of poll(), to
2200 # workaround this problem.
2201 AC_DEFINE(_PR_POLL_WITH_SELECT)
2203 if echo "$OS_RELEASE" | egrep -c '(V2.0|V3.2)' 2>/dev/null ; then
2207 if test -z "$GNU_CC"; then
2208 CC="$CC -std1 -ieee_with_inexact"
2209 if test "$OS_RELEASE" != "V2.0"; then
2210 CC="$CC -readonly_strings"
2212 _OPTIMIZE_FLAGS="$_OPTIMIZE_FLAGS -Olimit 4000"
2213 AC_CHECK_HEADER(machine/builtins.h, AC_DEFINE(OSF1_HAVE_MACHINE_BUILTINS_H))
2215 CFLAGS="$CFLAGS -mieee"
2216 CXXFLAGS="$CXXFLAGS -mieee"
2219 if echo $OS_RELEASE | egrep -c '(V2.0|V3.2)' 2>/dev/null; then
2220 AC_DEFINE(HAVE_INT_LOCALTIME_R)
2222 AC_DEFINE(HAVE_FCNTL_FILE_LOCKING)
2223 AC_DEFINE(HAVE_POINTER_LOCALTIME_R)
2225 if echo $OS_RELEASE | grep -c V4.0 >/dev/null; then
2226 AC_DEFINE(OSF1V4_MAP_PRIVATE_BUG)
2228 DSO_LDOPTS='-shared -all -expect_unresolved "*" -soname $(notdir $@)'
2229 MDCPUCFG_H=_osf1.cfg
2236 AC_DEFINE(_PR_NEED_H_ERRNO)
2245 AC_DEFINE(_PR_NEED_H_ERRNO)
2247 MDCPUCFG_H=_riscos.cfg
2248 PR_MD_CSRCS=riscos.c
2250 DSO_LDOPTS='-shared -Wl,-soname -Wl,$(notdir $@)'
2251 MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
2260 AC_DEFINE(_PR_NEED_H_ERRNO)
2261 CC='cc -b elf -KPIC'
2262 CXX='$(NSDEPTH)/build/hcpp CC +.cpp +w'
2265 DSO_LDOPTS='-b elf -G'
2266 MDCPUCFG_H=_scoos.cfg
2271 if test -z "$USE_NSPR_THREADS"; then
2280 AC_DEFINE(HAVE_FCNTL_FILE_LOCKING)
2282 MDCPUCFG_H=_solaris.cfg
2283 PR_MD_CSRCS=solaris.c
2285 MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
2286 RESOLVE_LINK_SYMBOLS=1
2287 case "${OS_RELEASE}" in
2291 # It is safe to use the -Bdirect linker flag on Solaris 10 or later.
2295 if test -n "$GNU_CC"; then
2297 if `$CC -print-prog-name=ld` -v 2>&1 | grep -c GNU >/dev/null; then
2300 DSO_LDOPTS='-shared -Wl,-h,$(notdir $@),-z,combreloc,-z,defs,-z,ignore'
2301 if test -n "$USE_B_DIRECT"; then
2302 DSO_LDOPTS="$DSO_LDOPTS,-Bdirect"
2306 DSO_LDOPTS='-G -h $(notdir $@) -z combreloc -z defs -z ignore'
2307 if test -n "$USE_B_DIRECT"; then
2308 DSO_LDOPTS="$DSO_LDOPTS -Bdirect"
2311 if test -n "$GNU_CC"; then
2312 CFLAGS="$CFLAGS -Wall"
2313 CXXFLAGS="$CXXFLAGS -Wall"
2314 if test -n "$USE_MDUPDATE"; then
2315 CFLAGS="$CFLAGS -MDupdate \$(DEPENDENCIES)"
2316 CXXFLAGS="$CXXFLAGS -MDupdate \$(DEPENDENCIES)"
2318 GCC_AS=`$CC -print-prog-name=as`
2319 if test "`echo | $GCC_AS -v 2>&1 | grep -c GNU`" != "0"; then
2323 CFLAGS="$CFLAGS -xstrconst"
2324 CXXFLAGS="$CXXFLAGS -Qoption cg -xstrconst -features=tmplife"
2325 if test -z "$MOZ_OPTIMIZE"; then
2326 CFLAGS="$CFLAGS -xs"
2327 CXXFLAGS="$CXXFLAGS -xs"
2329 _OPTIMIZE_FLAGS=-xO4
2331 if test -z "$GNU_AS"; then
2332 ASFLAGS="$ASFLAGS -Wa,-P"
2334 if test -n "$USE_64"; then
2335 if test -n "$GNU_CC"; then
2339 if test "$OS_TEST" = "i86pc"; then
2340 CC="$CC -xarch=amd64"
2341 CXX="$CXX -xarch=amd64"
2344 CXX="$CXX -xarch=v9"
2348 if test "$OS_TEST" = "i86pc"; then
2349 if test -z "$USE_64"; then
2352 CPU_ARCH_TAG=_$OS_TEST
2353 # The default debug format, DWARF (-g), is not supported by gcc
2354 # on i386-ANY-sysv4/solaris, but the stabs format is. It is
2355 # assumed that the Solaris assembler /usr/ccs/bin/as is used.
2356 # If your gcc uses GNU as, you do not need the -Wa,-s option.
2357 if test -n "$MOZ_DEBUG" && test -n "$GNU_CC"; then
2358 _DEBUG_FLAGS=-gstabs
2359 if test -z "$GNU_AS"; then
2360 _DEBUG_FLAGS="$_DEBUG_FLAGS -Wa,-s"
2364 case "${target_os}" in
2366 AC_DEFINE(_PR_NO_LARGE_FILES)
2369 AC_DEFINE(_PR_NO_LARGE_FILES)
2372 AC_DEFINE(SOLARIS2_5)
2375 AC_DEFINE(_PR_HAVE_OFF64_T)
2376 # The lfcompile64(5) man page on Solaris 2.6 says:
2377 # For applications that do not wish to conform to the POSIX or
2378 # X/Open specifications, the 64-bit transitional interfaces
2379 # are available by default. No compile-time flags need to be
2381 # But gcc 2.7.2.x fails to define _LARGEFILE64_SOURCE by default.
2382 # The native compiler, gcc 2.8.x, and egcs don't have this problem.
2383 if test -n "$GNU_CC"; then
2384 AC_DEFINE(_LARGEFILE64_SOURCE)
2388 case "${target_os}" in
2400 # Solaris 8 or higher has IPv6.
2401 AC_DEFINE(_PR_INET6)
2404 if test "$CPU_ARCH" = "sparc"; then
2405 # 64-bit Solaris SPARC requires V9 architecture, so the following
2407 if test -z "$USE_64"; then
2408 ULTRASPARC_LIBRARY=nspr_flt
2411 # Purify requires that binaries linked against nspr also
2412 # be linked against -lrt (or -lposix4) so add it to OS_LIBS
2414 _librt=`echo $_rev 5.6 | awk '{ if ($1 > $2) print "-lrt"; else print "-lposix4" }'`
2415 OS_LIBS="$OS_LIBS $_librt"
2424 if echo $OS_RELEASE | grep -c 2.1 2>/dev/null; then
2425 AC_DEFINE(_PR_NO_LARGE_FILES)
2426 CC='$(NSDEPTH)/build/hcc cc'
2427 CXX='$(NSDEPTH)/build/hcpp CC'
2428 MDCPUCFG_H=_unixware.cfg
2430 AC_DEFINE(_LARGEFILE64_SOURCE)
2431 AC_DEFINE(_PR_HAVE_OFF64_T)
2432 AC_DEFINE(_PR_HAVE_SOCKADDR_LEN)
2433 MDCPUCFG_H=_unixware7.cfg
2435 PR_MD_CSRCS=unixware.c
2441 AC_ARG_WITH(symbian-sdk,
2442 [ --with-symbian-sdk=SYMBIAN_SDK_DIR
2443 The path to the Symbian SDK],
2444 SYMBIAN_SDK_DIR=$withval)
2446 echo -----------------------------------------------------------------------------
2447 echo Building with Symbian SDK in: $SYMBIAN_SDK_DIR
2448 echo -----------------------------------------------------------------------------
2453 AC_DEFINE(__SYMBIAN32__)
2456 AC_DEFINE(__SUPPORT_CPP_EXCEPTIONS__)
2457 AC_DEFINE(MOZ_STDERR_TO_STDOUT)
2458 AC_DEFINE(HAVE_FCNTL_FILE_LOCKING)
2459 AC_DEFINE(HAVE_SOCKLEN_T)
2467 MDCPUCFG_H=_symbian.cfg
2468 PR_MD_CSRCS=symbian.c
2470 RANLIB='echo no ranlib '
2473 OS_EXE_CFLAGS="$OS_EXE_CFLAGS -D__EXE__"
2474 CFLAGS="$CFLAGS -MD -nostdinc"
2475 SYMBIAN_SYS_INCLUDE="-I$SYMBIAN_SDK_DIR/Epoc32/include/variant -I$SYMBIAN_SDK_DIR/Epoc32/include -I$SYMBIAN_SDK_DIR/Epoc32/include/stdapis"
2476 echo -------------------------------------------------------
2477 echo SYMBIAN_SYS_INCLUDE is: $SYMBIAN_SYS_INCLUDE
2478 echo -------------------------------------------------------
2479 case "$OS_TARGET" in
2485 WINSCW_LD_DIR="\$(SYMBIAN_SDK_DIR)/EPOC32/RELEASE/WINSCW/UDEB"
2486 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)"
2487 SYMBIAN_SYS_INCLUDE="$SYMBIAN_SYS_INCLUDE -include Symbian_OS_v9.2.hrh"
2488 AR_FLAGS="-library -msgstyle gcc -stdlib -subsystem windows -noimplib -o \$@"
2492 AC_DEFINE(__WINSCW__)
2493 DEFINES="$DEFINES -U_WIN32"
2496 CFLAGS="$CFLAGS -Wall -Wno-unknown-pragmas -fexceptions -march=armv5t -mapcs -pipe -x c -msoft-float"
2497 CXXFLAGS="$CXXFLAGS $CFLAGS -Wno-ctor-dtor-privacy"
2498 SYMBIAN_SYS_INCLUDE="$SYMBIAN_SYS_INCLUDE -include $SYMBIAN_SDK_DIR/EPOC32/INCLUDE/GCCE/GCCE.h"
2501 DEFINES="$DEFINES -D__PRODUCT_INCLUDE__=$SYMBIAN_SDK_DIR/Epoc32/include/variant/Symbian_OS_v9.2.hrh"
2504 AC_MSG_ERROR([Missing OS_TARGET for ${target}. Set --enable-symbian-target to with 'WINSCW' or 'GCCE'.])
2507 CFLAGS="$CFLAGS ${SYMBIAN_SYS_INCLUDE}"
2513 AC_DEFINE(BSD_SELECT)
2514 AC_DEFINE(TCPV40HDRS)
2522 RESOLVE_LINK_SYMBOLS=1
2527 CFLAGS="$CFLAGS -Wall -Zomf"
2528 CXXFLAGS="$CFLAGS -Wall -Zomf"
2529 MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
2531 DSO_LDOPTS='-Zomf -Zdll'
2533 _OPTIMIZE_FLAGS="-O2 -s"
2534 _DEBUG_FLAGS="-g -fno-inline"
2535 if test -n "$MOZ_OPTIMIZE"; then
2536 DSO_LDOPTS="$DSO_LDOPTS -Zlinker /EXEPACK:2 -Zlinker /PACKCODE -Zlinker /PACKDATA"
2540 if test -n "$MOZ_OS2_HIGH_MEMORY"; then
2541 LDFLAGS="$LDFLAGS -Zhigh-mem"
2542 AC_DEFINE(MOZ_OS2_HIGH_MEMORY)
2545 # GCC for OS/2 currently predefines these, but we don't want them
2546 DEFINES="$DEFINES -Uunix -U__unix -U__unix__"
2555 if test -z "$SKIP_LIBRARY_CHECKS"; then
2556 dnl ========================================================
2557 dnl Check for system libraries
2558 dnl ========================================================
2561 dnl We don't want anything to link with libdl even if it's present on OS X,
2562 dnl since it's not used and not part of the default installation.
2563 dnl The same goes for BeOS.
2564 dnl OS/2 has dlfcn in libc.
2567 *-darwin*|*-beos*|*-os2*)
2570 AC_CHECK_LIB(dl, dlopen,
2571 [AC_CHECK_HEADER(dlfcn.h,
2572 OS_LIBS="-ldl $OS_LIBS")])
2577 dnl ========================================================
2578 dnl Check for system header files.
2579 dnl ========================================================
2581 dnl ========================================================
2582 dnl Check for typedefs and structs
2583 dnl ========================================================
2585 dnl ========================================================
2586 dnl Checks for library functions.
2587 dnl ========================================================
2588 AC_PROG_GCC_TRADITIONAL
2590 LIBS="$LIBS $OS_LIBS"
2591 AC_CHECK_FUNCS(dladdr gettid lchown setpriority strerror syscall dnl
2592 secure_getenv __secure_getenv)
2595 dnl ========================================================
2597 dnl ========================================================
2599 dnl ======================================================
2600 dnl = Enable compiling with ccache
2601 dnl ======================================================
2603 [ --with-ccache[=path/to/ccache]
2604 Enable compiling with ccache],
2605 CCACHE=$withval, CCACHE="no")
2607 if test "$CCACHE" != "no"; then
2608 if test -n "$CCACHE"; then
2609 if test "$CCACHE" = "yes"; then
2612 if test ! -e "$CCACHE"; then
2613 AC_MSG_ERROR([$CCACHE not found])
2617 AC_PATH_PROGS(CCACHE, $CCACHE ccache)
2618 if test -z "$CCACHE" -o "$CCACHE" = ":"; then
2619 AC_MSG_ERROR([ccache not found])
2620 elif test -x "$CCACHE"; then
2624 AC_MSG_ERROR([$CCACHE is not executable])
2628 dnl ========================================================
2630 dnl = --enable-strip
2632 dnl = Enable stripping of libs and executables
2634 dnl ========================================================
2635 AC_ARG_ENABLE(strip,
2636 [ --enable-strip Enable stripping of shared libs and programs],
2637 [ if test "$enableval" = "yes"; then
2641 dnl Check for hpux options
2642 case "${target_os}" in
2644 if test -z "$GNU_CC"; then
2646 AC_CACHE_CHECK(for +Olit support,
2647 ac_cv_hpux_usable_olit_option,
2648 dnl since aCC doesn't throw an error on invalid options,
2649 dnl we have to test this the hard way
2650 [ac_cv_hpux_usable_olit_option=no
2652 echo 'int main() { return 0; }' | cat > conftest.c
2653 ${CC-cc} ${CFLAGS} +Olit=all -o conftest conftest.c > conftest.out 2>&1
2654 if test $? -eq 0; then
2655 if test -z "`egrep -i '(unrecognize|unknown)' conftest.out`"; then
2656 ac_cv_hpux_usable_olit_option=yes
2662 if test "$ac_cv_hpux_usable_olit_option" = "yes"; then
2663 CFLAGS="$CFLAGS +Olit=all"
2664 CXXFLAGS="$CXXFLAGS +Olit=all"
2666 CFLAGS="$CFLAGS +ESlit"
2667 CXXFLAGS="$CXXFLAGS +ESlit"
2673 case "$target_os" in
2678 AC_CHECK_LIB(pthreads, pthread_create,
2679 _HAVE_PTHREADS=1 _PTHREAD_LDFLAGS="-lpthreads",
2680 AC_CHECK_LIB(pthread, pthread_create,
2681 _HAVE_PTHREADS=1 _PTHREAD_LDFLAGS="-lpthread",
2682 AC_CHECK_LIB(c_r, pthread_create,
2683 _HAVE_PTHREADS=1 _PTHREAD_LDFLAGS="-lc_r",
2684 AC_CHECK_LIB(c, pthread_create,
2693 AC_ARG_WITH(pthreads,
2694 [ --with-pthreads Use system pthreads library as thread subsystem],
2695 [ if test "$withval" = "yes"; then
2696 if test -n "$_HAVE_PTHREADS"; then
2701 AC_MSG_ERROR([ --with-pthreads specified for a system without pthread support ]);
2707 [ if test -n "$_HAVE_PTHREADS" && test -z "$USE_USER_PTHREADS" && test -z "$USE_NSPR_THREADS"; then
2713 AC_ARG_ENABLE(user-pthreads,
2714 [ --enable-user-pthreads Build using userland pthreads],
2715 [ if test "$enableval" = "yes"; then
2716 if test -n "$_HAVE_PTHREADS"; then
2721 AC_MSG_ERROR([ --enable-user-pthreads specified for a system without pthread support ]);
2725 AC_ARG_ENABLE(nspr-threads,
2726 [ --enable-nspr-threads Build using classic nspr threads],
2727 [ if test "$enableval" = "yes"; then
2735 AC_ARG_WITH(bthreads,
2736 [ --with-bthreads Use system bthreads library as thread subsystem
2738 [ if test "$withval" = "yes"; then
2746 fi # SKIP_LIBRARY_CHECKS
2749 [ --enable-ipv6 Compile ipv6 support],
2750 [ if test "$enableval" = "yes"; then
2756 if test -n "$USE_PTHREADS"; then
2757 dnl See if -pthread is supported.
2759 ac_cv_have_dash_pthread=no
2760 AC_MSG_CHECKING(whether ${CC-cc} accepts -pthread)
2761 echo 'int main() { return 0; }' | cat > conftest.c
2762 ${CC-cc} -pthread -o conftest conftest.c > conftest.out 2>&1
2763 if test $? -eq 0; then
2764 if test -z "`egrep -i '(unrecognize|unknown)' conftest.out | grep pthread`" && test -z "`egrep -i '(error|incorrect)' conftest.out`" ; then
2765 ac_cv_have_dash_pthread=yes
2766 case "$target_os" in
2768 # Freebsd doesn't use -pthread for compiles, it uses them for linking
2771 CFLAGS="$CFLAGS -pthread"
2772 CXXFLAGS="$CXXFLAGS -pthread"
2778 AC_MSG_RESULT($ac_cv_have_dash_pthread)
2781 dnl See if -pthreads is supported.
2783 ac_cv_have_dash_pthreads=no
2784 if test "$ac_cv_have_dash_pthread" = "no"; then
2785 AC_MSG_CHECKING(whether ${CC-cc} accepts -pthreads)
2786 echo 'int main() { return 0; }' | cat > conftest.c
2787 ${CC-cc} -pthreads -o conftest conftest.c > conftest.out 2>&1
2788 if test $? -eq 0; then
2789 if test -z "`egrep -i '(unrecognize|unknown)' conftest.out | grep pthreads`" && test -z "`egrep -i '(error|incorrect)' conftest.out`" ; then
2790 ac_cv_have_dash_pthreads=yes
2791 CFLAGS="$CFLAGS -pthreads"
2792 CXXFLAGS="$CXXFLAGS -pthreads"
2796 AC_MSG_RESULT($ac_cv_have_dash_pthreads)
2801 if test "$ac_cv_have_dash_pthreads" = "yes"; then
2806 AC_DEFINE(_REENTRANT)
2807 AC_DEFINE(_THREAD_SAFE)
2808 dnl -pthread links in -lc_r, so don't specify it explicitly.
2809 if test "$ac_cv_have_dash_pthread" = "yes"; then
2810 _PTHREAD_LDFLAGS="-pthread"
2812 _PTHREAD_LDFLAGS="-lc_r"
2816 if test "$ac_cv_have_dash_pthread" = "yes"; then
2817 _PTHREAD_LDFLAGS="-pthread"
2821 AC_DEFINE(_THREAD_SAFE)
2822 dnl -pthread links in -lc_r, so don't specify it explicitly.
2823 if test "$ac_cv_have_dash_pthread" = "yes"; then
2828 if test "$ac_cv_have_dash_pthread" = "yes"; then
2829 _PTHREAD_LDFLAGS=-pthread
2832 *-linux*|*-gnu*|*-k*bsd*-gnu)
2833 AC_DEFINE(_REENTRANT)
2838 if test -n "$USE_USER_PTHREADS"; then
2845 dnl Special thread exceptions
2849 if test -n "$USE_NSPR_THREADS"; then
2850 AC_DEFINE(_PR_LOCAL_THREADS_ONLY)
2852 case "$target_os" in
2854 if test -z "$USE_PTHREADS"; then
2855 AC_DEFINE(AIX_RENAME_SELECT)
2859 if test -z "$USE_NSPR_THREADS"; then
2860 AC_DEFINE(HAVE_POINTER_LOCALTIME_R)
2864 if test -z "$USE_NSPR_THREADS"; then
2865 AC_DEFINE(HAVE_POINTER_LOCALTIME_R)
2867 if test -n "$USE_PTHREADS"; then
2868 AC_DEFINE(_PR_HAVE_THREADSAFE_GETHOST)
2872 if test -z "$USE_NSPR_THREADS"; then
2873 AC_DEFINE(HAVE_POINTER_LOCALTIME_R)
2875 if test -n "$USE_PTHREADS"; then
2876 AC_DEFINE(_PR_HAVE_THREADSAFE_GETHOST)
2882 if test -n "$USE_PTHREADS"; then
2883 AC_DEFINE(_PR_NEED_PTHREAD_INIT)
2887 if test -n "$USE_NSPR_THREADS"; then
2888 AC_DEFINE(_PR_LOCAL_THREADS_ONLY)
2892 if test -n "$USE_NSPR_THREADS"; then
2893 AC_DEFINE(_PR_LOCAL_THREADS_ONLY)
2895 if test "$USE_PTHREADS"; then
2896 AC_DEFINE_UNQUOTED(_POSIX_C_SOURCE,199506L)
2897 AC_DEFINE(_PR_HAVE_THREADSAFE_GETHOST)
2899 if test "$USE_USER_PTHREADS"; then
2900 AC_DEFINE_UNQUOTED(_POSIX_C_SOURCE,199506L)
2904 if test "${target_os}" = "irix6.5"; then
2905 if test -n "$USE_PTHREADS"; then
2906 AC_DEFINE(_PR_HAVE_GETHOST_R)
2907 AC_DEFINE(_PR_HAVE_GETHOST_R_POINTER)
2911 *-linux*|*-gnu*|*-k*bsd*-gnu)
2912 if test -n "$USE_NSPR_THREADS"; then
2913 AC_DEFINE(_PR_LOCAL_THREADS_ONLY)
2916 *-mingw*|*-msys*|*-cygwin*|*-mks*|*-os2*|*-beos*)
2917 dnl win32, os2 & beos cannot use pthreads
2922 *-netbsd*|*-openbsd*)
2923 if test -n "$USE_NSPR_THREADS"; then
2924 AC_DEFINE(_PR_LOCAL_THREADS_ONLY)
2928 if test -n "$USE_NSPR_THREADS"; then
2929 AC_DEFINE(_PR_LOCAL_THREADS_ONLY)
2931 if test -n "$USE_PTHREADS"; then
2932 if echo $OS_RELEASE | egrep -c '(V2.0|V3.2)' 2>/dev/null; then
2935 AC_DEFINE(_PR_HAVE_THREADSAFE_GETHOST)
2940 if test -n "$USE_NSPR_THREADS"; then
2941 AC_DEFINE(_PR_LOCAL_THREADS_ONLY)
2943 if test -n "$USE_PTHREADS"; then
2944 AC_DEFINE(_REENTRANT)
2945 AC_DEFINE(HAVE_POINTER_LOCALTIME_R)
2946 if test "$OS_TEST" = "i86pc"; then
2947 if test -n "$USE_64"; then
2948 PR_MD_ASFILES=os_SunOS_x86_64.s
2950 PR_MD_ASFILES=os_SunOS_x86.s
2953 if test -n "$USE_64"; then
2954 PR_MD_ASFILES=os_SunOS_sparcv9.s
2960 if test -n "$USE_PTHREADS"; then
2961 AC_DEFINE(_PR_HAVE_GETHOST_R)
2962 AC_DEFINE(_PR_HAVE_GETHOST_R_POINTER)
2967 OS_LIBS="$_PTHREAD_LDFLAGS $OS_LIBS"
2969 dnl If the user passed in arg to --enable-optimize or --enable-debug,
2970 dnl make sure that we use it.
2971 if test -n "$_SAVE_OPTIMIZE_FLAGS"; then
2972 _OPTIMIZE_FLAGS="$_SAVE_OPTIMIZE_FLAGS"
2975 if test -n "$_SAVE_DEBUG_FLAGS"; then
2976 _DEBUG_FLAGS="$_SAVE_DEBUG_FLAGS"
2979 if test -n "$MOZ_OPTIMIZE"; then
2980 CFLAGS="$CFLAGS $_OPTIMIZE_FLAGS"
2981 CXXFLAGS="$CXXFLAGS $_OPTIMIZE_FLAGS"
2984 if test -n "$MOZ_DEBUG_SYMBOLS"; then
2985 CFLAGS="$CFLAGS $_DEBUG_FLAGS"
2986 CXXFLAGS="$CXXFLAGS $_DEBUG_FLAGS"
2989 if test -n "$MOZ_OPTIMIZE"; then
2995 if test -n "$USE_64"; then
2999 RELEASE_OBJDIR_NAME="${OS_CONFIG}${CPU_ARCH_TAG}${COMPILER_TAG}${IMPL_STRATEGY}${OBJDIR_TAG}.${OBJDIR_SUFFIX}"
3001 dnl ========================================================
3002 dnl Use cygwin wrapper for win32 builds, except MSYS/MinGW
3003 dnl ========================================================
3004 case "$target_os" in
3006 CC="\$(CYGWIN_WRAPPER) $CC"
3007 CXX="\$(CYGWIN_WRAPPER) $CXX"
3008 RC="\$(CYGWIN_WRAPPER) $RC"
3012 dnl ========================================================
3013 dnl = Use malloc wrapper lib
3014 dnl ========================================================
3015 AC_ARG_ENABLE(wrap-malloc,
3016 [ --enable-wrap-malloc Wrap malloc calls (gnu linker only)],
3017 [ if test "$enableval" = "yes"; then
3021 if test -n "$_WRAP_MALLOC"; then
3022 if test -n "$GNU_CC"; then
3023 WRAP_LDFLAGS="${WRAP_LDFLAGS} -Wl,--wrap=malloc,--wrap=calloc,--wrap=valloc,--wrap=free,--wrap=realloc,--wrap=memalign"
3024 WRAP_LDFLAGS="${WRAP_LDFLAGS} -Wl,--wrap=__builtin_new,--wrap=__builtin_vec_new,--wrap=__builtin_delete,--wrap=__builtin_vec_delete"
3025 WRAP_LDFLAGS="${WRAP_LDFLAGS} -Wl,--wrap=strdup,--wrap=strndup"
3026 WRAP_LDFLAGS="${WRAP_LDFLAGS} -Wl,--wrap=posix_memalign,--wrap=malloc_usable_size"
3028 AC_MSG_ERROR([--enable-wrap-malloc is not supported for non-GNU toolchains])
3032 dnl ========================================================
3033 dnl = Location of malloc wrapper lib
3034 dnl ========================================================
3035 AC_ARG_WITH(wrap-malloc,
3036 [ --with-wrap-malloc=SHAREDLIB Location of malloc wrapper library],
3037 WRAP_LDFLAGS="${WRAP_LDFLAGS} $withval")
3039 dnl ========================================================
3040 dnl Substitution of found variables.
3041 dnl ========================================================
3042 AC_SUBST(SHELL_OVERRIDE)
3044 AC_SUBST(MOZILLA_CLIENT)
3051 AC_SUBST(HOST_CFLAGS)
3053 AC_SUBST(HOST_LDFLAGS)
3055 AC_SUBST(GCC_USE_GNU_LD)
3057 AC_SUBST(CROSS_COMPILE)
3059 AC_SUBST(MOZ_OPTIMIZE)
3061 AC_SUBST(MOZ_DEBUG_SYMBOLS)
3068 AC_SUBST(OBJECT_MODE)
3069 AC_SUBST(ENABLE_STRIP)
3071 AC_SUBST(USE_PTHREADS)
3072 AC_SUBST(USE_BTHREADS)
3073 AC_SUBST(USE_USER_PTHREADS)
3074 AC_SUBST(USE_NSPR_THREADS)
3079 AC_SUBST(MOD_MAJOR_VERSION)
3080 AC_SUBST(MOD_MINOR_VERSION)
3081 AC_SUBST(MOD_PATCH_VERSION)
3082 AC_SUBST(NSPR_MODNAME)
3083 AC_SUBST(MDCPUCFG_H)
3084 AC_SUBST(PR_MD_CSRCS)
3085 AC_SUBST(PR_MD_ASFILES)
3086 AC_SUBST(PR_MD_ARCH_DIR)
3089 AC_SUBST(OBJ_SUFFIX)
3090 AC_SUBST(LIB_SUFFIX)
3091 AC_SUBST(DLL_SUFFIX)
3092 AC_SUBST(ASM_SUFFIX)
3093 AC_SUBST(WRAP_LDFLAGS)
3095 AC_SUBST(DSO_CFLAGS)
3096 AC_SUBST(DSO_LDOPTS)
3100 AC_SUBST(OS_RELEASE)
3102 AC_SUBST(MACOSX_DEPLOYMENT_TARGET)
3117 AC_SUBST(PROFILE_GEN_CFLAGS)
3118 AC_SUBST(PROFILE_GEN_LDFLAGS)
3119 AC_SUBST(PROFILE_USE_CFLAGS)
3120 AC_SUBST(PROFILE_USE_LDFLAGS)
3123 AC_SUBST(RESOLVE_LINK_SYMBOLS)
3124 AC_SUBST(AIX_LINK_OPTS)
3125 AC_SUBST(NOSUCHFILE)
3126 AC_SUBST(MOZ_OBJFORMAT)
3127 AC_SUBST(ULTRASPARC_LIBRARY)
3130 AC_SUBST(OBJDIR_NAME)
3131 AC_SUBST(RELEASE_OBJDIR_NAME)
3138 AC_SUBST(OS_DLLFLAGS)
3139 AC_SUBST(CYGWIN_WRAPPER)
3140 AC_SUBST(VISIBILITY_FLAGS)
3141 AC_SUBST(WRAP_SYSTEM_INCLUDES)
3142 AC_SUBST(MACOS_SDK_DIR)
3143 AC_SUBST(SYMBIAN_SDK_DIR)
3147 dnl ========================================================
3148 dnl Generate output files.
3149 dnl ========================================================
3161 lib/libc/include/Makefile
3162 lib/libc/src/Makefile
3167 pr/include/md/Makefile
3168 pr/include/obsolete/Makefile
3169 pr/include/private/Makefile
3172 pr/src/linking/Makefile
3173 pr/src/malloc/Makefile
3175 pr/src/md/${PR_MD_ARCH_DIR}/Makefile
3176 pr/src/memory/Makefile
3177 pr/src/misc/Makefile
3178 pr/src/threads/Makefile
3180 pr/tests/dll/Makefile
3183 if test "$OS_TARGET" = "Linux"; then
3184 MAKEFILES="$MAKEFILES
3187 elif test "$OS_TARGET" = "SunOS"; then
3188 MAKEFILES="$MAKEFILES
3189 pkg/solaris/Makefile
3190 pkg/solaris/SUNWpr/Makefile
3191 pkg/solaris/SUNWprd/Makefile
3195 if test -z "$USE_PTHREADS" && test -z "$USE_BTHREADS"; then
3196 MAKEFILES="$MAKEFILES
3197 pr/src/threads/combined/Makefile
3199 elif test -n "$USE_PTHREADS"; then
3200 MAKEFILES="$MAKEFILES
3201 pr/src/pthreads/Makefile
3203 elif test -n "$USE_BTHREADS"; then
3204 MAKEFILES="$MAKEFILES
3205 pr/src/bthreads/Makefile
3209 if test -n "$USE_CPLUS"; then
3210 MAKEFILES="$MAKEFILES
3211 pr/src/cplus/Makefile
3212 pr/src/cplus/tests/Makefile
3216 echo $MAKEFILES > unallmakefiles
3218 AC_CONFIG_FILES([$MAKEFILES])
3219 AC_CONFIG_COMMANDS([default], [chmod +x config/nspr-config])