 Chromium Code Reviews
 Chromium Code Reviews Issue 10696048:
  Add Makefile targets for running tests on Android.  (Closed) 
  Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
    
  
    Issue 10696048:
  Add Makefile targets for running tests on Android.  (Closed) 
  Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge| 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 17 matching lines...) Expand all Loading... | |
| 28 | 28 | 
| 29 # Variable default definitions. Override them by exporting them in your shell. | 29 # Variable default definitions. Override them by exporting them in your shell. | 
| 30 CXX ?= g++ | 30 CXX ?= g++ | 
| 31 LINK ?= g++ | 31 LINK ?= g++ | 
| 32 OUTDIR ?= out | 32 OUTDIR ?= out | 
| 33 TESTJOBS ?= -j16 | 33 TESTJOBS ?= -j16 | 
| 34 GYPFLAGS ?= | 34 GYPFLAGS ?= | 
| 35 TESTFLAGS ?= | 35 TESTFLAGS ?= | 
| 36 ANDROID_NDK_ROOT ?= | 36 ANDROID_NDK_ROOT ?= | 
| 37 ANDROID_TOOL_PREFIX = $(ANDROID_NDK_ROOT)/toolchain/bin/arm-linux-androideabi | 37 ANDROID_TOOL_PREFIX = $(ANDROID_NDK_ROOT)/toolchain/bin/arm-linux-androideabi | 
| 38 ANDROID_V8 ?= /data/local/v8 | |
| 38 | 39 | 
| 39 # Special build flags. Use them like this: "make library=shared" | 40 # Special build flags. Use them like this: "make library=shared" | 
| 40 | 41 | 
| 41 # library=shared || component=shared_library | 42 # library=shared || component=shared_library | 
| 42 ifeq ($(library), shared) | 43 ifeq ($(library), shared) | 
| 43 GYPFLAGS += -Dcomponent=shared_library | 44 GYPFLAGS += -Dcomponent=shared_library | 
| 44 endif | 45 endif | 
| 45 ifdef component | 46 ifdef component | 
| 46 GYPFLAGS += -Dcomponent=$(component) | 47 GYPFLAGS += -Dcomponent=$(component) | 
| 47 endif | 48 endif | 
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 100 GYPFLAGS += -Dv8_interpreted_regexp=1 | 101 GYPFLAGS += -Dv8_interpreted_regexp=1 | 
| 101 endif | 102 endif | 
| 102 | 103 | 
| 103 # ----------------- available targets: -------------------- | 104 # ----------------- available targets: -------------------- | 
| 104 # - "dependencies": pulls in external dependencies (currently: GYP) | 105 # - "dependencies": pulls in external dependencies (currently: GYP) | 
| 105 # - any arch listed in ARCHES (see below) | 106 # - any arch listed in ARCHES (see below) | 
| 106 # - any mode listed in MODES | 107 # - any mode listed in MODES | 
| 107 # - every combination <arch>.<mode>, e.g. "ia32.release" | 108 # - every combination <arch>.<mode>, e.g. "ia32.release" | 
| 108 # - "native": current host's architecture, release mode | 109 # - "native": current host's architecture, release mode | 
| 109 # - any of the above with .check appended, e.g. "ia32.release.check" | 110 # - any of the above with .check appended, e.g. "ia32.release.check" | 
| 110 # - "android": cross-compile for Android/ARM (release mode) | 111 # - "android": cross-compile for Android/ARM (release mode) | 
| 
Jakob Kummerow
2012/07/02 14:25:58
Please update this line.
 
ulan
2012/07/02 16:18:23
Done.
 | |
