| Nguyen Anh Quynh | 296a231 | 2014-03-05 23:50:41 +0800 | [diff] [blame] | 1 | # Capstone Disassembly Engine | 
| Nguyen Anh Quynh | 26ee41a | 2013-11-27 12:11:31 +0800 | [diff] [blame] | 2 | # By Nguyen Anh Quynh <aquynh@gmail.com>, 2013> | 
| Nguyen Anh Quynh | 5e107ab | 2013-12-31 23:38:28 +0800 | [diff] [blame] | 3 |  | 
| danghvu | 6f52bf9 | 2013-12-19 22:43:01 -0600 | [diff] [blame] | 4 | include config.mk | 
| Nguyen Anh Quynh | 26ee41a | 2013-11-27 12:11:31 +0800 | [diff] [blame] | 5 |  | 
| Nguyen Anh Quynh | d80cede | 2014-01-16 21:07:59 +0800 | [diff] [blame] | 6 | ifeq ($(CROSS),) | 
 | 7 | CC ?= cc | 
 | 8 | AR ?= ar | 
 | 9 | RANLIB ?= ranlib | 
 | 10 | STRIP ?= strip | 
 | 11 | else | 
 | 12 | CC = $(CROSS)gcc | 
 | 13 | AR = $(CROSS)ar | 
 | 14 | RANLIB = $(CROSS)ranlib | 
 | 15 | STRIP = $(CROSS)strip | 
 | 16 | endif | 
| Nguyen Anh Quynh | 26ee41a | 2013-11-27 12:11:31 +0800 | [diff] [blame] | 17 |  | 
| Nguyen Anh Quynh | c76d8d0 | 2014-03-06 23:19:26 +0800 | [diff] [blame^] | 18 | ifeq ($(CAPSTONE_DIET),yes) | 
 | 19 | # remove string check & stack protector functions | 
 | 20 | CFLAGS += -D_FORTIFY_SOURCE=0 | 
 | 21 | CFLAGS += -fno-stack-protector | 
 | 22 | endif | 
 | 23 |  | 
| pancake | ca9f1b2 | 2013-12-06 17:03:41 +0100 | [diff] [blame] | 24 | CFLAGS += -fPIC -O3 -Wall -Iinclude | 
| Nguyen Anh Quynh | 59492c2 | 2014-01-05 23:41:31 +0800 | [diff] [blame] | 25 |  | 
 | 26 | ifeq ($(USE_SYS_DYN_MEM),yes) | 
 | 27 | CFLAGS += -DUSE_SYS_DYN_MEM | 
 | 28 | endif | 
 | 29 |  | 
| Nguyen Anh Quynh | 26ee41a | 2013-11-27 12:11:31 +0800 | [diff] [blame] | 30 | LDFLAGS += -shared | 
 | 31 |  | 
| pancake | 02cad6e | 2013-11-27 15:38:44 +0100 | [diff] [blame] | 32 | PREFIX ?= /usr | 
 | 33 | DESTDIR ?= | 
 | 34 | INCDIR = $(DESTDIR)$(PREFIX)/include | 
| Nguyen Anh Quynh | 9f0e6c2 | 2013-12-25 22:47:28 +0800 | [diff] [blame] | 35 |  | 
| pancake | 02cad6e | 2013-11-27 15:38:44 +0100 | [diff] [blame] | 36 | LIBDIR = $(DESTDIR)$(PREFIX)/lib | 
| Nguyen Anh Quynh | 9f0e6c2 | 2013-12-25 22:47:28 +0800 | [diff] [blame] | 37 | # on x86_64, we might have /usr/lib64 directory instead of /usr/lib | 
| Nguyen Anh Quynh | 2844cc5 | 2014-03-05 23:49:14 +0800 | [diff] [blame] | 38 | UNAME_M := $(shell uname -m) | 
 | 39 | ifeq ($(UNAME_M), x86_64) | 
