source: rubycfg_asp/trunk/asp_dcre/arch/ccrx/common.py@ 313

Last change on this file since 313 was 313, checked in by coas-nagasima, 7 years ago

ソースを追加

File size: 7.0 KB
Line 
1#
2# set cfg and cfg kernel param
3#
4CFG = SRCDIR + "cfg/cfg.rb"
5CFG_KERNEL = "asp"
6
7#
8# files for each project
9#
10asp_files = []
11asp_configuration_files = ['kernel_cfg_asm.src','kernel_cfg.c']
12asp_syssvc_files = ['syssvc/banner.c', 'syssvc/logtask.c', 'syssvc/serial.c', 'syssvc/syslog.c']
13asp_library_files = ['library/histogram.c', 'library/log_output.c', 'library/strerror.c', 'library/t_perror.c', 'library/test_lib.c', 'library/vasyslog.c']
14
15kernel_kernel_files = ['kernel/alarm.c','kernel/cyclic.c','kernel/dataqueue.c','kernel/eventflag.c','kernel/exception.c','kernel/interrupt.c','kernel/mailbox.c','kernel/mempfix.c','kernel/pridataq.c','kernel/semaphore.c','kernel/startup.c','kernel/sys_manage.c','kernel/task.c','kernel/task_except.c','kernel/task_manage.c','kernel/task_refer.c','kernel/task_sync.c','kernel/time_event.c','kernel/time_manage.c','kernel/wait.c']
16
17cfg_files = []
18cfg_configuration_files = ['cfg1_out.c']
19
20#
21# pre/postbuiled file
22#
23cfg_pre_python_files = ['arch/ccrx/pre_cfg.py']
24cfg_post_python_files = ['arch/ccrx/post_cfg.py']
25asp_post_python_files = ['arch/ccrx/post_asp.py']
26
27#
28# cubesuite+ depend files
29#
30asp_rel_includes = [".","cfg"]
31cfg_rel_includes = [".."]
32kernel_rel_includes = ["..\cfg"]
33
34#
35# library
36#
37asp_lib_files = ['kernel\\%BuildModeName%\\kernel']
38
39#
40# ccrx define
41#
42cfg_define = []
43kernel_define = ['ALLFUNC']
44
45if USE_SERIALDEBUG:
46 cfg_define = cfg_define + ['USE_SERIALDEBUG']
47 kernel_define = kernel_define + ['USE_SERIALDEBUG']
48
49#
50# Set cfg path and srdir path
51#
52cfg = "ruby -Eutf-8 " + proj_rel_dir + CFG
53srcdir = proj_rel_dir + SRCDIR
54
55#
56# soucre target file
57#
58execfile(srcdir + "target/" + TARGET + "/target.py")
59
60#
61# merge files
62#
63asp_files.append(statup_file)
64asp_files = asp_files + asp_syssvc_files + asp_library_files
65cfg_files = cfg_files + cfg_files
66kernel_files = kernel_kernel_files + kernel_target_files + kernel_arch_files
67
68#
69# Set include path and cfg1_def_table
70#
71INCLUDES = USER_INCLUDE + ["", "arch", "include", "kernel", "arch", "syssvc", "library"] + INCLUDES
72CFG1_DEF_TABLES = ["kernel/kernel_sym.def"] + CFG1_DEF_TABLES
73
74API_TABLE = "kernel/kernel_api.def"
75CFG_KERNEL_TRB = "target/" + TARGET + "/target_kernel.trb"
76CFG_OFFSET_TRB = "target/" + TARGET + "/target_offset.trb"
77CFG_CHECK_TRB = "target/" + TARGET + "/target_check.trb"
78
79#
80# make cfg include path
81#
82cfg_includes = ""
83for include in INCLUDES:
84 cfg_includes = cfg_includes + " -I" + srcdir + include
85
86#
87# make cfg1_def_table
88#
89cfg_cfg1_def_tables = ""
90for cfg1_def_table in CFG1_DEF_TABLES:
91 cfg_cfg1_def_tables = cfg_cfg1_def_tables + " --symval-table " + srcdir + cfg1_def_table
92
93#
94# Set api_table
95#
96cfg_api_table = srcdir + API_TABLE
97
98#
99# Set tf
100#
101cfg_kernel_trb = srcdir + CFG_KERNEL_TRB
102
103#
104# Set offset tf
105#
106cfg_offset_trb = srcdir + CFG_OFFSET_TRB
107
108#
109# Set check tf
110#
111cfg_check_trb = srcdir + CFG_CHECK_TRB
112
113#
114#
115# Functions
116#
117#
118import re
119
120#
121# Set Ccrx Includes
122#
123def SetCcrxIncludes(inputstr, include_list, rel_include_list, relpath):
124 ccrx_includes = ""
125 for include in rel_include_list:
126 include_list.append(relpath + include)
127 for include in include_list:
128 ccrx_includes = ccrx_includes + include + "\n"
129 ccrx_includes = ccrx_includes.replace('/', r'\\')
130 pattern_pre = r'(\s\<COptionInclude-0\>)[\s\S]+?(\</COptionInclude-0\>)'
131 pattern_post = r'\1' + ccrx_includes + r'\2'
132 inputstr = re.sub (pattern_pre, pattern_post, inputstr)
133 return inputstr
134
135#
136# ChangeSetItemXml
137#
138def ChangeItemXml(inputstr, xml_pattern, newitemstr):
139 pattern_pre = r'<' + xml_pattern + r'>[\s\S]+?</' + xml_pattern + '>'
140 pattern_post = '<' + xml_pattern + '>' + newitemstr + '</' + xml_pattern + '>'
141 inputstr = re.sub (pattern_pre, pattern_post, inputstr)
142 return inputstr
143
144#
145# NewSetItemXml
146#
147def NewSetItemXml(inputstr, xml_pattern, newitemstr):
148 pattern_pre = r'\<' + xml_pattern + r' /\>'
149 pattern_post = r'<' + xml_pattern + r'>' + newitemstr + '</' + xml_pattern + r'>'
150 inputstr = re.sub (pattern_pre, pattern_post, inputstr)
151 return inputstr
152
153#
154# NewSetItemXmlOnce
155#
156def NewSetItemXmlOnce(inputstr, xml_pattern, newitemstr):
157 pattern_pre = r'\<' + xml_pattern + r' /\>'
158 pattern_post = r'<' + xml_pattern + r'>' + newitemstr + '</' + xml_pattern + r'>'
159 inputstr = re.sub (pattern_pre, pattern_post, inputstr, 1)
160 return inputstr
161
162#
163# New set Ccrx Include
164#
165def NewSetCcrxIncludes(inputstr, include_list, rel_include_list, relpath):
166 ccrx_includes = ""
167 for include in rel_include_list:
168 include_list.append(relpath + include)
169 for include in include_list:
170 ccrx_includes = ccrx_includes + include + "\n"
171 ccrx_includes = ccrx_includes.replace('/', r'\\')
172 return NewSetItemXml(inputstr, 'COptionInclude-0', ccrx_includes)
173
174#
175# New set library files
176#
177def NewSetLibFiles(inputstr, file_list):
178 lib_files = ""
179 for file in file_list:
180 lib_files = lib_files + file + "\n"
181 lib_files = lib_files.replace('/', r'\\')
182 return NewSetItemXml(inputstr, 'LinkOptionLibrary-0', lib_files)
183
184#
185# New set prebuild
186#
187def NewSetPrebuild(inputstr, rel_command_list, relpath):
188 command_str = ''
189 for command in rel_command_list:
190 command_str = command_str + relpath + command
191 command_str = r'#!python\ncommon.Source("' + command_str + r'")\n'
192 return NewSetItemXml(inputstr, 'PreBuildCommands-0', command_str)
193
194
195#
196# New set postbuild
197#
198def NewSetPostbuild(inputstr, rel_command_list, relpath):
199 command_str = ''
200 for command in rel_command_list:
201 command_str = command_str + relpath + command
202 command_str = r'#!python\ncommon.Source("' + command_str + r'")\n'
203 return NewSetItemXml(inputstr, 'PostBuildCommands-0', command_str)
204
205
206#
207# New set Define
208#
209def NewSetDefine(inputstr, define_list):
210 define_str = ''
211 for define in define_list:
212 define_str = define_str + define + '\n'
213 return NewSetItemXml(inputstr, 'COptionDefine-0', define_str)
214
215#
216# New set additional options
217#
218def NewSetAddOpt(inputstr, option_list):
219 option_str = ''
220 for option in option_list:
221 option_str = option_str + option + ' '
222 return NewSetItemXmlOnce(inputstr, 'OtherAdditionalOptions-0', option_str)
223
224
225#
226# Set target file relative path
227#
228def SetTargetFileRelativePath(inputstr, file_list, relpath):
229 relpath_win = re.sub(r'/',r'\\\\', relpath)
230 for file_path in file_list:
231 file_path = re.sub(r'/',r'\\\\',file_path)
232 pattern_pre = r'(\s\<RelativePath\>).+?' + file_path + r'(\</RelativePath\>)'
233 pattern_post = r'\1' + relpath_win + file_path + r'\2'
234 inputstr = re.sub (pattern_pre, pattern_post, inputstr)
235 return inputstr
236
237
238#
239# Set python file relative path
240#
241def SetPythonFileRelativePath(inputstr, file_list, relpath):
242 for file_path in file_list:
243 pattern_pre = r'".+?' + file_path + r'"'
244 pattern_post = r'"' + relpath + file_path + r'"'
245 inputstr = re.sub (pattern_pre, pattern_post, inputstr)
246 return inputstr
247
248def ReadFile(filename):
249 f = open(filename, "r")
250 str = f.read()
251 f.close()
252 return str
253
254def WriteFile(filename, str):
255 f = open(filename, "w")
256 f.write(str)
257 f.close()
258
259
260
Note: See TracBrowser for help on using the repository browser.