| 111 # - default (no target specified): build all DEFAULT_ARCHES and MODES | 112 # - default (no target specified): build all DEFAULT_ARCHES and MODES | 
| 112 # - "check": build all targets and run all tests | 113 # - "check": build all targets and run all tests | 
| 113 # - "<arch>.clean" for any <arch> in ARCHES | 114 # - "<arch>.clean" for any <arch> in ARCHES | 
| 114 # - "clean": clean all ARCHES | 115 # - "clean": clean all ARCHES | 
| 115 | 116 | 
| 116 # ----------------- internal stuff ------------------------ | 117 # ----------------- internal stuff ------------------------ | 
| 117 | 118 | 
| 118 # Architectures and modes to be compiled. Consider these to be internal | 119 # Architectures and modes to be compiled. Consider these to be internal | 
| 119 # variables, don't override them (use the targets instead). | 120 # variables, don't override them (use the targets instead). | 
| 120 ARCHES = ia32 x64 arm mips | 121 ARCHES = ia32 x64 arm mips | 
| 121 DEFAULT_ARCHES = ia32 x64 arm | 122 DEFAULT_ARCHES = ia32 x64 arm | 
| 122 MODES = release debug | 123 MODES = release debug | 
| 124 ANDROID_MODES = android.release android.debug | |
| 123 | 125 | 
| 124 # List of files that trigger Makefile regeneration: | 126 # List of files that trigger Makefile regeneration: | 
| 125 GYPFILES = build/all.gyp build/common.gypi build/standalone.gypi \ | 127 GYPFILES = build/all.gyp build/common.gypi build/standalone.gypi \ | 
| 126 preparser/preparser.gyp samples/samples.gyp src/d8.gyp \ | 128 preparser/preparser.gyp samples/samples.gyp src/d8.gyp \ | 
| 127 test/cctest/cctest.gyp tools/gyp/v8.gyp | 129 test/cctest/cctest.gyp tools/gyp/v8.gyp | 
| 128 | 130 | 
| 129 # Generates all combinations of ARCHES and MODES, e.g. "ia32.release". | 131 # Generates all combinations of ARCHES and MODES, e.g. "ia32.release". | 
| 130 BUILDS = $(foreach mode,$(MODES),$(addsuffix .$(mode),$(ARCHES))) | 132 BUILDS = $(foreach mode,$(MODES),$(addsuffix .$(mode),$(ARCHES))) | 
| 131 # Generates corresponding test targets, e.g. "ia32.release.check". | 133 # Generates corresponding test targets, e.g. "ia32.release.check". | 
| 132 CHECKS = $(addsuffix .check,$(BUILDS)) | 134 CHECKS = $(addsuffix .check,$(BUILDS)) | 
| (...skipping 26 matching lines...) Expand all Loading... | |
| 159 CXX="$(CXX)" LINK="$(LINK)" \ | 161 CXX="$(CXX)" LINK="$(LINK)" \ | 
| 160 BUILDTYPE=$(shell echo $(subst .,,$(suffix $@)) | \ | 162 BUILDTYPE=$(shell echo $(subst .,,$(suffix $@)) | \ | 
| 161 python -c "print raw_input().capitalize()") \ | 163 python -c "print raw_input().capitalize()") \ | 
| 162 builddir="$(shell pwd)/$(OUTDIR)/$@" | 164 builddir="$(shell pwd)/$(OUTDIR)/$@" | 
| 163 | 165 | 
| 164 native: $(OUTDIR)/Makefile.native | 166 native: $(OUTDIR)/Makefile.native | 
| 165 @$(MAKE) -C "$(OUTDIR)" -f Makefile.native \ | 167 @$(MAKE) -C "$(OUTDIR)" -f Makefile.native \ | 
| 166 CXX="$(CXX)" LINK="$(LINK)" BUILDTYPE=Release \ | 168 CXX="$(CXX)" LINK="$(LINK)" BUILDTYPE=Release \ | 
| 167 builddir="$(shell pwd)/$(OUTDIR)/$@" | 169 builddir="$(shell pwd)/$(OUTDIR)/$@" | 
| 168 | 170 | 
| 169 # TODO(jkummerow): add "android.debug" when we need it. | 171 android: $(ANDROID_MODES) | 
| 170 android android.release: $(OUTDIR)/Makefile.android | 172 | 
| 173 $(ANDROID_MODES): $(OUTDIR)/Makefile.android | |
| 171 @$(MAKE) -C "$(OUTDIR)" -f Makefile.android \ | 174 @$(MAKE) -C "$(OUTDIR)" -f Makefile.android \ | 
| 172 CXX="$(ANDROID_TOOL_PREFIX)-g++" \ | 175 CXX="$(ANDROID_TOOL_PREFIX)-g++" \ | 
| 173 AR="$(ANDROID_TOOL_PREFIX)-ar" \ | 176 AR="$(ANDROID_TOOL_PREFIX)-ar" \ | 
| 174 RANLIB="$(ANDROID_TOOL_PREFIX)-ranlib" \ | 177 RANLIB="$(ANDROID_TOOL_PREFIX)-ranlib" \ | 
| 175 CC="$(ANDROID_TOOL_PREFIX)-gcc" \ | 178 CC="$(ANDROID_TOOL_PREFIX)-gcc" \ | 
| 176 LD="$(ANDROID_TOOL_PREFIX)-ld" \ | 179 LD="$(ANDROID_TOOL_PREFIX)-ld" \ | 
| 177 LINK="$(ANDROID_TOOL_PREFIX)-g++" \ | 180 LINK="$(ANDROID_TOOL_PREFIX)-g++" \ | 
| 178 » BUILDTYPE=Release \ | 181 » BUILDTYPE=$(shell echo $(subst .,,$(suffix $@)) | \ | 
| 179 » builddir="$(shell pwd)/$(OUTDIR)/android.release" | 182 » python -c "print raw_input().capitalize()") \ | 
| 183 » builddir="$(shell pwd)/$(OUTDIR)/$@" | |
| 180 | 184 | 
| 181 # Test targets. | 185 # Test targets. | 
| 182 check: all | 186 check: all | 
| 183 @tools/test-wrapper-gypbuild.py $(TESTJOBS) --outdir=$(OUTDIR) \ | 187 @tools/test-wrapper-gypbuild.py $(TESTJOBS) --outdir=$(OUTDIR) \ | 
| 184 --arch=$(shell echo $(DEFAULT_ARCHES) | sed -e 's/ /,/g') \ | 188 --arch=$(shell echo $(DEFAULT_ARCHES) | sed -e 's/ /,/g') \ | 
| 185 $(TESTFLAGS) | 189 $(TESTFLAGS) | 
| 186 | 190 | 
| 187 $(addsuffix .check,$(MODES)): $$(basename $$@) | 191 $(addsuffix .check,$(MODES)): $$(basename $$@) | 
| 188 @tools/test-wrapper-gypbuild.py $(TESTJOBS) --outdir=$(OUTDIR) \ | 192 @tools/test-wrapper-gypbuild.py $(TESTJOBS) --outdir=$(OUTDIR) \ | 
| 189 --mode=$(basename $@) $(TESTFLAGS) | 193 --mode=$(basename $@) $(TESTFLAGS) | 
| 190 | 194 | 
| 191 $(addsuffix .check,$(ARCHES)): $$(basename $$@) | 195 $(addsuffix .check,$(ARCHES)): $$(basename $$@) | 
| 192 @tools/test-wrapper-gypbuild.py $(TESTJOBS) --outdir=$(OUTDIR) \ | 196 @tools/test-wrapper-gypbuild.py $(TESTJOBS) --outdir=$(OUTDIR) \ | 
| 193 --arch=$(basename $@) $(TESTFLAGS) | 197 --arch=$(basename $@) $(TESTFLAGS) | 
| 194 | 198 | 
| 195 $(CHECKS): $$(basename $$@) | 199 $(CHECKS): $$(basename $$@) | 
| 196 @tools/test-wrapper-gypbuild.py $(TESTJOBS) --outdir=$(OUTDIR) \ | 200 @tools/test-wrapper-gypbuild.py $(TESTJOBS) --outdir=$(OUTDIR) \ | 
| 197 --arch-and-mode=$(basename $@) $(TESTFLAGS) | 201 --arch-and-mode=$(basename $@) $(TESTFLAGS) | 
| 198 | 202 | 
| 203 $(addsuffix .sync, $(ANDROID_MODES)): $$(basename $$@) | |
| 204 @tools/android-sync.sh $(basename $@) $(OUTDIR) \ | |
| 
Jakob Kummerow
2012/07/02 14:25:58
Does this line start with a <TAB>? Makefile recipe
 
