| ulan@chromium.org | 2efb900 | 2012-01-19 15:36:35 +0000 | [diff] [blame] | 1 | # Copyright 2012 the V8 project authors. All rights reserved. | 
| kmillikin@chromium.org | 7c2628c | 2011-08-10 11:27:35 +0000 | [diff] [blame] | 2 | # Redistribution and use in source and binary forms, with or without | 
 | 3 | # modification, are permitted provided that the following conditions are | 
 | 4 | # met: | 
 | 5 | # | 
 | 6 | #     * Redistributions of source code must retain the above copyright | 
 | 7 | #       notice, this list of conditions and the following disclaimer. | 
 | 8 | #     * Redistributions in binary form must reproduce the above | 
 | 9 | #       copyright notice, this list of conditions and the following | 
 | 10 | #       disclaimer in the documentation and/or other materials provided | 
 | 11 | #       with the distribution. | 
 | 12 | #     * Neither the name of Google Inc. nor the names of its | 
 | 13 | #       contributors may be used to endorse or promote products derived | 
 | 14 | #       from this software without specific prior written permission. | 
 | 15 | # | 
 | 16 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | 
 | 17 | # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | 
 | 18 | # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | 
 | 19 | # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | 
 | 20 | # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | 
 | 21 | # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | 
 | 22 | # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 
 | 23 | # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 
 | 24 | # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 
 | 25 | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 
 | 26 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 
 | 27 |  | 
 | 28 |  | 
 | 29 | # Variable default definitions. Override them by exporting them in your shell. | 
| danno@chromium.org | c612e02 | 2011-11-10 11:38:15 +0000 | [diff] [blame] | 30 | CXX ?= g++ | 
 | 31 | LINK ?= g++ | 
| kmillikin@chromium.org | 7c2628c | 2011-08-10 11:27:35 +0000 | [diff] [blame] | 32 | OUTDIR ?= out | 
 | 33 | TESTJOBS ?= -j16 | 
| ricow@chromium.org | 4668a2c | 2011-08-29 10:41:00 +0000 | [diff] [blame] | 34 | GYPFLAGS ?= | 
| svenpanne@chromium.org | a8bb4d9 | 2011-10-10 13:20:40 +0000 | [diff] [blame] | 35 | TESTFLAGS ?= | 
| ulan@chromium.org | 2efb900 | 2012-01-19 15:36:35 +0000 | [diff] [blame] | 36 | ANDROID_NDK_ROOT ?= | 
 | 37 | ANDROID_TOOL_PREFIX = $(ANDROID_NDK_ROOT)/toolchain/bin/arm-linux-androideabi | 
| kmillikin@chromium.org | 7c2628c | 2011-08-10 11:27:35 +0000 | [diff] [blame] | 38 |  | 
| ricow@chromium.org | 4668a2c | 2011-08-29 10:41:00 +0000 | [diff] [blame] | 39 | # Special build flags. Use them like this: "make library=shared" | 
 | 40 |  | 
 | 41 | # library=shared || component=shared_library | 
 | 42 | ifeq ($(library), shared) | 
 | 43 |   GYPFLAGS += -Dcomponent=shared_library | 
 | 44 | endif | 
 | 45 | ifdef component | 
 | 46 |   GYPFLAGS += -Dcomponent=$(component) | 
 | 47 | endif | 
 | 48 | # console=readline | 
 | 49 | ifdef console | 
 | 50 |   GYPFLAGS += -Dconsole=$(console) | 
 | 51 | endif | 
 | 52 | # disassembler=on | 
 | 53 | ifeq ($(disassembler), on) | 
 | 54 |   GYPFLAGS += -Dv8_enable_disassembler=1 | 
 | 55 | endif | 
| erik.corry@gmail.com | c3b670f | 2011-10-05 21:44:48 +0000 | [diff] [blame] | 56 | # objectprint=on | 
 | 57 | ifeq ($(objectprint), on) | 
 | 58 |   GYPFLAGS += -Dv8_object_print=1 | 
 | 59 | endif | 