| Nguyen Anh Quynh | c0b63dc | 2014-01-01 21:40:49 +0800 | [diff] [blame] | 40 | ifeq (,$(wildcard $(LIBDIR))) | 
 | 41 | LIBDIR = $(DESTDIR)$(PREFIX)/lib64 | 
 | 42 | else | 
 | 43 | LIBDIR = $(DESTDIR)$(PREFIX)/lib | 
 | 44 | endif | 
| Nguyen Anh Quynh | 9f0e6c2 | 2013-12-25 22:47:28 +0800 | [diff] [blame] | 45 | endif | 
| pancake | 02cad6e | 2013-11-27 15:38:44 +0100 | [diff] [blame] | 46 |  | 
| Nguyen Anh Quynh | 64d4083 | 2014-01-17 20:55:21 +0800 | [diff] [blame] | 47 | INSTALL_BIN ?= install | 
 | 48 | INSTALL_DATA ?= $(INSTALL_BIN) -m0644 | 
 | 49 | INSTALL_LIBRARY ?= $(INSTALL_BIN) -m0755 | 
| pancake | 02cad6e | 2013-11-27 15:38:44 +0100 | [diff] [blame] | 50 |  | 
| Nguyen Anh Quynh | 26ee41a | 2013-11-27 12:11:31 +0800 | [diff] [blame] | 51 | LIBNAME = capstone | 
| pancake | ca9f1b2 | 2013-12-06 17:03:41 +0100 | [diff] [blame] | 52 |  | 
| Nguyen Anh Quynh | 42c6b1a | 2013-12-30 00:15:25 +0800 | [diff] [blame] | 53 |  | 
| Nguyen Anh Quynh | 4a328ca | 2014-02-28 23:09:04 +0800 | [diff] [blame] | 54 | DEP_ARM = | 
 | 55 | DEP_ARM += arch/ARM/ARMGenAsmWriter.inc | 
 | 56 | DEP_ARM += arch/ARM/ARMGenDisassemblerTables.inc | 
 | 57 | DEP_ARM += arch/ARM/ARMGenInstrInfo.inc | 
 | 58 | DEP_ARM += arch/ARM/ARMGenRegisterInfo.inc | 
 | 59 | DEP_ARM += arch/ARM/ARMGenSubtargetInfo.inc | 
 | 60 |  | 
 | 61 | LIBOBJ_ARM = | 
| Nguyen Anh Quynh | 9cc56a3 | 2014-01-15 16:01:55 +0800 | [diff] [blame] | 62 | ifneq (,$(findstring arm,$(CAPSTONE_ARCHS))) | 
 | 63 | 	CFLAGS += -DCAPSTONE_HAS_ARM | 
| Nguyen Anh Quynh | 4a328ca | 2014-02-28 23:09:04 +0800 | [diff] [blame] | 64 | 	LIBOBJ_ARM += arch/ARM/ARMDisassembler.o | 
 | 65 | 	LIBOBJ_ARM += arch/ARM/ARMInstPrinter.o | 
 | 66 | 	LIBOBJ_ARM += arch/ARM/ARMMapping.o | 
 | 67 | 	LIBOBJ_ARM += arch/ARM/ARMModule.o | 
