Adapt build script for changes to argument interpretation in fabricate's Builder...
[build-benchmarks.git] / fabrication.py
blob945263433da5297555ecb3a3dd3698be2e00d640
1 #!/usr/bin/python
3 import os
4 import cppcodebase
5 import random
8 def CreateLibBuildfile(lib, classes):
9 pass
12 def CreateBuildfile(libs, classes):
13 handle = file("build.py", "w")
15 handle.write("""\
16 import fabricate
18 fabricate.setup(runner='strace_runner')
20 """)
21 handle.write('libs = [\n')
22 for i in xrange(libs):
23 handle.write(' (\'lib_%d\', [\n' % (i,))
24 for j in xrange(classes):
25 handle.write(' \'class_%d\',\n' % (j,))
26 handle.write(' ]),\n')
27 handle.write(' ]\n')
29 handle.write("""
31 COMPILER = 'g++'
32 CCFLAGS = ['-g', '-Wall']
33 ARCHIVE = 'ar'
35 for (lib, klasses) in libs:
36 for klass in klasses:
37 fabricate.run(
38 COMPILER, CCFLAGS,
39 '-I.',
40 '-I%s' % (lib,),
41 '-o', '%s/%s.o' % (lib, klass,),
42 '-c', '%s/%s.cpp'% (lib, klass,),
44 fabricate.run(
45 ARCHIVE, 'cr', '%s/%s.a' % (lib, lib),
46 ['%s/%s.o' % (lib, klass,) for klass in klasses],
49 """)
51 def CreateCodebase(libs, classes, internal_includes, external_includes):
52 cppcodebase.SetDir('fabricate')
53 cppcodebase.CreateSetOfLibraries(libs, classes, internal_includes, external_includes, CreateLibBuildfile)
54 CreateBuildfile(libs, classes)
55 os.chdir('..')