| ricow@chromium.org | 4668a2c | 2011-08-29 10:41:00 +0000 | [diff] [blame] | 60 | # snapshot=off | 
 | 61 | ifeq ($(snapshot), off) | 
 | 62 |   GYPFLAGS += -Dv8_use_snapshot='false' | 
 | 63 | endif | 
 | 64 | # gdbjit=on | 
 | 65 | ifeq ($(gdbjit), on) | 
 | 66 |   GYPFLAGS += -Dv8_enable_gdbjit=1 | 
 | 67 | endif | 
 | 68 | # liveobjectlist=on | 
 | 69 | ifeq ($(liveobjectlist), on) | 
 | 70 |   GYPFLAGS += -Dv8_use_liveobjectlist=true | 
 | 71 | endif | 
 | 72 | # vfp3=off | 
 | 73 | ifeq ($(vfp3), off) | 
 | 74 |   GYPFLAGS += -Dv8_can_use_vfp_instructions=false | 
 | 75 | else | 
 | 76 |   GYPFLAGS += -Dv8_can_use_vfp_instructions=true | 
 | 77 | endif | 
| erik.corry@gmail.com | bbceb57 | 2012-03-09 10:52:05 +0000 | [diff] [blame] | 78 | # debuggersupport=off | 
 | 79 | ifeq ($(debuggersupport), off) | 
 | 80 |   GYPFLAGS += -Dv8_enable_debugger_support=0 | 
 | 81 | endif | 
| ricow@chromium.org | 55ee807 | 2011-09-08 16:33:10 +0000 | [diff] [blame] | 82 | # soname_version=1.2.3 | 
 | 83 | ifdef soname_version | 
 | 84 |   GYPFLAGS += -Dsoname_version=$(soname_version) | 
 | 85 | endif | 
| svenpanne@chromium.org | a8bb4d9 | 2011-10-10 13:20:40 +0000 | [diff] [blame] | 86 | # werror=no | 
 | 87 | ifeq ($(werror), no) | 
 | 88 |   GYPFLAGS += -Dwerror='' | 
 | 89 | endif | 
 | 90 | # presubmit=no | 
 | 91 | ifeq ($(presubmit), no) | 
 | 92 |   TESTFLAGS += --no-presubmit | 
 | 93 | endif | 
| ulan@chromium.org | 2efb900 | 2012-01-19 15:36:35 +0000 | [diff] [blame] | 94 | # strictaliasing=off (workaround for GCC-4.5) | 
 | 95 | ifeq ($(strictaliasing), off) | 
 | 96 |   GYPFLAGS += -Dv8_no_strict_aliasing=1 | 
 | 97 | endif | 
| ricow@chromium.org | 4668a2c | 2011-08-29 10:41:00 +0000 | [diff] [blame] | 98 |  | 
 | 99 | # ----------------- available targets: -------------------- | 
| ricow@chromium.org | 55ee807 | 2011-09-08 16:33:10 +0000 | [diff] [blame] | 100 | # - "dependencies": pulls in external dependencies (currently: GYP) | 
| ricow@chromium.org | 4668a2c | 2011-08-29 10:41:00 +0000 | [diff] [blame] | 101 | # - any arch listed in ARCHES (see below) | 
 | 102 | # - any mode listed in MODES | 
 | 103 | # - every combination <arch>.<mode>, e.g. "ia32.release" | 