| danghvu | 02db488 | 2013-12-20 00:57:12 -0600 | [diff] [blame] | 68 | endif | 
| Nguyen Anh Quynh | 42c6b1a | 2013-12-30 00:15:25 +0800 | [diff] [blame] | 69 |  | 
| Nguyen Anh Quynh | 4a328ca | 2014-02-28 23:09:04 +0800 | [diff] [blame] | 70 | DEP_ARM64 = | 
 | 71 | DEP_ARM64 += arch/AArch64/AArch64GenAsmWriter.inc | 
 | 72 | DEP_ARM64 += arch/AArch64/AArch64GenInstrInfo.inc | 
 | 73 | DEP_ARM64 += arch/AArch64/AArch64GenSubtargetInfo.inc | 
 | 74 | DEP_ARM64 += arch/AArch64/AArch64GenDisassemblerTables.inc | 
 | 75 | DEP_ARM64 += arch/AArch64/AArch64GenRegisterInfo.inc | 
 | 76 |  | 
 | 77 | LIBOBJ_ARM64 = | 
 | 78 | ifneq (,$(findstring aarch64,$(CAPSTONE_ARCHS))) | 
 | 79 | 	CFLAGS += -DCAPSTONE_HAS_ARM64 | 
 | 80 | 	LIBOBJ_ARM64 += arch/AArch64/AArch64BaseInfo.o | 
 | 81 | 	LIBOBJ_ARM64 += arch/AArch64/AArch64Disassembler.o | 
 | 82 | 	LIBOBJ_ARM64 += arch/AArch64/AArch64InstPrinter.o | 
 | 83 | 	LIBOBJ_ARM64 += arch/AArch64/AArch64Mapping.o | 
 | 84 | 	LIBOBJ_ARM64 += arch/AArch64/AArch64Module.o | 
 | 85 | endif | 
 | 86 |  | 
 | 87 |  | 
 | 88 | DEP_MIPS = | 
 | 89 | DEP_MIPS += arch/Mips/MipsGenAsmWriter.inc | 
 | 90 | DEP_MIPS += arch/Mips/MipsGenDisassemblerTables.inc | 
 | 91 | DEP_MIPS += arch/Mips/MipsGenInstrInfo.inc | 
 | 92 | DEP_MIPS += arch/Mips/MipsGenRegisterInfo.inc | 
 | 93 | DEP_MIPS += arch/Mips/MipsGenSubtargetInfo.inc | 
 | 94 |  | 
 | 95 | LIBOBJ_MIPS = | 
 | 96 | ifneq (,$(findstring mips,$(CAPSTONE_ARCHS))) | 
 | 97 | 	CFLAGS += -DCAPSTONE_HAS_MIPS | 
 | 98 | 	LIBOBJ_MIPS += arch/Mips/MipsDisassembler.o | 
 | 99 | 	LIBOBJ_MIPS += arch/Mips/MipsInstPrinter.o | 
 | 100 | 	LIBOBJ_MIPS += arch/Mips/MipsMapping.o | 
 | 101 | 	LIBOBJ_MIPS += arch/Mips/MipsModule.o | 
 | 102 | endif | 
 | 103 |  | 
 | 104 |  | 
 | 105 | DEP_PPC = | 
 | 106 | DEP_PPC += arch/PowerPC/PPCGenAsmWriter.inc | 
 | 107 | DEP_PPC += arch/PowerPC/PPCGenInstrInfo.inc | 
 | 108 | DEP_PPC += arch/PowerPC/PPCGenSubtargetInfo.inc | 
 | 109 | DEP_PPC += arch/PowerPC/PPCGenDisassemblerTables.inc | 
 | 110 | DEP_PPC += arch/PowerPC/PPCGenRegisterInfo.inc | 
 | 111 |  | 
 | 112 | LIBOBJ_PPC = | 
 | 113 | ifneq (,$(findstring powerpc,$(CAPSTONE_ARCHS))) | 
 | 114 | 	CFLAGS += -DCAPSTONE_HAS_POWERPC | 
 | 115 | 	LIBOBJ_PPC += arch/PowerPC/PPCDisassembler.o | 
 | 116 | 	LIBOBJ_PPC += arch/PowerPC/PPCInstPrinter.o | 
 | 117 | 	LIBOBJ_PPC += arch/PowerPC/PPCMapping.o | 
 | 118 | 	LIBOBJ_PPC += arch/PowerPC/PPCModule.o | 
 | 119 | endif | 
 | 120 |  | 
 | 121 |  | 
 | 122 | DEP_X86 = | 
 | 123 | DEP_X86 += arch/X86/X86GenAsmWriter.inc | 
 | 124 | DEP_X86 += arch/X86/X86GenAsmWriter1.inc | 
 | 125 | DEP_X86 += arch/X86/X86GenDisassemblerTables.inc | 
 | 126 | DEP_X86 += arch/X86/X86GenInstrInfo.inc | 
 | 127 | DEP_X86 += arch/X86/X86GenRegisterInfo.inc | 
 | 128 |  | 
 | 129 | LIBOBJ_X86 = | 
 | 130 | ifneq (,$(findstring x86,$(CAPSTONE_ARCHS))) | 
 | 131 | 	CFLAGS += -DCAPSTONE_HAS_X86 | 
 | 132 | 	LIBOBJ_X86 += arch/X86/X86DisassemblerDecoder.o | 
 | 133 | 	LIBOBJ_X86 += arch/X86/X86Disassembler.o | 
 | 134 | 	LIBOBJ_X86 += arch/X86/X86IntelInstPrinter.o | 
 | 135 | 	LIBOBJ_X86 += arch/X86/X86ATTInstPrinter.o | 
 | 136 | 	LIBOBJ_X86 += arch/X86/X86Mapping.o | 
 | 137 | 	LIBOBJ_X86 += arch/X86/X86Module.o | 
 | 138 | endif | 
 | 139 |  | 
 | 140 | LIBOBJ = | 
 | 141 | LIBOBJ += cs.o utils.o SStream.o MCInstrDesc.o MCRegisterInfo.o | 
 | 142 | LIBOBJ += $(LIBOBJ_ARM) $(LIBOBJ_ARM64) $(LIBOBJ_MIPS) $(LIBOBJ_PPC) $(LIBOBJ_X86) | 
