8380c3be02
Fixes various static library linker failures ("bad extended name entry at header"), because the wrong "ranlib" was used.
47 lines
1.8 KiB
Python
47 lines
1.8 KiB
Python
import os.path, subprocess
|
|
|
|
from build.project import Project
|
|
|
|
class AutotoolsProject(Project):
|
|
def __init__(self, url, md5, installed, configure_args=[],
|
|
autogen=False,
|
|
cppflags='',
|
|
**kwargs):
|
|
Project.__init__(self, url, md5, installed, **kwargs)
|
|
self.configure_args = configure_args
|
|
self.autogen = autogen
|
|
self.cppflags = cppflags
|
|
|
|
def build(self, toolchain):
|
|
src = self.unpack(toolchain)
|
|
if self.autogen:
|
|
subprocess.check_call(['libtoolize', '--force'], cwd=src)
|
|
subprocess.check_call(['aclocal'], cwd=src)
|
|
subprocess.check_call(['automake', '--add-missing', '--force-missing', '--foreign'], cwd=src)
|
|
subprocess.check_call(['autoconf'], cwd=src)
|
|
|
|
build = self.make_build_path(toolchain)
|
|
|
|
configure = [
|
|
os.path.join(src, 'configure'),
|
|
'CC=' + toolchain.cc,
|
|
'CXX=' + toolchain.cxx,
|
|
'CFLAGS=' + toolchain.cflags,
|
|
'CXXFLAGS=' + toolchain.cxxflags,
|
|
'CPPFLAGS=' + toolchain.cppflags + ' ' + self.cppflags,
|
|
'LDFLAGS=' + toolchain.ldflags,
|
|
'LIBS=' + toolchain.libs,
|
|
'AR=' + toolchain.ar,
|
|
'RANLIB=' + toolchain.ranlib,
|
|
'STRIP=' + toolchain.strip,
|
|
'--host=' + toolchain.arch,
|
|
'--prefix=' + toolchain.install_prefix,
|
|
'--enable-silent-rules',
|
|
] + 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', 'install'],
|
|
cwd=build, env=toolchain.env)
|