File: COMPILE.TXT

package info (click to toggle)
capstone 2.1.2-2.1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 13,784 kB
  • ctags: 16,635
  • sloc: ansic: 99,525; pascal: 26,376; python: 5,637; java: 5,426; ml: 3,961; makefile: 484; sh: 110; ruby: 12
file content (132 lines) | stat: -rw-r--r-- 3,525 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
How to compile, install & run Capstone for Linux, Mac OSX, *BSD and Windows
                        *-*-*-*-*-*

Capstone requires no prerequisite packages, so it is easy to compile & install.



(0) Tailor Capstone to your need.

  Out of 5 architectures supported by Capstone (ARM, ARM64, MIPS, PPC & x86),
  if you just need several selected archs, you can choose which ones you want
  to compile in by modifying config.mk before going to next steps.

  By default, all 5 architectures are compiled.



(1) Compile from source

  On *nix (such as OSX, Linux, *BSD, Solaris):

  - To compile for current platform, run:

		$ ./make.sh

  - On a 64-bit OS, run command below to cross-compile Capstone for 32-bit binary:

	$ ./make.sh nix32



(2) Install Capstone on *nix

  To install Capstone, run:

	$ sudo ./make.sh install

	For FreeBSD/OpenBSD, where sudo is unavailable, run:

	$ su; ./make.sh install

  Users are then required to enter root password to copy Capstone into machine
  system directories.

  Afterwards, run ./tests/test* to see the tests disassembling sample code.


  NOTE: The core framework installed by "./make.sh install" consist of
  following files:

	/usr/include/capstone/capstone.h
	/usr/include/capstone/x86.h
	/usr/include/capstone/arm.h
	/usr/include/capstone/arm64.h
	/usr/include/capstone/mips.h
	/usr/include/capstone/ppc.h
	/usr/lib/libcapstone.so (for Linux/*nix), or /usr/lib/libcapstone.dylib (OSX)
	/usr/lib/libcapstone.a



(3) Cross-compile Windows from *nix

  To cross-compile for Windows, Linux & gcc-mingw-w64-i686 (and also gcc-mingw-w64-x86-64
  for 64-bit binaries) are required.

	- To cross-compile Windows 32-bit binary, simply run:
		$ ./make.sh cross-win32

	- To cross-compile Windows 64-bit binary, run:
		$ ./make.sh cross-win64

  Resulting files libcapstone.dll, libcapstone.dll.a & tests/test*.exe can then
  be used on a Windows machine.



(4) Cross-compile iOS from Mac OSX.

  To cross-compile for iOS (iPhone/iPad/iPod), Mac OSX with XCode installed is required.

	- To cross-compile for ArmV7 (iPod 4, iPad 1/2/3, iPhone4, iPhone4S), run:
		$ ./make.sh ios_armv7

	- To cross-compile for ArmV7s (iPad 4, iPhone 5C, iPad mini), run:
		$ ./make.sh ios_armv7s

	- To cross-compile for Arm64 (iPhone 5S, iPad mini Retina, iPad Air), run:
		$ ./make.sh ios_arm64

	- To cross-compile for all iDevices (armv7 + armv7s + arm64), run:
		$ ./make.sh ios

  Resulted files libcapstone.dylib, libcapstone.a & tests/test* can then
  be used on iOS devices.



(5) Compile on Windows with Cygwin

  To compile under Cygwin gcc-mingw-w64-i686 or x86_64-w64-mingw32 run:

        - To compile Windows 32-bit binary under Cygwin, simply run
                $ ./make.sh cygwin-mingw32

        - To compile Windows 64-bit binary under Cygwin, run
                $ ./make.sh cygwin-mingw64

  Resulted files libcapstone.dll, libcapstone.dll.a & tests/test*.exe can then
  be used on Windows machine.


(6) By default, "cc" (default C compiler on the system) is used as compiler.

	- To use "clang" compiler instead, run command below:

		$ ./make.sh clang

	- To use "gcc" compiler instead, run:

		$ ./make.sh gcc



(7) Language bindings

  So far, Python, Ocaml & Java are supported by bindings in the main code.
  Look for the bindings under directory bindings/, and refer to README file
  of the corresponding language.

  Community also provide bindings for C#, Go, Ruby & Vala. Links to these can
  be found at the address http://capstone-engine.org/download.html.