| Nguyen Anh Quynh | 26ee41a | 2013-11-27 12:11:31 +0800 | [diff] [blame] | 143 | LIBOBJ += MCInst.o | 
 | 144 |  | 
| Nguyen Anh Quynh | 4a328ca | 2014-02-28 23:09:04 +0800 | [diff] [blame] | 145 |  | 
| Nguyen Anh Quynh | 26ee41a | 2013-11-27 12:11:31 +0800 | [diff] [blame] | 146 | UNAME_S := $(shell uname -s) | 
| Nguyen Anh Quynh | 8f856c7 | 2014-02-24 15:17:40 +0800 | [diff] [blame] | 147 | PKGCFCGDIR = $(LIBDIR)/pkgconfig | 
 | 148 |  | 
| Nguyen Anh Quynh | 5e107ab | 2013-12-31 23:38:28 +0800 | [diff] [blame] | 149 | # OSX? | 
| Nguyen Anh Quynh | 26ee41a | 2013-11-27 12:11:31 +0800 | [diff] [blame] | 150 | ifeq ($(UNAME_S),Darwin) | 
 | 151 | EXT = dylib | 
| Nguyen Anh Quynh | 4ebdd21 | 2013-12-25 23:54:45 +0800 | [diff] [blame] | 152 | AR_EXT = a | 
| Nguyen Anh Quynh | 8f856c7 | 2014-02-24 15:17:40 +0800 | [diff] [blame] | 153 | # By default, suppose that Brew is installed & use Brew path for pkgconfig file | 
 | 154 | PKGCFCGDIR = /usr/local/lib/pkgconfig | 
 | 155 | # is Macport installed instead? | 
| Nguyen Anh Quynh | 2b63b07 | 2014-02-24 15:26:20 +0800 | [diff] [blame] | 156 | ifneq (,$(wildcard /opt/local/bin/port)) | 
| Nguyen Anh Quynh | 8f856c7 | 2014-02-24 15:17:40 +0800 | [diff] [blame] | 157 | # then correct the path for pkgconfig file | 
 | 158 | PKGCFCGDIR = /opt/local/lib/pkgconfig | 
 | 159 | endif | 
