build: set up basic multi-arch/mode build
authorBen Noordhuis <info@bnoordhuis.nl>
Thu, 16 Oct 2014 15:10:33 +0000 (17:10 +0200)
committerBen Noordhuis <info@bnoordhuis.nl>
Thu, 16 Oct 2014 20:39:30 +0000 (22:39 +0200)
Make `make -f Makefile.build ia32.release x64.debug` work.  It's not
perfect yet: it requires running `./configure` first and the generated
`config.gypi` is shared across builds.

PR-URL: https://github.com/node-forward/node/pull/24
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Makefile.build
common.gypi

index 2fbe1ba..1aa5f56 100644 (file)
@@ -31,7 +31,8 @@ CXX ?= g++
 LINK ?= g++
 OUTDIR ?= out
 TESTJOBS ?=
-GYPFLAGS ?=
+# TODO(bnoordhuis) Make i18n support configurable.
+GYPFLAGS ?= -Dv8_enable_i18n_support=0
 TESTFLAGS ?=
 ANDROID_NDK_ROOT ?=
 ANDROID_NDK_HOST_ARCH ?=
@@ -229,9 +230,16 @@ ANDROID_ARCHES = android_ia32 android_arm android_arm64 android_mipsel android_x
 NACL_ARCHES = nacl_ia32 nacl_x64
 
 # List of files that trigger Makefile regeneration:
-GYPFILES = build/all.gyp build/features.gypi build/standalone.gypi \
-           build/toolchain.gypi samples/samples.gyp src/compiler/compiler.gyp \
-           src/d8.gyp test/cctest/cctest.gyp tools/gyp/v8.gyp
+GYPFILES = \
+       common.gypi \
+       deps/cares/cares.gyp \
+       deps/debugger-agent/debugger-agent.gyp \
+       deps/http_parser/http_parser.gyp \
+       deps/openssl/openssl.gyp \
+       deps/uv/uv.gyp \
+       deps/v8/tools/gyp/v8.gyp \
+       deps/zlib/zlib.gyp \
+       node.gyp \
 
 # If vtunejit=on, the v8vtune.gyp will be appended.
 ifeq ($(vtunejit), on)
@@ -403,10 +411,10 @@ $(OUT_MAKEFILES): $(GYPFILES) $(ENVFILE)
                cut -f 2 -d " " | cut -f 1 -d "-" ))
        $(eval CXX_TARGET_ARCH:=$(subst aarch64,arm64,$(CXX_TARGET_ARCH)))
        $(eval V8_TARGET_ARCH:=$(subst .,,$(suffix $(basename $@))))
-       PYTHONPATH="$(shell pwd)/tools/generate_shim_headers:$(shell pwd)/build:$(PYTHONPATH):$(shell pwd)/build/gyp/pylib:$(PYTHONPATH)" \
        GYP_GENERATORS=make \
-       build/gyp/gyp --generator-output="$(OUTDIR)" build/all.gyp \
-                     -Ibuild/standalone.gypi --depth=. \
+       tools/gyp/gyp --generator-output="$(OUTDIR)" node.gyp \
+                     -Icommon.gypi --depth=. \
+                     -Dtarget_arch=$(V8_TARGET_ARCH) \
                      -Dv8_target_arch=$(V8_TARGET_ARCH) \
                      $(if $(findstring $(CXX_TARGET_ARCH),$(V8_TARGET_ARCH)), \
                      -Dtarget_arch=$(V8_TARGET_ARCH),) \
@@ -414,10 +422,9 @@ $(OUT_MAKEFILES): $(GYPFILES) $(ENVFILE)
                      -S$(suffix $(basename $@))$(suffix $@) $(GYPFLAGS)
 
 $(OUTDIR)/Makefile.native: $(GYPFILES) $(ENVFILE)
-       PYTHONPATH="$(shell pwd)/tools/generate_shim_headers:$(shell pwd)/build:$(PYTHONPATH):$(shell pwd)/build/gyp/pylib:$(PYTHONPATH)" \
        GYP_GENERATORS=make \
-       build/gyp/gyp --generator-output="$(OUTDIR)" build/all.gyp \
-                     -Ibuild/standalone.gypi --depth=. -S.native $(GYPFLAGS)
+       tools/gyp/gyp --generator-output="$(OUTDIR)" node.gyp \
+                     -Icommon.gypi --depth=. -S.native $(GYPFLAGS)
 
 must-set-ANDROID_NDK_ROOT_OR_TOOLCHAIN:
 ifndef ANDROID_NDK_ROOT
index 75583f3..0fa2d18 100644 (file)
     'clang%': 0,
     'python%': 'python',
 
+    'node_tag%': '',
+    'uv_library%': 'static_library',
+
+    # Default to -O0 for debug builds.
+    'v8_optimized_debug%': 0,
+
     # Enable disassembler for `--print-code` v8 options
     'v8_enable_disassembler': 1,