| OLD | NEW |
| 1 # Copyright 2012 the V8 project authors. All rights reserved. | 1 # Copyright 2012 the V8 project authors. All rights reserved. |
| 2 # Redistribution and use in source and binary forms, with or without | 2 # Redistribution and use in source and binary forms, with or without |
| 3 # modification, are permitted provided that the following conditions are | 3 # modification, are permitted provided that the following conditions are |
| 4 # met: | 4 # met: |
| 5 # | 5 # |
| 6 # * Redistributions of source code must retain the above copyright | 6 # * Redistributions of source code must retain the above copyright |
| 7 # notice, this list of conditions and the following disclaimer. | 7 # notice, this list of conditions and the following disclaimer. |
| 8 # * Redistributions in binary form must reproduce the above | 8 # * Redistributions in binary form must reproduce the above |
| 9 # copyright notice, this list of conditions and the following | 9 # copyright notice, this list of conditions and the following |
| 10 # disclaimer in the documentation and/or other materials provided | 10 # disclaimer in the documentation and/or other materials provided |
| (...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 213 # - "check": build all targets and run all tests | 213 # - "check": build all targets and run all tests |
| 214 # - "<arch>.clean" for any <arch> in ARCHES | 214 # - "<arch>.clean" for any <arch> in ARCHES |
| 215 # - "clean": clean all ARCHES | 215 # - "clean": clean all ARCHES |
| 216 | 216 |
| 217 # ----------------- internal stuff ------------------------ | 217 # ----------------- internal stuff ------------------------ |
| 218 | 218 |
| 219 # Architectures and modes to be compiled. Consider these to be internal | 219 # Architectures and modes to be compiled. Consider these to be internal |
| 220 # variables, don't override them (use the targets instead). | 220 # variables, don't override them (use the targets instead). |
| 221 ARCHES = ia32 x64 arm mipsel | 221 ARCHES = ia32 x64 arm mipsel |
| 222 DEFAULT_ARCHES = ia32 x64 arm | 222 DEFAULT_ARCHES = ia32 x64 arm |
| 223 MODES = release debug | 223 MODES = release debug optdebug |
| 224 DEFAULT_MODES = release debug |
| 224 ANDROID_ARCHES = android_ia32 android_arm android_mipsel | 225 ANDROID_ARCHES = android_ia32 android_arm android_mipsel |
| 225 NACL_ARCHES = nacl_ia32 nacl_x64 | 226 NACL_ARCHES = nacl_ia32 nacl_x64 |
| 226 | 227 |
| 227 # List of files that trigger Makefile regeneration: | 228 # List of files that trigger Makefile regeneration: |
| 228 GYPFILES = build/all.gyp build/features.gypi build/standalone.gypi \ | 229 GYPFILES = build/all.gyp build/features.gypi build/standalone.gypi \ |
| 229 build/toolchain.gypi samples/samples.gyp src/d8.gyp \ | 230 build/toolchain.gypi samples/samples.gyp src/d8.gyp \ |
| 230 test/cctest/cctest.gyp tools/gyp/v8.gyp | 231 test/cctest/cctest.gyp tools/gyp/v8.gyp |
| 231 | 232 |
| 232 # If vtunejit=on, the v8vtune.gyp will be appended. | 233 # If vtunejit=on, the v8vtune.gyp will be appended. |
| 233 ifeq ($(vtunejit), on) | 234 ifeq ($(vtunejit), on) |
| 234 GYPFILES += src/third_party/vtune/v8vtune.gyp | 235 GYPFILES += src/third_party/vtune/v8vtune.gyp |
| 235 endif | 236 endif |
| 236 # Generates all combinations of ARCHES and MODES, e.g. "ia32.release". | 237 # Generates all combinations of ARCHES and MODES, e.g. "ia32.release". |
| 237 BUILDS = $(foreach mode,$(MODES),$(addsuffix .$(mode),$(ARCHES))) | 238 BUILDS = $(foreach mode,$(MODES),$(addsuffix .$(mode),$(ARCHES))) |
| 238 ANDROID_BUILDS = $(foreach mode,$(MODES), \ | 239 ANDROID_BUILDS = $(foreach mode,$(MODES), \ |
| 239 $(addsuffix .$(mode),$(ANDROID_ARCHES))) | 240 $(addsuffix .$(mode),$(ANDROID_ARCHES))) |
| 240 NACL_BUILDS = $(foreach mode,$(MODES), \ | 241 NACL_BUILDS = $(foreach mode,$(MODES), \ |
| 241 $(addsuffix .$(mode),$(NACL_ARCHES))) | 242 $(addsuffix .$(mode),$(NACL_ARCHES))) |
| 242 # Generates corresponding test targets, e.g. "ia32.release.check". | 243 # Generates corresponding test targets, e.g. "ia32.release.check". |
| 243 CHECKS = $(addsuffix .check,$(BUILDS)) | 244 CHECKS = $(addsuffix .check,$(BUILDS)) |
| 244 ANDROID_CHECKS = $(addsuffix .check,$(ANDROID_BUILDS)) | 245 ANDROID_CHECKS = $(addsuffix .check,$(ANDROID_BUILDS)) |
| 245 NACL_CHECKS = $(addsuffix .check,$(NACL_BUILDS)) | 246 NACL_CHECKS = $(addsuffix .check,$(NACL_BUILDS)) |
| 246 # File where previously used GYPFLAGS are stored. | 247 # File where previously used GYPFLAGS are stored. |
| 247 ENVFILE = $(OUTDIR)/environment | 248 ENVFILE = $(OUTDIR)/environment |
| 248 | 249 |
| 249 .PHONY: all check clean dependencies $(ENVFILE).new native \ | 250 .PHONY: all check clean dependencies $(ENVFILE).new native \ |
| 251 qc quickcheck \ |
| 250 $(ARCHES) $(MODES) $(BUILDS) $(CHECKS) $(addsuffix .clean,$(ARCHES)) \ | 252 $(ARCHES) $(MODES) $(BUILDS) $(CHECKS) $(addsuffix .clean,$(ARCHES)) \ |
| 251 $(addsuffix .check,$(MODES)) $(addsuffix .check,$(ARCHES)) \ | 253 $(addsuffix .check,$(MODES)) $(addsuffix .check,$(ARCHES)) \ |
| 252 $(ANDROID_ARCHES) $(ANDROID_BUILDS) $(ANDROID_CHECKS) \ | 254 $(ANDROID_ARCHES) $(ANDROID_BUILDS) $(ANDROID_CHECKS) \ |
| 253 must-set-ANDROID_NDK_ROOT_OR_TOOLCHAIN \ | 255 must-set-ANDROID_NDK_ROOT_OR_TOOLCHAIN \ |
| 254 $(NACL_ARCHES) $(NACL_BUILDS) $(NACL_CHECKS) \ | 256 $(NACL_ARCHES) $(NACL_BUILDS) $(NACL_CHECKS) \ |
| 255 must-set-NACL_SDK_ROOT | 257 must-set-NACL_SDK_ROOT |
| 256 | 258 |
| 257 # Target definitions. "all" is the default. | 259 # Target definitions. "all" is the default. |
| 258 all: $(MODES) | 260 all: $(DEFAULT_MODES) |
| 259 | 261 |
| 260 # Special target for the buildbots to use. Depends on $(OUTDIR)/Makefile | 262 # Special target for the buildbots to use. Depends on $(OUTDIR)/Makefile |
| 261 # having been created before. | 263 # having been created before. |
| 262 buildbot: | 264 buildbot: |
| 263 $(MAKE) -C "$(OUTDIR)" BUILDTYPE=$(BUILDTYPE) \ | 265 $(MAKE) -C "$(OUTDIR)" BUILDTYPE=$(BUILDTYPE) \ |
| 264 builddir="$(abspath $(OUTDIR))/$(BUILDTYPE)" | 266 builddir="$(abspath $(OUTDIR))/$(BUILDTYPE)" |
| 265 | 267 |
| 266 mips mips.release mips.debug: | 268 mips mips.release mips.debug: |
| 267 @echo "V8 does not support big-endian MIPS builds at the moment," \ | 269 @echo "V8 does not support big-endian MIPS builds at the moment," \ |
| 268 "please use little-endian builds (mipsel)." | 270 "please use little-endian builds (mipsel)." |
| 269 | 271 |
| 270 # Compile targets. MODES and ARCHES are convenience targets. | 272 # Compile targets. MODES and ARCHES are convenience targets. |
| 271 .SECONDEXPANSION: | 273 .SECONDEXPANSION: |
| 272 $(MODES): $(addsuffix .$$@,$(DEFAULT_ARCHES)) | 274 $(MODES): $(addsuffix .$$@,$(DEFAULT_ARCHES)) |
| 273 | 275 |
| 274 $(ARCHES): $(addprefix $$@.,$(MODES)) | 276 $(ARCHES): $(addprefix $$@.,$(MODES)) |
| 275 | 277 |
| 276 # Defines how to build a particular target (e.g. ia32.release). | 278 # Defines how to build a particular target (e.g. ia32.release). |
| 277 $(BUILDS): $(OUTDIR)/Makefile.$$(basename $$@) | 279 $(BUILDS): $(OUTDIR)/Makefile.$$@ |
| 278 » @$(MAKE) -C "$(OUTDIR)" -f Makefile.$(basename $@) \ | 280 » @$(MAKE) -C "$(OUTDIR)" -f Makefile.$@ \ |
| 279 CXX="$(CXX)" LINK="$(LINK)" \ | 281 CXX="$(CXX)" LINK="$(LINK)" \ |
| 280 BUILDTYPE=$(shell echo $(subst .,,$(suffix $@)) | \ | 282 BUILDTYPE=$(shell echo $(subst .,,$(suffix $@)) | \ |
| 281 » python -c "print raw_input().capitalize()") \ | 283 » python -c "print \ |
| 284 » raw_input().replace('opt', '').capitalize()") \ |
| 282 builddir="$(shell pwd)/$(OUTDIR)/$@" | 285 builddir="$(shell pwd)/$(OUTDIR)/$@" |
| 283 | 286 |
| 284 native: $(OUTDIR)/Makefile.native | 287 native: $(OUTDIR)/Makefile.native |
| 285 @$(MAKE) -C "$(OUTDIR)" -f Makefile.native \ | 288 @$(MAKE) -C "$(OUTDIR)" -f Makefile.native \ |
| 286 CXX="$(CXX)" LINK="$(LINK)" BUILDTYPE=Release \ | 289 CXX="$(CXX)" LINK="$(LINK)" BUILDTYPE=Release \ |
| 287 builddir="$(shell pwd)/$(OUTDIR)/$@" | 290 builddir="$(shell pwd)/$(OUTDIR)/$@" |
| 288 | 291 |
| 289 $(ANDROID_ARCHES): $(addprefix $$@.,$(MODES)) | 292 $(ANDROID_ARCHES): $(addprefix $$@.,$(MODES)) |
| 290 | 293 |
| 291 $(ANDROID_BUILDS): $(GYPFILES) $(ENVFILE) build/android.gypi \ | 294 $(ANDROID_BUILDS): $(GYPFILES) $(ENVFILE) build/android.gypi \ |
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 343 --timeout=600 --nopresubmit --noi18n \ | 346 --timeout=600 --nopresubmit --noi18n \ |
| 344 --command-prefix="tools/nacl-run.py" | 347 --command-prefix="tools/nacl-run.py" |
| 345 | 348 |
| 346 $(addsuffix .check, $(NACL_ARCHES)): \ | 349 $(addsuffix .check, $(NACL_ARCHES)): \ |
| 347 $(addprefix $$(basename $$@).,$(MODES)).check | 350 $(addprefix $$(basename $$@).,$(MODES)).check |
| 348 | 351 |
| 349 native.check: native | 352 native.check: native |
| 350 @tools/run-tests.py $(TESTJOBS) --outdir=$(OUTDIR)/native \ | 353 @tools/run-tests.py $(TESTJOBS) --outdir=$(OUTDIR)/native \ |
| 351 --arch-and-mode=. $(TESTFLAGS) | 354 --arch-and-mode=. $(TESTFLAGS) |
| 352 | 355 |
| 353 FASTTESTFLAGS = --flaky-tests=skip --slow-tests=skip --pass-fail-tests=skip \ | 356 FASTTESTMODES = ia32.release,x64.release,ia32.optdebug,x64.optdebug,arm.optdebug |
| 354 --variants=default,stress | |
| 355 FASTTESTMODES = ia32.release,x64.release,ia32.debug,x64.debug,arm.debug | |
| 356 | 357 |
| 357 quickcheck: | 358 COMMA = , |
| 358 » @$(MAKE) all optdebug=on | 359 EMPTY = |
| 359 » @tools/run-tests.py $(TESTJOBS) --outdir=$(OUTDIR) \ | 360 SPACE = $(EMPTY) $(EMPTY) |
| 360 » --arch-and-mode=$(FASTTESTMODES) $(FASTTESTFLAGS) $(TESTFLAGS) | 361 quickcheck: $(subst $(COMMA),$(SPACE),$(FASTTESTMODES)) |
| 362 » tools/run-tests.py $(TESTJOBS) --outdir=$(OUTDIR) \ |
| 363 » --arch-and-mode=$(FASTTESTMODES) $(TESTFLAGS) --quickcheck |
| 361 qc: quickcheck | 364 qc: quickcheck |
| 362 | 365 |
| 363 # Clean targets. You can clean each architecture individually, or everything. | 366 # Clean targets. You can clean each architecture individually, or everything. |
| 364 $(addsuffix .clean, $(ARCHES) $(ANDROID_ARCHES) $(NACL_ARCHES)): | 367 $(addsuffix .clean, $(ARCHES) $(ANDROID_ARCHES) $(NACL_ARCHES)): |
| 365 » rm -f $(OUTDIR)/Makefile.$(basename $@) | 368 » rm -f $(OUTDIR)/Makefile.$(basename $@)* |
| 366 rm -rf $(OUTDIR)/$(basename $@).release | 369 rm -rf $(OUTDIR)/$(basename $@).release |
| 367 rm -rf $(OUTDIR)/$(basename $@).debug | 370 rm -rf $(OUTDIR)/$(basename $@).debug |
| 368 » find $(OUTDIR) -regex '.*\(host\|target\).$(basename $@)\.mk' -delete | 371 » find $(OUTDIR) -regex '.*\(host\|target\)\.$(basename $@).*\.mk' -delete |
| 369 | 372 |
| 370 native.clean: | 373 native.clean: |
| 371 rm -f $(OUTDIR)/Makefile.native | 374 rm -f $(OUTDIR)/Makefile.native |
| 372 rm -rf $(OUTDIR)/native | 375 rm -rf $(OUTDIR)/native |
| 373 » find $(OUTDIR) -regex '.*\(host\|target\).native\.mk' -delete | 376 » find $(OUTDIR) -regex '.*\(host\|target\)\.native\.mk' -delete |
| 374 | 377 |
| 375 clean: $(addsuffix .clean, $(ARCHES) $(ANDROID_ARCHES) $(NACL_ARCHES)) native.cl
ean | 378 clean: $(addsuffix .clean, $(ARCHES) $(ANDROID_ARCHES) $(NACL_ARCHES)) native.cl
ean |
| 376 | 379 |
| 377 # GYP file generation targets. | 380 # GYP file generation targets. |
| 378 OUT_MAKEFILES = $(addprefix $(OUTDIR)/Makefile.,$(ARCHES)) | 381 OUT_MAKEFILES = $(addprefix $(OUTDIR)/Makefile.,$(BUILDS)) |
| 379 $(OUT_MAKEFILES): $(GYPFILES) $(ENVFILE) | 382 $(OUT_MAKEFILES): $(GYPFILES) $(ENVFILE) |
| 380 PYTHONPATH="$(shell pwd)/tools/generate_shim_headers:$(PYTHONPATH)" \ | 383 PYTHONPATH="$(shell pwd)/tools/generate_shim_headers:$(PYTHONPATH)" \ |
| 381 GYP_GENERATORS=make \ | 384 GYP_GENERATORS=make \ |
| 382 build/gyp/gyp --generator-output="$(OUTDIR)" build/all.gyp \ | 385 build/gyp/gyp --generator-output="$(OUTDIR)" build/all.gyp \ |
| 383 -Ibuild/standalone.gypi --depth=. \ | 386 -Ibuild/standalone.gypi --depth=. \ |
| 384 » -Dv8_target_arch=$(subst .,,$(suffix $@)) \ | 387 » -Dv8_target_arch=$(subst .,,$(suffix $(basename $@))) \ |
| 385 » -S.$(subst .,,$(suffix $@)) $(GYPFLAGS) | 388 » -Dv8_optimized_debug=$(if $(findstring optdebug,$@),2,0) \ |
| 389 » -S$(suffix $(basename $@))$(suffix $@) $(GYPFLAGS) |
| 386 | 390 |
| 387 $(OUTDIR)/Makefile.native: $(GYPFILES) $(ENVFILE) | 391 $(OUTDIR)/Makefile.native: $(GYPFILES) $(ENVFILE) |
| 388 PYTHONPATH="$(shell pwd)/tools/generate_shim_headers:$(PYTHONPATH)" \ | 392 PYTHONPATH="$(shell pwd)/tools/generate_shim_headers:$(PYTHONPATH)" \ |
| 389 GYP_GENERATORS=make \ | 393 GYP_GENERATORS=make \ |
| 390 build/gyp/gyp --generator-output="$(OUTDIR)" build/all.gyp \ | 394 build/gyp/gyp --generator-output="$(OUTDIR)" build/all.gyp \ |
| 391 -Ibuild/standalone.gypi --depth=. -S.native $(GYPFLAGS) | 395 -Ibuild/standalone.gypi --depth=. -S.native $(GYPFLAGS) |
| 392 | 396 |
| 393 must-set-ANDROID_NDK_ROOT_OR_TOOLCHAIN: | 397 must-set-ANDROID_NDK_ROOT_OR_TOOLCHAIN: |
| 394 ifndef ANDROID_NDK_ROOT | 398 ifndef ANDROID_NDK_ROOT |
| 395 ifndef ANDROID_TOOLCHAIN | 399 ifndef ANDROID_TOOLCHAIN |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 428 @$(OUTDIR)/ia32.release/d8 --dump-heap-constants >> $(DUMP_FILE) | 432 @$(OUTDIR)/ia32.release/d8 --dump-heap-constants >> $(DUMP_FILE) |
| 429 | 433 |
| 430 # Dependencies. | 434 # Dependencies. |
| 431 # Remember to keep these in sync with the DEPS file. | 435 # Remember to keep these in sync with the DEPS file. |
| 432 dependencies: | 436 dependencies: |
| 433 svn checkout --force http://gyp.googlecode.com/svn/trunk build/gyp \ | 437 svn checkout --force http://gyp.googlecode.com/svn/trunk build/gyp \ |
| 434 --revision 1685 | 438 --revision 1685 |
| 435 svn checkout --force \ | 439 svn checkout --force \ |
| 436 https://src.chromium.org/chrome/trunk/deps/third_party/icu46 \ | 440 https://src.chromium.org/chrome/trunk/deps/third_party/icu46 \ |
| 437 third_party/icu --revision 214189 | 441 third_party/icu --revision 214189 |
| OLD | NEW |