You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
1.7 KiB
72 lines
1.7 KiB
# Capstone Disassembler Engine
|
|
# By Nguyen Anh Quynh <aquynh@gmail.com>, 2013>
|
|
|
|
ifndef BUILDDIR
|
|
BLDIR = .
|
|
OBJDIR = .
|
|
else
|
|
BLDIR = $(abspath $(BUILDDIR))/bindings/java
|
|
OBJDIR = $(abspath $(BUILDDIR))/obj/bindings/java
|
|
endif
|
|
|
|
JNA = /usr/share/java/jna/jna.jar
|
|
|
|
ifneq ($(wildcard $(JNA)),)
|
|
else
|
|
ifneq ($(wildcard /usr/share/java/jna.jar),)
|
|
JNA = /usr/share/java/jna.jar
|
|
else
|
|
JNA =
|
|
endif
|
|
endif
|
|
|
|
PYTHON2 ?= python
|
|
|
|
CAPSTONE_JAVA = Capstone.java Arm_const.java Arm64_const.java Mips_const.java \
|
|
X86_const.java Xcore_const.java Ppc_const.java Sparc_const.java\
|
|
Sysz_const.java M680x_const.java \
|
|
Arm.java Arm64.java Mips.java X86.java Xcore.java Ppc.java\
|
|
Sparc.java Systemz.java M680x.java
|
|
|
|
all: gen_const capstone tests
|
|
|
|
capstone: capstone_class
|
|
@mkdir -p $(BLDIR)
|
|
cd $(OBJDIR) && jar cf $(BLDIR)/capstone.jar capstone/*.class
|
|
|
|
capstone_class: jna
|
|
ifdef BUILDDIR
|
|
@mkdir -p $(OBJDIR)
|
|
cd capstone && javac -d $(OBJDIR) -classpath $(JNA) $(CAPSTONE_JAVA)
|
|
else
|
|
cd capstone && javac -classpath $(JNA) $(CAPSTONE_JAVA)
|
|
endif
|
|
|
|
tests: capstone_class jna
|
|
@mkdir -p $(OBJDIR)
|
|
javac -d $(OBJDIR) -classpath "$(JNA):$(BLDIR)/capstone.jar" TestBasic.java\
|
|
TestArm.java TestArm64.java TestMips.java TestX86.java TestXcore.java\
|
|
TestPpc.java TestSparc.java TestSystemz.java TestM680x.java
|
|
|
|
gen_const:
|
|
cd ../ && $(PYTHON2) const_generator.py java
|
|
|
|
jna:
|
|
@if [ ! $(JNA) ]; then echo "*** Unable to find JNA ***"; exit 1; fi
|
|
|
|
clean:
|
|
rm -rf $(OBJDIR)/capstone/*.class
|
|
rm -rf $(OBJDIR)/*.class $(OBJDIR)/*.log $(BLDIR)/*.jar
|
|
ifdef BUILDDIR
|
|
rm -rf $(BLDIR)
|
|
rm -rf $(OBJDIR)
|
|
endif
|
|
|
|
TESTS = testbasic arm arm64 m680x mips ppc sparc systemz x86 xcore
|
|
check:
|
|
@for t in $(TESTS); do \
|
|
echo Check $$t ... ; \
|
|
./run.sh $$t > /dev/null && echo OK || echo FAILED; \
|
|
done
|
|
|