blob: 5115a9f9504348f9db9ea991fa755635000955bd [file] [log] [blame]
danghvu6a6947f2013-11-26 22:28:41 -06001# Capstone Disassembler Engine
2# By Nguyen Anh Quynh <aquynh@gmail.com>, 2013>
3
Ole André Vadla Ravnåsf4f30552014-05-01 01:38:01 +02004ifndef BUILDDIR
5BLDIR = .
6OBJDIR = .
7else
8BLDIR = $(abspath $(BUILDDIR))/bindings/java
9OBJDIR = $(abspath $(BUILDDIR))/obj/bindings/java
10endif
11
danghvu6a6947f2013-11-26 22:28:41 -060012JNA = /usr/share/java/jna/jna.jar
13
danghvu71e1c4f2013-11-28 00:36:19 -060014ifneq ($(wildcard $(JNA)),)
15else
16 ifneq ($(wildcard /usr/share/java/jna.jar),)
17 JNA = /usr/share/java/jna.jar
18 else
19 JNA =
danghvu71e1c4f2013-11-28 00:36:19 -060020 endif
21endif
22
danghvuc4767652014-01-05 03:36:35 +070023CAPSTONE_JAVA = Capstone.java Arm_const.java Arm64_const.java Mips_const.java \
danghvu53bbee32014-09-27 15:41:45 -050024 X86_const.java Xcore_const.java Ppc_const.java Sparc_const.java\
Wolfgang Schwotzer22b4d0e2017-10-21 15:44:36 +020025 Sysz_const.java M680x_const.java \
danghvu53bbee32014-09-27 15:41:45 -050026 Arm.java Arm64.java Mips.java X86.java Xcore.java Ppc.java\
Wolfgang Schwotzer22b4d0e2017-10-21 15:44:36 +020027 Sparc.java Systemz.java M680x.java
danghvuf86a7d52013-11-27 15:09:07 -060028
danghvu2f666882013-12-01 13:32:16 -060029all: gen_const capstone tests
danghvuf86a7d52013-11-27 15:09:07 -060030
31capstone: capstone_class
Ole André Vadla Ravnåsf4f30552014-05-01 01:38:01 +020032 @mkdir -p $(BLDIR)
danghvu0c478ab2014-05-12 14:35:54 -050033 cd $(OBJDIR) && jar cf $(BLDIR)/capstone.jar capstone/*.class
danghvuf86a7d52013-11-27 15:09:07 -060034
danghvu686fdf62013-11-28 10:08:15 -060035capstone_class: jna
Ole André Vadla Ravnåsf4f30552014-05-01 01:38:01 +020036ifdef BUILDDIR
37 @mkdir -p $(OBJDIR)
danghvu0c478ab2014-05-12 14:35:54 -050038 cd capstone && javac -d $(OBJDIR) -classpath $(JNA) $(CAPSTONE_JAVA)
Ole André Vadla Ravnåsf4f30552014-05-01 01:38:01 +020039else
danghvu0c478ab2014-05-12 14:35:54 -050040 cd capstone && javac -classpath $(JNA) $(CAPSTONE_JAVA)
Ole André Vadla Ravnåsf4f30552014-05-01 01:38:01 +020041endif
danghvuf86a7d52013-11-27 15:09:07 -060042
danghvu3671d702014-09-28 16:20:15 -050043tests: capstone_class jna
Ole André Vadla Ravnåsf4f30552014-05-01 01:38:01 +020044 @mkdir -p $(OBJDIR)
Nguyen Anh Quynhfad344e2015-06-03 22:18:26 +080045 javac -d $(OBJDIR) -classpath "$(JNA):$(BLDIR)/capstone.jar" TestBasic.java\
danghvu53bbee32014-09-27 15:41:45 -050046 TestArm.java TestArm64.java TestMips.java TestX86.java TestXcore.java\
Wolfgang Schwotzer22b4d0e2017-10-21 15:44:36 +020047 TestPpc.java TestSparc.java TestSystemz.java TestM680x.java
danghvu6a6947f2013-11-26 22:28:41 -060048
danghvu2f666882013-12-01 13:32:16 -060049gen_const:
danghvu0c478ab2014-05-12 14:35:54 -050050 cd ../ && python const_generator.py java
danghvu2f666882013-12-01 13:32:16 -060051
danghvu686fdf62013-11-28 10:08:15 -060052jna:
53 @if [ ! $(JNA) ]; then echo "*** Unable to find JNA ***"; exit 1; fi
54
danghvu6a6947f2013-11-26 22:28:41 -060055clean:
Ole André Vadla Ravnåsf4f30552014-05-01 01:38:01 +020056 rm -rf $(OBJDIR)/capstone/*.class
57 rm -rf $(OBJDIR)/*.class $(OBJDIR)/*.log $(BLDIR)/*.jar
Nguyen Anh Quynhd7c2a652014-05-01 21:49:52 +080058ifdef BUILDDIR
59 rm -rf $(BLDIR)
60 rm -rf $(OBJDIR)
61endif
Nguyen Anh Quynha3f87a52014-10-01 17:13:58 +080062
Wolfgang Schwotzer22b4d0e2017-10-21 15:44:36 +020063TESTS = testbasic arm arm64 m680x mips ppc sparc systemz x86 xcore
Nguyen Anh Quynha3f87a52014-10-01 17:13:58 +080064check:
65 @for t in $(TESTS); do \
66 echo Check $$t ... ; \
67 ./run.sh $$t > /dev/null && echo OK || echo FAILED; \
68 done
69