19 from string
import Template
28 includeDir =
'../lib/include/'
31 commonDir =
'../lib/common/'
51 def searchAndReplace(sourceFile, destFileName, mapping, openMode='wb'):
52 outFile =
open(destFileName, openMode)
53 template = Template(
open(sourceFile).
read())
54 outFile.write(template.substitute(mapping))
65 def genFromTemplate(templateFileName, destFileName, iters):
67 for i
in range(1, iters + 1):
68 searchAndReplace(templateFileName, destFileName,
69 {
'x' : str(i)}, openMode)
79 def c_template_builder(target, source, env):
82 f=os.path.split(str(target[0]))[-1]
83 g=os.path.splitext(f)[0]
84 if (g ==
"pic24_uart"):
85 genFromTemplate(s, t, 4)
86 if (g ==
"pic24_i2c"):
87 genFromTemplate(s, t, 2)
88 if (g ==
"pic24_ecan"):
89 genFromTemplate(s, t, 2)
90 if (g ==
"pic24_spi"):
91 genFromTemplate(s, t, 2)
101 def h_template_builder(target, source, env):
104 f=os.path.split(str(target[0]))[-1]
105 g=os.path.splitext(f)[0]
106 if ( g ==
"pic24_uart"):
107 genFromTemplate(s, t, 4)
108 if ( g ==
"pic24_i2c"):
109 genFromTemplate(s, t, 2)
110 if ( g ==
"pic24_ecan"):
111 genFromTemplate(s, t, 2)
115 cbldr = Builder(action = c_template_builder, suffix=
'.c', src_suffix=
'.c-template')
116 env.Append(BUILDERS = {
'CTemplate' : cbldr})
119 hbldr = Builder(action = h_template_builder, suffix=
'.h', src_suffix=
'.h-template')
120 env.Append(BUILDERS = {
'HTemplate' : hbldr})
130 env.CTemplate(
'../lib/common/pic24_uart',
'pic24_uart')
131 env.HTemplate(
'../lib/include/pic24_uart',
'pic24_uart')
132 env.CTemplate(
'../lib/common/pic24_i2c',
'pic24_i2c')
133 env.HTemplate(
'../lib/include/pic24_i2c',
'pic24_i2c')
134 env.CTemplate(
'../lib/common/pic24_spi',
'pic24_spi')
135 env.CTemplate(
'../lib/common/pic24_ecan',
'pic24_ecan')
136 env.HTemplate(
'../lib/include/pic24_ecan',
'pic24_ecan')