• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# This file contains all customized compile options for Capstone.
2# Consult COMPILE.TXT & docs/README for details.
3
4################################################################################
5# Specify which archs you want to compile in. By default, we build all archs.
6
7CAPSTONE_ARCHS ?= arm aarch64 m68k mips powerpc sparc systemz x86 xcore tms320c64x m680x evm mos65xx
8
9
10################################################################################
11# Comment out the line below ('CAPSTONE_USE_SYS_DYN_MEM = yes'), or change it to
12# 'CAPSTONE_USE_SYS_DYN_MEM = no' if do NOT use malloc/calloc/realloc/free/
13# vsnprintf() provided by system for internal dynamic memory management.
14#
15# NOTE: in that case, specify your own malloc/calloc/realloc/free/vsnprintf()
16# functions in your program via API cs_option(), using CS_OPT_MEM option type.
17
18CAPSTONE_USE_SYS_DYN_MEM ?= yes
19
20
21################################################################################
22# Change 'CAPSTONE_DIET = no' to 'CAPSTONE_DIET = yes' to make the library
23# more compact: use less memory & smaller in binary size.
24# This setup will remove the @mnemonic & @op_str data, plus semantic information
25# such as @regs_read/write & @group. The amount of binary size reduced is
26# up to 50% in some individual archs.
27#
28# NOTE: we still keep all those related fileds @mnemonic, @op_str, @regs_read,
29# @regs_write, @groups, etc in fields in cs_insn structure regardless, but they
30# will not be updated (i.e empty), thus become irrelevant.
31
32CAPSTONE_DIET ?= no
33
34
35################################################################################
36# Change 'CAPSTONE_X86_REDUCE = no' to 'CAPSTONE_X86_REDUCE = yes' to remove
37# non-critical instruction sets of X86, making the binary size smaller by ~60%.
38# This is desired in special cases, such as OS kernel, where these kind of
39# instructions are not used.
40#
41# The list of instruction sets to be removed includes:
42# - Floating Point Unit (FPU)
43# - MultiMedia eXtension (MMX)
44# - Streaming SIMD Extensions (SSE)
45# - 3DNow
46# - Advanced Vector Extensions (AVX)
47# - Fused Multiply Add Operations (FMA)
48# - eXtended Operations (XOP)
49# - Transactional Synchronization Extensions (TSX)
50#
51# Due to this removal, the related instructions are nolonger supported.
52#
53# By default, Capstone is compiled with 'CAPSTONE_X86_REDUCE = no',
54# thus supports complete X86 instructions.
55
56CAPSTONE_X86_REDUCE ?= no
57
58################################################################################
59# Change 'CAPSTONE_X86_ATT_DISABLE = no' to 'CAPSTONE_X86_ATT_DISABLE = yes' to
60# disable AT&T syntax on x86 to reduce library size.
61
62CAPSTONE_X86_ATT_DISABLE ?= no
63
64################################################################################
65# Change 'CAPSTONE_STATIC = yes' to 'CAPSTONE_STATIC = no' to avoid building
66# a static library.
67
68CAPSTONE_STATIC ?= yes
69
70
71################################################################################
72# Change 'CAPSTONE_SHARED = yes' to 'CAPSTONE_SHARED = no' to avoid building
73# a shared library.
74
75CAPSTONE_SHARED ?= yes
76
77################################################################################
78# Change 'CAPSTONE_HAS_OSXKERNEL = no' to 'CAPSTONE_HAS_OSXKERNEL = yes' to
79# enable OS X kernel embedding support. If 'CAPSTONE_USE_SYS_DYN_MEM = yes',
80# then kern_os_* functions are used for memory management.
81
82CAPSTONE_HAS_OSXKERNEL ?= no
83