Catena cyber | a69f788 | 2018-12-04 09:02:16 +0100 | [diff] [blame] | 1 | # Capstone Disassembler Engine |
| 2 | # By Philippe Antoine <contact@catenacyber.fr>, 2018 |
| 3 | |
| 4 | include ../../config.mk |
| 5 | include ../../functions.mk |
| 6 | |
| 7 | ifneq ($(CAPSTONE_STATIC),yes) |
| 8 | $(error Needs static capstone.) |
| 9 | endif |
| 10 | |
| 11 | # Verbose output? |
| 12 | V ?= 0 |
| 13 | |
| 14 | INCDIR = ../../include |
| 15 | ifndef BUILDDIR |
| 16 | TESTDIR = . |
| 17 | OBJDIR = . |
| 18 | LIBDIR = ../.. |
| 19 | else |
| 20 | TESTDIR = $(BUILDDIR)/tests |
| 21 | OBJDIR = $(BUILDDIR)/obj/tests |
| 22 | LIBDIR = $(BUILDDIR) |
| 23 | endif |
| 24 | |
| 25 | CFLAGS += -Wall -I$(INCDIR) |
| 26 | LDFLAGS += -L$(LIBDIR) |
| 27 | |
| 28 | CFLAGS += $(foreach arch,$(LIBARCHS),-arch $(arch)) |
| 29 | LDFLAGS += $(foreach arch,$(LIBARCHS),-arch $(arch)) |
| 30 | |
Nguyen Anh Quynh | 7bb3508 | 2015-06-16 17:32:03 +0800 | [diff] [blame] | 31 | LIBNAME = capstone |
| 32 | |
Catena cyber | a69f788 | 2018-12-04 09:02:16 +0100 | [diff] [blame] | 33 | BIN_EXT = |
| 34 | AR_EXT = a |
| 35 | |
| 36 | |
| 37 | ARCHIVE = $(LIBDIR)/lib$(LIBNAME).$(AR_EXT) |
| 38 | |
| 39 | .PHONY: all clean |
| 40 | |
Catena cyber | 3a0467c | 2018-12-11 03:33:31 +0100 | [diff] [blame^] | 41 | SOURCES = fuzz_disasm.c drivermc.c fuzz_harness.c driverbin.c |
Catena cyber | a69f788 | 2018-12-04 09:02:16 +0100 | [diff] [blame] | 42 | OBJS = $(addprefix $(OBJDIR)/,$(SOURCES:.c=.o)) |
| 43 | BINARY = $(addprefix $(TESTDIR)/,fuzz_disasm$(BIN_EXT)) |
Catena cyber | 3a0467c | 2018-12-11 03:33:31 +0100 | [diff] [blame^] | 44 | BINARYBIN = $(addprefix $(TESTDIR)/,fuzz_bindisasm$(BIN_EXT)) |
Catena cyber | a69f788 | 2018-12-04 09:02:16 +0100 | [diff] [blame] | 45 | |
Catena cyber | 3a0467c | 2018-12-11 03:33:31 +0100 | [diff] [blame^] | 46 | all: $(BINARY) $(BINARYBIN) |
Catena cyber | a69f788 | 2018-12-04 09:02:16 +0100 | [diff] [blame] | 47 | |
| 48 | clean: |
Catena cyber | 3a0467c | 2018-12-11 03:33:31 +0100 | [diff] [blame^] | 49 | rm -rf fuzz_harness $(OBJS) $(BINARY) $(BINARYBIN) $(OBJDIR)/lib$(LIBNAME).* $(OBJDIR)/$(LIBNAME).* |
Catena cyber | a69f788 | 2018-12-04 09:02:16 +0100 | [diff] [blame] | 50 | |
| 51 | $(BINARY): fuzz_disasm.o drivermc.o |
| 52 | @mkdir -p $(@D) |
| 53 | ifeq ($(V),0) |
| 54 | $(call log,LINK,$(notdir $@)) |
| 55 | @$(link-static) |
| 56 | else |
| 57 | $(link-static) |
| 58 | endif |
| 59 | |
Catena cyber | 3a0467c | 2018-12-11 03:33:31 +0100 | [diff] [blame^] | 60 | $(BINARYBIN): fuzz_disasm.o driverbin.o |
| 61 | @mkdir -p $(@D) |
| 62 | ifeq ($(V),0) |
| 63 | $(call log,LINK,$(notdir $@)) |
| 64 | @$(link-static) |
| 65 | else |
| 66 | $(link-static) |
| 67 | endif |
| 68 | |
Catena cyber | a69f788 | 2018-12-04 09:02:16 +0100 | [diff] [blame] | 69 | $(OBJDIR)/%.o: %.c |
| 70 | @mkdir -p $(@D) |
| 71 | ifeq ($(V),0) |
| 72 | $(call log,CC,$(@:$(OBJDIR)/%=%)) |
| 73 | @$(compile) |
| 74 | else |
| 75 | $(compile) |
| 76 | endif |
| 77 | |
| 78 | |
| 79 | |
| 80 | define link-static |
| 81 | $(CC) $(LDFLAGS) $^ $(ARCHIVE) -o $@ |
| 82 | endef |
| 83 | |
Nguyen Anh Quynh | 7bb3508 | 2015-06-16 17:32:03 +0800 | [diff] [blame] | 84 | fuzz_harness: fuzz_harness.o |
| 85 | ${CC} $< -O3 -Wall -l$(LIBNAME) -o $@ |