diff -r 000000000000 -r 6474c204b198 build/autoconf/python-virtualenv.m4 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/build/autoconf/python-virtualenv.m4 Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,85 @@ +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]) + +]) +