blob: 39a00c0ad6d1a0e2f80d816690543ee1019ad04b [file] [log] [blame]
# Capstone Disassembler Engine
# By Nguyen Anh Quynh <aquynh@gmail.com>, 2013>
BUILDDIR = .
ifndef BUILDDIR
BLDIR = .
OBJDIR = .
BINDIR = .
TESTDIR = .
NATIDIR = .
else
BLDIR = $(abspath $(BUILDDIR))
OBJDIR = $(abspath $(BUILDDIR))/capstone/src/main/java/capstone
BINDIR = $(abspath $(BUILDDIR))/capstone/bin
TESTDIR = $(abspath $(BUILDDIR))/capstone/src/test/java/capstone
NATIDIR = $(abspath $(BUILDDIR))/capstone/src/main/native
endif
ifneq ($(wildcard $(JNA)),)
else
ifneq ($(wildcard /usr/share/java/jna.jar),)
JNA = /usr/share/java/jna.jar
else
JNA = $(BLDIR)/jna.jar
endif
endif
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 \
Arm.java Arm64.java Mips.java X86.java Xcore.java Ppc.java\
Sparc.java Systemz.java
CAPSTONE_TEST_JAVA = Test.java\
TestArm.java TestArm64.java TestMips.java TestX86.java TestXcore.java\
TestPpc.java TestSparc.java TestSystemz.java
all: gen_const capstone build_maven
capstone: capstone_class
ifdef BUILDDIR
@mkdir -p $(BLDIR)
cd $(BLDIR) && jar cf $(BLDIR)/capstone.jar $(BINDIR)/capstone/*.class
else
cd $(BLDIR) && jar cf $(BLDIR)/capstone.jar $(BINDIR)/*.class
endif
capstone_class: jna
ifdef BUILDDIR
@mkdir -p $(BINDIR)
cd $(OBJDIR) && javac -d $(BINDIR) -classpath $(JNA) $(CAPSTONE_JAVA)
else
cd $(OBJDIR) && javac -classpath $(JNA) $(CAPSTONE_JAVA)
endif
test_maven:
./run-tests.sh
#tests: capstone_class jna
# @mkdir -p $(BINDIR)
# cd $(TESTDIR) && javac -d $(BINDIR) -classpath "$(JNA):$(BLDIR)/capstone.jar" $(CAPSTONE_TEST_JAVA)
gen_const:
cd ../ && python const_generator.py java
jna:
@if [ ! $(JNA) ]; then echo "*** Unable to find JNA ***"; exit 1; fi
build_maven:
@mkdir -p $(NATIDIR)
cd ../.. && $(MAKE) && cp libcapstone.* $(NATIDIR)
./build-jar.sh
clean:
rm -rf $(BLDIR)/capstone/target $(BLDIR)/capstone.jar $(OBJDIR)/*.log
ifdef BUILDDIR
rm -rf $(BINDIR)
rm -rf $(NATIDIR)
else
rm -rf $(BINDIR)/*.class
endif
#TESTS = test arm arm64 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