about summary refs log tree commit diff stats
path: root/setup.py
diff options
context:
space:
mode:
Diffstat (limited to 'setup.py')
-rwxr-xr-xsetup.py83
1 files changed, 58 insertions, 25 deletions
diff --git a/setup.py b/setup.py
index f3a2be16..03adc925 100755
--- a/setup.py
+++ b/setup.py
@@ -2,28 +2,61 @@
 
 from distutils.core import setup,Extension
 
-setup(
-    name = 'Miasm',
-    version = '0.1',
-    packages=['miasm', 'miasm/tools', 
-              'miasm/expression', 'miasm/graph', 'miasm/arch',
-              'miasm/core', 'miasm/tools/emul_lib' ],
-    package_data = {'miasm':['tools/emul_lib/*.h']},
-#    data_files = [('toto', ['miasm/tools/emul_lib/queue.h'])],
-    ext_modules = [
-        Extension("miasm.tools.emul_lib.libcodenat_interface",
-                  ["miasm/tools/emul_lib/libcodenat_interface.c",
-                   "miasm/tools/emul_lib/libcodenat.c"]),
-        Extension("miasm.tools.emul_lib.libcodenat_tcc",
-                  ["miasm/tools/emul_lib/libcodenat_tcc.c"],
-                  libraries=["tcc"])
-        ],
-
-    # Metadata
-    author = 'Fabrice Desclaux',
-    author_email = 'serpilliere@droid-corp.org',
-    description = 'Machine code manipulation library',
-    license = 'GPLv2',
-    # keywords = '',
-    # url = '',
-)
+def buil_all():
+    setup(
+        name = 'Miasm',
+        version = '0.1',
+        packages=['miasm', 'miasm/tools',
+                  'miasm/expression', 'miasm/graph', 'miasm/arch',
+                  'miasm/core', 'miasm/tools/emul_lib' ],
+        package_data = {'miasm':['tools/emul_lib/*.h']},
+        # data_files = [('toto', ['miasm/tools/emul_lib/queue.h'])],
+        ext_modules = [
+            Extension("miasm.tools.emul_lib.libcodenat_interface",
+                      ["miasm/tools/emul_lib/libcodenat_interface.c",
+                       "miasm/tools/emul_lib/libcodenat.c"]),
+            Extension("miasm.tools.emul_lib.libcodenat_tcc",
+                      ["miasm/tools/emul_lib/libcodenat_tcc.c"],
+                      libraries=["tcc"])
+            ],
+        # Metadata
+        author = 'Fabrice Desclaux',
+        author_email = 'serpilliere@droid-corp.org',
+        description = 'Machine code manipulation library',
+        license = 'GPLv2',
+        # keywords = '',
+        # url = '',
+    )
+
+
+
+def buil_no_tcc():
+    setup(
+        name = 'Miasm',
+        version = '0.1',
+        packages=['miasm', 'miasm/tools',
+                  'miasm/expression', 'miasm/graph', 'miasm/arch',
+                  'miasm/core', 'miasm/tools/emul_lib' ],
+        package_data = {'miasm':['tools/emul_lib/*.h']},
+        # data_files = [('toto', ['miasm/tools/emul_lib/queue.h'])],
+        # Metadata
+        author = 'Fabrice Desclaux',
+        author_email = 'serpilliere@droid-corp.org',
+        description = 'Machine code manipulation library',
+        license = 'GPLv2',
+        # keywords = '',
+        # url = '',
+    )
+
+
+def try_build():
+    try:
+        buil_all()
+        return
+    except:
+        print "WARNING cannot build with libtcc!, trying without it"
+        print "Miasm will not be able to emulate code"
+    buil_no_tcc()
+
+
+try_build()