From 8217d75ca159db470846e28e9215fe08a61bc7f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20H=C3=A4dicke?= Date: Fri, 6 Oct 2017 23:06:28 +0200 Subject: [PATCH] build/python: refactoring: introduce new class MakeProject This introduces a the new class MakeProject, which is used as a base class for all Makefile based thirdparty libraries. --- python/build/autotools.py | 19 +++++++++---------- python/build/makeproject.py | 28 ++++++++++++++++++++++++++++ 2 files changed, 37 insertions(+), 10 deletions(-) create mode 100644 python/build/makeproject.py diff --git a/python/build/autotools.py b/python/build/autotools.py index c3e179f85..56af64cce 100644 --- a/python/build/autotools.py +++ b/python/build/autotools.py @@ -1,24 +1,22 @@ import os.path, subprocess, sys -from build.project import Project +from build.makeproject import MakeProject -class AutotoolsProject(Project): +class AutotoolsProject(MakeProject): def __init__(self, url, md5, installed, configure_args=[], autogen=False, cppflags='', ldflags='', libs='', - install_target='install', **kwargs): - Project.__init__(self, url, md5, installed, **kwargs) + MakeProject.__init__(self, url, md5, installed, **kwargs) self.configure_args = configure_args self.autogen = autogen self.cppflags = cppflags self.ldflags = ldflags self.libs = libs - self.install_target = install_target - def build(self, toolchain): + def configure(self, toolchain): src = self.unpack(toolchain) if self.autogen: if sys.platform == 'darwin': @@ -49,7 +47,8 @@ class AutotoolsProject(Project): ] + self.configure_args subprocess.check_call(configure, cwd=build, env=toolchain.env) - subprocess.check_call(['/usr/bin/make', '--quiet', '-j12'], - cwd=build, env=toolchain.env) - subprocess.check_call(['/usr/bin/make', '--quiet', self.install_target], - cwd=build, env=toolchain.env) + return build + + def build(self, toolchain): + build = self.configure(toolchain) + MakeProject.build(self, toolchain, build) diff --git a/python/build/makeproject.py b/python/build/makeproject.py new file mode 100644 index 000000000..fe676bfa4 --- /dev/null +++ b/python/build/makeproject.py @@ -0,0 +1,28 @@ +import subprocess + +from build.project import Project + +class MakeProject(Project): + def __init__(self, url, md5, installed, + install_target='install', + **kwargs): + Project.__init__(self, url, md5, installed, **kwargs) + self.install_target = install_target + + def get_simultaneous_jobs(self): + return 12 + + def get_make_args(self, toolchain): + return ['--quiet', '-j' + str(self.get_simultaneous_jobs())] + + def get_make_install_args(self, toolchain): + return ['--quiet', self.install_target] + + def make(self, toolchain, wd, args): + subprocess.check_call(['/usr/bin/make'] + args, + cwd=wd, env=toolchain.env) + + def build(self, toolchain, wd, install=True): + self.make(toolchain, wd, self.get_make_args(toolchain)) + if install: + self.make(toolchain, wd, self.get_make_install_args(toolchain))