New upstream release
[packages/capstone.git] / debian / patches / fix_python_bindings
1 Description: Fix build system for Python bindings.
2  The build system in capstone for the Python bindings works by installing
3  the library with the headers, and then building the bindings.  Change that
4  to allow building them in the same run we create the library, and search
5  for the versioned library instead of the .so one, removing the dependency
6  on libcapstone-dev.
7 Author: David Mart√≠nez Moreno <ender@debian.org>
8 Forwarded: no
9 Last-Update: 2014-05-05
10
11 --- a/bindings/python/setup_cython.py
12 +++ b/bindings/python/setup_cython.py
13 @@ -6,25 +6,27 @@ from Cython.Distutils import build_ext
14  VERSION = '3.0'
15  
16  compile_args = ['-O3', '-fomit-frame-pointer']
17 +include_dirs = ['../../../include']
18 +library_dirs = ['../../../']
19  
20  ext_modules = [
21 -    Extension("capstone.ccapstone", ["pyx/ccapstone.pyx"], libraries=["capstone"], extra_compile_args=compile_args),
22 -    Extension("capstone.arm", ["pyx/arm.pyx"], extra_compile_args=compile_args),
23 -    Extension("capstone.arm_const", ["pyx/arm_const.pyx"], extra_compile_args=compile_args),
24 -    Extension("capstone.arm64", ["pyx/arm64.pyx"], extra_compile_args=compile_args),
25 -    Extension("capstone.arm64_const", ["pyx/arm64_const.pyx"], extra_compile_args=compile_args),
26 -    Extension("capstone.mips", ["pyx/mips.pyx"], extra_compile_args=compile_args),
27 -    Extension("capstone.mips_const", ["pyx/mips_const.pyx"], extra_compile_args=compile_args),
28 -    Extension("capstone.ppc", ["pyx/ppc.pyx"], extra_compile_args=compile_args),
29 -    Extension("capstone.ppc_const", ["pyx/ppc_const.pyx"], extra_compile_args=compile_args),
30 -    Extension("capstone.x86", ["pyx/x86.pyx"], extra_compile_args=compile_args),
31 -    Extension("capstone.x86_const", ["pyx/x86_const.pyx"], extra_compile_args=compile_args),
32 -    Extension("capstone.sparc", ["pyx/sparc.pyx"], extra_compile_args=compile_args),
33 -    Extension("capstone.sparc_const", ["pyx/sparc_const.pyx"], extra_compile_args=compile_args),
34 -    Extension("capstone.systemz", ["pyx/systemz.pyx"], extra_compile_args=compile_args),
35 -    Extension("capstone.sysz_const", ["pyx/sysz_const.pyx"], extra_compile_args=compile_args),
36 -    Extension("capstone.xcore", ["pyx/xcore.pyx"], extra_compile_args=compile_args),
37 -    Extension("capstone.xcore_const", ["pyx/xcore_const.pyx"], extra_compile_args=compile_args)
38 +    Extension("capstone.ccapstone", ["pyx/ccapstone.pyx"], libraries=["capstone"], extra_compile_args=compile_args, include_dirs=include_dirs, library_dirs=library_dirs),
39 +    Extension("capstone.arm", ["pyx/arm.pyx"], extra_compile_args=compile_args, include_dirs=include_dirs, library_dirs=library_dirs),
40 +    Extension("capstone.arm_const", ["pyx/arm_const.pyx"], extra_compile_args=compile_args, include_dirs=include_dirs, library_dirs=library_dirs),
41 +    Extension("capstone.arm64", ["pyx/arm64.pyx"], extra_compile_args=compile_args, include_dirs=include_dirs, library_dirs=library_dirs),
42 +    Extension("capstone.arm64_const", ["pyx/arm64_const.pyx"], extra_compile_args=compile_args, include_dirs=include_dirs, library_dirs=library_dirs),
43 +    Extension("capstone.mips", ["pyx/mips.pyx"], extra_compile_args=compile_args, include_dirs=include_dirs, library_dirs=library_dirs),
44 +    Extension("capstone.mips_const", ["pyx/mips_const.pyx"], extra_compile_args=compile_args, include_dirs=include_dirs, library_dirs=library_dirs),
45 +    Extension("capstone.ppc", ["pyx/ppc.pyx"], extra_compile_args=compile_args, include_dirs=include_dirs, library_dirs=library_dirs),
46 +    Extension("capstone.ppc_const", ["pyx/ppc_const.pyx"], extra_compile_args=compile_args, include_dirs=include_dirs, library_dirs=library_dirs),
47 +    Extension("capstone.x86", ["pyx/x86.pyx"], extra_compile_args=compile_args, include_dirs=include_dirs, library_dirs=library_dirs),
48 +    Extension("capstone.x86_const", ["pyx/x86_const.pyx"], extra_compile_args=compile_args, include_dirs=include_dirs, library_dirs=library_dirs),
49 +    Extension("capstone.sparc", ["pyx/sparc.pyx"], extra_compile_args=compile_args, include_dirs=include_dirs, library_dirs=library_dirs),
50 +    Extension("capstone.sparc_const", ["pyx/sparc_const.pyx"], extra_compile_args=compile_args, include_dirs=include_dirs, library_dirs=library_dirs),
51 +    Extension("capstone.systemz", ["pyx/systemz.pyx"], extra_compile_args=compile_args, include_dirs=include_dirs, library_dirs=library_dirs),
52 +    Extension("capstone.sysz_const", ["pyx/sysz_const.pyx"], extra_compile_args=compile_args, include_dirs=include_dirs, library_dirs=library_dirs),
53 +    Extension("capstone.xcore", ["pyx/xcore.pyx"], extra_compile_args=compile_args, include_dirs=include_dirs, library_dirs=library_dirs),
54 +    Extension("capstone.xcore_const", ["pyx/xcore_const.pyx"], extra_compile_args=compile_args, include_dirs=include_dirs, library_dirs=library_dirs)
55  ]
56  
57  # clean package directory first
58 --- a/bindings/python/Makefile
59 +++ b/bindings/python/Makefile
60 @@ -42,7 +42,7 @@ install_cython:
61         cp capstone/xcore_const.py $(OBJDIR)/pyx/xcore_const.pyx
62         cd $(OBJDIR) && python setup_cython.py build -b ./tmp install --home=$(OBJDIR)
63         mv $(OBJDIR)/build/lib/python/capstone/* capstone
64 -       cd $(OBJDIR) && python setup_cython.py build -b ./tmp install
65 +       cd $(OBJDIR) && python setup_cython.py build -b ./tmp install $(OPTS)
66  
67  clean:
68         rm -rf $(OBJDIR)