| erik.corry@gmail.com | c3b670f | 2011-10-05 21:44:48 +0000 | [diff] [blame] | 104 | # - "native": current host's architecture, release mode | 
| ricow@chromium.org | 4668a2c | 2011-08-29 10:41:00 +0000 | [diff] [blame] | 105 | # - any of the above with .check appended, e.g. "ia32.release.check" | 
| ulan@chromium.org | 2efb900 | 2012-01-19 15:36:35 +0000 | [diff] [blame] | 106 | # - "android": cross-compile for Android/ARM (release mode) | 
| danno@chromium.org | c612e02 | 2011-11-10 11:38:15 +0000 | [diff] [blame] | 107 | # - default (no target specified): build all DEFAULT_ARCHES and MODES | 
| ricow@chromium.org | 4668a2c | 2011-08-29 10:41:00 +0000 | [diff] [blame] | 108 | # - "check": build all targets and run all tests | 
 | 109 | # - "<arch>.clean" for any <arch> in ARCHES | 
 | 110 | # - "clean": clean all ARCHES | 
 | 111 |  | 
 | 112 | # ----------------- internal stuff ------------------------ | 
 | 113 |  | 
 | 114 | # Architectures and modes to be compiled. Consider these to be internal | 
 | 115 | # variables, don't override them (use the targets instead). | 
| danno@chromium.org | c612e02 | 2011-11-10 11:38:15 +0000 | [diff] [blame] | 116 | ARCHES = ia32 x64 arm mips | 
 | 117 | DEFAULT_ARCHES = ia32 x64 arm | 
| kmillikin@chromium.org | 7c2628c | 2011-08-10 11:27:35 +0000 | [diff] [blame] | 118 | MODES = release debug | 
 | 119 |  | 
 | 120 | # List of files that trigger Makefile regeneration: | 
| ricow@chromium.org | 4668a2c | 2011-08-29 10:41:00 +0000 | [diff] [blame] | 121 | GYPFILES = build/all.gyp build/common.gypi build/standalone.gypi \ | 
| kmillikin@chromium.org | 7c2628c | 2011-08-10 11:27:35 +0000 | [diff] [blame] | 122 |            preparser/preparser.gyp samples/samples.gyp src/d8.gyp \ | 
 | 123 |            test/cctest/cctest.gyp tools/gyp/v8.gyp | 
 | 124 |  | 
 | 125 | # Generates all combinations of ARCHES and MODES, e.g. "ia32.release". | 
 | 126 | BUILDS = $(foreach mode,$(MODES),$(addsuffix .$(mode),$(ARCHES))) | 
| kmillikin@chromium.org | 7c2628c | 2011-08-10 11:27:35 +0000 | [diff] [blame] | 127 | # Generates corresponding test targets, e.g. "ia32.release.check". | 
| ricow@chromium.org | 4668a2c | 2011-08-29 10:41:00 +0000 | [diff] [blame] | 128 | CHECKS = $(addsuffix .check,$(BUILDS)) | 
 | 129 | # File where previously used GYPFLAGS are stored. | 
 | 130 | ENVFILE = $(OUTDIR)/environment | 
| kmillikin@chromium.org | 7c2628c | 2011-08-10 11:27:35 +0000 | [diff] [blame] | 131 |  | 
| erik.corry@gmail.com | c3b670f | 2011-10-05 21:44:48 +0000 | [diff] [blame] | 132 | .PHONY: all check clean dependencies $(ENVFILE).new native \ | 
| fschneider@chromium.org | 1805e21 | 2011-09-05 10:49:12 +0000 | [diff] [blame] | 133 |         $(ARCHES) $(MODES) $(BUILDS) $(CHECKS) $(addsuffix .clean,$(ARCHES)) \ | 
| ulan@chromium.org | 2efb900 | 2012-01-19 15:36:35 +0000 | [diff] [blame] | 134 |         $(addsuffix .check,$(MODES)) $(addsuffix .check,$(ARCHES)) \ | 
 | 135 |         must-set-ANDROID_NDK_ROOT | 
| kmillikin@chromium.org | 7c2628c | 2011-08-10 11:27:35 +0000 | [diff] [blame] | 136 |  | 
| ricow@chromium.org | 4668a2c | 2011-08-29 10:41:00 +0000 | [diff] [blame] | 137 | # Target definitions. "all" is the default. | 
 | 138 | all: $(MODES) | 
