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 |