summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNirbheek Chauhan <nirbheek@centricular.com>2020-02-21 07:08:06 +0530
committerNirbheek Chauhan <nirbheek@centricular.com>2020-02-25 05:29:18 +0530
commitfbaf3bc4ae8c6253f560d3da2ab4dee746cfcb09 (patch)
tree07005a072389b399b4031b2a441a3b76f3fbb5ef
parent151e8c47edf2df402bd46eb66f50ff690d54905c (diff)
cerbero/build: Workaround MSYS trying to be too smart
Finally figured out the actual issue that I was trying to solve in f38df32d8 and 78f06dd405. Paths like `c:/foobar` (lowercase drive letter) are considered to be a POSIX path list, so `c:/foobar/` becomes `c;C:\foobar`: http://mingw.org/wiki/Posix_path_conversion This will happen anytime we try to pass a path as a command-line argument. We used to work-around this by using `to_unixpath()`, but that's just sinking deeper into dependence on broken shell behaviour. This happens now because we're passing includes in CFLAGS, CXXFLAGS, CPPFLAGS, etc. So let's just bypass the shell entirely by constructing a list. As a side-effect, this is another step towards being able to run Cerbero from a directory with spaces in it. For now, we'll convert `config_sh` to a list when not using an Autotools configure. Luckily, we don't need to pass any paths as arguments to it anyway. When running other stages, we now always use a list instead of a string. Hopefully the fallout is small and obvious for people using forks of Cerbero.
-rw-r--r--cerbero/build/build.py80
-rw-r--r--recipes-toolchain/mingw-w64-crt.recipe2
-rw-r--r--recipes-toolchain/mingw-w64-headers.recipe2
-rw-r--r--recipes-toolchain/winpthreads.recipe14
-rw-r--r--recipes/ffmpeg.recipe2
-rw-r--r--recipes/librtmp.recipe17
-rw-r--r--recipes/libsrtp.recipe2
-rw-r--r--recipes/libvpx.recipe2
-rw-r--r--recipes/openh264.recipe51
-rw-r--r--recipes/openssl.recipe29
10 files changed, 115 insertions, 86 deletions
diff --git a/cerbero/build/build.py b/cerbero/build/build.py
index 1381ac34..89728b9c 100644
--- a/cerbero/build/build.py
+++ b/cerbero/build/build.py
@@ -364,13 +364,15 @@ class MakefilesBase (Build, ModifyEnvBase):
config_sh = ''
configure_tpl = ''
configure_options = ''
- make = 'make V=1'
- make_install = 'make install'
+ make = None
+ make_install = None
make_check = None
- make_clean = 'make clean'
+ make_clean = None
allow_parallel_build = True
srcdir = '.'
requires_non_src_build = False
+ # recipes often use shell constructs
+ config_sh_needs_shell = True
def __init__(self):
Build.__init__(self)
@@ -384,9 +386,14 @@ class MakefilesBase (Build, ModifyEnvBase):
self.make_dir = os.path.join (self.config_src_dir, "cerbero-build-dir")
else:
self.make_dir = self.config_src_dir
+
+ self.make = self.make or ['make', 'V=1']
+ self.make_install = self.make_install or ['make', 'install']
+ self.make_clean = self.make_clean or ['make', 'clean']
+
if self.config.allow_parallel_build and self.allow_parallel_build \
and self.config.num_of_cpus > 1:
- self.make += ' -j%d' % self.config.num_of_cpus
+ self.make += ['-j%d' % self.config.num_of_cpus]
# Make sure user's env doesn't mess up with our build.
self.set_env('MAKEFLAGS', when='now')
@@ -423,16 +430,31 @@ class MakefilesBase (Build, ModifyEnvBase):
if self.using_msvc():
self.unset_toolchain_env()
- configure_cmd = self.configure_tpl % {
+ substs = {
'config-sh': self.config_sh,
- 'prefix': to_unixpath(self.config.prefix),
- 'libdir': to_unixpath(self.config.libdir),
+ 'prefix': self.config.prefix,
+ 'libdir': self.config.libdir,
'host': self.config.host,
'target': self.config.target,
'build': self.config.build,
'options': self.configure_options,
- 'build_dir': to_unixpath(self.build_dir),
- 'make_dir': to_unixpath(self.make_dir)}
+ 'build_dir': self.build_dir,
+ 'make_dir': self.make_dir,
+ }
+
+ # Construct a command list when possible
+ if not self.config_sh_needs_shell:
+ configure_cmd = []
+ for arg in self.configure_tpl.split():
+ if arg == '%(options)s':
+ options = self.configure_options
+ if isinstance(options, str):
+ options = options.split()
+ configure_cmd += options
+ else:
+ configure_cmd.append(arg % substs)
+ else:
+ configure_cmd = self.configure_tpl % substs
self.maybe_add_system_libs(step='configure')
@@ -486,13 +508,16 @@ class Autotools (MakefilesBase):
config_sh = './configure'
configure_tpl = "%(config-sh)s --prefix %(prefix)s "\
"--libdir %(libdir)s"
- make_check = 'make check'
add_host_build_target = True
can_use_configure_cache = True
supports_cache_variables = True
disable_introspection = False
override_libtool = True
+ def __init__(self):
+ MakefilesBase.__init__(self)
+ self.make_check = self.make_check or ['make', 'check']
+
@async_modify_environment
async def configure(self):
# Build with PIC for static linking
@@ -570,6 +595,7 @@ class CMake (MakefilesBase):
Build handler for cmake projects
'''
+ config_sh_needs_shell = False
config_sh = 'cmake'
configure_tpl = '%(config-sh)s -DCMAKE_INSTALL_PREFIX=%(prefix)s ' \
'-H%(build_dir)s ' \
@@ -599,24 +625,29 @@ class CMake (MakefilesBase):
cc = cc.split(' ')[0]
cxx = cxx.split(' ')[0]
+ if self.configure_options:
+ self.configure_options = self.configure_options.split()
+
if self.config.target_platform == Platform.WINDOWS:
- self.configure_options += ' -DCMAKE_SYSTEM_NAME=Windows '
+ self.configure_options += ['-DCMAKE_SYSTEM_NAME=Windows']
elif self.config.target_platform == Platform.ANDROID:
- self.configure_options += ' -DCMAKE_SYSTEM_NAME=Linux '
+ self.configure_options += ['-DCMAKE_SYSTEM_NAME=Linux']
if self.config.platform == Platform.WINDOWS:
- self.configure_options += ' -G"Unix Makefiles"'
+ self.configure_options += ['-G', 'Unix Makefiles']
# FIXME: Maybe export the sysroot properly instead of doing regexp magic
if self.config.target_platform in [Platform.DARWIN, Platform.IOS]:
r = re.compile(r".*-isysroot ([^ ]+) .*")
sysroot = r.match(cflags).group(1)
- self.configure_options += ' -DCMAKE_OSX_SYSROOT=%s' % sysroot
+ self.configure_options += ['-DCMAKE_OSX_SYSROOT=' + sysroot]
- self.configure_options += ' -DCMAKE_C_COMPILER=%s ' % cc
- self.configure_options += ' -DCMAKE_CXX_COMPILER=%s ' % cxx
- self.configure_options += ' -DCMAKE_C_FLAGS="%s"' % cflags
- self.configure_options += ' -DCMAKE_CXX_FLAGS="%s"' % cxxflags
- self.configure_options += ' -DLIB_SUFFIX=%s ' % self.config.lib_suffix
+ self.configure_options += [
+ '-DCMAKE_C_COMPILER=' + cc,
+ '-DCMAKE_CXX_COMPILER=' + cxx,
+ '-DCMAKE_C_FLAGS=' + cflags,
+ '-DCMAKE_CXX_FLAGS=' + cxxflags,
+ '-DLIB_SUFFIX=' + self.config.lib_suffix,
+ ]
cmake_cache = os.path.join(self.make_dir, 'CMakeCache.txt')
cmake_files = os.path.join(self.make_dir, 'CMakeFiles')
@@ -624,7 +655,7 @@ class CMake (MakefilesBase):
os.remove(cmake_cache)
if os.path.exists(cmake_files):
shutil.rmtree(cmake_files)
- self.make += ' VERBOSE=1 '
+ self.make += ['VERBOSE=1']
await MakefilesBase.configure(self)
@@ -662,6 +693,7 @@ class Meson (Build, ModifyEnvBase) :
make_install = None
make_check = None
make_clean = None
+
meson_sh = None
meson_options = None
meson_cross_properties = None
@@ -690,13 +722,13 @@ class Meson (Build, ModifyEnvBase) :
# Find ninja
if not self.make:
- self.make = 'ninja -v -d keeprsp'
+ self.make = ['ninja', '-v', '-d', 'keeprsp']
if not self.make_install:
- self.make_install = self.make + ' install'
+ self.make_install = self.make + ['install']
if not self.make_check:
- self.make_check = self.make + ' test'
+ self.make_check = self.make + ['test']
if not self.make_clean:
- self.make_clean = self.make + ' clean'
+ self.make_clean = self.make + ['clean']
@staticmethod
def _get_option_value(opt_type, value):
diff --git a/recipes-toolchain/mingw-w64-crt.recipe b/recipes-toolchain/mingw-w64-crt.recipe
index 93b04e4d..31db8013 100644
--- a/recipes-toolchain/mingw-w64-crt.recipe
+++ b/recipes-toolchain/mingw-w64-crt.recipe
@@ -22,7 +22,7 @@ class Recipe(recipe.Recipe):
sysroot = os.path.join(self.config.prefix, self.host, 'sysroot')
self.configure_options += ' --host=%s' % self.host
self.configure_options += ' --with-sysroot=%s ' % sysroot
- self.make_install = 'make install DESTDIR=%s' % sysroot
+ self.make_install = ['make', 'install', 'DESTDIR=' + sysroot]
self.build_dir = os.path.join(self.config.sources,
'mingw-w64-%s' % self.version)
self.make_dir = os.path.join(self.build_dir, 'mingw-w64-crt')
diff --git a/recipes-toolchain/mingw-w64-headers.recipe b/recipes-toolchain/mingw-w64-headers.recipe
index f32b1f47..c3906853 100644
--- a/recipes-toolchain/mingw-w64-headers.recipe
+++ b/recipes-toolchain/mingw-w64-headers.recipe
@@ -16,7 +16,7 @@ class Recipe(recipe.Recipe):
self._sysroot = os.path.join(self.config.prefix, self.host, 'sysroot')
self.configure_options += ' --host=%s' % self.host
self.configure_options += ' --with-sysroot=%s ' % self._sysroot
- self.make_install = 'make install DESTDIR=%s' % self._sysroot
+ self.make_install = ['make', 'install', 'DESTDIR=' + self._sysroot]
self.build_dir = os.path.join(self.config.sources,
'mingw-w64-%s' % self.version)
self.make_dir = os.path.join(self.build_dir, 'mingw-w64-headers')
diff --git a/recipes-toolchain/winpthreads.recipe b/recipes-toolchain/winpthreads.recipe
index 3610bc80..5ea58777 100644
--- a/recipes-toolchain/winpthreads.recipe
+++ b/recipes-toolchain/winpthreads.recipe
@@ -39,7 +39,7 @@ class Recipe(recipe.Recipe):
self.host = 'x86_64-w64-mingw32'
self.sysroot = os.path.join(self.config.prefix, self.host, 'sysroot')
self.configure_options += ' --with-sysroot=%s ' % self.sysroot
- self.make_install = 'make install DESTDIR=%s' % self.sysroot
+ self.make_install = ['make', 'install', 'DESTDIR=' + self.sysroot]
self.build_dir = os.path.join(self.config.sources,
'mingw-w64-%s' % self.version)
self.make_dir = os.path.join(self.config.sources,
@@ -62,7 +62,7 @@ class Recipe(recipe.Recipe):
"RCFLAGS='-F pe-i386' DLLTOOLFLAGS='-m i386'"
host = 'i386-w64-mingw32'
libdir = "/usr/%s/lib32" % self.host
- shell.call('%s ../configure --bindir=%s --libdir=%s --prefix=/usr/%s --host=%s %s' %\
+ shell.new_call('%s ../configure --bindir=%s --libdir=%s --prefix=/usr/%s --host=%s %s' %\
(flags, libdir, libdir, host, host, self.configure_options),
self.build_dir_32)
@@ -74,13 +74,13 @@ class Recipe(recipe.Recipe):
"LD=x86_64-w64-mingw32-ld LDFLAGS=' -m64' CFLAGS=' -m64' CXXFLAGS=' -m64' "
host = 'x86_64-w64-mingw32'
libdir = "/usr/%s/lib" % self.host
- shell.call('%s ../configure --bindir=%s --libdir=%s --prefix=/usr/%s --host=%s %s' %\
+ shell.new_call('%s ../configure --bindir=%s --libdir=%s --prefix=/usr/%s --host=%s %s' %\
(flags, libdir, libdir, host, host, self.configure_options),
self.build_dir_64)
def compile(self):
- shell.call(self.make, self.build_dir_32)
- shell.call(self.make, self.build_dir_64)
+ shell.new_call(self.make, self.build_dir_32)
+ shell.new_call(self.make, self.build_dir_64)
@modify_environment
def install(self):
@@ -88,11 +88,11 @@ class Recipe(recipe.Recipe):
(self.sysroot, self.host)
libdir = "%s/usr/%s/lib32/" % (self.sysroot, self.host)
dest_winpthread_dll = os.path.join(libdir, "libwinpthread-1.dll")
- shell.call(self.make_install, self.build_dir_32)
+ shell.new_call(self.make_install, self.build_dir_32)
if os.path.exists(dest_winpthread_dll):
os.remove(dest_winpthread_dll)
shutil.move(src_winpthread_dll, dest_winpthread_dll)
- shell.call(self.make_install, self.build_dir_64)
+ shell.new_call(self.make_install, self.build_dir_64)
libdir = "%s/usr/%s/lib/" % (self.sysroot, self.host)
dest_winpthread_dll = os.path.join(libdir, "libwinpthread-1.dll")
if os.path.exists(dest_winpthread_dll):
diff --git a/recipes/ffmpeg.recipe b/recipes/ffmpeg.recipe
index e648e40a..6231e41d 100644
--- a/recipes/ffmpeg.recipe
+++ b/recipes/ffmpeg.recipe
@@ -96,7 +96,7 @@ class Recipe(recipe.Recipe):
# On Windows, make fails if V=1 is passed with:
# `couldn't commit memory for cygwin heap, Win32 error 0`
if self.config.platform == Platform.WINDOWS:
- self.make = 'make '
+ self.make = ['make']
async def configure(self):
await super(recipe.Recipe, self).configure()
diff --git a/recipes/librtmp.recipe b/recipes/librtmp.recipe
index 40519f05..c314e6f3 100644
--- a/recipes/librtmp.recipe
+++ b/recipes/librtmp.recipe
@@ -1,5 +1,4 @@
# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python
-import shlex
from cerbero.tools.libtool import LibtoolLibrary
@@ -28,14 +27,14 @@ class Recipe(recipe.Recipe):
if self.config.target_platform in [Platform.LINUX, Platform.ANDROID]:
system = 'posix'
# LDFLAGS are passed via XLDFLAGS, and are needed for at least Android
- cc = shlex.quote(self.get_env('CC'))
- ld = shlex.quote(self.get_env('LD'))
- prefix = shlex.quote(self.config.prefix)
- cflags = shlex.quote(self.get_env('CFLAGS'))
- ldflags = shlex.quote(self.get_env('LDFLAGS'))
- self.make += ' SYS={} prefix={} CRYPTO=GNUTLS XCFLAGS={} XLDFLAGS={} CC={} LD={}' \
- ''.format(system, prefix, cflags, ldflags, cc, ld)
- self.make_install = self.make + ' install'
+ cc = self.get_env('CC')
+ ld = self.get_env('LD')
+ prefix = self.config.prefix
+ cflags = self.get_env('CFLAGS')
+ ldflags = self.get_env('LDFLAGS')
+ self.make += ['SYS=' + system, 'prefix=' + prefix, 'CRYPTO=GNUTLS', 'XCFLAGS=' + cflags,
+ 'XLDFLAGS=' + ldflags, 'CC=' + cc, 'LD=' + ld]
+ self.make_install = self.make + ['install']
def post_install(self):
soversion = 1
diff --git a/recipes/libsrtp.recipe b/recipes/libsrtp.recipe
index 540425f4..45b9be33 100644
--- a/recipes/libsrtp.recipe
+++ b/recipes/libsrtp.recipe
@@ -8,6 +8,7 @@ class Recipe(recipe.Recipe):
name = 'libsrtp'
version = '2.2.0'
stype = SourceType.TARBALL
+ make = ['make', 'all', 'shared_library']
url = 'https://github.com/cisco/%(name)s/archive/v%(version)s.tar.gz'
tarball_checksum = '44fd7497bce78767e96b54a11bca520adb2ad32effd515f04bce602b60a1a50b'
licenses = [{License.BSD_like: ['LICENSE']}]
@@ -19,7 +20,6 @@ class Recipe(recipe.Recipe):
def prepare(self):
# Don't accidentially build with pcap support
self.set_env('ac_cv_lib_pcap_pcap_create', 'no')
- self.make += ' all shared_library'
async def install(self):
await super(Recipe, self).install()
diff --git a/recipes/libvpx.recipe b/recipes/libvpx.recipe
index ca5be889..60023ce7 100644
--- a/recipes/libvpx.recipe
+++ b/recipes/libvpx.recipe
@@ -22,7 +22,7 @@ class Recipe(recipe.Recipe):
add_host_build_target = False
supports_cache_variables = False
can_use_configure_cache = False
- make = 'make HAVE_GNU_STRIP=no'
+ make = ['make', 'HAVE_GNU_STRIP=no']
# The shell-based build system magically supports Visual Studio with the
# power of awesome hacks
can_msvc = True
diff --git a/recipes/openh264.recipe b/recipes/openh264.recipe
index d3ea9241..10e0c8db 100644
--- a/recipes/openh264.recipe
+++ b/recipes/openh264.recipe
@@ -19,57 +19,56 @@ class Recipe(recipe.Recipe):
def prepare(self):
make = self.make
if self.config.target_platform == Platform.IOS:
- make += ' OS=ios '
+ make += ['OS=ios']
if self.config.target_arch == Architecture.X86:
- make += ' ARCH=i386'
+ make += ['ARCH=i386']
elif self.config.target_arch == Architecture.X86_64:
- make += ' ARCH=x86_64'
+ make += ['ARCH=x86_64']
elif self.config.target_arch == Architecture.ARMv7:
- make += ' ARCH=armv7'
+ make += ['ARCH=armv7']
elif self.config.target_arch == Architecture.ARMv7S:
- make += ' ARCH=armv7s'
+ make += ['ARCH=armv7s']
elif self.config.target_arch == Architecture.ARM:
- make += ' ARCH=arm APP_ABI=armeabi'
+ make += ['ARCH=arm', 'APP_ABI=armeabi']
elif self.config.target_arch == Architecture.ARM64:
- make += ' ARCH=arm64'
+ make += ['ARCH=arm64']
elif self.config.target_platform == Platform.DARWIN:
- make += ' OS=darwin '
+ make += ['OS=darwin']
if self.config.target_arch == Architecture.X86:
- make += ' ARCH=x86'
+ make += ['ARCH=x86']
elif self.config.target_arch == Architecture.X86_64:
- make += ' ARCH=x86_64'
+ make += ['ARCH=x86_64']
elif self.config.target_platform == Platform.ANDROID:
v = DistroVersion.get_android_api_version(self.config.target_distro_version)
- make += ' OS=android TARGET=android-' + str(v) + ' NDKLEVEL=' + str(v)
- make += ' NDKROOT=' + self.config.toolchain_prefix
+ make += ['OS=android', 'TARGET=android-' + str(v), 'NDKLEVEL=' + str(v)]
+ make += ['NDKROOT=' + self.config.toolchain_prefix]
if self.config.target_arch == Architecture.X86:
- make += ' ARCH=x86'
# According to https://github.com/cisco/openh264/issues/2263
- # to fix text relocations
- make += ' ENABLEPIC=Yes'
+ # need to pass ENABLEPIC=Yes to fix text relocations
+ make += ['ARCH=x86', 'ENABLEPIC=Yes']
elif self.config.target_arch == Architecture.ARM64:
- make += ' ARCH=arm64'
+ make += ['ARCH=arm64']
elif self.config.target_arch == Architecture.X86_64:
- make += ' ARCH=x86_64'
+ make += ['ARCH=x86_64']
elif self.config.target_platform == Platform.WINDOWS:
- make += ' OS=mingw_nt'
+ make += ['OS=mingw_nt']
if self.config.target_arch == Architecture.X86:
- make += ' ARCH=x86'
+ make += ['ARCH=x86']
elif self.config.target_arch == Architecture.X86_64:
- make += ' ARCH=x86_64'
+ make += ['ARCH=x86_64']
elif self.config.target_platform == Platform.LINUX:
if self.config.target_arch == Architecture.ARMv7:
- make += ' ARCH=armv7'
+ make += ['ARCH=armv7']
elif self.config.target_arch == Architecture.ARMv7S:
- make += ' ARCH=armv7s'
+ make += ['ARCH=armv7s']
elif self.config.target_arch == Architecture.ARM:
- make += ' ARCH=arm APP_ABI=armeabi'
+ make += ['ARCH=arm', 'APP_ABI=armeabi']
elif self.config.target_arch == Architecture.ARM64:
- make += ' ARCH=arm64'
+ make += ['ARCH=arm64']
- self.make = make + ' libraries'
+ self.make = make + ['libraries']
# `make install` also needs the exact same parameters as `make`
- self.make_install = make + ' install'
+ self.make_install = make + ['install']
def configure(self):
if self.config.platform == Platform.WINDOWS:
diff --git a/recipes/openssl.recipe b/recipes/openssl.recipe
index fad0bf08..b2a60311 100644
--- a/recipes/openssl.recipe
+++ b/recipes/openssl.recipe
@@ -1,5 +1,4 @@
# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python
-import shlex
from cerbero.build.build import async_modify_environment
from cerbero.tools.libtool import LibtoolLibrary
from cerbero.utils import shell, messages
@@ -17,6 +16,8 @@ class Recipe(recipe.Recipe):
deps = ['zlib']
# Parallel make fails randomly due to undefined macros, probably races
allow_parallel_build = False
+ # Configure script is perl, not shell
+ config_sh_needs_shell = False
files_bins = ['openssl']
files_libs = ['libcrypto', 'libssl']
@@ -52,7 +53,7 @@ class Recipe(recipe.Recipe):
else:
raise NotImplementedError
- self.make += ' CROSS_SYSROOT="{0}"'.format(self.config.sysroot)
+ self.make += ['CROSS_SYSROOT=' + self.config.sysroot]
elif self.config.target_platform == Platform.DARWIN:
if self.config.target_arch == Architecture.X86:
self.openssl_platform = 'darwin-i386-cc'
@@ -80,33 +81,31 @@ class Recipe(recipe.Recipe):
self.openssl_platform = 'mingw64'
else:
raise NotImplementedError
- cflags = shlex.quote(self.get_env('CFLAGS') + '-fPIC -DOPENSSL_PIC')
- ldflags = shlex.quote(self.get_env('LDFLAGS') + '-fPIC')
- ranlib = shlex.quote(self.get_env('RANLIB'))
- ar = shlex.quote(self.get_env('AR'))
+ cflags = self.get_env('CFLAGS') + '-fPIC -DOPENSSL_PIC'
+ ldflags = self.get_env('LDFLAGS') + '-fPIC'
+ ranlib = self.get_env('RANLIB')
+ ar = self.get_env('AR')
# Need to add CFLAGS to CC because CFLAG is not used everywhere in the
# build, and we can't pass arguments via Configure because on Darwin,
# Configure reads the `-arch x86_64` as meaning that you want to use
# `x86_64` as the platform, and errors out about a redefined platform.
- cc = shlex.quote(self.get_env('CC') + ' ' + self.get_env('CFLAGS'))
- ld = shlex.quote(self.get_env('LD') + ' ' + self.get_env('LDFLAGS'))
+ cc = self.get_env('CC') + ' ' + self.get_env('CFLAGS')
+ ld = self.get_env('LD') + ' ' + self.get_env('LDFLAGS')
# NOTE: CFLAG and LDFLAG are not typos!
- self.make += ' AR={} RANLIB={} CC={} LD={} CFLAG={} LDFLAG={}' \
- ''.format(ar, ranlib, cc, ld, cflags, ldflags)
- self.make_install = 'make install_sw RANLIB={}'.format(ranlib)
+ self.make += ['AR=' + ar, 'RANLIB=' + ranlib, 'CC=' + cc, 'LD=' + ld,
+ 'CFLAG=' + cflags, 'LDFLAG=' + ldflags]
+ self.make_install = ['make', 'install_sw', 'RANLIB=' + ranlib]
# We probably don't need and can't use the tools on these platforms
if self.config.target_platform in (Platform.IOS, Platform.ANDROID):
- self.make += ' build_libs openssl.pc libssl.pc libcrypto.pc'
- self.make_install = 'make install_dev RANLIB={}'.format(ranlib)
+ self.make += ['build_libs', 'openssl.pc', 'libssl.pc', 'libcrypto.pc']
+ self.make_install = ['make', 'install_dev', 'RANLIB=' + ranlib]
if self.config.platform == Platform.WINDOWS:
# Msys ships with a too-old perl, so we modify PATH to use the
# mingw-perl that was downloaded and installed by bootstrap.
openssl_path = os.path.join(self.config.mingw_perl_prefix, 'bin')
self.prepend_env('PATH', openssl_path, sep=';')
- self.make = self.make.replace('"', '\\"')
- self.make_install = self.make_install.replace('"', '\\"')
@async_modify_environment