| kmillikin@chromium.org | 7c2628c | 2011-08-10 11:27:35 +0000 | [diff] [blame] | 139 |  | 
| ricow@chromium.org | 4668a2c | 2011-08-29 10:41:00 +0000 | [diff] [blame] | 140 | # Compile targets. MODES and ARCHES are convenience targets. | 
| kmillikin@chromium.org | 7c2628c | 2011-08-10 11:27:35 +0000 | [diff] [blame] | 141 | .SECONDEXPANSION: | 
| danno@chromium.org | c612e02 | 2011-11-10 11:38:15 +0000 | [diff] [blame] | 142 | $(MODES): $(addsuffix .$$@,$(DEFAULT_ARCHES)) | 
| ricow@chromium.org | 4668a2c | 2011-08-29 10:41:00 +0000 | [diff] [blame] | 143 |  | 
 | 144 | $(ARCHES): $(addprefix $$@.,$(MODES)) | 
 | 145 |  | 
 | 146 | # Defines how to build a particular target (e.g. ia32.release). | 
| danno@chromium.org | 2c26cb1 | 2012-05-03 09:06:43 +0000 | [diff] [blame^] | 147 | $(BUILDS): $(OUTDIR)/Makefile.$$(basename $$@) | 
 | 148 | 	@$(MAKE) -C "$(OUTDIR)" -f Makefile.$(basename $@) \ | 
| kmillikin@chromium.org | 7c2628c | 2011-08-10 11:27:35 +0000 | [diff] [blame] | 149 | 	         CXX="$(CXX)" LINK="$(LINK)" \ | 
 | 150 | 	         BUILDTYPE=$(shell echo $(subst .,,$(suffix $@)) | \ | 
 | 151 | 	                     python -c "print raw_input().capitalize()") \ | 
 | 152 | 	         builddir="$(shell pwd)/$(OUTDIR)/$@" | 
 | 153 |  | 
| danno@chromium.org | 2c26cb1 | 2012-05-03 09:06:43 +0000 | [diff] [blame^] | 154 | native: $(OUTDIR)/Makefile.native | 
 | 155 | 	@$(MAKE) -C "$(OUTDIR)" -f Makefile.native \ | 
| erik.corry@gmail.com | c3b670f | 2011-10-05 21:44:48 +0000 | [diff] [blame] | 156 | 	         CXX="$(CXX)" LINK="$(LINK)" BUILDTYPE=Release \ | 
 | 157 | 	         builddir="$(shell pwd)/$(OUTDIR)/$@" | 
 | 158 |  | 
| ulan@chromium.org | 2efb900 | 2012-01-19 15:36:35 +0000 | [diff] [blame] | 159 | # TODO(jkummerow): add "android.debug" when we need it. | 
| danno@chromium.org | 2c26cb1 | 2012-05-03 09:06:43 +0000 | [diff] [blame^] | 160 | android android.release: $(OUTDIR)/Makefile.android | 
 | 161 | 	@$(MAKE) -C "$(OUTDIR)" -f Makefile.android \ | 
| ulan@chromium.org | 2efb900 | 2012-01-19 15:36:35 +0000 | [diff] [blame] | 162 | 	        CXX="$(ANDROID_TOOL_PREFIX)-g++" \ | 
 | 163 | 	        AR="$(ANDROID_TOOL_PREFIX)-ar" \ | 
 | 164 | 	        RANLIB="$(ANDROID_TOOL_PREFIX)-ranlib" \ | 
 | 165 | 	        CC="$(ANDROID_TOOL_PREFIX)-gcc" \ | 
 | 166 | 	        LD="$(ANDROID_TOOL_PREFIX)-ld" \ | 
 | 167 | 	        LINK="$(ANDROID_TOOL_PREFIX)-g++" \ | 
 | 168 | 	        BUILDTYPE=Release \ | 
 | 169 | 	        builddir="$(shell pwd)/$(OUTDIR)/android.release" | 
 | 170 |  | 
