Make pkg-config and source consistent with installation
diff --git a/MCInst.h b/MCInst.h
index bef8c26..5a03cbe 100644
--- a/MCInst.h
+++ b/MCInst.h
@@ -21,7 +21,7 @@
 
 #include <stdint.h>
 
-#include "include/capstone.h"
+#include "include/capstone/capstone.h"
 
 typedef struct MCInst MCInst;
 typedef struct cs_struct cs_struct;
diff --git a/MCInstrDesc.h b/MCInstrDesc.h
index ae94b4f..a053536 100644
--- a/MCInstrDesc.h
+++ b/MCInstrDesc.h
@@ -19,7 +19,7 @@
 #define CS_LLVM_MC_MCINSTRDESC_H
 
 #include <stdint.h>
-#include "include/platform.h"
+#include "capstone/platform.h"
 
 //===----------------------------------------------------------------------===//
 // Machine Operand Flags and Description
diff --git a/MCRegisterInfo.h b/MCRegisterInfo.h
index 58c2f2d..f1fd172 100644
--- a/MCRegisterInfo.h
+++ b/MCRegisterInfo.h
@@ -20,7 +20,7 @@
 #define CS_LLVM_MC_MCREGISTERINFO_H
 
 #include <stdint.h>
-#include "include/platform.h"
+#include "capstone/platform.h"
 
 /// An unsigned integer type large enough to represent all physical registers,
 /// but not necessarily virtual registers.
diff --git a/Makefile b/Makefile
index 15c06ba..f226a6d 100644
--- a/Makefile
+++ b/Makefile
@@ -237,7 +237,7 @@
 
 
 PKGCFGDIR ?= $(LIBDATADIR)/pkgconfig
-API_MAJOR=$(shell echo `grep -e CS_API_MAJOR include/capstone.h | grep -v = | awk '{print $$3}'` | awk '{print $$1}')
+API_MAJOR=$(shell echo `grep -e CS_API_MAJOR include/capstone/capstone.h | grep -v = | awk '{print $$3}'` | awk '{print $$1}')
 VERSION_EXT =
 
 IS_APPLE := $(shell $(CC) -dM -E - < /dev/null | grep __apple_build_version__ | wc -l | tr -d " ")
@@ -373,7 +373,7 @@
 	$(INSTALL_DATA) $(ARCHIVE) $(LIBDIR)
 endif
 	mkdir -p $(INCDIR)/$(LIBNAME)
