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