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/. AC_DEFUN([MOZ_PYTHON], [ dnl We honor the Python path defined in an environment variable. This is used dnl to pass the virtualenv's Python from the main configure to SpiderMonkey's dnl configure, for example. if test -z "$PYTHON"; then MOZ_PATH_PROGS(PYTHON, $PYTHON python2.7 python) if test -z "$PYTHON"; then AC_MSG_ERROR([python was not found in \$PATH]) fi else AC_MSG_RESULT([Using Python from environment variable \$PYTHON]) fi _virtualenv_topsrcdir= _virtualenv_populate_path= dnl If this is a mozilla-central, we'll find the virtualenv in the top dnl source directory. If this is a SpiderMonkey build, we assume we're at dnl js/src and try to find the virtualenv from the mozilla-central root. for base in $MOZILLA_CENTRAL_PATH $_topsrcdir $_topsrcdir/../..; do possible=$base/python/mozbuild/mozbuild/virtualenv.py if test -e $possible; then _virtualenv_topsrcdir=$base _virtualenv_populate_path=$possible break fi done if test -z $_virtualenv_populate_path; then AC_MSG_ERROR([Unable to find Virtualenv population script. In order to build, you will need mozilla-central's virtualenv. If you are building from a mozilla-central checkout, you should never see this message. If you are building from a source archive, the source archive was likely not created properly (it is missing the virtualenv files). If you have a copy of mozilla-central available, define the MOZILLA_CENTRAL_PATH environment variable to the top source directory of mozilla-central and relaunch configure.]) fi if test -z $DONT_POPULATE_VIRTUALENV; then AC_MSG_RESULT([Creating Python environment]) dnl This verifies our Python version is sane and ensures the Python dnl virtualenv is present and up to date. It sanitizes the environment dnl for us, so we don't need to clean anything out. $PYTHON $_virtualenv_populate_path \ $_virtualenv_topsrcdir $MOZ_BUILD_ROOT $MOZ_BUILD_ROOT/_virtualenv \ $_virtualenv_topsrcdir/build/virtualenv_packages.txt || exit 1 case "$host_os" in mingw*) PYTHON=`cd $MOZ_BUILD_ROOT && pwd -W`/_virtualenv/Scripts/python.exe ;; *) PYTHON=$MOZ_BUILD_ROOT/_virtualenv/bin/python ;; esac fi AC_SUBST(PYTHON) AC_MSG_CHECKING([Python environment is Mozilla virtualenv]) $PYTHON -c "import mozbuild.base" if test "$?" != 0; then AC_MSG_ERROR([Python environment does not appear to be sane.]) fi AC_MSG_RESULT([yes]) PYTHON_SITE_PACKAGES=`$PYTHON -c "import distutils.sysconfig; print distutils.sysconfig.get_python_lib()"` if test -z "$PYTHON_SITE_PACKAGES"; then AC_MSG_ERROR([Could not determine python site packages directory.]) fi AC_SUBST([PYTHON_SITE_PACKAGES]) ])