OLD | NEW |
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 # | 5 # |
6 # GNU Make based build file. For details on GNU Make see: | 6 # GNU Make based build file. For details on GNU Make see: |
7 # http://www.gnu.org/software/make/manual/make.html | 7 # http://www.gnu.org/software/make/manual/make.html |
8 # | 8 # |
9 # | 9 |
10 | 10 |
11 # | 11 # |
12 # Toolchain | 12 # Toolchain |
13 # | 13 # |
14 # By default the VALID_TOOLCHAINS list contains newlib and glibc. If your | 14 # By default the VALID_TOOLCHAINS list contains newlib and glibc. If your |
15 # project only builds in one or the other then this should be overridden | 15 # project only builds in one or the other then this should be overridden |
16 # accordingly. | 16 # accordingly. |
17 # | 17 # |
18 VALID_TOOLCHAINS?=newlib glibc | 18 VALID_TOOLCHAINS?=newlib glibc |
19 TOOLCHAIN?=$(word 1,$(VALID_TOOLCHAINS)) | 19 TOOLCHAIN?=$(word 1,$(VALID_TOOLCHAINS)) |
20 | 20 |
21 | 21 |
22 # | 22 # |
23 # Top Make file, which we want to trigger a rebuild on if it changes | 23 # Top Make file, which we want to trigger a rebuild on if it changes |
24 # | 24 # |
25 TOP_MAKE:=$(word 1,$(MAKEFILE_LIST)) | 25 TOP_MAKE:=$(word 1,$(MAKEFILE_LIST)) |
26 | 26 |
27 | 27 |
28 # | 28 # |
| 29 # Figure out which OS we are running on. |
| 30 # |
| 31 GETOS=python $(NACL_SDK_ROOT)/tools/getos.py |
| 32 OSNAME:=$(shell $(GETOS)) |
| 33 |
| 34 |
| 35 # |
29 # Verify we selected a valid toolchain for this example | 36 # Verify we selected a valid toolchain for this example |
30 # | 37 # |
31 ifeq (,$(findstring $(TOOLCHAIN),$(VALID_TOOLCHAINS))) | 38 ifeq (,$(findstring $(TOOLCHAIN),$(VALID_TOOLCHAINS))) |
32 $(warning Availbile choices are: $(VALID_TOOLCHAINS)) | 39 $(warning Availbile choices are: $(VALID_TOOLCHAINS)) |
33 $(error Can not use TOOLCHAIN=$(TOOLCHAIN) on this example.) | 40 $(error Can not use TOOLCHAIN=$(TOOLCHAIN) on this example.) |
34 endif | 41 endif |
35 | 42 |
36 | 43 |
37 # | 44 # |
38 # Build Configuration | 45 # Build Configuration |
39 # | 46 # |
40 # The SDK provides two sets of libraries, Debug and Release. Debug libraries | 47 # The SDK provides two sets of libraries, Debug and Release. Debug libraries |
41 # are compiled without optimizations to make debugging easier. By default | 48 # are compiled without optimizations to make debugging easier. By default |
42 # this will build a Debug configuration. | 49 # this will build a Debug configuration. |
43 # | 50 # |
44 CONFIG?=Debug | 51 CONFIG?=Debug |
45 | 52 |
46 | 53 |
| 54 # |
47 # Note for Windows: | 55 # Note for Windows: |
48 # The GCC and LLVM toolchains (include the version of Make.exe that comes | 56 # The GCC and LLVM toolchains (include the version of Make.exe that comes |
49 # with the SDK) expect and are capable of dealing with the '/' seperator. | 57 # with the SDK) expect and are capable of dealing with the '/' seperator. |
50 # For this reason, the tools in the SDK, including Makefiles and build scripts | 58 # For this reason, the tools in the SDK, including Makefiles and build scripts |
51 # have a preference for POSIX style command-line arguments. | 59 # have a preference for POSIX style command-line arguments. |
52 # | 60 # |
53 # Keep in mind however that the shell is responsible for command-line escaping, | 61 # Keep in mind however that the shell is responsible for command-line escaping, |
54 # globbing, and variable expansion, so those may change based on which shell | 62 # globbing, and variable expansion, so those may change based on which shell |
55 # is used. For Cygwin shells this can include automatic and incorrect expansion | 63 # is used. For Cygwin shells this can include automatic and incorrect expansion |
56 # of response files (files starting with '@'). | 64 # of response files (files starting with '@'). |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
108 CP:=@$(OSHELPERS) cp | 116 CP:=@$(OSHELPERS) cp |
109 MKDIR:=@$(OSHELPERS) mkdir | 117 MKDIR:=@$(OSHELPERS) mkdir |
110 MV:=@$(OSHELPERS) mv | 118 MV:=@$(OSHELPERS) mv |
111 endif | 119 endif |
112 | 120 |
113 | 121 |
114 | 122 |
115 # | 123 # |
116 # Compute path to requested NaCl Toolchain | 124 # Compute path to requested NaCl Toolchain |
117 # | 125 # |
118 GETOS=python $(NACL_SDK_ROOT)/tools/getos.py | |
119 OSNAME:=$(shell $(GETOS)) | |
120 TC_PATH:=$(abspath $(NACL_SDK_ROOT)/toolchain) | 126 TC_PATH:=$(abspath $(NACL_SDK_ROOT)/toolchain) |
121 | 127 |
122 | 128 |
123 # | 129 # |
124 # Check for required minimum SDK version. | 130 # Check for required minimum SDK version. |
125 # | 131 # |
126 ifdef NACL_SDK_VERSION_MIN | 132 ifdef NACL_SDK_VERSION_MIN |
127 VERSION_CHECK:=$(shell $(GETOS) --check-version=$(NACL_SDK_VERSION_MIN) 2>&1) | 133 VERSION_CHECK:=$(shell $(GETOS) --check-version=$(NACL_SDK_VERSION_MIN) 2>&1) |
128 ifneq ($(VERSION_CHECK),) | 134 ifneq ($(VERSION_CHECK),) |
129 $(error $(VERSION_CHECK)) | 135 $(error $(VERSION_CHECK)) |
(...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
392 GDB_ARGS+=-D $(abspath $(OUTDIR))/$(TARGET)_$(SYSARCH).nexe | 398 GDB_ARGS+=-D $(abspath $(OUTDIR))/$(TARGET)_$(SYSARCH).nexe |
393 | 399 |
394 DEBUG: CHECK_FOR_CHROME all | 400 DEBUG: CHECK_FOR_CHROME all |
395 $(RUN_PY) $(GDB_ARGS) \ | 401 $(RUN_PY) $(GDB_ARGS) \ |
396 -C $(CURDIR) -P $(PAGE_TC_CONFIG) \ | 402 -C $(CURDIR) -P $(PAGE_TC_CONFIG) \ |
397 $(addprefix -E ,$(CHROME_ENV)) -- $(CHROME_PATH) $(CHROME_ARGS) \ | 403 $(addprefix -E ,$(CHROME_ENV)) -- $(CHROME_PATH) $(CHROME_ARGS) \ |
398 --enable-nacl-debug \ | 404 --enable-nacl-debug \ |
399 --register-pepper-plugins="$(PPAPI_DEBUG),$(PPAPI_RELEASE)" | 405 --register-pepper-plugins="$(PPAPI_DEBUG),$(PPAPI_RELEASE)" |
400 | 406 |
401 .PHONY: CHECK_FOR_CHROME RUN LAUNCH | 407 .PHONY: CHECK_FOR_CHROME RUN LAUNCH |
OLD | NEW |