1# Makefile for Cstool of Capstone Disassembly Engine
2
3include ../functions.mk
4
5.PHONY: clean all
6
7LIBNAME = capstone
8
9CFLAGS += -I../include
10LDFLAGS += -O3 -Wall -L.. -l$(LIBNAME)
11
12TARGET = cstool
13SOURCES := $(wildcard *.c)
14OBJECTS := $(SOURCES:.c=.o)
15
16LIBCAPSTONE = libcapstone.a
17
18IS_CYGWIN := $(shell $(CC) -dumpmachine 2>/dev/null | grep -i cygwin | wc -l)
19ifeq ($(IS_CYGWIN),1)
20LIBCAPSTONE = capstone.lib
21else
22IS_MINGW := $(shell $(CC) --version 2>/dev/null | grep -i mingw | wc -l)
23ifeq ($(IS_MINGW),1)
24LIBCAPSTONE = capstone.lib
25endif
26endif
27
28all: $(TARGET)
29
30$(TARGET): ../$(LIBCAPSTONE) $(OBJECTS)
31ifeq ($(V),0)
32	$(call log,LINK,$@)
33	@${CC} $(OBJECTS) $(LDFLAGS) -o $@
34else
35	${CC} $(OBJECTS) $(LDFLAGS) -o $@
36endif
37
38clean:
39	${RM} -rf *.o $(TARGET)
40
41%.o: %.c
42ifeq ($(V),0)
43	$(call log,CC,$@)
44	@${CC} $(CFLAGS) -c $< -o $@
45else
46	${CC} $(CFLAGS) -c $< -o $@
47endif
48