Source code for benchbuild.projects.benchbuild.tcc
from os import path
from plumbum import local
from benchbuild import project
from benchbuild.utils import compiler, download, run, wrapping
from benchbuild.utils.cmd import make, mkdir, tar
[docs]@download.with_wget({
'0.9.26':
'http://download-mirror.savannah.gnu.org/releases/tinycc/tcc-0.9.26.tar.bz2'
})
class TCC(project.Project):
NAME = 'tcc'
DOMAIN = 'compilation'
GROUP = 'benchbuild'
VERSION = '0.9.26'
SRC_FILE = 'tcc.tar.bz2'
[docs] def compile(self):
self.download()
tar("xf", self.src_file)
unpack_dir = local.path('tcc-{0}.tar.bz2'.format(self.version))
clang = compiler.cc(self)
with local.cwd(unpack_dir):
mkdir("build")
with local.cwd("build"):
configure = local["../configure"]
run.run(configure["--cc=" + str(clang), "--with-libgcc"])
run.run(make)
[docs] def run_tests(self, runner):
unpack_dir = local.path('tcc-{0}.tar.bz2'.format(self.version))
with local.cwd(unpack_dir):
with local.cwd("build"):
wrapping.wrap("tcc", self)
inc_path = path.abspath("..")
runner(make["TCCFLAGS=-B{}".format(inc_path), "test", "-i"])