Skip to content

Commit d27a72c

Browse files
committed
Use make rather than autotools to build ISA-L static library on unix
1 parent 2db9740 commit d27a72c

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

setup.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
import functools
1010
import os
11+
import platform
1112
import shutil
1213
import subprocess
1314
import sys
@@ -74,7 +75,7 @@ def build_extension(self, ext):
7475
isa_l_build_dir = build_isa_l()
7576
if SYSTEM_IS_UNIX:
7677
ext.extra_objects = [
77-
os.path.join(isa_l_build_dir, ".libs", "libisal.a")]
78+
os.path.join(isa_l_build_dir, "bin", "isa-l.a")]
7879
elif SYSTEM_IS_WINDOWS:
7980
ext.extra_objects = [
8081
os.path.join(isa_l_build_dir, "isa-l_static.lib")]
@@ -106,16 +107,21 @@ def build_isa_l():
106107
# it.
107108
build_env = os.environ.copy()
108109
if SYSTEM_IS_UNIX:
109-
build_env["CFLAGS"] = build_env.get("CFLAGS", "") + " -O2 -fPIC"
110+
build_env["CFLAGS"] = build_env.get("CFLAGS", "") + " -fPIC"
110111
if hasattr(os, "sched_getaffinity"):
111112
cpu_count = len(os.sched_getaffinity(0))
112113
else: # sched_getaffinity not available on all platforms
113114
cpu_count = os.cpu_count() or 1 # os.cpu_count() can return None
114115
run_args = dict(cwd=build_dir, env=build_env)
115116
if SYSTEM_IS_UNIX:
116-
subprocess.run(os.path.join(build_dir, "autogen.sh"), **run_args)
117-
subprocess.run([os.path.join(build_dir, "configure")], **run_args)
118-
subprocess.run(["make", "-j", str(cpu_count)], **run_args)
117+
if platform.machine() == "aarch64":
118+
cflags_param = "CFLAGS_aarch64"
119+
else:
120+
cflags_param = "CFLAGS_"
121+
subprocess.run(["make", "-j", str(cpu_count), "-f", "Makefile.unx",
122+
"isa-l.h", "bin/isa-l.a",
123+
f"{cflags_param}={build_env.get('CFLAGS', '')}"],
124+
**run_args)
119125
elif SYSTEM_IS_WINDOWS:
120126
subprocess.run(["nmake", "/f", "Makefile.nmake"], **run_args)
121127
else:

0 commit comments

Comments
 (0)