| kmillikin@chromium.org | 7c2628c | 2011-08-10 11:27:35 +0000 | [diff] [blame] | 171 | # Test targets. | 
 | 172 | check: all | 
| svenpanne@chromium.org | a8bb4d9 | 2011-10-10 13:20:40 +0000 | [diff] [blame] | 173 | 	@tools/test-wrapper-gypbuild.py $(TESTJOBS) --outdir=$(OUTDIR) \ | 
| danno@chromium.org | c612e02 | 2011-11-10 11:38:15 +0000 | [diff] [blame] | 174 | 	    --arch=$(shell echo $(DEFAULT_ARCHES) | sed -e 's/ /,/g') \ | 
| svenpanne@chromium.org | a8bb4d9 | 2011-10-10 13:20:40 +0000 | [diff] [blame] | 175 | 	    $(TESTFLAGS) | 
| kmillikin@chromium.org | 7c2628c | 2011-08-10 11:27:35 +0000 | [diff] [blame] | 176 |  | 
 | 177 | $(addsuffix .check,$(MODES)): $$(basename $$@) | 
| ricow@chromium.org | 4668a2c | 2011-08-29 10:41:00 +0000 | [diff] [blame] | 178 | 	@tools/test-wrapper-gypbuild.py $(TESTJOBS) --outdir=$(OUTDIR) \ | 
| svenpanne@chromium.org | a8bb4d9 | 2011-10-10 13:20:40 +0000 | [diff] [blame] | 179 | 	    --mode=$(basename $@) $(TESTFLAGS) | 
| kmillikin@chromium.org | 7c2628c | 2011-08-10 11:27:35 +0000 | [diff] [blame] | 180 |  | 
 | 181 | $(addsuffix .check,$(ARCHES)): $$(basename $$@) | 
| ricow@chromium.org | 4668a2c | 2011-08-29 10:41:00 +0000 | [diff] [blame] | 182 | 	@tools/test-wrapper-gypbuild.py $(TESTJOBS) --outdir=$(OUTDIR) \ | 
| svenpanne@chromium.org | a8bb4d9 | 2011-10-10 13:20:40 +0000 | [diff] [blame] | 183 | 	    --arch=$(basename $@) $(TESTFLAGS) | 
| kmillikin@chromium.org | 7c2628c | 2011-08-10 11:27:35 +0000 | [diff] [blame] | 184 |  | 
 | 185 | $(CHECKS): $$(basename $$@) | 
| ricow@chromium.org | 4668a2c | 2011-08-29 10:41:00 +0000 | [diff] [blame] | 186 | 	@tools/test-wrapper-gypbuild.py $(TESTJOBS) --outdir=$(OUTDIR) \ | 
| svenpanne@chromium.org | a8bb4d9 | 2011-10-10 13:20:40 +0000 | [diff] [blame] | 187 | 	    --arch-and-mode=$(basename $@) $(TESTFLAGS) | 
| kmillikin@chromium.org | 7c2628c | 2011-08-10 11:27:35 +0000 | [diff] [blame] | 188 |  | 
| erik.corry@gmail.com | c3b670f | 2011-10-05 21:44:48 +0000 | [diff] [blame] | 189 | native.check: native | 
 | 190 | 	@tools/test-wrapper-gypbuild.py $(TESTJOBS) --outdir=$(OUTDIR)/native \ | 
| svenpanne@chromium.org | a8bb4d9 | 2011-10-10 13:20:40 +0000 | [diff] [blame] | 191 | 	    --arch-and-mode=. $(TESTFLAGS) | 
| erik.corry@gmail.com | c3b670f | 2011-10-05 21:44:48 +0000 | [diff] [blame] | 192 |  | 
| kmillikin@chromium.org | 7c2628c | 2011-08-10 11:27:35 +0000 | [diff] [blame] | 193 | # Clean targets. You can clean each architecture individually, or everything. | 
| danno@chromium.org | 2c26cb1 | 2012-05-03 09:06:43 +0000 | [diff] [blame^] | 194 | $(addsuffix .clean,$(ARCHES)) android.clean: | 
 | 195 | 	rm -f $(OUTDIR)/Makefile.$(basename $@) | 
