DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Mercurial (dcc6d7a0dc00)

VCS Links

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
dnl This Source Code Form is subject to the terms of the Mozilla Public
dnl License, v. 2.0. If a copy of the MPL was not distributed with this
dnl file, You can obtain one at http://mozilla.org/MPL/2.0/.

dnl =======================================================================
dnl = Enable compiling with various compiler wrappers (distcc, ccache, etc)
dnl =======================================================================
AC_DEFUN([MOZ_CHECK_COMPILER_WRAPPER],
[
MOZ_ARG_WITH_STRING(compiler_wrapper,
[  --with-compiler-wrapper[=path/to/wrapper]
    Enable compiling with wrappers such as distcc and ccache],
    COMPILER_WRAPPER=$withval, COMPILER_WRAPPER="no")

MOZ_ARG_WITH_STRING(ccache,
[  --with-ccache[=path/to/ccache]
                          Enable compiling with ccache],
    CCACHE=$withval, CCACHE="no")

if test "$CCACHE" != "no"; then
    if test -z "$CCACHE" -o "$CCACHE" = "yes"; then
        CCACHE=
    else
        if test ! -e "$CCACHE"; then
            AC_MSG_ERROR([$CCACHE not found])
        fi
    fi
    MOZ_PATH_PROGS(CCACHE, $CCACHE ccache)
    if test -z "$CCACHE" -o "$CCACHE" = ":"; then
        AC_MSG_ERROR([ccache not found])
    elif test -x "$CCACHE"; then
        if test "$COMPILER_WRAPPER" != "no"; then
            COMPILER_WRAPPER="$CCACHE $COMPILER_WRAPPER"
        else
            COMPILER_WRAPPER="$CCACHE"
        fi
        MOZ_USING_CCACHE=1
    else
        AC_MSG_ERROR([$CCACHE is not executable])
    fi
fi

AC_SUBST(MOZ_USING_CCACHE)

if test "$COMPILER_WRAPPER" != "no"; then
    case "$target" in
    *-mingw*)
        dnl When giving a windows path with backslashes, js/src/configure
        dnl fails because of double wrapping because the test further below
        dnl doesn't work with backslashes. While fixing that test to work
        dnl might seem better, a lot of the make build backend actually
        dnl doesn't like backslashes, so normalize windows paths to use
        dnl forward slashes.
        COMPILER_WRAPPER=`echo "$COMPILER_WRAPPER" | tr '\\' '/'`
        ;;
    esac

    case "$CC" in
    $COMPILER_WRAPPER\ *)
        :
        ;;
    *)
        CC="$COMPILER_WRAPPER $CC"
        CXX="$COMPILER_WRAPPER $CXX"
        _SUBDIR_CC="$CC"
        _SUBDIR_CXX="$CXX"
        ac_cv_prog_CC="$CC"
        ac_cv_prog_CXX="$CXX"
        ;;
    esac
    MOZ_USING_COMPILER_WRAPPER=1
fi

AC_SUBST(MOZ_USING_COMPILER_WRAPPER)
])