| pancake | 02cad6e | 2013-11-27 15:38:44 +0100 | [diff] [blame] | 160 | else | 
| Daniel Godas-Lopez | 0f7c432 | 2013-11-28 18:22:50 +0000 | [diff] [blame] | 161 | # Cygwin? | 
 | 162 | IS_CYGWIN := $(shell $(CC) -dumpmachine | grep -i cygwin | wc -l) | 
 | 163 | ifeq ($(IS_CYGWIN),1) | 
 | 164 | EXT = dll | 
 | 165 | AR_EXT = dll.a | 
 | 166 | # Cygwin doesn't like -fPIC | 
 | 167 | CFLAGS := $(CFLAGS:-fPIC=) | 
 | 168 | # On Windows we need the shared library to be executable | 
 | 169 | else | 
 | 170 | # mingw? | 
 | 171 | IS_MINGW := $(shell $(CC) --version | grep -i mingw | wc -l) | 
 | 172 | ifeq ($(IS_MINGW),1) | 
 | 173 | EXT = dll | 
 | 174 | AR_EXT = dll.a | 
 | 175 | # mingw doesn't like -fPIC either | 
 | 176 | CFLAGS := $(CFLAGS:-fPIC=) | 
 | 177 | # On Windows we need the shared library to be executable | 
| Nguyen Anh Quynh | 4ebdd21 | 2013-12-25 23:54:45 +0800 | [diff] [blame] | 178 | else | 
 | 179 | # Linux, *BSD | 
 | 180 | EXT = so | 
 | 181 | AR_EXT = a | 
 | 182 | LDFLAGS += -Wl,-soname,$(LIBRARY) | 
| Daniel Godas-Lopez | 0f7c432 | 2013-11-28 18:22:50 +0000 | [diff] [blame] | 183 | endif | 
 | 184 | endif | 
| Nguyen Anh Quynh | 26ee41a | 2013-11-27 12:11:31 +0800 | [diff] [blame] | 185 | endif | 
 | 186 |  | 
| pancake | ca9f1b2 | 2013-12-06 17:03:41 +0100 | [diff] [blame] | 187 | LIBRARY = lib$(LIBNAME).$(EXT) | 
 | 188 | ARCHIVE = lib$(LIBNAME).$(AR_EXT) | 
 | 189 | PKGCFGF = $(LIBNAME).pc | 
| Nguyen Anh Quynh | 26ee41a | 2013-11-27 12:11:31 +0800 | [diff] [blame] | 190 |  | 
| Nguyen Anh Quynh | e5c658c | 2013-12-13 09:24:41 +0800 | [diff] [blame] | 191 | VERSION=$(shell echo `grep -e PKG_MAJOR -e PKG_MINOR CONFIG | grep -v = | awk '{print $$3}'` | awk '{print $$1"."$$2}') | 
| Nguyen Anh Quynh | 26ee41a | 2013-11-27 12:11:31 +0800 | [diff] [blame] | 192 |  | 
| Nguyen Anh Quynh | 5bbbfce | 2014-02-28 10:49:46 +0800 | [diff] [blame] | 193 | .PHONY: all clean install uninstall dist | 
| pancake | ca9f1b2 | 2013-12-06 17:03:41 +0100 | [diff] [blame] | 194 |  | 
| Nguyen Anh Quynh | 80ff30b | 2013-12-09 00:38:44 +0800 | [diff] [blame] | 195 | all: $(LIBRARY) $(ARCHIVE) $(PKGCFGF) | 
| pancake | 02cad6e | 2013-11-27 15:38:44 +0100 | [diff] [blame] | 196 | 	$(MAKE) -C tests | 
 | 197 | 	$(INSTALL_DATA) lib$(LIBNAME).$(EXT) tests | 