| kmillikin@chromium.org | 7c2628c | 2011-08-10 11:27:35 +0000 | [diff] [blame] | 196 | 	rm -rf $(OUTDIR)/$(basename $@).release | 
 | 197 | 	rm -rf $(OUTDIR)/$(basename $@).debug | 
| danno@chromium.org | 2c26cb1 | 2012-05-03 09:06:43 +0000 | [diff] [blame^] | 198 | 	find $(OUTDIR) -regex '.*\(host\|target\).$(basename $@)\.mk' -delete | 
| kmillikin@chromium.org | 7c2628c | 2011-08-10 11:27:35 +0000 | [diff] [blame] | 199 |  | 
| erik.corry@gmail.com | c3b670f | 2011-10-05 21:44:48 +0000 | [diff] [blame] | 200 | native.clean: | 
| danno@chromium.org | 2c26cb1 | 2012-05-03 09:06:43 +0000 | [diff] [blame^] | 201 | 	rm -f $(OUTDIR)/Makefile.native | 
| erik.corry@gmail.com | c3b670f | 2011-10-05 21:44:48 +0000 | [diff] [blame] | 202 | 	rm -rf $(OUTDIR)/native | 
| danno@chromium.org | 2c26cb1 | 2012-05-03 09:06:43 +0000 | [diff] [blame^] | 203 | 	find $(OUTDIR) -regex '.*\(host\|target\).native\.mk' -delete | 
| erik.corry@gmail.com | c3b670f | 2011-10-05 21:44:48 +0000 | [diff] [blame] | 204 |  | 
| danno@chromium.org | 2c26cb1 | 2012-05-03 09:06:43 +0000 | [diff] [blame^] | 205 | clean: $(addsuffix .clean,$(ARCHES)) native.clean android.clean | 
| kmillikin@chromium.org | 7c2628c | 2011-08-10 11:27:35 +0000 | [diff] [blame] | 206 |  | 
 | 207 | # GYP file generation targets. | 
| danno@chromium.org | 2c26cb1 | 2012-05-03 09:06:43 +0000 | [diff] [blame^] | 208 | MAKEFILES = $(addprefix $(OUTDIR)/Makefile.,$(ARCHES)) | 
 | 209 | $(MAKEFILES): $(GYPFILES) $(ENVFILE) | 
| jkummerow@chromium.org | 1456e70 | 2012-03-30 08:38:13 +0000 | [diff] [blame] | 210 | 	GYP_GENERATORS=make \ | 
| kmillikin@chromium.org | 7c2628c | 2011-08-10 11:27:35 +0000 | [diff] [blame] | 211 | 	build/gyp/gyp --generator-output="$(OUTDIR)" build/all.gyp \ | 
| danno@chromium.org | 2c26cb1 | 2012-05-03 09:06:43 +0000 | [diff] [blame^] | 212 | 	              -Ibuild/standalone.gypi --depth=. \ | 
 | 213 | 	              -Dv8_target_arch=$(subst .,,$(suffix $@)) \ | 
 | 214 | 	              -S.$(subst .,,$(suffix $@)) $(GYPFLAGS) | 