-	$(INSTALL_DATA) include/*.h $(INCDIR)/$(LIBNAME)
+	$(INSTALL_DATA) include/capstone/*.h $(INCDIR)/$(LIBNAME)
 	mkdir -p $(PKGCFGDIR)
 	$(INSTALL_DATA) $(PKGCFGF) $(PKGCFGDIR)/
 
@@ -453,7 +453,7 @@
 	echo 'Description: Capstone disassembly engine' >> $(PKGCFGF)
 	echo 'Version: $(PKG_VERSION)' >> $(PKGCFGF)
 	echo 'libdir=$(LIBDIR)' >> $(PKGCFGF)
-	echo 'includedir=$(INCDIR)/capstone' >> $(PKGCFGF)
+	echo 'includedir=$(INCDIR)' >> $(PKGCFGF)
 	echo 'archive=$${libdir}/libcapstone.a' >> $(PKGCFGF)
 	echo 'Libs: -L$${libdir} -lcapstone' >> $(PKGCFGF)
 	echo 'Cflags: -I$${includedir}' >> $(PKGCFGF)
diff --git a/arch/AArch64/AArch64Disassembler.h b/arch/AArch64/AArch64Disassembler.h
index 0f84c85..1362601 100644
--- a/arch/AArch64/AArch64Disassembler.h
+++ b/arch/AArch64/AArch64Disassembler.h
@@ -6,7 +6,7 @@
 
 #include <stdint.h>
 
-#include "../../include/capstone.h"
+#include "capstone/capstone.h"
 #include "../../MCRegisterInfo.h"
 #include "../../MCInst.h"
 
diff --git a/arch/AArch64/AArch64Mapping.h b/arch/AArch64/AArch64Mapping.h
index 69edef9..2683c09 100644
--- a/arch/AArch64/AArch64Mapping.h
+++ b/arch/AArch64/AArch64Mapping.h
@@ -4,7 +4,7 @@
 #ifndef CS_ARM64_MAP_H
 #define CS_ARM64_MAP_H
 
-#include "../../include/capstone.h"
+#include "capstone/capstone.h"
 
 // return name of regiser in friendly string
 const char *AArch64_reg_name(csh handle, unsigned int reg);
diff --git a/arch/ARM/ARMAddressingModes.h b/arch/ARM/ARMAddressingModes.h
index 6d46ea7..9a0f4d2 100644
--- a/arch/ARM/ARMAddressingModes.h
+++ b/arch/ARM/ARMAddressingModes.h
@@ -17,7 +17,7 @@
 #ifndef CS_LLVM_TARGET_ARM_ARMADDRESSINGMODES_H
 #define CS_LLVM_TARGET_ARM_ARMADDRESSINGMODES_H
 
-#include "../../include/platform.h"
+#include "capstone/platform.h"
 #include "../../MathExtras.h"
 
 /// ARM_AM - ARM Addressing Mode Stuff
diff --git a/arch/ARM/ARMBaseInfo.h b/arch/ARM/ARMBaseInfo.h
index 971b774..d646802 100644
--- a/arch/ARM/ARMBaseInfo.h
+++ b/arch/ARM/ARMBaseInfo.h
@@ -20,7 +20,7 @@
 #ifndef CS_ARMBASEINFO_H
 #define CS_ARMBASEINFO_H
 
-#include "../../include/arm.h"
+#include "capstone/arm.h"
 
 // Defines symbolic names for ARM registers.  This defines a mapping from
 // register name to register number.
diff --git a/arch/ARM/ARMDisassembler.h b/arch/ARM/ARMDisassembler.h
index 713b00d..17c4a89 100644
--- a/arch/ARM/ARMDisassembler.h
+++ b/arch/ARM/ARMDisassembler.h
@@ -4,7 +4,7 @@
 #ifndef CS_ARMDISASSEMBLER_H
 #define CS_ARMDISASSEMBLER_H
 
-#include "../../include/capstone.h"
+#include "capstone/capstone.h"
 #include "../../MCRegisterInfo.h"
 
 void ARM_init(MCRegisterInfo *MRI);
diff --git a/arch/ARM/ARMMapping.h b/arch/ARM/ARMMapping.h
index f537e55..f26d537 100644
--- a/arch/ARM/ARMMapping.h
+++ b/arch/ARM/ARMMapping.h
@@ -4,7 +4,7 @@
 #ifndef CS_ARM_MAP_H
 #define CS_ARM_MAP_H
 
-#include "../../include/capstone.h"
+#include "../../include/capstone/capstone.h"
 #include "../../utils.h"
 
 // return name of regiser in friendly string
diff --git a/arch/Mips/MipsDisassembler.h b/arch/Mips/MipsDisassembler.h
index 933a99e..ae187d8 100644
--- a/arch/Mips/MipsDisassembler.h
+++ b/arch/Mips/MipsDisassembler.h
@@ -4,9 +4,7 @@
 #ifndef CS_MIPSDISASSEMBLER_H
 #define CS_MIPSDISASSEMBLER_H
 
-#include "../../include/capstone.h"
-
-#include "../../include/capstone.h"
+#include "capstone/capstone.h"
 #include "../../MCRegisterInfo.h"
 
 void Mips_init(MCRegisterInfo *MRI);
diff --git a/arch/Mips/MipsMapping.h b/arch/Mips/MipsMapping.h
index f6d4b4f..beeb80b 100644
--- a/arch/Mips/MipsMapping.h
+++ b/arch/Mips/MipsMapping.h
@@ -4,7 +4,7 @@
 #ifndef CS_MIPS_MAP_H
 #define CS_MIPS_MAP_H
 
-#include "../../include/capstone.h"
+#include "capstone/capstone.h"
 
 // return name of regiser in friendly string
 const char *Mips_reg_name(csh handle, unsigned int reg);
diff --git a/arch/PowerPC/PPCDisassembler.h b/arch/PowerPC/PPCDisassembler.h
index c26d970..842efe2 100644
--- a/arch/PowerPC/PPCDisassembler.h
+++ b/arch/PowerPC/PPCDisassembler.h
@@ -6,7 +6,7 @@
 
 #include <stdint.h>
 
-#include "../../include/capstone.h"
+#include "capstone/capstone.h"
 #include "../../MCRegisterInfo.h"
 #include "../../MCInst.h"
 
diff --git a/arch/PowerPC/PPCMapping.h b/arch/PowerPC/PPCMapping.h
index 9694f96..299521b 100644
--- a/arch/PowerPC/PPCMapping.h
+++ b/arch/PowerPC/PPCMapping.h
@@ -4,7 +4,7 @@
 #ifndef CS_PPC_MAP_H
 #define CS_PPC_MAP_H
 
-#include "../../include/capstone.h"
+#include "capstone/capstone.h"
 
 // return name of regiser in friendly string
 const char *PPC_reg_name(csh handle, unsigned int reg);
diff --git a/arch/PowerPC/PPCPredicates.h b/arch/PowerPC/PPCPredicates.h
index 9e47283..a620e14 100644
--- a/arch/PowerPC/PPCPredicates.h
+++ b/arch/PowerPC/PPCPredicates.h
@@ -17,7 +17,7 @@
 #ifndef CS_POWERPC_PPCPREDICATES_H
 #define CS_POWERPC_PPCPREDICATES_H
 
-#include "../../include/ppc.h"
+#include "capstone/ppc.h"
 
 // NOTE: duplicate of ppc_bc in ppc.h to maitain code compatibility with LLVM
 typedef enum ppc_predicate {
diff --git a/arch/Sparc/Sparc.h b/arch/Sparc/Sparc.h
index 42f9425..18c0d31 100644
--- a/arch/Sparc/Sparc.h
+++ b/arch/Sparc/Sparc.h
@@ -18,7 +18,7 @@
 #ifndef CS_SPARC_TARGET_SPARC_H
 #define CS_SPARC_TARGET_SPARC_H
 
-#include "../../include/sparc.h"
+#include "capstone/sparc.h"
 
 inline static char *SPARCCondCodeToString(sparc_cc CC)
 {
diff --git a/arch/Sparc/SparcDisassembler.h b/arch/Sparc/SparcDisassembler.h
index bafa230..5b635b8 100644
--- a/arch/Sparc/SparcDisassembler.h
+++ b/arch/Sparc/SparcDisassembler.h
@@ -6,7 +6,7 @@
 
 #include <stdint.h>
 
-#include "../../include/capstone.h"
+#include "capstone/capstone.h"
 #include "../../MCRegisterInfo.h"
 #include "../../MCInst.h"
 
diff --git a/arch/Sparc/SparcMapping.h b/arch/Sparc/SparcMapping.h
index fa9bcae..98d629a 100644
--- a/arch/Sparc/SparcMapping.h
+++ b/arch/Sparc/SparcMapping.h
@@ -4,7 +4,7 @@
 #ifndef CS_SPARC_MAP_H
 #define CS_SPARC_MAP_H
 
-#include "../../include/capstone.h"
+#include "capstone/capstone.h"
 
 // return name of regiser in friendly string
 const char *Sparc_reg_name(csh handle, unsigned int reg);
diff --git a/arch/SystemZ/SystemZDisassembler.h b/arch/SystemZ/SystemZDisassembler.h
index e77a738..4111e0a 100644
--- a/arch/SystemZ/SystemZDisassembler.h
+++ b/arch/SystemZ/SystemZDisassembler.h
@@ -6,7 +6,7 @@
 
 #include <stdint.h>
 
-#include "../../include/capstone.h"
+#include "capstone/capstone.h"
 #include "../../MCRegisterInfo.h"
 #include "../../MCInst.h"
 
diff --git a/arch/SystemZ/SystemZMapping.h b/arch/SystemZ/SystemZMapping.h
index 0abb772..fdbf17d 100644
--- a/arch/SystemZ/SystemZMapping.h
+++ b/arch/SystemZ/SystemZMapping.h
@@ -4,7 +4,7 @@
 #ifndef CS_SYSZ_MAP_H
 #define CS_SYSZ_MAP_H
 
-#include "../../include/capstone.h"
+#include "capstone/capstone.h"
 
 // return name of regiser in friendly string
 const char *SystemZ_reg_name(csh handle, unsigned int reg);
diff --git a/arch/X86/X86Disassembler.h b/arch/X86/X86Disassembler.h
index 2c21ede..f1a15ce 100644
--- a/arch/X86/X86Disassembler.h
+++ b/arch/X86/X86Disassembler.h
@@ -79,7 +79,7 @@
 
 #include <stdint.h>
 
-#include "../../include/capstone.h"
+#include "capstone/capstone.h"
 
 #include "../../MCInst.h"
 
diff --git a/arch/X86/X86Mapping.h b/arch/X86/X86Mapping.h
index d6f2517..0d80d78 100644
--- a/arch/X86/X86Mapping.h
+++ b/arch/X86/X86Mapping.h
@@ -4,7 +4,7 @@
 #ifndef CS_X86_MAP_H
 #define CS_X86_MAP_H
 
-#include "../../include/capstone.h"
+#include "capstone/capstone.h"
 #include "../../cs_priv.h"
 
 // map sib_base to x86_reg
diff --git a/arch/XCore/XCoreDisassembler.h b/arch/XCore/XCoreDisassembler.h
index 07cb9ff..645ecee 100644
--- a/arch/XCore/XCoreDisassembler.h
+++ b/arch/XCore/XCoreDisassembler.h
@@ -6,7 +6,7 @@
 
 #include <stdint.h>
 
-#include "../../include/capstone.h"
+#include "capstone/capstone.h"
 #include "../../MCRegisterInfo.h"
 #include "../../MCInst.h"
 
diff --git a/arch/XCore/XCoreMapping.h b/arch/XCore/XCoreMapping.h
index 7ad50d9..95e98db 100644
--- a/arch/XCore/XCoreMapping.h
+++ b/arch/XCore/XCoreMapping.h
@@ -4,7 +4,7 @@
 #ifndef CS_XCORE_MAP_H
 #define CS_XCORE_MAP_H
 
-#include "../../include/capstone.h"
+#include "capstone/capstone.h"
 
 // return name of regiser in friendly string
 const char *XCore_reg_name(csh handle, unsigned int reg);
diff --git a/bindings/ocaml/ocaml.c b/bindings/ocaml/ocaml.c
index aba0f1a..820eb4d 100644
--- a/bindings/ocaml/ocaml.c
+++ b/bindings/ocaml/ocaml.c
@@ -8,7 +8,7 @@
 #include <caml/alloc.h>
 #include <caml/fail.h>
 
-#include "../../include/capstone.h"
+#include "capstone/capstone.h"
 
 #define ARR_SIZE(a) (sizeof(a)/sizeof(a[0]))
 
diff --git a/cs.c b/cs.c
index c4f8c8f..2ad6b71 100644
--- a/cs.c
+++ b/cs.c
@@ -7,7 +7,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <capstone.h>
+#include <capstone/capstone.h>
 
 #include "utils.h"
 #include "MCRegisterInfo.h"
diff --git a/cs_priv.h b/cs_priv.h
index b56030c..a343022 100644
--- a/cs_priv.h
+++ b/cs_priv.h
@@ -4,7 +4,7 @@
 #ifndef CS_PRIV_H
 #define CS_PRIV_H
 
-#include <capstone.h>
+#include <capstone/capstone.h>
 
 #include "MCInst.h"
 #include "SStream.h"
diff --git a/include/arm.h b/include/capstone/arm.h
similarity index 100%
rename from include/arm.h
rename to include/capstone/arm.h
diff --git a/include/arm64.h b/include/capstone/arm64.h
similarity index 100%
rename from include/arm64.h
rename to include/capstone/arm64.h
diff --git a/include/capstone.h b/include/capstone/capstone.h
similarity index 100%
rename from include/capstone.h
rename to include/capstone/capstone.h
diff --git a/include/mips.h b/include/capstone/mips.h
similarity index 100%
rename from include/mips.h
rename to include/capstone/mips.h
diff --git a/include/platform.h b/include/capstone/platform.h
similarity index 100%
rename from include/platform.h
rename to include/capstone/platform.h
diff --git a/include/ppc.h b/include/capstone/ppc.h
similarity index 100%
rename from include/ppc.h
rename to include/capstone/ppc.h
diff --git a/include/sparc.h b/include/capstone/sparc.h
similarity index 100%
rename from include/sparc.h
rename to include/capstone/sparc.h
diff --git a/include/systemz.h b/include/capstone/systemz.h
similarity index 100%
rename from include/systemz.h
rename to include/capstone/systemz.h
diff --git a/include/x86.h b/include/capstone/x86.h
similarity index 100%
rename from include/x86.h
rename to include/capstone/x86.h
diff --git a/include/xcore.h b/include/capstone/xcore.h
similarity index 100%
rename from include/xcore.h
rename to include/capstone/xcore.h
diff --git a/tests/test.c b/tests/test.c
index 9d77a54..b6fd8c9 100644
--- a/tests/test.c
+++ b/tests/test.c
@@ -5,7 +5,7 @@
 #include <stdlib.h>
 #include "../inttypes.h"
 
-#include <capstone.h>
+#include <capstone/capstone.h>
 
 struct platform {
 	cs_arch arch;
diff --git a/tests/test_arm.c b/tests/test_arm.c
index e468b5b..60ddfef 100644
--- a/tests/test_arm.c
+++ b/tests/test_arm.c
@@ -5,7 +5,7 @@
 #include <stdlib.h>
 #include "../inttypes.h"
 
-#include <capstone.h>
+#include <capstone/capstone.h>
 
 static csh handle;
 
diff --git a/tests/test_arm64.c b/tests/test_arm64.c
index ca7419b..4c88b3c 100644
--- a/tests/test_arm64.c
+++ b/tests/test_arm64.c
@@ -5,7 +5,7 @@
 #include <stdlib.h>
 #include "../inttypes.h"
 
-#include <capstone.h>
+#include <capstone/capstone.h>
 
 static csh handle;
 
diff --git a/tests/test_detail.c b/tests/test_detail.c
index 94e4007..54ffd0e 100644
--- a/tests/test_detail.c
+++ b/tests/test_detail.c
@@ -5,7 +5,7 @@
 #include <stdlib.h>
 #include "../inttypes.h"
 
-#include <capstone.h>
+#include <capstone/capstone.h>
 
 struct platform {
 	cs_arch arch;
diff --git a/tests/test_iter.c b/tests/test_iter.c
index ec26738..5bbae6e 100644
--- a/tests/test_iter.c
+++ b/tests/test_iter.c
@@ -6,7 +6,7 @@
 #include <stdlib.h>
 #include "../inttypes.h"
 
-#include <capstone.h>
+#include <capstone/capstone.h>
 
 struct platform {
 	cs_arch arch;
diff --git a/tests/test_mips.c b/tests/test_mips.c
index 4da243e..04d7cbd 100644
--- a/tests/test_mips.c
+++ b/tests/test_mips.c
@@ -5,7 +5,7 @@
 #include <stdlib.h>
 #include "../inttypes.h"
 
-#include <capstone.h>
+#include <capstone/capstone.h>
 
 struct platform {
 	cs_arch arch;
diff --git a/tests/test_ppc.c b/tests/test_ppc.c
index c6b5244..bb800ef 100644
--- a/tests/test_ppc.c
+++ b/tests/test_ppc.c
@@ -4,7 +4,7 @@
 #include <stdio.h>
 #include "../inttypes.h"
 
-#include <capstone.h>
+#include <capstone/capstone.h>
 
 struct platform {
 	cs_arch arch;
diff --git a/tests/test_skipdata.c b/tests/test_skipdata.c
index 07a305b..0f17e6f 100644
--- a/tests/test_skipdata.c
+++ b/tests/test_skipdata.c
@@ -5,7 +5,7 @@
 #include <stdlib.h>
 #include "../inttypes.h"
 
-#include <capstone.h>
+#include <capstone/capstone.h>
 
 struct platform {
 	cs_arch arch;
diff --git a/tests/test_sparc.c b/tests/test_sparc.c
index d7399a9..998f0bb 100644
--- a/tests/test_sparc.c
+++ b/tests/test_sparc.c
@@ -4,7 +4,7 @@
 #include <stdio.h>
 #include "../inttypes.h"
 
-#include <capstone.h>
+#include <capstone/capstone.h>
 
 struct platform {
 	cs_arch arch;
diff --git a/tests/test_systemz.c b/tests/test_systemz.c
index 36a0a96..253951d 100644
--- a/tests/test_systemz.c
+++ b/tests/test_systemz.c
@@ -4,7 +4,7 @@
 #include <stdio.h>
 #include "../inttypes.h"
 
-#include <capstone.h>
+#include <capstone/capstone.h>
 
 struct platform {
 	cs_arch arch;
diff --git a/tests/test_x86.c b/tests/test_x86.c
index 4d31074..24f80a7 100644
--- a/tests/test_x86.c
+++ b/tests/test_x86.c
@@ -5,7 +5,7 @@
 #include <stdlib.h>
 #include "../inttypes.h"
 
-#include <capstone.h>
+#include <capstone/capstone.h>
 
 static csh handle;
 
diff --git a/tests/test_xcore.c b/tests/test_xcore.c
index 652ef5a..926f8a0 100644
--- a/tests/test_xcore.c
+++ b/tests/test_xcore.c
@@ -4,7 +4,7 @@
 #include <stdio.h>
 #include "../inttypes.h"
 
-#include <capstone.h>
+#include <capstone/capstone.h>
 
 struct platform {
 	cs_arch arch;
diff --git a/utils.h b/utils.h
index 60ed822..d3d5c01 100644
--- a/utils.h
+++ b/utils.h
@@ -5,7 +5,7 @@
 #define CS_UTILS_H
 
 #include <stddef.h>
-#include "include/capstone.h"
+#include "include/capstone/capstone.h"
 #include "cs_priv.h"
 
 // threshold number, so above this number will be printed in hexa mode