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

Side by Side Diff: native_client_sdk/src/build_tools/make_rules.py

Issue 10827363: Add Linux Host builds to NaCl SDK (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 4 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
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 import os 6 import os
7 7
8 8
9 # 9 #
10 # Default macros for various platforms. 10 # Default macros for various platforms.
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 PEXE_LINK_RULES = { 102 PEXE_LINK_RULES = {
103 'Debug': '<TAB>$(<LINK>) -o $@ $^ -g $(<TC>_LDFLAGS) $(<PROJ>_LDFLAGS) -L$(NAC L_SDK_ROOT)/lib/$(OSNAME)_<ARCH>_<tc>/<config> <LIBLIST>\n' + PEXE_TRANSLATE_RUL E, 103 'Debug': '<TAB>$(<LINK>) -o $@ $^ -g $(<TC>_LDFLAGS) $(<PROJ>_LDFLAGS) -L$(NAC L_SDK_ROOT)/lib/$(OSNAME)_<ARCH>_<tc>/<config> <LIBLIST>\n' + PEXE_TRANSLATE_RUL E,
104 'Release': '<TAB>$(<LINK>) -o $@ $^ $(<TC>_LDFLAGS) $(<PROJ>_LDFLAGS) -L$(NACL _SDK_ROOT)/lib/$(OSNAME)_<ARCH>_<tc>/<config> <LIBLIST>\n' + PEXE_TRANSLATE_RULE , 104 'Release': '<TAB>$(<LINK>) -o $@ $^ $(<TC>_LDFLAGS) $(<PROJ>_LDFLAGS) -L$(NACL _SDK_ROOT)/lib/$(OSNAME)_<ARCH>_<tc>/<config> <LIBLIST>\n' + PEXE_TRANSLATE_RULE ,
105 } 105 }
106 106
107 WIN_LINK_RULES = { 107 WIN_LINK_RULES = {
108 'Debug': '<TAB>$(<LINK>) /DLL /OUT:$@ /PDG:$@.pdb /Zi $(<PROJ>_LDFLAGS) /DEBUG /LIBPATH:$(NACL_SDK_ROOT)/lib/win_x86_32_host/Debug $^ <LIBLIST> $(WIN_LDFLAGS) ', 108 'Debug': '<TAB>$(<LINK>) /DLL /OUT:$@ /PDG:$@.pdb /Zi $(<PROJ>_LDFLAGS) /DEBUG /LIBPATH:$(NACL_SDK_ROOT)/lib/win_x86_32_host/Debug $^ <LIBLIST> $(WIN_LDFLAGS) ',
109 'Release': '<TAB>$(<LINK>) /DLL /OUT:$@ $(<PROJ>_LDFLAGS) /LIBPATH:$(NACL_SDK_ ROOT)/lib/win_x86_32_host/Release $^ <LIBLIST> $(WIN_LDFLAGS)' 109 'Release': '<TAB>$(<LINK>) /DLL /OUT:$@ $(<PROJ>_LDFLAGS) /LIBPATH:$(NACL_SDK_ ROOT)/lib/win_x86_32_host/Release $^ <LIBLIST> $(WIN_LDFLAGS)'
110 } 110 }
111 111
112 WIN_LAUNCH_RULES = """
113 HOST_ARGS:=--register-pepper-plugins=$(abspath win/<proj>.dll);application/x-nac l
114 LAUNCH_HOST: CHECK_FOR_CHROME all
115 <TAB>$(CHROME_PATH) $(HOST_ARGS) "localhost:5103/index_win.html"
116 """
117 112
118 # 113 #
119 # Lib rules for various platforms. 114 # Lib rules for various platforms.
120 # 115 #
121 POSIX_LIB_RULES = { 116 POSIX_LIB_RULES = {
122 'Debug': 117 'Debug':
123 '<TAB>$(MKDIR) -p $(dir $@)\n' 118 '<TAB>$(MKDIR) -p $(dir $@)\n'
124 '<TAB>$(<LIB>) $@ $^', 119 '<TAB>$(<LIB>) $@ $^',
125 'Release': 120 'Release':
126 '<TAB>$(MKDIR) -p $(dir $@)\n' 121 '<TAB>$(MKDIR) -p $(dir $@)\n'
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 'MAIN': '<tc>/<config>/<proj>.dll', 158 'MAIN': '<tc>/<config>/<proj>.dll',
164 'NMFMAIN': '<tc>/<config>/<proj>.dll', 159 'NMFMAIN': '<tc>/<config>/<proj>.dll',
165 'SO': None, 160 'SO': None,
166 'LIB': '$(NACL_SDK_ROOT)/lib/win_<ARCH>_host/<config>/<proj>.lib', 161 'LIB': '$(NACL_SDK_ROOT)/lib/win_<ARCH>_host/<config>/<proj>.lib',
167 } 162 }
168 163
169 LINUX_TOOL = { 164 LINUX_TOOL = {
170 'DEFINE': '-D%s', 165 'DEFINE': '-D%s',
171 'INCLUDE': '-I%s', 166 'INCLUDE': '-I%s',
172 'LIBRARY': '-l%s', 167 'LIBRARY': '-l%s',
173 'MAIN': '<tc>/<config>/lib<proj>_<ARCH>.so', 168 'MAIN': '<tc>/<config>/lib<proj>.so',
174 'NMFMAIN': '<tc>/<config>/lib<proj>_<ARCH>.so', 169 'NMFMAIN': '<tc>/<config>/lib<proj>.so',
175 'SO': '<tc>/<config>/lib<proj>_<ARCH>.so', 170 'SO': '<tc>/<config>/lib<proj>.so',
176 'LIB': '$(NACL_SDK_ROOT)/lib/linux_<ARCH>_host/<config>/lib<proj>.a', 171 'LIB': '$(NACL_SDK_ROOT)/lib/linux_<ARCH>_host/<config>/lib<proj>.a',
177 } 172 }
178 173
179 NACL_TOOL = { 174 NACL_TOOL = {
180 'DEFINE': '-D%s', 175 'DEFINE': '-D%s',
181 'INCLUDE': '-I%s', 176 'INCLUDE': '-I%s',
182 'LIBRARY': '-l%s', 177 'LIBRARY': '-l%s',
183 'MAIN': '<tc>/<config>/<proj>_<ARCH>.nexe', 178 'MAIN': '<tc>/<config>/<proj>_<ARCH>.nexe',
184 'NMFMAIN': '<tc>/<config>/<proj>_<ARCH>.nexe', 179 'NMFMAIN': '<tc>/<config>/<proj>_<ARCH>.nexe',
185 'SO': '<tc>/<config>/<proj>_<ARCH>.so', 180 'SO': '<tc>/<config>/<proj>_<ARCH>.so',
(...skipping 10 matching lines...) Expand all
196 '<tc>/<config>/<proj>_x86_64.nexe ' 191 '<tc>/<config>/<proj>_x86_64.nexe '
197 '<tc>/<config>/<proj>_arm.nexe', 192 '<tc>/<config>/<proj>_arm.nexe',
198 'SO': None, 193 'SO': None,
199 'LIB': '$(NACL_SDK_ROOT)/lib/$(OSNAME)_<ARCH>_<tc>/<config>/lib<proj>.a', 194 'LIB': '$(NACL_SDK_ROOT)/lib/$(OSNAME)_<ARCH>_<tc>/<config>/lib<proj>.a',
200 } 195 }
201 196
202 197
203 # 198 #
204 # Various Architectures 199 # Various Architectures
205 # 200 #
206 LINUX_32 = { 201 LINUX = {
207 '<arch>': '32', 202 '<arch>': '',
208 '<ARCH>': 'x86_32', 203 '<ARCH>': '',
209 '<MACH>': '-m32', 204 '<MACH>': '',
210 }
211 LINUX_64 = {
212 '<arch>': '64',
213 '<ARCH>': 'x86_64',
214 '<MACH>': '-m64',
215 } 205 }
216 NACL_X86_32 = { 206 NACL_X86_32 = {
217 '<arch>': '32', 207 '<arch>': '32',
218 '<ARCH>': 'x86_32', 208 '<ARCH>': 'x86_32',
219 '<MACH>': '-m32', 209 '<MACH>': '-m32',
220 } 210 }
221 NACL_X86_64 = { 211 NACL_X86_64 = {
222 '<arch>': '64', 212 '<arch>': '64',
223 '<ARCH>': 'x86_64', 213 '<ARCH>': 'x86_64',
224 '<MACH>': '-m64', 214 '<MACH>': '-m64',
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 'DEFS': WIN_DEFAULTS, 264 'DEFS': WIN_DEFAULTS,
275 'CC': WIN_CC_RULES, 265 'CC': WIN_CC_RULES,
276 'CXX': WIN_CC_RULES, 266 'CXX': WIN_CC_RULES,
277 'NMF' : NMF_EMPTY, 267 'NMF' : NMF_EMPTY,
278 'MAIN': WIN_LINK_RULES, 268 'MAIN': WIN_LINK_RULES,
279 'LIB': WIN_LIB_RULES, 269 'LIB': WIN_LIB_RULES,
280 'SO': None, 270 'SO': None,
281 'TOOL': WIN_TOOL 271 'TOOL': WIN_TOOL
282 }, 272 },
283 'linux' : { 273 'linux' : {
284 'ARCHES': [LINUX_32, LINUX_64], 274 'ARCHES': [LINUX],
285 'DEFS': LINUX_DEFAULTS, 275 'DEFS': LINUX_DEFAULTS,
286 'CC': SO_CC_RULES, 276 'CC': SO_CC_RULES,
287 'CXX': SO_CC_RULES, 277 'CXX': SO_CC_RULES,
288 'NMF' : NMF_EMPTY, 278 'NMF' : NMF_EMPTY,
289 'MAIN': SO_LINK_RULES, 279 'MAIN': SO_LINK_RULES,
290 'LIB': POSIX_LIB_RULES, 280 'LIB': POSIX_LIB_RULES,
291 'SO': None, 281 'SO': None,
292 'TOOL': LINUX_TOOL 282 'TOOL': LINUX_TOOL
293 } 283 }
294 } 284 }
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
360 self.tc, self.cfg, self.arch['<ARCH>'], self.project.upper()) 350 self.tc, self.cfg, self.arch['<ARCH>'], self.project.upper())
361 return '%s:=%s\n' % (obj_list, sub_str) 351 return '%s:=%s\n' % (obj_list, sub_str)
362 352
363 def GetArches(self): 353 def GetArches(self):
364 return BUILD_RULES[self.tc]['ARCHES'] 354 return BUILD_RULES[self.tc]['ARCHES']
365 355
366 def GetObjectList(self): 356 def GetObjectList(self):
367 return '%s_%s_%s_%s_O' % (self.project.upper(), self.tc.upper(), 357 return '%s_%s_%s_%s_O' % (self.project.upper(), self.tc.upper(),
368 self.cfg.upper(), self.arch['<ARCH>']) 358 self.cfg.upper(), self.arch['<ARCH>'])
369 359
360 def GetPepperPlugin(self):
361 plugin = self.Replace(BUILD_RULES[self.tc]['TOOL']['MAIN'])
362 text ='PPAPI_<CONFIG>:=$(abspath %s)' % plugin
binji 2012/08/16 00:17:52 nit: remove extra space before =, add space after
noelallen1 2012/08/16 17:58:30 Done.
363 text +=';application/x-ppapi-%s\n' % self.vars['<config>'].lower()
binji 2012/08/16 00:17:52 nit: add space after +=
noelallen1 2012/08/16 17:58:30 Done.
364 return self.Replace(text)
365
366
370 def SetArch(self, arch): 367 def SetArch(self, arch):
371 self.arch = arch 368 self.arch = arch
372 for key in arch: 369 for key in arch:
373 self.vars[key] = arch[key] 370 self.vars[key] = arch[key]
374 371
375 def SetConfig(self, config): 372 def SetConfig(self, config):
376 self.cfg = config 373 self.cfg = config
377 self.vars['<config>'] = config 374 self.vars['<config>'] = config
378 self.vars['<CONFIG>'] = config.upper() 375 self.vars['<CONFIG>'] = config.upper()
379 376
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
479 } 476 }
480 for dll in dlls: 477 for dll in dlls:
481 replace['<proj>'] = dll 478 replace['<proj>'] = dll
482 nmf_targets.append(Replace(dll_target, replace)) 479 nmf_targets.append(Replace(dll_target, replace))
483 replace['<proj>'] = main 480 replace['<proj>'] = main
484 nmf_targets.append(Replace(target, replace)) 481 nmf_targets.append(Replace(target, replace))
485 482
486 replace['<NMF_TARGETS>'] = ' '.join(nmf_targets) 483 replace['<NMF_TARGETS>'] = ' '.join(nmf_targets)
487 rules = Replace(BUILD_RULES[tc]['NMF'], replace) 484 rules = Replace(BUILD_RULES[tc]['NMF'], replace)
488 return '\nALL_TARGETS+=%s/%s/%s.nmf' % (tc, cfg, main) + rules + '\n' 485 return '\nALL_TARGETS+=%s/%s/%s.nmf' % (tc, cfg, main) + rules + '\n'
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698