unicorn/bindings/Makefile
2016-12-26 15:54:46 +08:00

54 lines
1.1 KiB
Makefile

# Unicorn Engine
# By Nguyen Anh Quynh & Dang Hoang Vu, 2015
DIFF = diff
SAMPLE_SOURCE = $(wildcard ../samples/*.c)
SAMPLE = $(SAMPLE_SOURCE:../samples/%.c=%)
SAMPLE := $(SAMPLE:mem_apis=)
SAMPLE := $(SAMPLE:sample_batch_reg=)
SAMPLE := $(SAMPLE:sample_x86_32_gdt_and_seg_regs=)
SAMPLE := $(SAMPLE:shellcode=)
UNAME_S := $(shell uname -s)
ifeq ($(UNAME_S), Linux)
ENV_VARS = LD_PRELOAD=librt.so LD_LIBRARY_PATH=../ DYLD_LIBRARY_PATH=../
else
ENV_VARS = LD_LIBRARY_PATH=../ DYLD_LIBRARY_PATH=../
endif
.PHONY: build install python c clean check test
build:
$(MAKE) -C python gen_const
$(MAKE) -C go gen_const
$(MAKE) -C java gen_const
$(MAKE) -C ruby gen_const
python const_generator.py dotnet
install: build
$(MAKE) -C python install
$(MAKE) -C java install
test: $(SAMPLE:%=%.py.test)
c:
$(MAKE) -C ../samples
python:
$(MAKE) -C python
%.c.txt: c
$(ENV_VARS) ../samples/$(@:%.c.txt=%) > $@
%.py.txt: python
$(ENV_VARS) python python/$(@:%.txt=%) > $@
%.py.test: %.c.txt %.py.txt
$(DIFF) $(@:%.py.test=%.c.txt) $(@:%.py.test=%.py.txt)
clean:
# rm -rf *.txt
$(MAKE) -C python clean
$(MAKE) -C java clean
check:
make -C python check