make zlib and other makefile packages able to use emscripten

- also, bzip2 fix
This commit is contained in:
Danny McClanahan
2022-04-23 14:40:22 -04:00
parent 13362f6c86
commit 203cebb081
6 changed files with 104 additions and 7 deletions

View File

@@ -514,6 +514,12 @@ def _set_variables_for_single_module(pkg, module):
# TODO: make these build deps that can be installed if not found.
# FIXME: !!!!!
m.make = MakeExecutable('make', jobs)
m.emmake = MakeExecutable('emmake', jobs)
m.emmake.add_default_arg('make')
m.emmake.add_default_arg('AR=emar')
m.emmake.add_default_arg('RANLIB=emranlib')
m.emmake.add_default_arg('NM=emnm')
m.gmake = MakeExecutable('gmake', jobs)
m.scons = MakeExecutable('scons', jobs)
m.ninja = MakeExecutable('ninja', jobs)

View File

@@ -82,14 +82,20 @@ def build(self, spec, prefix):
as targets.
"""
with working_dir(self.build_directory):
inspect.getmodule(self).make(*self.build_targets)
if self.spec.satisfies('%emscripten'):
inspect.getmodule(self).emmake(*self.build_targets)
else:
inspect.getmodule(self).make(*self.build_targets)
def install(self, spec, prefix):
"""Calls make, passing :py:attr:`~.MakefilePackage.install_targets`
as targets.
"""
with working_dir(self.build_directory):
inspect.getmodule(self).make(*self.install_targets)
if self.spec.satisfies('%emscripten'):
inspect.getmodule(self).emmake(*self.install_targets)
else:
inspect.getmodule(self).make(*self.install_targets)
run_after('build')(PackageBase._run_default_build_time_test_callbacks)

View File

@@ -1775,7 +1775,10 @@ def _if_make_target_execute(self, target, *args, **kwargs):
"""
if self._has_make_target(target):
# Execute target
inspect.getmodule(self).make(target, *args, **kwargs)
if self.spec.satisfies('%emscripten'):
inspect.getmodule(self).emmake(target, *args, **kwargs)
else:
inspect.getmodule(self).make(target, *args, **kwargs)
def _has_ninja_target(self, target):
"""Checks to see if 'target' is a valid target in a Ninja build script.