| Nguyen Anh Quynh | 26ee41a | 2013-11-27 12:11:31 +0800 | [diff] [blame] | 198 |  | 
| pancake | addb192 | 2014-02-28 02:44:07 +0100 | [diff] [blame] | 199 | $(LIBRARY): $(LIBOBJ) | 
| pancake | ca9f1b2 | 2013-12-06 17:03:41 +0100 | [diff] [blame] | 200 | 	$(CC) $(LDFLAGS) $(LIBOBJ) -o $(LIBRARY) | 
| Nguyen Anh Quynh | 26ee41a | 2013-11-27 12:11:31 +0800 | [diff] [blame] | 201 |  | 
| Nguyen Anh Quynh | 5bbbfce | 2014-02-28 10:49:46 +0800 | [diff] [blame] | 202 | $(LIBOBJ): include/diet.h | 
| pancake | addb192 | 2014-02-28 02:44:07 +0100 | [diff] [blame] | 203 |  | 
| Nguyen Anh Quynh | 4a328ca | 2014-02-28 23:09:04 +0800 | [diff] [blame] | 204 | $(LIBOBJ_ARM): $(DEP_ARM) | 
 | 205 | $(LIBOBJ_ARM64): $(DEP_ARM64) | 
 | 206 | $(LIBOBJ_MIPS): $(DEP_MIPS) | 
 | 207 | $(LIBOBJ_PPC): $(DEP_PPC) | 
 | 208 | $(LIBOBJ_X86): $(DEP_X86) | 
 | 209 |  | 
| Nguyen Anh Quynh | 5bbbfce | 2014-02-28 10:49:46 +0800 | [diff] [blame] | 210 | # auto-generate include/diet.h | 
| Nguyen Anh Quynh | 8690959 | 2014-02-28 11:23:28 +0800 | [diff] [blame] | 211 | include/diet.h: config.mk | 
| Nguyen Anh Quynh | a4f37e0 | 2014-02-28 10:23:14 +0800 | [diff] [blame] | 212 | 	@echo "// File auto-generated by Makefile for Capstone framework. DO NOT MODIFY!" > include/diet.h | 
| Nguyen Anh Quynh | 5bbbfce | 2014-02-28 10:49:46 +0800 | [diff] [blame] | 213 | 	@echo "" >> include/diet.h | 
| Nguyen Anh Quynh | a4f37e0 | 2014-02-28 10:23:14 +0800 | [diff] [blame] | 214 | 	@echo "#ifndef CAPSTONE_DIET_H" >> include/diet.h | 
| Nguyen Anh Quynh | fc83a43 | 2014-02-22 23:26:27 +0800 | [diff] [blame] | 215 | 	@echo "#define CAPSTONE_DIET_H" >> include/diet.h | 
 | 216 | 	@echo "" >> include/diet.h | 
| Nguyen Anh Quynh | fc83a43 | 2014-02-22 23:26:27 +0800 | [diff] [blame] | 217 | ifneq (,$(findstring yes,$(CAPSTONE_DIET))) | 
| Nguyen Anh Quynh | a4f37e0 | 2014-02-28 10:23:14 +0800 | [diff] [blame] | 218 | 	@echo "// Capstone is in DIET mode" >> include/diet.h | 
| Nguyen Anh Quynh | fc83a43 | 2014-02-22 23:26:27 +0800 | [diff] [blame] | 219 | 	@echo "#define CAPSTONE_DIET" >> include/diet.h | 
| Nguyen Anh Quynh | a347d65 | 2014-02-24 15:31:41 +0800 | [diff] [blame] | 220 | else | 
| Nguyen Anh Quynh | a4f37e0 | 2014-02-28 10:23:14 +0800 | [diff] [blame] | 221 | 	@echo "// Capstone is in standard mode (NOT diet)" >> include/diet.h | 
| Nguyen Anh Quynh | 3626a35 | 2014-02-24 15:34:11 +0800 | [diff] [blame] | 222 | 	@echo "#undef CAPSTONE_DIET" >> include/diet.h | 
| Nguyen Anh Quynh | fc83a43 | 2014-02-22 23:26:27 +0800 | [diff] [blame] | 223 | endif | 
| Nguyen Anh Quynh | a347d65 | 2014-02-24 15:31:41 +0800 | [diff] [blame] | 224 | 	@echo "" >> include/diet.h | 
| Nguyen Anh Quynh | fc83a43 | 2014-02-22 23:26:27 +0800 | [diff] [blame] | 225 | 	@echo "#endif" >> include/diet.h | 
 | 226 |  | 
