xref: /aosp_15_r20/external/capstone/cmake.sh (revision 9a0e4156d50a75a99ec4f1653a0e9602a5d45c18)
1*9a0e4156SSadaf Ebrahimi#!/bin/sh
2*9a0e4156SSadaf Ebrahimi
3*9a0e4156SSadaf Ebrahimi# Capstone disassembler engine (www.capstone-engine.org)
4*9a0e4156SSadaf Ebrahimi# Build Capstone libs for specified architecture, or all if none is specified (libcapstone.so & libcapstone.a) on *nix with CMake & make
5*9a0e4156SSadaf Ebrahimi# By Nguyen Anh Quynh, Jorn Vernee, 2019
6*9a0e4156SSadaf Ebrahimi
7*9a0e4156SSadaf EbrahimiFLAGS="-DCMAKE_BUILD_TYPE=Release"
8*9a0e4156SSadaf Ebrahimi# Uncomment below line to compile in Diet mode
9*9a0e4156SSadaf Ebrahimi# FLAGS+=" -DCAPSTONE_BUILD_DIET=ON"
10*9a0e4156SSadaf Ebrahimi
11*9a0e4156SSadaf Ebrahimicase $1 in
12*9a0e4156SSadaf Ebrahimi  ARM)
13*9a0e4156SSadaf Ebrahimi    ARCH=ARM
14*9a0e4156SSadaf Ebrahimi    ;;
15*9a0e4156SSadaf Ebrahimi  ARM64)
16*9a0e4156SSadaf Ebrahimi    ARCH=ARM64
17*9a0e4156SSadaf Ebrahimi    ;;
18*9a0e4156SSadaf Ebrahimi  M68K)
19*9a0e4156SSadaf Ebrahimi    ARCH=M68K
20*9a0e4156SSadaf Ebrahimi    ;;
21*9a0e4156SSadaf Ebrahimi  MIPS)
22*9a0e4156SSadaf Ebrahimi    ARCH=MIPS
23*9a0e4156SSadaf Ebrahimi    ;;
24*9a0e4156SSadaf Ebrahimi  PowerPC)
25*9a0e4156SSadaf Ebrahimi    ARCH=PPC
26*9a0e4156SSadaf Ebrahimi    ;;
27*9a0e4156SSadaf Ebrahimi  Sparc)
28*9a0e4156SSadaf Ebrahimi    ARCH=SPARC
29*9a0e4156SSadaf Ebrahimi    ;;
30*9a0e4156SSadaf Ebrahimi  SystemZ)
31*9a0e4156SSadaf Ebrahimi    ARCH=SYSZ
32*9a0e4156SSadaf Ebrahimi    ;;
33*9a0e4156SSadaf Ebrahimi  XCore)
34*9a0e4156SSadaf Ebrahimi    ARCH=XCORE
35*9a0e4156SSadaf Ebrahimi    ;;
36*9a0e4156SSadaf Ebrahimi  x86)
37*9a0e4156SSadaf Ebrahimi    ARCH=X86
38*9a0e4156SSadaf Ebrahimi    ;;
39*9a0e4156SSadaf Ebrahimi  TMS320C64x)
40*9a0e4156SSadaf Ebrahimi    ARCH=TMS320C64X
41*9a0e4156SSadaf Ebrahimi    ;;
42*9a0e4156SSadaf Ebrahimi  M680x)
43*9a0e4156SSadaf Ebrahimi    ARCH=M680X
44*9a0e4156SSadaf Ebrahimi    ;;
45*9a0e4156SSadaf Ebrahimi  EVM)
46*9a0e4156SSadaf Ebrahimi    ARCH=EVM
47*9a0e4156SSadaf Ebrahimi    ;;
48*9a0e4156SSadaf Ebrahimi  MOS65XX)
49*9a0e4156SSadaf Ebrahimi    ARCH=MOS65XX
50*9a0e4156SSadaf Ebrahimi    ;;
51*9a0e4156SSadaf Ebrahimi  *)
52*9a0e4156SSadaf Ebrahimi    ;;
53*9a0e4156SSadaf Ebrahimiesac
54*9a0e4156SSadaf Ebrahimi
55*9a0e4156SSadaf Ebrahimiif [ "x${ARCH}" = "x" ]; then
56*9a0e4156SSadaf Ebrahimi  FLAGS+=" -DCAPSTONE_ARCHITECTURE_DEFAULT=ON"
57*9a0e4156SSadaf Ebrahimielse
58*9a0e4156SSadaf Ebrahimi  FLAGS+=" -DCAPSTONE_ARCHITECTURE_DEFAULT=OFF -DCAPSTONE_${ARCH}_SUPPORT=ON"
59*9a0e4156SSadaf Ebrahimifi
60*9a0e4156SSadaf Ebrahimi
61*9a0e4156SSadaf Ebrahimicmake $FLAGS ..
62*9a0e4156SSadaf Ebrahimi
63*9a0e4156SSadaf Ebrahimimake -j8
64