Capstone source is organized as followings.


.                   <- core engine + README + COMPILE.TXT etc
├── arch            <- code handling disasm engine for each arch
│   ├── AArch64     <- ARM64 (aka ARMv8) engine
│   ├── ARM         <- ARM engine
│   ├── Mips        <- Mips engine
│   ├── PowerPC     <- PowerPC engine
│   ├── Sparc       <- Sparc engine
│   ├── SystemZ     <- SystemZ engine
│   ├── X86         <- X86 engine
│   └── XCore       <- XCore engine
├── bindings        <- all bindings are under this dir
│   ├── java        <- Java bindings + test code
│   ├── ocaml       <- Ocaml bindings + test code
│   ├── python      <- Python bindings + test code
├── include         <- API headers in C language (*.h)
├── suite           <- Development test tools - for Capstone developers only
├── tests           <- Test code (in C language)
├── contrib         <- Code contributed by community to help Capstone integration


Follow instructions in COMPILE.TXT to see how to compile and run code.

Note: if you find some strange bugs, it is recommended to firstly clean
the code and try to recompile/reinstall again. This can be done with:

	$ ./make.sh
	$ sudo ./make.sh install


