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 # | 12 # |
13 # Default Paths | 13 # Default Paths |
14 # | 14 # |
15 | 15 |
16 LD_X86_32:=-L$(NACL_SDK_ROOT)/lib/$(TOOLCHAIN)_x86_32/$(CONFIG) | 16 LD_X86_32:=-L$(NACL_SDK_ROOT)/lib/$(TOOLCHAIN)_x86_32/$(CONFIG) |
17 LD_X86_64:=-L$(NACL_SDK_ROOT)/lib/$(TOOLCHAIN)_x86_64/$(CONFIG) | 17 LD_X86_64:=-L$(NACL_SDK_ROOT)/lib/$(TOOLCHAIN)_x86_64/$(CONFIG) |
18 LD_ARM:=-L$(NACL_SDK_ROOT)/lib/$(TOOLCHAIN)_arm/$(CONFIG) | 18 LD_ARM:=-L$(NACL_SDK_ROOT)/lib/$(TOOLCHAIN)_arm/$(CONFIG) |
19 | 19 |
20 | 20 |
21 # | 21 # |
22 # Macros for TOOLS | 22 # Macros for TOOLS |
23 # | 23 # |
24 # We use the C++ compiler for everything and then use the -Wl,-as-needed flag | 24 # We always link with the C++ compiler but include -Wl,-as-needed flag |
25 # in the linker to drop libc++ unless it's actually needed. | 25 # in LD_FLAGS so the linker should drop libc++ unless it's actually needed. |
26 # | 26 # |
27 X86_CC?=$(TC_PATH)/$(OSNAME)_x86_$(TOOLCHAIN)/bin/i686-nacl-gcc | 27 X86_CC?=$(TC_PATH)/$(OSNAME)_x86_$(TOOLCHAIN)/bin/i686-nacl-gcc |
28 X86_CXX?=$(TC_PATH)/$(OSNAME)_x86_$(TOOLCHAIN)/bin/i686-nacl-g++ | 28 X86_CXX?=$(TC_PATH)/$(OSNAME)_x86_$(TOOLCHAIN)/bin/i686-nacl-g++ |
29 X86_LINK?=$(TC_PATH)/$(OSNAME)_x86_$(TOOLCHAIN)/bin/i686-nacl-g++ -Wl,-as-needed | 29 X86_LINK?=$(TC_PATH)/$(OSNAME)_x86_$(TOOLCHAIN)/bin/i686-nacl-g++ |
30 X86_LIB?=$(TC_PATH)/$(OSNAME)_x86_$(TOOLCHAIN)/bin/i686-nacl-ar r | 30 X86_LIB?=$(TC_PATH)/$(OSNAME)_x86_$(TOOLCHAIN)/bin/i686-nacl-ar r |
31 | 31 |
32 X64_CC?=$(TC_PATH)/$(OSNAME)_x86_$(TOOLCHAIN)/bin/x86_64-nacl-gcc | |
33 X64_CXX?=$(TC_PATH)/$(OSNAME)_x86_$(TOOLCHAIN)/bin/x86_64-nacl-g++ | |
34 X64_LINK?=$(TC_PATH)/$(OSNAME)_x86_$(TOOLCHAIN)/bin/x86_64-nacl-g++ | |
35 X64_LIB?=$(TC_PATH)/$(OSNAME)_x86_$(TOOLCHAIN)/bin/x86_64-nacl-ar r | |
36 | |
32 ARM_CC?=$(TC_PATH)/$(OSNAME)_arm_$(TOOLCHAIN)/bin/arm-nacl-gcc | 37 ARM_CC?=$(TC_PATH)/$(OSNAME)_arm_$(TOOLCHAIN)/bin/arm-nacl-gcc |
33 ARM_CXX?=$(TC_PATH)/$(OSNAME)_arm_$(TOOLCHAIN)/bin/arm-nacl-g++ | 38 ARM_CXX?=$(TC_PATH)/$(OSNAME)_arm_$(TOOLCHAIN)/bin/arm-nacl-g++ |
34 ARM_LINK?=$(TC_PATH)/$(OSNAME)_arm_$(TOOLCHAIN)/bin/arm-nacl-g++ -Wl,-as-needed | 39 ARM_LINK?=$(TC_PATH)/$(OSNAME)_arm_$(TOOLCHAIN)/bin/arm-nacl-g++ |
35 ARM_LIB?=$(TC_PATH)/$(OSNAME)_arm_$(TOOLCHAIN)/bin/arm-nacl-ar r | 40 ARM_LIB?=$(TC_PATH)/$(OSNAME)_arm_$(TOOLCHAIN)/bin/arm-nacl-ar r |
36 | 41 |
37 | 42 |
38 # | 43 # |
39 # Compile Macro | 44 # Compile Macro |
40 # | 45 # |
41 # $1 = Source Name | 46 # $1 = Source Name |
42 # $2 = Compile Flags | 47 # $2 = Compile Flags |
43 # | 48 # |
49 | |
44 define C_COMPILER_RULE | 50 define C_COMPILER_RULE |
45 -include $(OUTDIR)/$(basename $(1))_*.d | 51 -include $(OUTDIR)/$(basename $(1))_*.d |
46 $(OUTDIR)/$(basename $(1))_x86_32.o : $(1) $(TOP_MAKE) | $(dir $(OUTDIR)/$(basen ame $(1)))dir.stamp | 52 $(OUTDIR)/$(basename $(1))_x86_32.o : $(1) $(TOP_MAKE) | $(dir $(OUTDIR)/$(basen ame $(1)))dir.stamp |
47 » $(X86_CC) -o $$@ -c $$< -m32 $(POSIX_FLAGS) $(2) $(NACL_CFLAGS) | 53 » $(call LOG,CC,$$@,$(X86_CC) -o $$@ -c $$< $(POSIX_FLAGS) $(2) $(NACL_CFL AGS)) |
48 | 54 |
49 $(OUTDIR)/$(basename $(1))_x86_64.o : $(1) $(TOP_MAKE) | $(dir $(OUTDIR)/$(basen ame $(1)))dir.stamp | 55 $(OUTDIR)/$(basename $(1))_x86_64.o : $(1) $(TOP_MAKE) | $(dir $(OUTDIR)/$(basen ame $(1)))dir.stamp |
50 » $(X86_CC) -o $$@ -c $$< -m64 $(POSIX_FLAGS) $(2) $(NACL_CFLAGS) | 56 » $(call LOG,CC,$$@,$(X64_CC) -o $$@ -c $$< $(POSIX_FLAGS) $(2) $(NACL_CFL AGS)) |
51 | 57 |
52 $(OUTDIR)/$(basename $(1))_arm.o : $(1) $(TOP_MAKE) | $(dir $(OUTDIR)/$(basename $(1)))dir.stamp | 58 $(OUTDIR)/$(basename $(1))_arm.o : $(1) $(TOP_MAKE) | $(dir $(OUTDIR)/$(basename $(1)))dir.stamp |
53 » $(ARM_CC) -o $$@ -c $$< $(POSIX_FLAGS) $(2) $(NACL_CFLAGS) | 59 » $(call LOG,CC,$$@,$(ARM_CC) -o $$@ -c $$< $(POSIX_FLAGS) $(2) $(NACL_CFL AGS)) |
54 endef | 60 endef |
55 | 61 |
56 define CXX_COMPILER_RULE | 62 define CXX_COMPILER_RULE |
57 -include $(OUTDIR)/$(basename $(1))_*.d | 63 -include $(OUTDIR)/$(basename $(1))_*.d |
58 $(OUTDIR)/$(basename $(1))_x86_32.o : $(1) $(TOP_MAKE) | $(dir $(OUTDIR)/$(basen ame $(1)))dir.stamp | 64 $(OUTDIR)/$(basename $(1))_x86_32.o : $(1) $(TOP_MAKE) | $(dir $(OUTDIR)/$(basen ame $(1)))dir.stamp |
59 » $(X86_CXX) -o $$@ -c $$< -m32 $(POSIX_FLAGS) $(2) $(NACL_CXXFLAGS) | 65 » $(call LOG,CXX,$$@,$(X86_CXX) -o $$@ -c $$< $(POSIX_FLAGS) $(2) $(NACL_C XXFLAGS)) |
60 | 66 |
61 $(OUTDIR)/$(basename $(1))_x86_64.o : $(1) $(TOP_MAKE) | $(dir $(OUTDIR)/$(basen ame $(1)))dir.stamp | 67 $(OUTDIR)/$(basename $(1))_x86_64.o : $(1) $(TOP_MAKE) | $(dir $(OUTDIR)/$(basen ame $(1)))dir.stamp |
62 » $(X86_CXX) -o $$@ -c $$< -m64 $(POSIX_FLAGS) $(2) $(NACL_CXXFLAGS) | 68 » $(call LOG,CXX,$$@,$(X64_CXX) -o $$@ -c $$< $(POSIX_FLAGS) $(2) $(NACL_C XXFLAGS)) |
63 | 69 |
64 $(OUTDIR)/$(basename $(1))_arm.o : $(1) $(TOP_MAKE) | $(dir $(OUTDIR)/$(basename $(1)))dir.stamp | 70 $(OUTDIR)/$(basename $(1))_arm.o : $(1) $(TOP_MAKE) | $(dir $(OUTDIR)/$(basename $(1)))dir.stamp |
65 » $(ARM_CXX) -o $$@ -c $$< $(POSIX_FLAGS) $(2) $(NACL_CXXFLAGS) | 71 » $(call LOG,CXX,$$@,$(ARM_CXX) -o $$@ -c $$< $(POSIX_FLAGS) $(2) $(NACL_C XXFLAGS)) |
66 endef | 72 endef |
67 | 73 |
68 | 74 |
69 # | 75 # |
70 # $1 = Source Name | 76 # $1 = Source Name |
71 # $2 = POSIX Compile Flags | 77 # $2 = POSIX Compile Flags |
72 # $3 = Include Directories | 78 # $3 = Include Directories |
73 # $4 = VC Flags (unused) | 79 # $4 = VC Flags (unused) |
74 # | 80 # |
75 define COMPILE_RULE | 81 define COMPILE_RULE |
76 ifeq ('.c','$(suffix $(1))') | 82 ifeq ('.c','$(suffix $(1))') |
77 $(call C_COMPILER_RULE,$(1),$(2) $(foreach inc,$(INC_PATHS),-I$(inc)) $(3)) | 83 $(call C_COMPILER_RULE,$(1),$(2) $(foreach inc,$(INC_PATHS),-I$(inc)) $(3)) |
78 else | 84 else |
79 $(call CXX_COMPILER_RULE,$(1),$(2) $(foreach inc,$(INC_PATHS),-I$(inc)) $(3)) | 85 $(call CXX_COMPILER_RULE,$(1),$(2) $(foreach inc,$(INC_PATHS),-I$(inc)) $(3)) |
80 endif | 86 endif |
81 endef | 87 endef |
82 | 88 |
83 | 89 |
84 # | 90 # |
85 # SO Macro | 91 # SO Macro |
86 # | 92 # |
87 # $1 = Target Name | 93 # $1 = Target Name |
88 # $2 = List of Sources | 94 # $2 = List of Sources |
89 # | 95 # |
90 # | 96 # |
91 GLIBC_REMAP:= | 97 GLIBC_REMAP:= |
92 define SO_RULE | 98 define SO_RULE |
93 NMF_TARGETS+=$$(OUTDIR)/$(1)_x86_32.so | 99 NMF_TARGETS+=$$(OUTDIR)/$(1)_x86_32.so |
94 $(OUTDIR)/$(1)_x86_32.so : $(foreach src,$(2),$(OUTDIR)/$(basename $(src))_x86_3 2.o) $(4) | 100 $(OUTDIR)/$(1)_x86_32.so : $(foreach src,$(2),$(OUTDIR)/$(basename $(src))_x86_3 2.o) $(4) |
95 $(X86_LINK) -o $$@ $$(filter-out $(4),$$^) -shared -m32 $$(LD_X86_32) $$ (LD_FLAGS) $(foreach lib,$(3),-l$(lib)) | 101 $(X86_LINK) -o $$@ $$(filter-out $(4),$$^) -shared -m32 $$(LD_X86_32) $$ (LD_FLAGS) $(foreach lib,$(3),-l$(lib)) |
binji
2013/02/11 20:46:07
here too?
Sam Clegg
2013/02/11 21:07:42
Done.
| |
96 | 102 |
97 NMF_TARGETS+=$(OUTDIR)/$(1)_x86_64.so | 103 NMF_TARGETS+=$(OUTDIR)/$(1)_x86_64.so |
98 $(OUTDIR)/$(1)_x86_64.so : $(foreach src,$(2),$$(OUTDIR)/$(basename $(src))_x86_ 64.o) $(4) | 104 $(OUTDIR)/$(1)_x86_64.so : $(foreach src,$(2),$$(OUTDIR)/$(basename $(src))_x86_ 64.o) $(4) |
99 $(X86_LINK) -o $$@ $$(filter-out $(4),$$^) -shared -m64 $(LD_X86_64) $$( LD_FLAGS) $(foreach lib,$(3),-l$(lib)) | 105 $(X86_LINK) -o $$@ $$(filter-out $(4),$$^) -shared -m64 $(LD_X86_64) $$( LD_FLAGS) $(foreach lib,$(3),-l$(lib)) |
100 | 106 |
101 GLIBC_SO_LIST+=$(OUTDIR)/$(1)_x86_32.so $(OUTDIR)/$(1)_x86_64.so | 107 GLIBC_SO_LIST+=$(OUTDIR)/$(1)_x86_32.so $(OUTDIR)/$(1)_x86_64.so |
102 GLIBC_REMAP+=-n $(1)_x86_32.so,$(1).so | 108 GLIBC_REMAP+=-n $(1)_x86_32.so,$(1).so |
103 GLIBC_REMAP+=-n $(1)_x86_64.so,$(1).so | 109 GLIBC_REMAP+=-n $(1)_x86_64.so,$(1).so |
104 endef | 110 endef |
105 | 111 |
(...skipping 27 matching lines...) Expand all Loading... | |
133 $(X86_LIB) $$@ $$^ | 139 $(X86_LIB) $$@ $$^ |
134 | 140 |
135 ifneq ('glibc','$(TOOLCHAIN)') | 141 ifneq ('glibc','$(TOOLCHAIN)') |
136 all: $(NACL_SDK_ROOT)/lib/$(TOOLCHAIN)_arm/$(CONFIG)/lib$(1).a | 142 all: $(NACL_SDK_ROOT)/lib/$(TOOLCHAIN)_arm/$(CONFIG)/lib$(1).a |
137 endif | 143 endif |
138 $(NACL_SDK_ROOT)/lib/$(TOOLCHAIN)_arm/$(CONFIG)/lib$(1).a : $(foreach src,$(2),$ (OUTDIR)/$(basename $(src))_arm.o) | 144 $(NACL_SDK_ROOT)/lib/$(TOOLCHAIN)_arm/$(CONFIG)/lib$(1).a : $(foreach src,$(2),$ (OUTDIR)/$(basename $(src))_arm.o) |
139 $(MKDIR) -p $$(dir $$@) | 145 $(MKDIR) -p $$(dir $$@) |
140 $(ARM_LIB) $$@ $$^ | 146 $(ARM_LIB) $$@ $$^ |
141 endef | 147 endef |
142 | 148 |
143 infos: | |
144 echo $(STAMPDIR) | |
145 # | 149 # |
146 # Specific Link Macro | 150 # Specific Link Macro |
147 # | 151 # |
148 # $1 = Target Name | 152 # $1 = Target Name |
149 # $2 = List of Sources | 153 # $2 = List of Sources |
150 # $3 = List of LIBS | 154 # $3 = List of LIBS |
151 # $4 = List of DEPS | 155 # $4 = List of DEPS |
152 # $5 = POSIX Link Flags | 156 # $5 = POSIX Link Flags |
153 # $6 = Library Paths | 157 # $6 = Library Paths |
154 # | 158 # |
155 define LINKER_RULE | 159 define LINKER_RULE |
156 $(OUTDIR)/$(1)_x86_32.nexe : $(foreach src,$(2),$(OUTDIR)/$(basename $(src))_x86 _32.o) $(foreach dep,$(4),$(STAMPDIR)/$(dep).stamp) | 160 $(OUTDIR)/$(1)_x86_32.nexe : $(foreach src,$(2),$(OUTDIR)/$(basename $(src))_x86 _32.o) $(foreach dep,$(4),$(STAMPDIR)/$(dep).stamp) |
157 » $(X86_LINK) -o $$@ $$(filter %.o,$$^) -m32 $(foreach path,$(6),-L$(path) /$(TOOLCHAIN)_x86_32/$(CONFIG)) $(foreach lib,$(3),-l$(lib)) $(5) | 161 » $(call LOG,LINK,$$@,$(X86_LINK) -o $$@ $$(filter %.o,$$^) $(NACL_LDFLAGS ) $(foreach path,$(6),-L$(path)/$(TOOLCHAIN)_x86_32/$(CONFIG)) $(foreach lib,$(3 ),-l$(lib)) $(5)) |
158 | 162 |
159 $(OUTDIR)/$(1)_x86_64.nexe : $(foreach src,$(2),$$(OUTDIR)/$(basename $(src))_x8 6_64.o) $(foreach dep,$(4),$(STAMPDIR)/$(dep).stamp) | 163 $(OUTDIR)/$(1)_x86_64.nexe : $(foreach src,$(2),$$(OUTDIR)/$(basename $(src))_x8 6_64.o) $(foreach dep,$(4),$(STAMPDIR)/$(dep).stamp) |
160 » $(X86_LINK) -o $$@ $$(filter %.o,$$^) -m64 $(foreach path,$(6),-L$(path) /$(TOOLCHAIN)_x86_64/$(CONFIG)) $(foreach lib,$(3),-l$(lib)) $(5) | 164 » $(call LOG,LINK,$$@,$(X64_LINK) -o $$@ $$(filter %.o,$$^) $(NACL_LDFLAGS ) $(foreach path,$(6),-L$(path)/$(TOOLCHAIN)_x86_64/$(CONFIG)) $(foreach lib,$(3 ),-l$(lib)) $(5)) |
161 | 165 |
162 $(OUTDIR)/$(1)_arm.nexe : $(foreach src,$(2),$(OUTDIR)/$(basename $(src))_arm.o) $(foreach dep,$(4),$(STAMPDIR)/$(dep).stamp) | 166 $(OUTDIR)/$(1)_arm.nexe : $(foreach src,$(2),$(OUTDIR)/$(basename $(src))_arm.o) $(foreach dep,$(4),$(STAMPDIR)/$(dep).stamp) |
163 » $(ARM_LINK) -o $$@ $$(filter %.o,$$^) $(foreach path,$(6),-L$(path)/$(TO OLCHAIN)_arm/$(CONFIG)) $(foreach lib,$(3),-l$(lib)) $(5) | 167 » $(call LOG,LINK,$$@,$(ARM_LINK) -o $$@ $$(filter %.o,$$^) $(NACL_LDFLAGS ) $(foreach path,$(6),-L$(path)/$(TOOLCHAIN)_arm/$(CONFIG)) $(foreach lib,$(3),- l$(lib)) $(5)) |
164 endef | 168 endef |
165 | 169 |
166 | 170 |
167 # | 171 # |
168 # Generalized Link Macro | 172 # Generalized Link Macro |
169 # | 173 # |
170 # $1 = Target Name | 174 # $1 = Target Name |
171 # $2 = List of Sources | 175 # $2 = List of Sources |
172 # $3 = List of LIBS | 176 # $3 = List of LIBS |
173 # $4 = List of DEPS | 177 # $4 = List of DEPS |
(...skipping 27 matching lines...) Expand all Loading... | |
201 # $2 = Additional create_nmf.py arguments | 205 # $2 = Additional create_nmf.py arguments |
202 # | 206 # |
203 NMF:=python $(NACL_SDK_ROOT)/tools/create_nmf.py | 207 NMF:=python $(NACL_SDK_ROOT)/tools/create_nmf.py |
204 GLIBC_DUMP:=$(TC_PATH)/$(OSNAME)_x86_glibc/x86_64-nacl/bin/objdump | 208 GLIBC_DUMP:=$(TC_PATH)/$(OSNAME)_x86_glibc/x86_64-nacl/bin/objdump |
205 GLIBC_PATHS:=-L $(TC_PATH)/$(OSNAME)_x86_glibc/x86_64-nacl/lib32 | 209 GLIBC_PATHS:=-L $(TC_PATH)/$(OSNAME)_x86_glibc/x86_64-nacl/lib32 |
206 GLIBC_PATHS+=-L $(TC_PATH)/$(OSNAME)_x86_glibc/x86_64-nacl/lib | 210 GLIBC_PATHS+=-L $(TC_PATH)/$(OSNAME)_x86_glibc/x86_64-nacl/lib |
207 | 211 |
208 define NMF_RULE | 212 define NMF_RULE |
209 all:$(OUTDIR)/$(1).nmf | 213 all:$(OUTDIR)/$(1).nmf |
210 $(OUTDIR)/$(1).nmf : $(foreach arch,$(NMF_ARCHES),$(OUTDIR)/$(1)$(arch)) $(GLIBC _SO_LIST) | 214 $(OUTDIR)/$(1).nmf : $(foreach arch,$(NMF_ARCHES),$(OUTDIR)/$(1)$(arch)) $(GLIBC _SO_LIST) |
211 » $(NMF) -o $$@ $$^ -D $(GLIBC_DUMP) $(GLIBC_PATHS) -s $(OUTDIR) $(2) $(GL IBC_REMAP) | 215 » $(call LOG,CREATE_NMF,$$@,$(NMF) -o $$@ $$^ -D $(GLIBC_DUMP) $(GLIBC_PAT HS) -s $(OUTDIR) $(2) $(GLIBC_REMAP)) |
212 endef | 216 endef |
213 | 217 |
214 | 218 |
OLD | NEW |