From 1e738c5ef2cb5a1bf5794bb044114991e057d5e6 Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Tue, 20 Nov 2012 17:28:28 +0100 Subject: [PATCH] build: make python executable configurable Upstreamed in https://codereview.chromium.org/11418101/ Fixes #4287. --- common.gypi | 1 + configure | 3 ++- deps/v8/Makefile | 9 ++++++--- deps/v8/build/common.gypi | 3 +++ deps/v8/src/d8.gyp | 2 +- deps/v8/test/cctest/cctest.gyp | 2 +- deps/v8/tools/gyp/v8.gyp | 6 +++--- node.gyp | 4 ++-- 8 files changed, 19 insertions(+), 11 deletions(-) diff --git a/common.gypi b/common.gypi index 8bb62125882..4bca61a2561 100644 --- a/common.gypi +++ b/common.gypi @@ -9,6 +9,7 @@ 'msvs_multi_core_compile': '0', # we do enable multicore compiles, but not using the V8 way 'gcc_version%': 'unknown', 'clang%': 0, + 'python%': 'python', # Turn on optimizations that may trigger compiler bugs. # Use at your own risk. Do *NOT* report bugs if this option is enabled. diff --git a/configure b/configure index bf27cbdaf6e..2778da276df 100755 --- a/configure +++ b/configure @@ -573,7 +573,7 @@ def configure_openssl(o): output = { - 'variables': {}, + 'variables': { 'python': sys.executable }, 'include_dirs': [], 'libraries': [], 'defines': [], @@ -611,6 +611,7 @@ config = { 'BUILDTYPE': 'Debug' if options.debug else 'Release', 'USE_NINJA': str(int(options.use_ninja or 0)), 'USE_XCODE': str(int(options.use_xcode or 0)), + 'PYTHON': sys.executable, } config = '\n'.join(map('='.join, config.iteritems())) + '\n' diff --git a/deps/v8/Makefile b/deps/v8/Makefile index 8db3193860c..f688f18b7ce 100644 --- a/deps/v8/Makefile +++ b/deps/v8/Makefile @@ -24,6 +24,7 @@ # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +PYTHON ?= python # Variable default definitions. Override them by exporting them in your shell. @@ -112,6 +113,8 @@ ifeq ($(hardfp), on) GYPFLAGS += -Dv8_use_arm_eabi_hardfloat=true endif +GYPFLAGS += "-Dpython=$(PYTHON)" + # ----------------- available targets: -------------------- # - "dependencies": pulls in external dependencies (currently: GYP) # - any arch listed in ARCHES (see below) @@ -179,7 +182,7 @@ $(BUILDS): $(OUTDIR)/Makefile.$$(basename $$@) @$(MAKE) -C "$(OUTDIR)" -f Makefile.$(basename $@) \ CXX="$(CXX)" LINK="$(LINK)" \ BUILDTYPE=$(shell echo $(subst .,,$(suffix $@)) | \ - python -c "print raw_input().capitalize()") \ + $(PYTHON) -c "print raw_input().capitalize()") \ builddir="$(shell pwd)/$(OUTDIR)/$@" native: $(OUTDIR)/Makefile.native @@ -250,14 +253,14 @@ clean: $(addsuffix .clean, $(ARCHES) $(ANDROID_ARCHES)) native.clean OUT_MAKEFILES = $(addprefix $(OUTDIR)/Makefile.,$(ARCHES)) $(OUT_MAKEFILES): $(GYPFILES) $(ENVFILE) GYP_GENERATORS=make \ - build/gyp/gyp --generator-output="$(OUTDIR)" build/all.gyp \ + $(PYTHON) build/gyp/gyp --generator-output="$(OUTDIR)" build/all.gyp \ -Ibuild/standalone.gypi --depth=. \ -Dv8_target_arch=$(subst .,,$(suffix $@)) \ -S.$(subst .,,$(suffix $@)) $(GYPFLAGS) $(OUTDIR)/Makefile.native: $(GYPFILES) $(ENVFILE) GYP_GENERATORS=make \ - build/gyp/gyp --generator-output="$(OUTDIR)" build/all.gyp \ + $(PYTHON) build/gyp/gyp --generator-output="$(OUTDIR)" build/all.gyp \ -Ibuild/standalone.gypi --depth=. -S.native $(GYPFLAGS) must-set-ANDROID_NDK_ROOT_OR_TOOLCHAIN: diff --git a/deps/v8/build/common.gypi b/deps/v8/build/common.gypi index 7997c54d3c7..426d625675b 100644 --- a/deps/v8/build/common.gypi +++ b/deps/v8/build/common.gypi @@ -103,6 +103,9 @@ # Interpreted regexp engine exists as platform-independent alternative # based where the regular expression is compiled to a bytecode. 'v8_interpreted_regexp%': 0, + + # Name of the python executable. + 'python%': 'python', }, 'target_defaults': { 'conditions': [ diff --git a/deps/v8/src/d8.gyp b/deps/v8/src/d8.gyp index a8361e6b4e5..2aa94ccf92d 100644 --- a/deps/v8/src/d8.gyp +++ b/deps/v8/src/d8.gyp @@ -99,7 +99,7 @@ '<(SHARED_INTERMEDIATE_DIR)/d8-js.cc', ], 'action': [ - 'python', + '<(python)', '../tools/js2c.py', '<@(_outputs)', 'D8', diff --git a/deps/v8/test/cctest/cctest.gyp b/deps/v8/test/cctest/cctest.gyp index 66d848c5c14..7624d5b5d61 100644 --- a/deps/v8/test/cctest/cctest.gyp +++ b/deps/v8/test/cctest/cctest.gyp @@ -187,7 +187,7 @@ '<(generated_file)', ], 'action': [ - 'python', + '<(python)', '../../tools/js2c.py', '<@(_outputs)', 'TEST', # type diff --git a/deps/v8/tools/gyp/v8.gyp b/deps/v8/tools/gyp/v8.gyp index 17ced879eff..d57672c57ae 100644 --- a/deps/v8/tools/gyp/v8.gyp +++ b/deps/v8/tools/gyp/v8.gyp @@ -796,7 +796,7 @@ '<(SHARED_INTERMEDIATE_DIR)/libraries.cc', ], 'action': [ - 'python', + '<(python)', '../../tools/js2c.py', '<@(_outputs)', 'CORE', @@ -814,7 +814,7 @@ '<(SHARED_INTERMEDIATE_DIR)/experimental-libraries.cc', ], 'action': [ - 'python', + '<(python)', '../../tools/js2c.py', '<@(_outputs)', 'EXPERIMENTAL', @@ -844,7 +844,7 @@ '<(SHARED_INTERMEDIATE_DIR)/debug-support.cc', ], 'action': [ - 'python', + '<(python)', '../../tools/gen-postmortem-metadata.py', '<@(_outputs)', '<@(heapobject_files)' diff --git a/node.gyp b/node.gyp index 287d897306f..b9f72810833 100644 --- a/node.gyp +++ b/node.gyp @@ -314,14 +314,14 @@ ' or node_use_systemtap=="true"', { 'action': [ - 'python', + '<(python)', 'tools/js2c.py', '<@(_outputs)', '<@(_inputs)', ], }, { # No Dtrace 'action': [ - 'python', + '<(python)', 'tools/js2c.py', '<@(_outputs)', '<@(_inputs)',