ulan
2012/07/02 16:18:23
Done. Line 205 didn't have TAB, all other lines ha
 | |
| 205 $(shell pwd) $(ANDROID_V8) | |
| 206 | |
| 207 $(addsuffix .check, $(ANDROID_MODES)): $$(basename $$@).sync | |
| 208 @tools/test-wrapper-gypbuild.py $(TESTJOBS) --outdir=$(OUTDIR) \ | |
| 209 --arch-and-mode=$(basename $@) \ | |
| 210 --special-command="tools/android-run.py @" | |
| 211 | |
| 212 android.check: android.release.check android.debug.check | |
| 213 | |
| 199 native.check: native | 214 native.check: native | 
| 200 @tools/test-wrapper-gypbuild.py $(TESTJOBS) --outdir=$(OUTDIR)/native \ | 215 @tools/test-wrapper-gypbuild.py $(TESTJOBS) --outdir=$(OUTDIR)/native \ | 
| 201 --arch-and-mode=. $(TESTFLAGS) | 216 --arch-and-mode=. $(TESTFLAGS) | 
| 202 | 217 | 
| 203 # Clean targets. You can clean each architecture individually, or everything. | 218 # Clean targets. You can clean each architecture individually, or everything. | 
| 204 $(addsuffix .clean,$(ARCHES)) android.clean: | 219 $(addsuffix .clean,$(ARCHES)) android.clean: | 
| 205 rm -f $(OUTDIR)/Makefile.$(basename $@) | 220 rm -f $(OUTDIR)/Makefile.$(basename $@) | 
| 206 rm -rf $(OUTDIR)/$(basename $@).release | 221 rm -rf $(OUTDIR)/$(basename $@).release | 
| 207 rm -rf $(OUTDIR)/$(basename $@).debug | 222 rm -rf $(OUTDIR)/$(basename $@).debug | 
| 208 find $(OUTDIR) -regex '.*\(host\|target\).$(basename $@)\.mk' -delete | 223 find $(OUTDIR) -regex '.*\(host\|target\).$(basename $@)\.mk' -delete | 
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 251 | 266 | 
| 252 # Stores current GYPFLAGS in a file. | 267 # Stores current GYPFLAGS in a file. | 
| 253 $(ENVFILE).new: | 268 $(ENVFILE).new: | 
| 254 @mkdir -p $(OUTDIR); echo "GYPFLAGS=$(GYPFLAGS)" > $(ENVFILE).new; \ | 269 @mkdir -p $(OUTDIR); echo "GYPFLAGS=$(GYPFLAGS)" > $(ENVFILE).new; \ | 
| 255 echo "CXX=$(CXX)" >> $(ENVFILE).new | 270 echo "CXX=$(CXX)" >> $(ENVFILE).new | 
| 256 | 271 | 
| 257 # Dependencies. | 272 # Dependencies. | 
| 258 dependencies: | 273 dependencies: | 
| 259 svn checkout --force http://gyp.googlecode.com/svn/trunk build/gyp \ | 274 svn checkout --force http://gyp.googlecode.com/svn/trunk build/gyp \ | 
| 260 --revision 1282 | 275 --revision 1282 | 
| OLD | NEW |