Skip to content

Commit

Permalink
add COMPILE_CMAKE.TXT & update COMPILE.TXT
Browse files Browse the repository at this point in the history
  • Loading branch information
aquynh committed May 28, 2014
1 parent ecc5ffb commit f1c3acb
Show file tree
Hide file tree
Showing 3 changed files with 93 additions and 4 deletions.
10 changes: 6 additions & 4 deletions COMPILE.TXT
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ Linux, *BSD & Solaris. We also show steps to cross-compile for Microsoft Windows

To natively compile for Windows using Microsoft Visual Studio, see COMPILE_MSVC.TXT.

To compile using CMake, see COMPILE_CMAKE.TXT.

*-*-*-*-*-*

Capstone requires no prerequisite packages, so it is easy to compile & install.
Expand All @@ -11,11 +13,11 @@ Capstone requires no prerequisite packages, so it is easy to compile & install.

(0) Tailor Capstone to your need.

Out of 7 archtitectures supported by Capstone (Arm, Arm64, Mips, PPC, Sparc,
SystemZ & X86), if you just need several selected archs, choose which ones you
want to compile in by editing "config.mk" before going to next steps.
Out of 8 archtitectures supported by Capstone (Arm, Arm64, Mips, PPC, Sparc,
SystemZ, XCore & X86), if you just need several selected archs, choose which
ones you want to compile in by editing "config.mk" before going to next steps.

By default, all 7 architectures are compiled.
By default, all 8 architectures are compiled.

The other way of customize Capstone without having to edit config.mk is to
pass the desired options on the commandline to ./make.sh. Currently,
Expand Down
83 changes: 83 additions & 0 deletions COMPILE_CMAKE.TXT
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
This documentation explains how to compile Capstone with CMake, focus on
using Microsoft Visual C as the compiler.

To compile Capstone on *nix, see COMPILE.TXT.

To compile Capstone on Windows using Visual Studio, see COMPILE_MSVC.TXT.

*-*-*-*-*-*

This documentation requires CMake & Windows SDK or MS Visual Studio installed on
your machine.

Get CMake for free from http://www.cmake.org.



(0) Tailor Capstone to your need.

Out of 8 archtitectures supported by Capstone (Arm, Arm64, Mips, PPC, Sparc,
SystemZ, X86 & XCore), if you just need several selected archs, choose the ones
you want to compile in by opening CMakeLists.txt, then directly editing
the options there. This must be done before going to the
next steps.

Capstone has following compile-time options.

- ARM_SUPPORT: support ARM. Change this to OFF to remove ARM support.
- ARM64_SUPPORT: support ARM64. Change this to OFF to remove ARM64 support.
- MIPS_SUPPORT: support Mips. Change this to OFF to remove Mips support.
- PPC_SUPPORT: support PPC. Change this to OFF to remove PPC support.
- SPARC_SUPPORT: support Sparc. Change this to OFF to remove Sparc support.
- SYSZ_SUPPORT: support SystemZ. Change this to OFF to remove SystemZ support.
- XCORE_SUPPORT: support XCore. Change this to OFF to remove XCore support.
- X86_SUPPORT: support X86. Change this to OFF to remove X86 support.

By default, all 8 architectures are compiled in.


Besides, Capstone also allows some more customization via following macros.

- USE_SYS_DYN_MEM: change this to OFF to use your own dynamic memory management.
- BUILD_DIET: change this to ON to make the binaries more compact.
- X86_REDUCE: change this to ON to make X86 binary smaller.

By default, Capstone use system dynamic memory management, and both DIET and X86_REDUCE
modes are disable.


For each option, refer to docs/README for more details.



(1) CMake allows you to generate different generators to build Capstone. Below is
some examples on how to build Capstone on Windows with CMake.


- To build Capstone using Nmake of Windows SDK, do f:

mkdir build
cd build
cmake -G "NMake Makefiles" ..
nmake

After this, find the samples test*.exe, libcapstone_static.lib & libcapstone.dll
in the same directory.



- To build Capstone using Visual Studio, choose the generator accordingly to the
version of Visual Studio on your machine. For example, with Visual Studio 2013, do:

mkdir build
cd build
cmake -G "Visual Studio 12" ..

After this, find libcapstone.sln in the same directory. Open it with Visual Studio
and build the solution as usual.



(2) You can make sure the prior steps successfully worked by launching one of the
testing binary (test*.exe).

4 changes: 4 additions & 0 deletions COMPILE_MSVC.TXT
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
This documentation explains how to compile Capstone on Windows using
Microsoft Visual Studio version 2010 or newer.

To compile Capstone on *nix, see COMPILE.TXT

To compile Capstone with CMake, see COMPILE_CMAKE.TXT

*-*-*-*-*-*

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

0 comments on commit f1c3acb

Please sign in to comment.