| OLD | NEW |
| 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 # pylint: disable=C0301 | 8 # pylint: disable=C0301 |
| 9 # This file contains lines longer than 80 | 9 # This file contains lines longer than 80 |
| 10 | 10 |
| 11 # | 11 # |
| 12 # Default macros for various platforms. | 12 # Default macros for various platforms. |
| 13 # | 13 # |
| 14 NEWLIB_DEFAULTS = """ | 14 NEWLIB_DEFAULTS = """ |
| 15 NEWLIB_CC?=$(TC_PATH)/$(OSNAME)_x86_newlib/bin/i686-nacl-gcc -c | 15 NEWLIB_CC?=$(TC_PATH)/$(OSNAME)_x86_newlib/bin/i686-nacl-gcc -c |
| 16 NEWLIB_CXX?=$(TC_PATH)/$(OSNAME)_x86_newlib/bin/i686-nacl-g++ -c -std=gnu++98 | 16 NEWLIB_CXX?=$(TC_PATH)/$(OSNAME)_x86_newlib/bin/i686-nacl-g++ -c |
| 17 NEWLIB_LINK?=$(TC_PATH)/$(OSNAME)_x86_newlib/bin/i686-nacl-g++ -Wl,-as-needed | 17 NEWLIB_LINK?=$(TC_PATH)/$(OSNAME)_x86_newlib/bin/i686-nacl-g++ -Wl,-as-needed |
| 18 NEWLIB_LIB?=$(TC_PATH)/$(OSNAME)_x86_newlib/bin/i686-nacl-ar r | 18 NEWLIB_LIB?=$(TC_PATH)/$(OSNAME)_x86_newlib/bin/i686-nacl-ar r |
| 19 NEWLIB_DUMP?=$(TC_PATH)/$(OSNAME)_x86_newlib/x86_64-nacl/bin/objdump | 19 NEWLIB_DUMP?=$(TC_PATH)/$(OSNAME)_x86_newlib/x86_64-nacl/bin/objdump |
| 20 NEWLIB_CCFLAGS?=-MMD -pthread $(NACL_WARNINGS) -idirafter $(NACL_SDK_ROOT)/inclu
de | 20 NEWLIB_CCFLAGS?=-MMD -pthread $(NACL_WARNINGS) -idirafter $(NACL_SDK_ROOT)/inclu
de |
| 21 NEWLIB_LDFLAGS?=-pthread | 21 NEWLIB_LDFLAGS?=-pthread |
| 22 """ | 22 """ |
| 23 | 23 |
| 24 GLIBC_DEFAULTS = """ | 24 GLIBC_DEFAULTS = """ |
| 25 GLIBC_CC?=$(TC_PATH)/$(OSNAME)_x86_glibc/bin/i686-nacl-gcc -c | 25 GLIBC_CC?=$(TC_PATH)/$(OSNAME)_x86_glibc/bin/i686-nacl-gcc -c |
| 26 GLIBC_CXX?=$(TC_PATH)/$(OSNAME)_x86_glibc/bin/i686-nacl-g++ -c -std=gnu++98 | 26 GLIBC_CXX?=$(TC_PATH)/$(OSNAME)_x86_glibc/bin/i686-nacl-g++ -c |
| 27 GLIBC_LINK?=$(TC_PATH)/$(OSNAME)_x86_glibc/bin/i686-nacl-g++ -Wl,-as-needed | 27 GLIBC_LINK?=$(TC_PATH)/$(OSNAME)_x86_glibc/bin/i686-nacl-g++ -Wl,-as-needed |
| 28 GLIBC_LIB?=$(TC_PATH)/$(OSNAME)_x86_glibc/bin/i686-nacl-ar r | 28 GLIBC_LIB?=$(TC_PATH)/$(OSNAME)_x86_glibc/bin/i686-nacl-ar r |
| 29 GLIBC_DUMP?=$(TC_PATH)/$(OSNAME)_x86_glibc/x86_64-nacl/bin/objdump | 29 GLIBC_DUMP?=$(TC_PATH)/$(OSNAME)_x86_glibc/x86_64-nacl/bin/objdump |
| 30 GLIBC_PATHS:=-L $(TC_PATH)/$(OSNAME)_x86_glibc/x86_64-nacl/lib32 | 30 GLIBC_PATHS:=-L $(TC_PATH)/$(OSNAME)_x86_glibc/x86_64-nacl/lib32 |
| 31 GLIBC_PATHS+=-L $(TC_PATH)/$(OSNAME)_x86_glibc/x86_64-nacl/lib | 31 GLIBC_PATHS+=-L $(TC_PATH)/$(OSNAME)_x86_glibc/x86_64-nacl/lib |
| 32 GLIBC_CCFLAGS?=-MMD -pthread $(NACL_WARNINGS) -idirafter $(NACL_SDK_ROOT)/includ
e | 32 GLIBC_CCFLAGS?=-MMD -pthread $(NACL_WARNINGS) -idirafter $(NACL_SDK_ROOT)/includ
e |
| 33 GLIBC_LDFLAGS?=-pthread | 33 GLIBC_LDFLAGS?=-pthread |
| 34 """ | 34 """ |
| 35 | 35 |
| 36 PNACL_DEFAULTS = """ | 36 PNACL_DEFAULTS = """ |
| 37 PNACL_CC?=$(TC_PATH)/$(OSNAME)_x86_pnacl/newlib/bin/pnacl-clang -c | 37 PNACL_CC?=$(TC_PATH)/$(OSNAME)_x86_pnacl/newlib/bin/pnacl-clang -c |
| 38 PNACL_CXX?=$(TC_PATH)/$(OSNAME)_x86_pnacl/newlib/bin/pnacl-clang++ -c -std=gnu++
98 | 38 PNACL_CXX?=$(TC_PATH)/$(OSNAME)_x86_pnacl/newlib/bin/pnacl-clang++ -c |
| 39 PNACL_LINK?=$(TC_PATH)/$(OSNAME)_x86_pnacl/newlib/bin/pnacl-clang++ | 39 PNACL_LINK?=$(TC_PATH)/$(OSNAME)_x86_pnacl/newlib/bin/pnacl-clang++ |
| 40 PNACL_LIB?=$(TC_PATH)/$(OSNAME)_x86_pnacl/newlib/bin/pnacl-ar r | 40 PNACL_LIB?=$(TC_PATH)/$(OSNAME)_x86_pnacl/newlib/bin/pnacl-ar r |
| 41 PNACL_DUMP?=$(TC_PATH)/$(OSNAME)_x86_pnacl/newlib/bin/objdump | 41 PNACL_DUMP?=$(TC_PATH)/$(OSNAME)_x86_pnacl/newlib/bin/objdump |
| 42 PNACL_CCFLAGS?=-MMD -pthread $(NACL_WARNINGS) -idirafter $(NACL_SDK_ROOT)/includ
e | 42 PNACL_CCFLAGS?=-MMD -pthread $(NACL_WARNINGS) -idirafter $(NACL_SDK_ROOT)/includ
e |
| 43 PNACL_LDFLAGS?=-pthread | 43 PNACL_LDFLAGS?=-pthread |
| 44 TRANSLATE:=$(TC_PATH)/$(OSNAME)_x86_pnacl/newlib/bin/pnacl-translate | 44 TRANSLATE:=$(TC_PATH)/$(OSNAME)_x86_pnacl/newlib/bin/pnacl-translate |
| 45 """ | 45 """ |
| 46 | 46 |
| 47 LINUX_DEFAULTS = """ | 47 LINUX_DEFAULTS = """ |
| 48 LINUX_CC?=gcc -c | 48 LINUX_CC?=gcc -c |
| 49 LINUX_CXX?=g++ -c -std=gnu++98 | 49 LINUX_CXX?=g++ -c |
| 50 LINUX_LINK?=g++ | 50 LINUX_LINK?=g++ |
| 51 LINUX_LIB?=ar r | 51 LINUX_LIB?=ar r |
| 52 LINUX_CCFLAGS=-I$(NACL_SDK_ROOT)/include -I$(NACL_SDK_ROOT)/include/linux | 52 LINUX_CCFLAGS=-I$(NACL_SDK_ROOT)/include -I$(NACL_SDK_ROOT)/include/linux |
| 53 """ | 53 """ |
| 54 | 54 |
| 55 WIN_DEFAULTS = """ | 55 WIN_DEFAULTS = """ |
| 56 WIN_CC?=cl.exe /nologo | 56 WIN_CC?=cl.exe /nologo /WX |
| 57 WIN_CXX?=cl.exe /nologo | 57 WIN_CXX?=cl.exe /nologo /EHsc /WX |
| 58 WIN_LINK?=link.exe /nologo | 58 WIN_LINK?=link.exe /nologo |
| 59 WIN_LIB?=lib.exe /nologo | 59 WIN_LIB?=lib.exe /nologo |
| 60 WIN_CCFLAGS=/I$(NACL_SDK_ROOT)/include /I$(NACL_SDK_ROOT)/include/win -D WIN32 -
D _WIN32 -D PTW32_STATIC_LIB | 60 WIN_CCFLAGS=/I$(NACL_SDK_ROOT)\\include /I$(NACL_SDK_ROOT)\\include\\win -D WIN3
2 -D _WIN32 -D PTW32_STATIC_LIB |
| 61 """ | 61 """ |
| 62 | 62 |
| 63 # | 63 # |
| 64 # Compile rules for various platforms. | 64 # Compile rules for various platforms. |
| 65 # | 65 # |
| 66 NACL_CC_RULES = { | 66 NACL_CC_RULES = { |
| 67 'Debug': '<TAB>$(<CC>) -o $@ $< -g -O0 <MACH> $(<TC>_CCFLAGS) $(<PROJ>_<EXT>FL
AGS) <DEFLIST> <INCLIST>', | 67 'Debug': '<TAB>$(<CC>) -o $@ $< -g -O0 <MACH> $(<TC>_CCFLAGS) $(<PROJ>_<EXT>FL
AGS) <DEFLIST> <INCLIST>', |
| 68 'Release': '<TAB>$(<CC>) -o $@ $< -O2 <MACH> $(<TC>_CCFLAGS) $(<PROJ>_<EXT>FLA
GS) <DEFLIST> <INCLIST>', | 68 'Release': '<TAB>$(<CC>) -o $@ $< -O2 <MACH> $(<TC>_CCFLAGS) $(<PROJ>_<EXT>FLA
GS) <DEFLIST> <INCLIST>', |
| 69 } | 69 } |
| 70 | 70 |
| 71 SO_CC_RULES = { | 71 SO_CC_RULES = { |
| 72 'Debug': '<TAB>$(<CC>) -o $@ $< -g -O0 <MACH> -fPIC $(<TC>_CCFLAGS) $(<PROJ>_<
EXT>FLAGS) <DEFLIST> <INCLIST>', | 72 'Debug': '<TAB>$(<CC>) -o $@ $< -g -O0 <MACH> -fPIC $(<TC>_CCFLAGS) $(<PROJ>_<
EXT>FLAGS) <DEFLIST> <INCLIST>', |
| 73 'Release': '<TAB>$(<CC>) -o $@ $< -O2 <MACH> -fPIC $(<TC>_CCFLAGS) $(<PROJ>_<E
XT>FLAGS) <DEFLIST> <INCLIST>' | 73 'Release': '<TAB>$(<CC>) -o $@ $< -O2 <MACH> -fPIC $(<TC>_CCFLAGS) $(<PROJ>_<E
XT>FLAGS) <DEFLIST> <INCLIST>' |
| 74 } | 74 } |
| 75 | 75 |
| 76 WIN_CC_RULES = { | 76 WIN_CC_RULES = { |
| 77 'Debug': '<TAB>$(<CC>) /Od /Fo$@ /MTd /Zi /c $< $(WIN_CCFLAGS) <DEFLIST> <INCL
IST>', | 77 'Debug': '<TAB>$(<CC>) /Od /Fo$@ /MTd /Z7 /c $< $(WIN_CCFLAGS) <DEFLIST> <INCL
IST>', |
| 78 'Release': '<TAB>$(<CC>) /O2 /Fo$@ /MT /c $< $(WIN_CCFLAGS) <DEFLIST> <INCLIST
>' | 78 'Release': '<TAB>$(<CC>) /O2 /Fo$@ /MT /c $< $(WIN_CCFLAGS) <DEFLIST> <INCLIST
>' |
| 79 } | 79 } |
| 80 | 80 |
| 81 # | 81 # |
| 82 # Link rules for various platforms. | 82 # Link rules for various platforms. |
| 83 # | 83 # |
| 84 NEXE_LINK_RULES = { | 84 NEXE_LINK_RULES = { |
| 85 'Debug': '<TAB>$(<LINK>) -o $@ $^ -g <MACH> $(<TC>_LDFLAGS) $(<PROJ>_LDFLAGS)
-L$(NACL_SDK_ROOT)/lib/$(OSNAME)_<ARCH>_<tc>/<config> -Wl,--start-group <LIBLIST
> -Wl,--end-group', | 85 'Debug': '<TAB>$(<LINK>) -o $@ $^ -g <MACH> $(<TC>_LDFLAGS) $(<PROJ>_LDFLAGS)
-L$(NACL_SDK_ROOT)/lib/$(OSNAME)_<ARCH>_<tc>/<config> -Wl,--start-group <LIBLIST
> -Wl,--end-group', |
| 86 'Release': '<TAB>$(<LINK>) -o $@ $^ <MACH> $(<TC>_LDFLAGS) $(<PROJ>_LDFLAGS) -
L$(NACL_SDK_ROOT)/lib/$(OSNAME)_<ARCH>_<tc>/<config> -Wl,--start-group <LIBLIST
> -Wl,--end-group' | 86 'Release': '<TAB>$(<LINK>) -o $@ $^ <MACH> $(<TC>_LDFLAGS) $(<PROJ>_LDFLAGS) -
L$(NACL_SDK_ROOT)/lib/$(OSNAME)_<ARCH>_<tc>/<config> -Wl,--start-group <LIBLIST
> -Wl,--end-group' |
| 87 } | 87 } |
| (...skipping 17 matching lines...) Expand all Loading... |
| 105 | 105 |
| 106 <tc>/<config>/<proj>_arm.nexe : <tc>/<config>/<proj>.pexe | 106 <tc>/<config>/<proj>_arm.nexe : <tc>/<config>/<proj>.pexe |
| 107 <TAB>$(TRANSLATE) -arch arm $< -o $@""" | 107 <TAB>$(TRANSLATE) -arch arm $< -o $@""" |
| 108 | 108 |
| 109 PEXE_LINK_RULES = { | 109 PEXE_LINK_RULES = { |
| 110 '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, | 110 '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, |
| 111 'Release': '<TAB>$(<LINK>) -o $@ $^ $(<TC>_LDFLAGS) $(<PROJ>_LDFLAGS) -L$(NACL
_SDK_ROOT)/lib/$(OSNAME)_<ARCH>_<tc>/<config> <LIBLIST>\n' + PEXE_TRANSLATE_RULE
, | 111 'Release': '<TAB>$(<LINK>) -o $@ $^ $(<TC>_LDFLAGS) $(<PROJ>_LDFLAGS) -L$(NACL
_SDK_ROOT)/lib/$(OSNAME)_<ARCH>_<tc>/<config> <LIBLIST>\n' + PEXE_TRANSLATE_RULE
, |
| 112 } | 112 } |
| 113 | 113 |
| 114 WIN_LINK_RULES = { | 114 WIN_LINK_RULES = { |
| 115 'Debug': '<TAB>$(<LINK>) /DLL /OUT:$@ /PDG:$@.pdb /Zi $(<PROJ>_LDFLAGS) /DEBUG
/LIBPATH:$(NACL_SDK_ROOT)/lib/win_x86_32_host/Debug $^ <LIBLIST> $(WIN_LDFLAGS)
', | 115 'Debug': '<TAB>$(<LINK>) /DLL /OUT:$@ /PDB:$@.pdb $(<PROJ>_LDFLAGS) /DEBUG /LI
BPATH:$(NACL_SDK_ROOT)/lib/win_x86_32_host/Debug $^ <LIBLIST> $(WIN_LDFLAGS)', |
| 116 'Release': '<TAB>$(<LINK>) /DLL /OUT:$@ $(<PROJ>_LDFLAGS) /LIBPATH:$(NACL_SDK_
ROOT)/lib/win_x86_32_host/Release $^ <LIBLIST> $(WIN_LDFLAGS)' | 116 'Release': '<TAB>$(<LINK>) /DLL /OUT:$@ $(<PROJ>_LDFLAGS) /LIBPATH:$(NACL_SDK_
ROOT)/lib/win_x86_32_host/Release $^ <LIBLIST> $(WIN_LDFLAGS)' |
| 117 } | 117 } |
| 118 | 118 |
| 119 | 119 |
| 120 # | 120 # |
| 121 # Lib rules for various platforms. | 121 # Lib rules for various platforms. |
| 122 # | 122 # |
| 123 POSIX_LIB_RULES = { | 123 POSIX_LIB_RULES = { |
| 124 'Debug': | 124 'Debug': |
| 125 '<TAB>$(MKDIR) -p $(dir $@)\n' | 125 '<TAB>$(MKDIR) -p $(dir $@)\n' |
| (...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 332 rules = '\n#\n# Rules for %s toolchain\n#\n%s:\n\t$(MKDIR) %s\n' % ( | 332 rules = '\n#\n# Rules for %s toolchain\n#\n%s:\n\t$(MKDIR) %s\n' % ( |
| 333 tc, tc, tc) | 333 tc, tc, tc) |
| 334 for cfg in configs: | 334 for cfg in configs: |
| 335 rules += '%s/%s: | %s\n\t$(MKDIR) %s/%s\n' % (tc, cfg, tc, tc, cfg) | 335 rules += '%s/%s: | %s\n\t$(MKDIR) %s/%s\n' % (tc, cfg, tc, tc, cfg) |
| 336 | 336 |
| 337 rules += '\n# Include header dependency files.\n' | 337 rules += '\n# Include header dependency files.\n' |
| 338 for cfg in configs: | 338 for cfg in configs: |
| 339 rules += '-include %s/%s/*.d\n' % (tc, cfg) | 339 rules += '-include %s/%s/*.d\n' % (tc, cfg) |
| 340 return rules + '\n' | 340 return rules + '\n' |
| 341 | 341 |
| 342 def BuildCompileRule(self, EXT, src): | 342 def BuildCompileRule(self, ext, src): |
| 343 self.vars['<EXT>'] = EXT | 343 self.vars['<EXT>'] = ext |
| 344 out = '<tc>/<config>/%s_<ARCH>.o : %s $(THIS_MAKE) | <tc>/<config>\n' % ( | 344 out = '<tc>/<config>/%s_<ARCH>.o : %s $(THIS_MAKE) | <tc>/<config>\n' % ( |
| 345 os.path.splitext(src)[0], src) | 345 os.path.splitext(src)[0], src) |
| 346 out += BUILD_RULES[self.tc][EXT][self.cfg] + '\n\n' | 346 rule = BUILD_RULES[self.tc][ext][self.cfg] |
| 347 if ext == 'CXX': |
| 348 rule = rule.replace('<CC>', '<CXX>') |
| 349 out += rule + '\n\n' |
| 347 return self.Replace(out) | 350 return self.Replace(out) |
| 348 | 351 |
| 349 def BuildLinkRule(self): | 352 def BuildLinkRule(self): |
| 350 target = BUILD_RULES[self.tc]['TOOL'][self.ptype.upper()] | 353 target = BUILD_RULES[self.tc]['TOOL'][self.ptype.upper()] |
| 351 out = '' | 354 out = '' |
| 352 if self.ptype == 'lib': | 355 if self.ptype == 'lib': |
| 353 out = 'ALL_TARGETS+=%s\n' % target | 356 out = 'ALL_TARGETS+=%s\n' % target |
| 354 out += target + ' : $(<PROJ>_<TC>_<CONFIG>_<ARCH>_O)\n' | 357 out += target + ' : $(<PROJ>_<TC>_<CONFIG>_<ARCH>_O)\n' |
| 355 out += BUILD_RULES[self.tc][self.ptype.upper()][self.cfg] + '\n\n' | 358 out += BUILD_RULES[self.tc][self.ptype.upper()][self.cfg] + '\n\n' |
| 356 return self.Replace(out) | 359 return self.Replace(out) |
| (...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 485 } | 488 } |
| 486 for dll in dlls: | 489 for dll in dlls: |
| 487 replace['<proj>'] = dll | 490 replace['<proj>'] = dll |
| 488 nmf_targets.append(Replace(dll_target, replace)) | 491 nmf_targets.append(Replace(dll_target, replace)) |
| 489 replace['<proj>'] = main | 492 replace['<proj>'] = main |
| 490 nmf_targets.append(Replace(target, replace)) | 493 nmf_targets.append(Replace(target, replace)) |
| 491 | 494 |
| 492 replace['<NMF_TARGETS>'] = ' '.join(nmf_targets) | 495 replace['<NMF_TARGETS>'] = ' '.join(nmf_targets) |
| 493 rules = Replace(BUILD_RULES[tc]['NMF'], replace) | 496 rules = Replace(BUILD_RULES[tc]['NMF'], replace) |
| 494 return '\nALL_TARGETS+=%s/%s/%s.nmf' % (tc, cfg, main) + rules + '\n' | 497 return '\nALL_TARGETS+=%s/%s/%s.nmf' % (tc, cfg, main) + rules + '\n' |
| OLD | NEW |