xref: /aosp_15_r20/external/capstone/bindings/python/Makefile (revision 9a0e4156d50a75a99ec4f1653a0e9602a5d45c18)
1*9a0e4156SSadaf EbrahimiPYTHON2 ?= python
2*9a0e4156SSadaf EbrahimiPYTHON3 ?= python3
3*9a0e4156SSadaf Ebrahimi
4*9a0e4156SSadaf Ebrahimi.PHONY: gen_const install install3 install_cython sdist sdist3 bdist bdist3 clean check
5*9a0e4156SSadaf Ebrahimi
6*9a0e4156SSadaf Ebrahimigen_const:
7*9a0e4156SSadaf Ebrahimi	cd .. && $(PYTHON2) const_generator.py python
8*9a0e4156SSadaf Ebrahimi
9*9a0e4156SSadaf Ebrahimiinstall:
10*9a0e4156SSadaf Ebrahimi	rm -rf src/
11*9a0e4156SSadaf Ebrahimi	if test -n "${DESTDIR}"; then \
12*9a0e4156SSadaf Ebrahimi		$(PYTHON2) setup.py build install --root="${DESTDIR}"; \
13*9a0e4156SSadaf Ebrahimi	else \
14*9a0e4156SSadaf Ebrahimi		$(PYTHON2) setup.py build install; \
15*9a0e4156SSadaf Ebrahimi	fi
16*9a0e4156SSadaf Ebrahimi
17*9a0e4156SSadaf Ebrahimiinstall3:
18*9a0e4156SSadaf Ebrahimi	rm -rf src/
19*9a0e4156SSadaf Ebrahimi	if test -n "${DESTDIR}"; then \
20*9a0e4156SSadaf Ebrahimi		$(PYTHON3) setup.py build install --root="${DESTDIR}"; \
21*9a0e4156SSadaf Ebrahimi	else \
22*9a0e4156SSadaf Ebrahimi		$(PYTHON3) setup.py build install; \
23*9a0e4156SSadaf Ebrahimi	fi
24*9a0e4156SSadaf Ebrahimi
25*9a0e4156SSadaf Ebrahimi# NOTE: Newer cython can be installed by: sudo pip install --upgrade cython
26*9a0e4156SSadaf Ebrahimiinstall_cython:
27*9a0e4156SSadaf Ebrahimi	rm -rf src/
28*9a0e4156SSadaf Ebrahimi	if test -n "${DESTDIR}"; then \
29*9a0e4156SSadaf Ebrahimi		$(PYTHON2) setup_cython.py build install --root="${DESTDIR}"; \
30*9a0e4156SSadaf Ebrahimi	else \
31*9a0e4156SSadaf Ebrahimi		$(PYTHON2) setup_cython.py build install; \
32*9a0e4156SSadaf Ebrahimi	fi
33*9a0e4156SSadaf Ebrahimi
34*9a0e4156SSadaf Ebrahimiinstall3_cython:
35*9a0e4156SSadaf Ebrahimi	rm -rf src/
36*9a0e4156SSadaf Ebrahimi	if test -n "${DESTDIR}"; then \
37*9a0e4156SSadaf Ebrahimi		$(PYTHON3) setup_cython.py build install --root="${DESTDIR}"; \
38*9a0e4156SSadaf Ebrahimi	else \
39*9a0e4156SSadaf Ebrahimi		$(PYTHON3) setup_cython.py build install; \
40*9a0e4156SSadaf Ebrahimi	fi
41*9a0e4156SSadaf Ebrahimi
42*9a0e4156SSadaf Ebrahimi# build & upload PyPi package with source code of the core
43*9a0e4156SSadaf Ebrahimisdist:
44*9a0e4156SSadaf Ebrahimi	rm -rf src/ dist/
45*9a0e4156SSadaf Ebrahimi	$(PYTHON2) setup.py sdist register upload
46*9a0e4156SSadaf Ebrahimi
47*9a0e4156SSadaf Ebrahimi# build & upload PyPi package with source code of the core
48*9a0e4156SSadaf Ebrahimisdist3:
49*9a0e4156SSadaf Ebrahimi	rm -rf src/ dist/
50*9a0e4156SSadaf Ebrahimi	$(PYTHON3) setup.py sdist register upload
51*9a0e4156SSadaf Ebrahimi
52*9a0e4156SSadaf Ebrahimi# build & upload PyPi package with prebuilt core
53*9a0e4156SSadaf Ebrahimibdist:
54*9a0e4156SSadaf Ebrahimi	rm -rf src/ dist/
55*9a0e4156SSadaf Ebrahimi	$(PYTHON2) setup.py bdist_wheel register upload
56*9a0e4156SSadaf Ebrahimi
57*9a0e4156SSadaf Ebrahimi# build & upload PyPi package with prebuilt core
58*9a0e4156SSadaf Ebrahimibdist3:
59*9a0e4156SSadaf Ebrahimi	rm -rf src/ dist/
60*9a0e4156SSadaf Ebrahimi	$(PYTHON3) setup.py bdist_wheel register upload
61*9a0e4156SSadaf Ebrahimi
62*9a0e4156SSadaf Ebrahimiclean:
63*9a0e4156SSadaf Ebrahimi	rm -rf build/ src/ dist/ *.egg-info
64*9a0e4156SSadaf Ebrahimi	rm -rf capstone/lib capstone/include pyx/lib pyx/include
65*9a0e4156SSadaf Ebrahimi	rm -f pyx/*.c pyx/__init__.py
66*9a0e4156SSadaf Ebrahimi	for f in capstone/*.py; do rm -f pyx/$$(basename $$f)x; done
67*9a0e4156SSadaf Ebrahimi	rm -f MANIFEST
68*9a0e4156SSadaf Ebrahimi	rm -f *.pyc capstone/*.pyc
69*9a0e4156SSadaf Ebrahimi
70*9a0e4156SSadaf Ebrahimi
71*9a0e4156SSadaf EbrahimiTESTS = test_basic.py test_detail.py test_arm.py test_arm64.py test_m68k.py test_mips.py
72*9a0e4156SSadaf EbrahimiTESTS += test_ppc.py test_sparc.py test_systemz.py test_x86.py test_xcore.py test_tms320c64x.py
73*9a0e4156SSadaf EbrahimiTESTS += test_m680x.py test_skipdata.py test_mos65xx.py
74*9a0e4156SSadaf Ebrahimi
75*9a0e4156SSadaf Ebrahimicheck:
76*9a0e4156SSadaf Ebrahimi	@for t in $(TESTS); do \
77*9a0e4156SSadaf Ebrahimi		echo Check $$t ... ; \
78*9a0e4156SSadaf Ebrahimi		./$$t > /dev/null; \
79*9a0e4156SSadaf Ebrahimi		if [ $$? -eq 0 ]; then echo OK; else echo FAILED; exit 1; fi \
80*9a0e4156SSadaf Ebrahimi	done
81*9a0e4156SSadaf Ebrahimi
82