about summary refs log tree commit diff stats
path: root/setup.py
diff options
context:
space:
mode:
Diffstat (limited to 'setup.py')
-rw-r--r--[-rwxr-xr-x]setup.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/setup.py b/setup.py
index 9a687160..e8ea7b3a 100755..100644
--- a/setup.py
+++ b/setup.py
@@ -3,6 +3,7 @@
 from __future__ import print_function
 from distutils.core import setup, Extension
 from distutils.util import get_platform
+from distutils.sysconfig import get_python_lib, get_config_vars
 import io
 import os
 import platform
@@ -10,6 +11,13 @@ from shutil import copy2
 import sys
 
 is_win = platform.system() == "Windows"
+is_mac = platform.system() == "Darwin"
+
+def set_extension_compile_args(extension):
+    rel_lib_path = extension.name.replace('.', '/')
+    abs_lib_path = os.path.join(get_python_lib(), rel_lib_path)
+    lib_name = abs_lib_path + '.so'
+    extension.extra_link_args = [ '-Wl,-install_name,' + lib_name]
 
 def buil_all():
     packages=[
@@ -49,6 +57,7 @@ def buil_all():
             [
                 "miasm/jitter/JitCore.c",
                 "miasm/jitter/vm_mngr.c",
+                "miasm/jitter/vm_mngr_py.c",
                 "miasm/jitter/op_semantics.c",
                 "miasm/jitter/bn.c",
                 "miasm/jitter/arch/JitCore_x86.c"
@@ -59,6 +68,7 @@ def buil_all():
             [
                 "miasm/jitter/JitCore.c",
                 "miasm/jitter/vm_mngr.c",
+                "miasm/jitter/vm_mngr_py.c",
                 "miasm/jitter/op_semantics.c",
                 "miasm/jitter/bn.c",
                 "miasm/jitter/arch/JitCore_arm.c"
@@ -69,6 +79,7 @@ def buil_all():
             [
                 "miasm/jitter/JitCore.c",
                 "miasm/jitter/vm_mngr.c",
+                "miasm/jitter/vm_mngr_py.c",
                 "miasm/jitter/op_semantics.c",
                 "miasm/jitter/bn.c",
                 "miasm/jitter/arch/JitCore_aarch64.c"
@@ -79,6 +90,7 @@ def buil_all():
             [
                 "miasm/jitter/JitCore.c",
                 "miasm/jitter/vm_mngr.c",
+                "miasm/jitter/vm_mngr_py.c",
                 "miasm/jitter/op_semantics.c",
                 "miasm/jitter/bn.c",
                 "miasm/jitter/arch/JitCore_msp430.c"
@@ -89,6 +101,7 @@ def buil_all():
             [
                 "miasm/jitter/JitCore.c",
                 "miasm/jitter/vm_mngr.c",
+                "miasm/jitter/vm_mngr_py.c",
                 "miasm/jitter/bn.c",
                 "miasm/jitter/arch/JitCore_mep.c"
             ]
@@ -98,6 +111,7 @@ def buil_all():
             [
                 "miasm/jitter/JitCore.c",
                 "miasm/jitter/vm_mngr.c",
+                "miasm/jitter/vm_mngr_py.c",
                 "miasm/jitter/op_semantics.c",
                 "miasm/jitter/bn.c",
                 "miasm/jitter/arch/JitCore_mips32.c"
@@ -108,6 +122,7 @@ def buil_all():
             [
                 "miasm/jitter/JitCore.c",
                 "miasm/jitter/vm_mngr.c",
+                "miasm/jitter/vm_mngr_py.c",
                 "miasm/jitter/op_semantics.c",
                 "miasm/jitter/bn.c",
                 "miasm/jitter/arch/JitCore_ppc32.c"
@@ -132,6 +147,11 @@ def buil_all():
         # Force setuptools to use whatever msvc version installed
         os.environ['MSSdk'] = '1'
         os.environ['DISTUTILS_USE_SDK'] = '1'
+    elif is_mac:
+        for extension in ext_modules_all:
+            set_extension_compile_args(extension)
+        cfg_vars = get_config_vars()
+        cfg_vars['LDSHARED'] = cfg_vars['LDSHARED'].replace('-bundle', '-dynamiclib')
 
     print("building")
     build_ok = False