danghvu | 6a6947f | 2013-11-26 22:28:41 -0600 | [diff] [blame] | 1 | # Capstone Disassembler Engine |
| 2 | # By Nguyen Anh Quynh <aquynh@gmail.com>, 2013> |
| 3 | |
Ole André Vadla Ravnås | f4f3055 | 2014-05-01 01:38:01 +0200 | [diff] [blame] | 4 | ifndef BUILDDIR |
| 5 | BLDIR = . |
| 6 | OBJDIR = . |
| 7 | else |
| 8 | BLDIR = $(abspath $(BUILDDIR))/bindings/java |
| 9 | OBJDIR = $(abspath $(BUILDDIR))/obj/bindings/java |
| 10 | endif |
| 11 | |
danghvu | 6a6947f | 2013-11-26 22:28:41 -0600 | [diff] [blame] | 12 | JNA = /usr/share/java/jna/jna.jar |
| 13 | |
danghvu | 71e1c4f | 2013-11-28 00:36:19 -0600 | [diff] [blame] | 14 | ifneq ($(wildcard $(JNA)),) |
| 15 | else |
| 16 | ifneq ($(wildcard /usr/share/java/jna.jar),) |
| 17 | JNA = /usr/share/java/jna.jar |
| 18 | else |
| 19 | JNA = |
danghvu | 71e1c4f | 2013-11-28 00:36:19 -0600 | [diff] [blame] | 20 | endif |
| 21 | endif |
| 22 | |
danghvu | c476765 | 2014-01-05 03:36:35 +0700 | [diff] [blame] | 23 | CAPSTONE_JAVA = Capstone.java Arm_const.java Arm64_const.java Mips_const.java \ |
danghvu | 53bbee3 | 2014-09-27 15:41:45 -0500 | [diff] [blame] | 24 | X86_const.java Xcore_const.java Ppc_const.java Sparc_const.java\ |
Wolfgang Schwotzer | 22b4d0e | 2017-10-21 15:44:36 +0200 | [diff] [blame^] | 25 | Sysz_const.java M680x_const.java \ |
danghvu | 53bbee3 | 2014-09-27 15:41:45 -0500 | [diff] [blame] | 26 | Arm.java Arm64.java Mips.java X86.java Xcore.java Ppc.java\ |
Wolfgang Schwotzer | 22b4d0e | 2017-10-21 15:44:36 +0200 | [diff] [blame^] | 27 | Sparc.java Systemz.java M680x.java |
danghvu | f86a7d5 | 2013-11-27 15:09:07 -0600 | [diff] [blame] | 28 | |
danghvu | 2f66688 | 2013-12-01 13:32:16 -0600 | [diff] [blame] | 29 | all: gen_const capstone tests |
danghvu | f86a7d5 | 2013-11-27 15:09:07 -0600 | [diff] [blame] | 30 | |
| 31 | capstone: capstone_class |
Ole André Vadla Ravnås | f4f3055 | 2014-05-01 01:38:01 +0200 | [diff] [blame] | 32 | @mkdir -p $(BLDIR) |
danghvu | 0c478ab | 2014-05-12 14:35:54 -0500 | [diff] [blame] | 33 | cd $(OBJDIR) && jar cf $(BLDIR)/capstone.jar capstone/*.class |
danghvu | f86a7d5 | 2013-11-27 15:09:07 -0600 | [diff] [blame] | 34 | |
danghvu | 686fdf6 | 2013-11-28 10:08:15 -0600 | [diff] [blame] | 35 | capstone_class: jna |
Ole André Vadla Ravnås | f4f3055 | 2014-05-01 01:38:01 +0200 | [diff] [blame] | 36 | ifdef BUILDDIR |
| 37 | @mkdir -p $(OBJDIR) |
danghvu | 0c478ab | 2014-05-12 14:35:54 -0500 | [diff] [blame] | 38 | cd capstone && javac -d $(OBJDIR) -classpath $(JNA) $(CAPSTONE_JAVA) |
Ole André Vadla Ravnås | f4f3055 | 2014-05-01 01:38:01 +0200 | [diff] [blame] | 39 | else |
danghvu | 0c478ab | 2014-05-12 14:35:54 -0500 | [diff] [blame] | 40 | cd capstone && javac -classpath $(JNA) $(CAPSTONE_JAVA) |
Ole André Vadla Ravnås | f4f3055 | 2014-05-01 01:38:01 +0200 | [diff] [blame] | 41 | endif |
danghvu | f86a7d5 | 2013-11-27 15:09:07 -0600 | [diff] [blame] | 42 | |
danghvu | 3671d70 | 2014-09-28 16:20:15 -0500 | [diff] [blame] | 43 | tests: capstone_class jna |
Ole André Vadla Ravnås | f4f3055 | 2014-05-01 01:38:01 +0200 | [diff] [blame] | 44 | @mkdir -p $(OBJDIR) |
Nguyen Anh Quynh | fad344e | 2015-06-03 22:18:26 +0800 | [diff] [blame] | 45 | javac -d $(OBJDIR) -classpath "$(JNA):$(BLDIR)/capstone.jar" TestBasic.java\ |
danghvu | 53bbee3 | 2014-09-27 15:41:45 -0500 | [diff] [blame] | 46 | TestArm.java TestArm64.java TestMips.java TestX86.java TestXcore.java\ |
Wolfgang Schwotzer | 22b4d0e | 2017-10-21 15:44:36 +0200 | [diff] [blame^] | 47 | TestPpc.java TestSparc.java TestSystemz.java TestM680x.java |
danghvu | 6a6947f | 2013-11-26 22:28:41 -0600 | [diff] [blame] | 48 | |
danghvu | 2f66688 | 2013-12-01 13:32:16 -0600 | [diff] [blame] | 49 | gen_const: |
danghvu | 0c478ab | 2014-05-12 14:35:54 -0500 | [diff] [blame] | 50 | cd ../ && python const_generator.py java |
danghvu | 2f66688 | 2013-12-01 13:32:16 -0600 | [diff] [blame] | 51 | |
danghvu | 686fdf6 | 2013-11-28 10:08:15 -0600 | [diff] [blame] | 52 | jna: |
| 53 | @if [ ! $(JNA) ]; then echo "*** Unable to find JNA ***"; exit 1; fi |
| 54 | |
danghvu | 6a6947f | 2013-11-26 22:28:41 -0600 | [diff] [blame] | 55 | clean: |
Ole André Vadla Ravnås | f4f3055 | 2014-05-01 01:38:01 +0200 | [diff] [blame] | 56 | rm -rf $(OBJDIR)/capstone/*.class |
| 57 | rm -rf $(OBJDIR)/*.class $(OBJDIR)/*.log $(BLDIR)/*.jar |
Nguyen Anh Quynh | d7c2a65 | 2014-05-01 21:49:52 +0800 | [diff] [blame] | 58 | ifdef BUILDDIR |
| 59 | rm -rf $(BLDIR) |
| 60 | rm -rf $(OBJDIR) |
| 61 | endif |
Nguyen Anh Quynh | a3f87a5 | 2014-10-01 17:13:58 +0800 | [diff] [blame] | 62 | |
Wolfgang Schwotzer | 22b4d0e | 2017-10-21 15:44:36 +0200 | [diff] [blame^] | 63 | TESTS = testbasic arm arm64 m680x mips ppc sparc systemz x86 xcore |
Nguyen Anh Quynh | a3f87a5 | 2014-10-01 17:13:58 +0800 | [diff] [blame] | 64 | check: |
| 65 | @for t in $(TESTS); do \ |
| 66 | echo Check $$t ... ; \ |
| 67 | ./run.sh $$t > /dev/null && echo OK || echo FAILED; \ |
| 68 | done |
| 69 | |