| pancake | ca9f1b2 | 2013-12-06 17:03:41 +0100 | [diff] [blame] | 227 | $(ARCHIVE): $(LIBOBJ) | 
 | 228 | 	rm -f $(ARCHIVE) | 
 | 229 | 	$(AR) q $(ARCHIVE) $(LIBOBJ) | 
 | 230 | 	$(RANLIB) $(ARCHIVE) | 
| pancake | f1cbce2 | 2013-11-27 15:31:26 +0100 | [diff] [blame] | 231 |  | 
| pancake | ca9f1b2 | 2013-12-06 17:03:41 +0100 | [diff] [blame] | 232 | $(PKGCFGF): | 
| Nguyen Anh Quynh | 0655fe4 | 2013-12-22 13:23:20 +0800 | [diff] [blame] | 233 | 	echo 'Name: capstone' > $(PKGCFGF) | 
| Nguyen Anh Quynh | 296a231 | 2014-03-05 23:50:41 +0800 | [diff] [blame] | 234 | 	echo 'Description: Capstone disassembly engine' >> $(PKGCFGF) | 
| Nguyen Anh Quynh | 0655fe4 | 2013-12-22 13:23:20 +0800 | [diff] [blame] | 235 | 	echo 'Version: $(VERSION)' >> $(PKGCFGF) | 
 | 236 | 	echo 'libdir=$(LIBDIR)' >> $(PKGCFGF) | 
 | 237 | 	echo 'includedir=$(PREFIX)/include/capstone' >> $(PKGCFGF) | 
 | 238 | 	echo 'archive=$${libdir}/libcapstone.a' >> $(PKGCFGF) | 
 | 239 | 	echo 'Libs: -L$${libdir} -lcapstone' >> $(PKGCFGF) | 
 | 240 | 	echo 'Cflags: -I$${includedir}' >> $(PKGCFGF) | 
| pancake | 44ce0fb | 2013-12-03 04:11:37 +0100 | [diff] [blame] | 241 |  | 
| pancake | ca9f1b2 | 2013-12-06 17:03:41 +0100 | [diff] [blame] | 242 | install: $(PKGCFGF) $(ARCHIVE) $(LIBRARY) | 
| pancake | 02cad6e | 2013-11-27 15:38:44 +0100 | [diff] [blame] | 243 | 	mkdir -p $(LIBDIR) | 
 | 244 | 	$(INSTALL_LIBRARY) lib$(LIBNAME).$(EXT) $(LIBDIR) | 
