blob: e593c30d31b575c322d14ed36c1304e901c1d7ef [file] [log] [blame]
Nguyen Anh Quynh1ae38db2013-11-27 14:33:13 +08001Capstone source is organized as followings.
2
Nguyen Anh Quynh7f36d262013-12-05 10:25:51 +08003
Nguyen Anh Quynh8282dc62014-01-15 21:20:47 +08004. <- core engine + README + COMPILE.TXT etc
Nguyen Anh Quynhbdbde1f2013-11-27 17:00:06 +08005├── arch <- code handling disasm engine for each arch
Nguyen Anh Quynh7f36d262013-12-05 10:25:51 +08006│   ├── AArch64 <- ARM64 (aka ARMv8) engine
7│   ├── ARM <- ARM engine
Nguyen Anh Quynh7732f3a2018-12-12 16:30:45 +07008│   ├── EVM <- Ethereum engine
Wolfgang Schwotzer22b4d0e2017-10-21 15:44:36 +02009│   ├── M680X <- M680X engine
Nguyen Anh Quynh74a114e2015-10-05 16:14:19 +080010│   ├── M68K <- M68K engine
Nguyen Anh Quynh7f36d262013-12-05 10:25:51 +080011│   ├── Mips <- Mips engine
Nguyen Anh Quynhab26cd92014-01-07 11:46:21 +080012│   ├── PowerPC <- PowerPC engine
Nguyen Anh Quynh636f5062014-03-23 22:24:28 +080013│   ├── Sparc <- Sparc engine
14│   ├── SystemZ <- SystemZ engine
Nguyen Anh Quynh1781e582018-12-16 21:53:56 +080015│   ├── TMS320C64x <- TMS320C64x engine
Nguyen Anh Quynhc80d8402014-05-26 23:02:48 +080016│   ├── X86 <- X86 engine
17│   └── XCore <- XCore engine
Nguyen Anh Quynh18ebd802013-11-27 21:29:12 +080018├── bindings <- all bindings are under this dir
Nguyen Anh Quynhbdbde1f2013-11-27 17:00:06 +080019│   ├── java <- Java bindings + test code
20│   ├── ocaml <- Ocaml bindings + test code
pancake5ea50372014-11-01 22:14:13 +010021│   └── python <- Python bindings + test code
Nguyen Anh Quynhea980bd2014-11-02 00:34:14 +080022├── contrib <- Code contributed by community to help Capstone integration
Nguyen Anh Quynhfcd1b442016-10-11 00:20:58 +080023├── cstool <- Cstool
Nguyen Anh Quynhea980bd2014-11-02 00:34:14 +080024├── docs <- Documentation
Nguyen Anh Quynh7f36d262013-12-05 10:25:51 +080025├── include <- API headers in C language (*.h)
Nguyen Anh Quynhea980bd2014-11-02 00:34:14 +080026├── msvc <- Microsoft Visual Studio support (for Windows compile)
27├── packages <- Packages for Linux/OSX/BSD.
tandasat45e5eab2016-05-11 21:48:32 -070028├── windows <- Windows support (for Windows kernel driver compile)
Nguyen Anh Quynh6adc5c12014-01-07 11:34:05 +080029├── suite <- Development test tools - for Capstone developers only
Nguyen Anh Quynh7f36d262013-12-05 10:25:51 +080030├── tests <- Test code (in C language)
pancake5ea50372014-11-01 22:14:13 +010031└── xcode <- Xcode support (for MacOSX compile)
Nguyen Anh Quynh1ae38db2013-11-27 14:33:13 +080032
33
Nguyen Anh Quynhea980bd2014-11-02 00:34:14 +080034Follow instructions in COMPILE.TXT for how to compile and run test code.
Nguyen Anh Quynh18ebd802013-11-27 21:29:12 +080035
Nguyen Anh Quynh7f36d262013-12-05 10:25:51 +080036Note: if you find some strange bugs, it is recommended to firstly clean
37the code and try to recompile/reinstall again. This can be done with:
Nguyen Anh Quynh1ae38db2013-11-27 14:33:13 +080038
Nguyen Anh Quynh06aef6b2014-05-07 16:00:33 +080039 $ ./make.sh
40 $ sudo ./make.sh install
Nguyen Anh Quynh1ae38db2013-11-27 14:33:13 +080041
Nguyen Anh Quynhfcd1b442016-10-11 00:20:58 +080042Then test Capstone with cstool, for example:
43
44 $ cstool x32 "90 91"
45
Nguyen Anh Quynhea980bd2014-11-02 00:34:14 +080046At the same time, for Java/Ocaml/Python bindings, be sure to always use
Satoshi Tanda565b6c32016-09-27 07:39:51 -070047the bindings coming with the core to avoid potential incompatibility issue
Nguyen Anh Quynhea980bd2014-11-02 00:34:14 +080048with older versions.
49See bindings/<language>/README for detail instructions on how to compile &
50install the bindings.