Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(472)

Side by Side Diff: Makefile

Issue 10778033: Build V8 for Android IA (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | build/android.gypi » ('j') | tools/android-build.sh » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 16 matching lines...) Expand all
27 27
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
38 ANDROID_V8 ?= /data/local/v8 37 ANDROID_V8 ?= /data/local/v8
39 38
40 # Special build flags. Use them like this: "make library=shared" 39 # Special build flags. Use them like this: "make library=shared"
41 40
42 # library=shared || component=shared_library 41 # library=shared || component=shared_library
43 ifeq ($(library), shared) 42 ifeq ($(library), shared)
44 GYPFLAGS += -Dcomponent=shared_library 43 GYPFLAGS += -Dcomponent=shared_library
45 endif 44 endif
46 ifdef component 45 ifdef component
47 GYPFLAGS += -Dcomponent=$(component) 46 GYPFLAGS += -Dcomponent=$(component)
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 # - "<arch>.clean" for any <arch> in ARCHES 113 # - "<arch>.clean" for any <arch> in ARCHES
115 # - "clean": clean all ARCHES 114 # - "clean": clean all ARCHES
116 115
117 # ----------------- internal stuff ------------------------ 116 # ----------------- internal stuff ------------------------
118 117
119 # Architectures and modes to be compiled. Consider these to be internal 118 # Architectures and modes to be compiled. Consider these to be internal
120 # variables, don't override them (use the targets instead). 119 # variables, don't override them (use the targets instead).
121 ARCHES = ia32 x64 arm mipsel 120 ARCHES = ia32 x64 arm mipsel
122 DEFAULT_ARCHES = ia32 x64 arm 121 DEFAULT_ARCHES = ia32 x64 arm
123 MODES = release debug 122 MODES = release debug
124 ANDROID_MODES = android.release android.debug 123 ANDROID_ARCHES = android_ia32 android_arm
125 124
126 # List of files that trigger Makefile regeneration: 125 # List of files that trigger Makefile regeneration:
127 GYPFILES = build/all.gyp build/common.gypi build/standalone.gypi \ 126 GYPFILES = build/all.gyp build/common.gypi build/standalone.gypi \
128 preparser/preparser.gyp samples/samples.gyp src/d8.gyp \ 127 preparser/preparser.gyp samples/samples.gyp src/d8.gyp \
129 test/cctest/cctest.gyp tools/gyp/v8.gyp 128 test/cctest/cctest.gyp tools/gyp/v8.gyp
130 129
131 # Generates all combinations of ARCHES and MODES, e.g. "ia32.release". 130 # Generates all combinations of ARCHES and MODES, e.g. "ia32.release".
132 BUILDS = $(foreach mode,$(MODES),$(addsuffix .$(mode),$(ARCHES))) 131 BUILDS = $(foreach mode,$(MODES),$(addsuffix .$(mode),$(ARCHES)))
132 ANDROID_BUILDS = $(foreach mode,$(MODES), \
133 $(addsuffix .$(mode),$(ANDROID_ARCHES)))
133 # Generates corresponding test targets, e.g. "ia32.release.check". 134 # Generates corresponding test targets, e.g. "ia32.release.check".
134 CHECKS = $(addsuffix .check,$(BUILDS)) 135 CHECKS = $(addsuffix .check,$(BUILDS))
136 ANDROID_CHECKS = $(addsuffix .check,$(ANDROID_BUILDS))
135 # File where previously used GYPFLAGS are stored. 137 # File where previously used GYPFLAGS are stored.
136 ENVFILE = $(OUTDIR)/environment 138 ENVFILE = $(OUTDIR)/environment
137 139
138 .PHONY: all check clean dependencies $(ENVFILE).new native \ 140 .PHONY: all check clean dependencies $(ENVFILE).new native \
139 $(ARCHES) $(MODES) $(BUILDS) $(CHECKS) $(addsuffix .clean,$(ARCHES)) \ 141 $(ARCHES) $(MODES) $(BUILDS) $(CHECKS) $(addsuffix .clean,$(ARCHES)) \
140 $(addsuffix .check,$(MODES)) $(addsuffix .check,$(ARCHES)) \ 142 $(addsuffix .check,$(MODES)) $(addsuffix .check,$(ARCHES)) \
143 $(ANDROID_ARCHES) $(ANDROID_BUILDS) $(ANDROID_CHECKS) \
141 must-set-ANDROID_NDK_ROOT 144 must-set-ANDROID_NDK_ROOT
142 145
143 # Target definitions. "all" is the default. 146 # Target definitions. "all" is the default.
144 all: $(MODES) 147 all: $(MODES)
145 148
146 # Special target for the buildbots to use. Depends on $(OUTDIR)/Makefile 149 # Special target for the buildbots to use. Depends on $(OUTDIR)/Makefile
147 # having been created before. 150 # having been created before.
148 buildbot: 151 buildbot:
149 $(MAKE) -C "$(OUTDIR)" BUILDTYPE=$(BUILDTYPE) \ 152 $(MAKE) -C "$(OUTDIR)" BUILDTYPE=$(BUILDTYPE) \
150 builddir="$(abspath $(OUTDIR))/$(BUILDTYPE)" 153 builddir="$(abspath $(OUTDIR))/$(BUILDTYPE)"
(...skipping 14 matching lines...) Expand all
165 CXX="$(CXX)" LINK="$(LINK)" \ 168 CXX="$(CXX)" LINK="$(LINK)" \
166 BUILDTYPE=$(shell echo $(subst .,,$(suffix $@)) | \ 169 BUILDTYPE=$(shell echo $(subst .,,$(suffix $@)) | \
167 python -c "print raw_input().capitalize()") \ 170 python -c "print raw_input().capitalize()") \
168 builddir="$(shell pwd)/$(OUTDIR)/$@" 171 builddir="$(shell pwd)/$(OUTDIR)/$@"
169 172
170 native: $(OUTDIR)/Makefile.native 173 native: $(OUTDIR)/Makefile.native
171 @$(MAKE) -C "$(OUTDIR)" -f Makefile.native \ 174 @$(MAKE) -C "$(OUTDIR)" -f Makefile.native \
172 CXX="$(CXX)" LINK="$(LINK)" BUILDTYPE=Release \ 175 CXX="$(CXX)" LINK="$(LINK)" BUILDTYPE=Release \
173 builddir="$(shell pwd)/$(OUTDIR)/$@" 176 builddir="$(shell pwd)/$(OUTDIR)/$@"
174 177
175 android: $(ANDROID_MODES) 178 $(ANDROID_ARCHES): $(addprefix $$@.,$(MODE))
176 179
177 $(ANDROID_MODES): $(OUTDIR)/Makefile.android 180 $(ANDROID_BUILDS): $(GYPFILES) $(ENVFILE) build/android.gypi \
178 » @$(MAKE) -C "$(OUTDIR)" -f Makefile.android \ 181 must-set-ANDROID_NDK_ROOT
179 » CXX="$(ANDROID_TOOL_PREFIX)-g++" \ 182 » @tools/android-build.sh $(basename $@) $(subst .,,$(suffix $@)) \
180 » AR="$(ANDROID_TOOL_PREFIX)-ar" \ 183 » $(OUTDIR) $(GYPFLAGS)
181 » RANLIB="$(ANDROID_TOOL_PREFIX)-ranlib" \
182 » CC="$(ANDROID_TOOL_PREFIX)-gcc" \
183 » LD="$(ANDROID_TOOL_PREFIX)-ld" \
184 » LINK="$(ANDROID_TOOL_PREFIX)-g++" \
185 » BUILDTYPE=$(shell echo $(subst .,,$(suffix $@)) | \
186 » python -c "print raw_input().capitalize()") \
187 » builddir="$(shell pwd)/$(OUTDIR)/$@"
188 184
189 # Test targets. 185 # Test targets.
190 check: all 186 check: all
191 @tools/test-wrapper-gypbuild.py $(TESTJOBS) --outdir=$(OUTDIR) \ 187 @tools/test-wrapper-gypbuild.py $(TESTJOBS) --outdir=$(OUTDIR) \
192 --arch=$(shell echo $(DEFAULT_ARCHES) | sed -e 's/ /,/g') \ 188 --arch=$(shell echo $(DEFAULT_ARCHES) | sed -e 's/ /,/g') \
193 $(TESTFLAGS) 189 $(TESTFLAGS)
194 190
195 $(addsuffix .check,$(MODES)): $$(basename $$@) 191 $(addsuffix .check,$(MODES)): $$(basename $$@)
196 @tools/test-wrapper-gypbuild.py $(TESTJOBS) --outdir=$(OUTDIR) \ 192 @tools/test-wrapper-gypbuild.py $(TESTJOBS) --outdir=$(OUTDIR) \
197 --mode=$(basename $@) $(TESTFLAGS) 193 --mode=$(basename $@) $(TESTFLAGS)
198 194
199 $(addsuffix .check,$(ARCHES)): $$(basename $$@) 195 $(addsuffix .check,$(ARCHES)): $$(basename $$@)
200 @tools/test-wrapper-gypbuild.py $(TESTJOBS) --outdir=$(OUTDIR) \ 196 @tools/test-wrapper-gypbuild.py $(TESTJOBS) --outdir=$(OUTDIR) \
201 --arch=$(basename $@) $(TESTFLAGS) 197 --arch=$(basename $@) $(TESTFLAGS)
202 198
203 $(CHECKS): $$(basename $$@) 199 $(CHECKS): $$(basename $$@)
204 @tools/test-wrapper-gypbuild.py $(TESTJOBS) --outdir=$(OUTDIR) \ 200 @tools/test-wrapper-gypbuild.py $(TESTJOBS) --outdir=$(OUTDIR) \
205 --arch-and-mode=$(basename $@) $(TESTFLAGS) 201 --arch-and-mode=$(basename $@) $(TESTFLAGS)
206 202
207 $(addsuffix .sync, $(ANDROID_MODES)): $$(basename $$@) 203 $(addsuffix .sync, $(ANDROID_BUILDS)): $$(basename $$@)
208 @tools/android-sync.sh $(basename $@) $(OUTDIR) \ 204 @tools/android-sync.sh $(basename $@) $(OUTDIR) \
209 $(shell pwd) $(ANDROID_V8) 205 $(shell pwd) $(ANDROID_V8)
210 206
211 $(addsuffix .check, $(ANDROID_MODES)): $$(basename $$@).sync 207 $(addsuffix .check, $(ANDROID_BUILDS)): $$(basename $$@).sync
212 @tools/test-wrapper-gypbuild.py $(TESTJOBS) --outdir=$(OUTDIR) \ 208 @tools/test-wrapper-gypbuild.py $(TESTJOBS) --outdir=$(OUTDIR) \
213 --arch-and-mode=$(basename $@) \ 209 --arch-and-mode=$(basename $@) \
214 --special-command="tools/android-run.py @" 210 --special-command="tools/android-run.py @"
215 211
216 android.check: android.release.check android.debug.check 212 $(addsuffix .check, $(ANDROID_ARCHES)): \
213 $(addprefix $$(basename $$@).,$(MODES)).check
217 214
218 native.check: native 215 native.check: native
219 @tools/test-wrapper-gypbuild.py $(TESTJOBS) --outdir=$(OUTDIR)/native \ 216 @tools/test-wrapper-gypbuild.py $(TESTJOBS) --outdir=$(OUTDIR)/native \
220 --arch-and-mode=. $(TESTFLAGS) 217 --arch-and-mode=. $(TESTFLAGS)
221 218
222 # Clean targets. You can clean each architecture individually, or everything. 219 # Clean targets. You can clean each architecture individually, or everything.
223 $(addsuffix .clean,$(ARCHES)) android.clean: 220 $(addsuffix .clean, $(ARCHES) $(ANDROID_ARCHES)):
224 rm -f $(OUTDIR)/Makefile.$(basename $@) 221 rm -f $(OUTDIR)/Makefile.$(basename $@)
222 rm -f $(OUTDIR)/Makefile.$(basename $@).release
Jakob Kummerow 2012/07/18 11:28:20 We don't actually need to generate these, so we do
223 rm -f $(OUTDIR)/Makefile.$(basename $@).debug
225 rm -rf $(OUTDIR)/$(basename $@).release 224 rm -rf $(OUTDIR)/$(basename $@).release
226 rm -rf $(OUTDIR)/$(basename $@).debug 225 rm -rf $(OUTDIR)/$(basename $@).debug
227 find $(OUTDIR) -regex '.*\(host\|target\).$(basename $@)\.mk' -delete 226 find $(OUTDIR) -regex '.*\(host\|target\).$(basename $@)\.mk' -delete
228 227
229 native.clean: 228 native.clean:
230 rm -f $(OUTDIR)/Makefile.native 229 rm -f $(OUTDIR)/Makefile.native
231 rm -rf $(OUTDIR)/native 230 rm -rf $(OUTDIR)/native
232 find $(OUTDIR) -regex '.*\(host\|target\).native\.mk' -delete 231 find $(OUTDIR) -regex '.*\(host\|target\).native\.mk' -delete
233 232
234 clean: $(addsuffix .clean,$(ARCHES)) native.clean android.clean 233 clean: $(addsuffix .clean, $(ARCHES) $(ANDROID_ARCHES)) native.clean
235 234
236 # GYP file generation targets. 235 # GYP file generation targets.
237 MAKEFILES = $(addprefix $(OUTDIR)/Makefile.,$(ARCHES)) 236 MAKEFILES = $(addprefix $(OUTDIR)/Makefile.,$(ARCHES))
238 $(MAKEFILES): $(GYPFILES) $(ENVFILE) 237 $(MAKEFILES): $(GYPFILES) $(ENVFILE)
239 GYP_GENERATORS=make \ 238 GYP_GENERATORS=make \
240 build/gyp/gyp --generator-output="$(OUTDIR)" build/all.gyp \ 239 build/gyp/gyp --generator-output="$(OUTDIR)" build/all.gyp \
241 -Ibuild/standalone.gypi --depth=. \ 240 -Ibuild/standalone.gypi --depth=. \
242 -Dv8_target_arch=$(subst .,,$(suffix $@)) \ 241 -Dv8_target_arch=$(subst .,,$(suffix $@)) \
243 -S.$(subst .,,$(suffix $@)) $(GYPFLAGS) 242 -S.$(subst .,,$(suffix $@)) $(GYPFLAGS)
244 243
245 $(OUTDIR)/Makefile.native: $(GYPFILES) $(ENVFILE) 244 $(OUTDIR)/Makefile.native: $(GYPFILES) $(ENVFILE)
246 GYP_GENERATORS=make \ 245 GYP_GENERATORS=make \
247 build/gyp/gyp --generator-output="$(OUTDIR)" build/all.gyp \ 246 build/gyp/gyp --generator-output="$(OUTDIR)" build/all.gyp \
248 -Ibuild/standalone.gypi --depth=. -S.native $(GYPFLAGS) 247 -Ibuild/standalone.gypi --depth=. -S.native $(GYPFLAGS)
249 248
250 $(OUTDIR)/Makefile.android: $(GYPFILES) $(ENVFILE) build/android.gypi \
251 must-set-ANDROID_NDK_ROOT
252 GYP_GENERATORS=make \
253 CC="${ANDROID_TOOL_PREFIX}-gcc" \
254 CXX="${ANDROID_TOOL_PREFIX}-g++" \
255 build/gyp/gyp --generator-output="$(OUTDIR)" build/all.gyp \
256 -Ibuild/standalone.gypi --depth=. -Ibuild/android.gypi \
257 -S.android $(GYPFLAGS)
258
259 must-set-ANDROID_NDK_ROOT: 249 must-set-ANDROID_NDK_ROOT:
260 ifndef ANDROID_NDK_ROOT 250 ifndef ANDROID_NDK_ROOT
261 $(error ANDROID_NDK_ROOT is not set) 251 $(error ANDROID_NDK_ROOT is not set)
262 endif 252 endif
263 253
264 # Replaces the old with the new environment file if they're different, which 254 # Replaces the old with the new environment file if they're different, which
265 # will trigger GYP to regenerate Makefiles. 255 # will trigger GYP to regenerate Makefiles.
266 $(ENVFILE): $(ENVFILE).new 256 $(ENVFILE): $(ENVFILE).new
267 @if test -r $(ENVFILE) && cmp $(ENVFILE).new $(ENVFILE) >/dev/null; \ 257 @if test -r $(ENVFILE) && cmp $(ENVFILE).new $(ENVFILE) >/dev/null; \
268 then rm $(ENVFILE).new; \ 258 then rm $(ENVFILE).new; \
269 else mv $(ENVFILE).new $(ENVFILE); fi 259 else mv $(ENVFILE).new $(ENVFILE); fi
270 260
271 # Stores current GYPFLAGS in a file. 261 # Stores current GYPFLAGS in a file.
272 $(ENVFILE).new: 262 $(ENVFILE).new:
273 @mkdir -p $(OUTDIR); echo "GYPFLAGS=$(GYPFLAGS)" > $(ENVFILE).new; \ 263 @mkdir -p $(OUTDIR); echo "GYPFLAGS=$(GYPFLAGS)" > $(ENVFILE).new; \
274 echo "CXX=$(CXX)" >> $(ENVFILE).new 264 echo "CXX=$(CXX)" >> $(ENVFILE).new
275 265
276 # Dependencies. 266 # Dependencies.
277 dependencies: 267 dependencies:
278 svn checkout --force http://gyp.googlecode.com/svn/trunk build/gyp \ 268 svn checkout --force http://gyp.googlecode.com/svn/trunk build/gyp \
279 --revision 1282 269 --revision 1282
OLDNEW
« no previous file with comments | « no previous file | build/android.gypi » ('j') | tools/android-build.sh » ('J')

Powered by Google App Engine
This is Rietveld 408576698