| kmillikin@chromium.org | 7c2628c | 2011-08-10 11:27:35 +0000 | [diff] [blame] | 215 |  | 
| danno@chromium.org | 2c26cb1 | 2012-05-03 09:06:43 +0000 | [diff] [blame^] | 216 | $(OUTDIR)/Makefile.native: $(GYPFILES) $(ENVFILE) | 
| jkummerow@chromium.org | 1456e70 | 2012-03-30 08:38:13 +0000 | [diff] [blame] | 217 | 	GYP_GENERATORS=make \ | 
| kmillikin@chromium.org | 7c2628c | 2011-08-10 11:27:35 +0000 | [diff] [blame] | 218 | 	build/gyp/gyp --generator-output="$(OUTDIR)" build/all.gyp \ | 
| danno@chromium.org | 2c26cb1 | 2012-05-03 09:06:43 +0000 | [diff] [blame^] | 219 | 	              -Ibuild/standalone.gypi --depth=. -S.native $(GYPFLAGS) | 
| kmillikin@chromium.org | 7c2628c | 2011-08-10 11:27:35 +0000 | [diff] [blame] | 220 |  | 
| danno@chromium.org | 2c26cb1 | 2012-05-03 09:06:43 +0000 | [diff] [blame^] | 221 | $(OUTDIR)/Makefile.android: $(GYPFILES) $(ENVFILE) build/android.gypi \ | 
| ulan@chromium.org | 2efb900 | 2012-01-19 15:36:35 +0000 | [diff] [blame] | 222 |                             must-set-ANDROID_NDK_ROOT | 
| jkummerow@chromium.org | 1456e70 | 2012-03-30 08:38:13 +0000 | [diff] [blame] | 223 | 	GYP_GENERATORS=make \ | 
| ulan@chromium.org | 2efb900 | 2012-01-19 15:36:35 +0000 | [diff] [blame] | 224 | 	CC="${ANDROID_TOOL_PREFIX}-gcc" \ | 
 | 225 | 	build/gyp/gyp --generator-output="$(OUTDIR)" build/all.gyp \ | 
 | 226 | 	              -Ibuild/standalone.gypi --depth=. -Ibuild/android.gypi \ | 
| danno@chromium.org | 2c26cb1 | 2012-05-03 09:06:43 +0000 | [diff] [blame^] | 227 | 	              -S.android $(GYPFLAGS) | 
| ulan@chromium.org | 2efb900 | 2012-01-19 15:36:35 +0000 | [diff] [blame] | 228 |  | 
 | 229 | must-set-ANDROID_NDK_ROOT: | 
 | 230 | ifndef ANDROID_NDK_ROOT | 
 | 231 | 	  $(error ANDROID_NDK_ROOT is not set) | 
 | 232 | endif | 
 | 233 |  | 
| ricow@chromium.org | 4668a2c | 2011-08-29 10:41:00 +0000 | [diff] [blame] | 234 | # Replaces the old with the new environment file if they're different, which | 
 | 235 | # will trigger GYP to regenerate Makefiles. | 
 | 236 | $(ENVFILE): $(ENVFILE).new | 
 | 237 | 	@if test -r $(ENVFILE) && cmp $(ENVFILE).new $(ENVFILE) >/dev/null; \ | 
 | 238 | 	    then rm $(ENVFILE).new; \ | 
 | 239 | 	    else mv $(ENVFILE).new $(ENVFILE); fi | 
 | 240 |  | 
 | 241 | # Stores current GYPFLAGS in a file. | 
 | 242 | $(ENVFILE).new: | 
| jkummerow@chromium.org | 28faa98 | 2012-04-13 09:58:30 +0000 | [diff] [blame] | 243 | 	@mkdir -p $(OUTDIR); echo "GYPFLAGS=$(GYPFLAGS)" > $(ENVFILE).new; \ | 
 | 244 | 	    echo "CXX=$(CXX)" >> $(ENVFILE).new | 
| ricow@chromium.org | 55ee807 | 2011-09-08 16:33:10 +0000 | [diff] [blame] | 245 |  | 
 | 246 | # Dependencies. | 
 | 247 | dependencies: | 
 | 248 | 	svn checkout --force http://gyp.googlecode.com/svn/trunk build/gyp \ | 
| fschneider@chromium.org | 7d10be5 | 2012-04-10 12:30:14 +0000 | [diff] [blame] | 249 | 	    --revision 1282 |