Home | History | Annotate | Download | only in java
      1 # Capstone Disassembler Engine
      2 # By Nguyen Anh Quynh <aquynh (at] gmail.com>, 2013>
      3 
      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 
     12 JNA = /usr/share/java/jna/jna.jar
     13 
     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 =
     20   endif
     21 endif
     22 
     23 CAPSTONE_JAVA = Capstone.java Arm_const.java Arm64_const.java Mips_const.java \
     24 				X86_const.java Xcore_const.java Ppc_const.java Sparc_const.java\
     25 				Sysz_const.java \
     26 				Arm.java Arm64.java Mips.java X86.java Xcore.java Ppc.java\
     27 				Sparc.java Systemz.java
     28 
     29 all: gen_const capstone tests
     30 
     31 capstone: capstone_class
     32 	@mkdir -p $(BLDIR)
     33 	cd $(OBJDIR) && jar cf $(BLDIR)/capstone.jar capstone/*.class
     34 
     35 capstone_class: jna
     36 ifdef BUILDDIR
     37 	@mkdir -p $(OBJDIR)
     38 	cd capstone && javac -d $(OBJDIR) -classpath $(JNA) $(CAPSTONE_JAVA)
     39 else
     40 	cd capstone && javac -classpath $(JNA) $(CAPSTONE_JAVA)
     41 endif
     42 
     43 tests: capstone_class jna
     44 	@mkdir -p $(OBJDIR)
     45 	javac -d $(OBJDIR) -classpath "$(JNA):$(BLDIR)/capstone.jar" Test.java\
     46 		TestArm.java TestArm64.java TestMips.java TestX86.java TestXcore.java\
     47 		TestPpc.java TestSparc.java TestSystemz.java
     48 
     49 gen_const:
     50 	cd ../ && python const_generator.py java
     51 
     52 jna:
     53 	@if [ ! $(JNA) ]; then echo "*** Unable to find JNA ***"; exit 1; fi
     54 
     55 clean:
     56 	rm -rf $(OBJDIR)/capstone/*.class
     57 	rm -rf $(OBJDIR)/*.class $(OBJDIR)/*.log $(BLDIR)/*.jar
     58 ifdef BUILDDIR
     59 	rm -rf $(BLDIR)
     60 	rm -rf $(OBJDIR)
     61 endif
     62 
     63 TESTS = test arm arm64 mips ppc sparc systemz x86 xcore
     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 
     70