xref: /aosp_15_r20/external/capstone/bindings/java/Makefile (revision 9a0e4156d50a75a99ec4f1653a0e9602a5d45c18)
1*9a0e4156SSadaf Ebrahimi# Capstone Disassembler Engine
2*9a0e4156SSadaf Ebrahimi# By Nguyen Anh Quynh <[email protected]>, 2013>
3*9a0e4156SSadaf Ebrahimi
4*9a0e4156SSadaf Ebrahimiifndef BUILDDIR
5*9a0e4156SSadaf EbrahimiBLDIR = .
6*9a0e4156SSadaf EbrahimiOBJDIR = .
7*9a0e4156SSadaf Ebrahimielse
8*9a0e4156SSadaf EbrahimiBLDIR = $(abspath $(BUILDDIR))/bindings/java
9*9a0e4156SSadaf EbrahimiOBJDIR = $(abspath $(BUILDDIR))/obj/bindings/java
10*9a0e4156SSadaf Ebrahimiendif
11*9a0e4156SSadaf Ebrahimi
12*9a0e4156SSadaf EbrahimiJNA = /usr/share/java/jna/jna.jar
13*9a0e4156SSadaf Ebrahimi
14*9a0e4156SSadaf Ebrahimiifneq ($(wildcard $(JNA)),)
15*9a0e4156SSadaf Ebrahimielse
16*9a0e4156SSadaf Ebrahimi  ifneq ($(wildcard /usr/share/java/jna.jar),)
17*9a0e4156SSadaf Ebrahimi    JNA = /usr/share/java/jna.jar
18*9a0e4156SSadaf Ebrahimi  else
19*9a0e4156SSadaf Ebrahimi    JNA =
20*9a0e4156SSadaf Ebrahimi  endif
21*9a0e4156SSadaf Ebrahimiendif
22*9a0e4156SSadaf Ebrahimi
23*9a0e4156SSadaf EbrahimiPYTHON2 ?= python
24*9a0e4156SSadaf Ebrahimi
25*9a0e4156SSadaf EbrahimiCAPSTONE_JAVA = Capstone.java Arm_const.java Arm64_const.java Mips_const.java \
26*9a0e4156SSadaf Ebrahimi				X86_const.java Xcore_const.java Ppc_const.java Sparc_const.java\
27*9a0e4156SSadaf Ebrahimi				Sysz_const.java M680x_const.java \
28*9a0e4156SSadaf Ebrahimi				Arm.java Arm64.java Mips.java X86.java Xcore.java Ppc.java\
29*9a0e4156SSadaf Ebrahimi				Sparc.java Systemz.java M680x.java
30*9a0e4156SSadaf Ebrahimi
31*9a0e4156SSadaf Ebrahimiall: gen_const capstone tests
32*9a0e4156SSadaf Ebrahimi
33*9a0e4156SSadaf Ebrahimicapstone: capstone_class
34*9a0e4156SSadaf Ebrahimi	@mkdir -p $(BLDIR)
35*9a0e4156SSadaf Ebrahimi	cd $(OBJDIR) && jar cf $(BLDIR)/capstone.jar capstone/*.class
36*9a0e4156SSadaf Ebrahimi
37*9a0e4156SSadaf Ebrahimicapstone_class: jna
38*9a0e4156SSadaf Ebrahimiifdef BUILDDIR
39*9a0e4156SSadaf Ebrahimi	@mkdir -p $(OBJDIR)
40*9a0e4156SSadaf Ebrahimi	cd capstone && javac -d $(OBJDIR) -classpath $(JNA) $(CAPSTONE_JAVA)
41*9a0e4156SSadaf Ebrahimielse
42*9a0e4156SSadaf Ebrahimi	cd capstone && javac -classpath $(JNA) $(CAPSTONE_JAVA)
43*9a0e4156SSadaf Ebrahimiendif
44*9a0e4156SSadaf Ebrahimi
45*9a0e4156SSadaf Ebrahimitests: capstone_class jna
46*9a0e4156SSadaf Ebrahimi	@mkdir -p $(OBJDIR)
47*9a0e4156SSadaf Ebrahimi	javac -d $(OBJDIR) -classpath "$(JNA):$(BLDIR)/capstone.jar" TestBasic.java\
48*9a0e4156SSadaf Ebrahimi		TestArm.java TestArm64.java TestMips.java TestX86.java TestXcore.java\
49*9a0e4156SSadaf Ebrahimi		TestPpc.java TestSparc.java TestSystemz.java TestM680x.java
50*9a0e4156SSadaf Ebrahimi
51*9a0e4156SSadaf Ebrahimigen_const:
52*9a0e4156SSadaf Ebrahimi	cd ../ && $(PYTHON2) const_generator.py java
53*9a0e4156SSadaf Ebrahimi
54*9a0e4156SSadaf Ebrahimijna:
55*9a0e4156SSadaf Ebrahimi	@if [ ! $(JNA) ]; then echo "*** Unable to find JNA ***"; exit 1; fi
56*9a0e4156SSadaf Ebrahimi
57*9a0e4156SSadaf Ebrahimiclean:
58*9a0e4156SSadaf Ebrahimi	rm -rf $(OBJDIR)/capstone/*.class
59*9a0e4156SSadaf Ebrahimi	rm -rf $(OBJDIR)/*.class $(OBJDIR)/*.log $(BLDIR)/*.jar
60*9a0e4156SSadaf Ebrahimiifdef BUILDDIR
61*9a0e4156SSadaf Ebrahimi	rm -rf $(BLDIR)
62*9a0e4156SSadaf Ebrahimi	rm -rf $(OBJDIR)
63*9a0e4156SSadaf Ebrahimiendif
64*9a0e4156SSadaf Ebrahimi
65*9a0e4156SSadaf EbrahimiTESTS = testbasic arm arm64 m680x mips ppc sparc systemz x86 xcore
66*9a0e4156SSadaf Ebrahimicheck:
67*9a0e4156SSadaf Ebrahimi	@for t in $(TESTS); do \
68*9a0e4156SSadaf Ebrahimi		echo Check $$t ... ; \
69*9a0e4156SSadaf Ebrahimi		./run.sh $$t > /dev/null && echo OK || echo FAILED; \
70*9a0e4156SSadaf Ebrahimi	done
71*9a0e4156SSadaf Ebrahimi
72