diff options
| author | Peter LaFosse <peter@vector35.com> | 2017-08-19 22:38:10 -0400 |
|---|---|---|
| committer | Peter LaFosse <peter@vector35.com> | 2017-08-19 22:38:10 -0400 |
| commit | dabc2ee689cb5dba068fd5461c66973838d05640 (patch) | |
| tree | 92ffbf57454ee82f1a3355d37c7be1d7eb62f971 /examples/x86_extension/Makefile | |
| parent | e40b46fdf8b76acb5ca2d0a062b0b8ac2ca99a16 (diff) | |
Add C++ x86 architecture wrapper for extending architectures
Diffstat (limited to 'examples/x86_extension/Makefile')
| -rw-r--r-- | examples/x86_extension/Makefile | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/examples/x86_extension/Makefile b/examples/x86_extension/Makefile new file mode 100644 index 00000000..3fa1739b --- /dev/null +++ b/examples/x86_extension/Makefile @@ -0,0 +1,59 @@ +# Path to prebuilt libbinaryninjaapi.a +BINJA_API_A := ../../bin/libbinaryninjaapi.a + +# Path to binaryninjaapi.h and json +INC := -I../../ + +UNAME_S := $(shell uname -s) +ifeq ($(UNAME_S),Linux) + # Path to binaryninja install + BINJAPATH := $(shell cat ~/.binaryninja/lastrun) + PLUGIN_DIR := ~/.binaryninja/plugins/ + CC := g++ +else + BINJAPATH := /Applications/Binary\ Ninja.app/Contents/MacOS + PLUGIN_DIR := ~/Library/Application\ Support/Binary\ Ninja/plugins/ + CC := clang++ +endif + +SRCDIR := src +BUILDDIR := build +TARGETDIR := bin + +TARGETNAME := x86_extension +TARGET := $(TARGETDIR)/$(TARGETNAME) + +SRCEXT := cpp +SOURCES := $(shell find $(SRCDIR) -type f -name *.$(SRCEXT)) +OBJECTS := $(patsubst $(SRCDIR)/%,$(BUILDDIR)/%,$(SOURCES:.$(SRCEXT)=.o)) src/asmx86/libasmx86.a + +LIBS := -L$(BINJAPATH) -lbinaryninjacore +CFLAGS := -c -std=gnu++11 -O2 -Wall -W -fPIC -pipe + +all: $(TARGET) + +ifeq ($(UNAME_S),Linux) +$(TARGET): $(OBJECTS) + @mkdir -p $(TARGETDIR) + $(CC) $^ $(BINJA_API_A) $(LIBS) -shared -Wl,-rpath=$(BINJAPATH) -ldl -o bin/lib$(TARGETNAME).so +else +$(TARGET): $(OBJECTS) + @mkdir -p $(TARGETDIR) + $(CC) $^ $(BINJA_API_A) $(LIBS) -single_module -dynamiclib -o bin/lib$(TARGETNAME).dylib + install_name_tool -add_rpath $(BINJAPATH)/libbinaryninjacore.dylib bin/lib$(TARGETNAME).dylib +endif + +$(BUILDDIR)/%.o: $(SRCDIR)/%.$(SRCEXT) + @mkdir -p $(BUILDDIR) + $(CC) $(CFLAGS) $(INC) -c -o $@ $< + +src/asmx86/libasmx86.a: + $(MAKE) -C src/asmx86 + +install: + cp bin/lib$(TARGETNAME).dylib $(PLUGIN_DIR) + +clean: + $(RM) -r $(BUILDDIR) $(TARGETDIR) + +.PHONY: clean |
