Home | History | Annotate | Download | only in capstone
      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 
      7 CAPSTONE_ARCHS ?= arm aarch64 mips powerpc sparc systemz x86 xcore
      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 
     18 CAPSTONE_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 
     32 CAPSTONE_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 
     56 CAPSTONE_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 
     62 CAPSTONE_X86_ATT_DISABLE ?= no
     63 
     64 ################################################################################
     65 # Change 'CAPSTONE_STATIC = yes' to 'CAPSTONE_STATIC = no' to avoid building
     66 # a static library.
     67 
     68 CAPSTONE_STATIC ?= yes
     69 
     70 
     71 ################################################################################
     72 # Change 'CAPSTONE_SHARED = yes' to 'CAPSTONE_SHARED = no' to avoid building
     73 # a shared library.
     74 
     75 CAPSTONE_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 
     82 CAPSTONE_HAS_OSXKERNEL ?= no
     83