| Daniel Godas-Lopez | 0f7c432 | 2013-11-28 18:22:50 +0000 | [diff] [blame] | 245 | 	$(INSTALL_DATA) lib$(LIBNAME).$(AR_EXT) $(LIBDIR) | 
| pancake | 02cad6e | 2013-11-27 15:38:44 +0100 | [diff] [blame] | 246 | 	mkdir -p $(INCDIR)/$(LIBNAME) | 
| Nguyen Anh Quynh | 3524056 | 2014-01-04 09:18:48 +0800 | [diff] [blame] | 247 | 	$(INSTALL_DATA) include/*.h $(INCDIR)/$(LIBNAME) | 
| Nguyen Anh Quynh | 8f856c7 | 2014-02-24 15:17:40 +0800 | [diff] [blame] | 248 | 	mkdir -p $(PKGCFCGDIR) | 
 | 249 | 	$(INSTALL_DATA) $(PKGCFGF) $(PKGCFCGDIR)/ | 
| Nguyen Anh Quynh | 26ee41a | 2013-11-27 12:11:31 +0800 | [diff] [blame] | 250 |  | 
 | 251 | uninstall: | 
| pancake | 02cad6e | 2013-11-27 15:38:44 +0100 | [diff] [blame] | 252 | 	rm -rf $(INCDIR)/$(LIBNAME) | 
 | 253 | 	rm -f $(LIBDIR)/lib$(LIBNAME).$(EXT) | 
| Daniel Godas-Lopez | 0f7c432 | 2013-11-28 18:22:50 +0000 | [diff] [blame] | 254 | 	rm -f $(LIBDIR)/lib$(LIBNAME).$(AR_EXT) | 
| Nguyen Anh Quynh | 8f856c7 | 2014-02-24 15:17:40 +0800 | [diff] [blame] | 255 | 	rm -f $(PKGCFCGDIR)/$(LIBNAME).pc | 
| Nguyen Anh Quynh | 26ee41a | 2013-11-27 12:11:31 +0800 | [diff] [blame] | 256 |  | 
 | 257 | clean: | 
| Daniel Godas-Lopez | 0f7c432 | 2013-11-28 18:22:50 +0000 | [diff] [blame] | 258 | 	rm -f $(LIBOBJ) lib$(LIBNAME).* | 
| Nguyen Anh Quynh | d63ddac | 2014-01-09 10:35:58 +0800 | [diff] [blame] | 259 | 	rm -f $(PKGCFGF) | 
| Nguyen Anh Quynh | 5bbbfce | 2014-02-28 10:49:46 +0800 | [diff] [blame] | 260 | 	rm -f include/diet.h | 
| pancake | 02cad6e | 2013-11-27 15:38:44 +0100 | [diff] [blame] | 261 | 	$(MAKE) -C bindings/python clean | 
| danghvu | 7545b9b | 2013-11-28 10:18:02 -0600 | [diff] [blame] | 262 | 	$(MAKE) -C bindings/java clean | 
| pancake | 02cad6e | 2013-11-27 15:38:44 +0100 | [diff] [blame] | 263 | 	$(MAKE) -C bindings/ocaml clean | 
 | 264 | 	$(MAKE) -C tests clean | 
| Nguyen Anh Quynh | 26ee41a | 2013-11-27 12:11:31 +0800 | [diff] [blame] | 265 |  | 
| Nguyen Anh Quynh | a580d92 | 2014-01-18 12:47:15 +0800 | [diff] [blame] | 266 |  | 
 | 267 | TAG ?= HEAD | 
 | 268 | ifeq ($(TAG), HEAD) | 
 | 269 | DIST_VERSION = latest | 
 | 270 | else | 
 | 271 | DIST_VERSION = $(TAG) | 
 | 272 | endif | 
 | 273 |  | 
| pancake | 35cef7f | 2014-01-18 03:42:15 +0100 | [diff] [blame] | 274 | dist: | 
| Nguyen Anh Quynh | 186d501 | 2014-01-22 18:46:20 +0800 | [diff] [blame] | 275 | 	git archive --format=tar.gz --prefix=capstone-$(DIST_VERSION)/ $(TAG) > capstone-$(DIST_VERSION).tgz | 
| pancake | 35cef7f | 2014-01-18 03:42:15 +0100 | [diff] [blame] | 276 |  | 
| Nguyen Anh Quynh | 26ee41a | 2013-11-27 12:11:31 +0800 | [diff] [blame] | 277 | .c.o: | 
| pancake | ca9f1b2 | 2013-12-06 17:03:41 +0100 | [diff] [blame] | 278 | 	$(CC) $(CFLAGS) -c $< -o $@ |