SUMMARY="Lightweight multi-platform, multi-architecture disassembly framework" DESCRIPTION="* Multi-architectures: Arm, Arm64 (Armv8), Mips, PowerPC, Sparc, \ SystemZ, XCore & X86 (include X86_64) (details). * Clean/simple/lightweight/intuitive architecture-neutral API. * Provide details on disassembled instruction (called “decomposer” by some others). * Provide some semantics of the disassembled instruction, such as list of \ implicit registers read & written. * Implemented in pure C language, with bindings for Perl, Python, Ruby, C#, \ NodeJS, Java, GO, C++, OCaml, Lua, Rust, Delphi, Free Pascall & Vala available. * Native support for Windows & *nix (with Mac OSX, iOS, Android, Linux, *BSD & \ Solaris confirmed). * Thread-safe by design. * Special support for embedding into firmware or OS kernel. * High performance & suitable for malware analysis (capable of handling \ various X86 malware tricks)." HOMEPAGE="http://www.capstone-engine.org" COPYRIGHT="2013-2020 COSEINC" LICENSE="BSD (3-clause)" REVISION="1" SOURCE_URI="https://github.com/aquynh/capstone/archive/$portVersion.tar.gz" CHECKSUM_SHA256="7c81d798022f81e7507f1a60d6817f63aa76e489aa4e7055255f21a22f5e526a" srcGitRev="27c8950fe865a2326b919444aeb3cf18963d96ba" SOURCE_URI_2="https://github.com/groundx/capstonefuzz/archive/$srcGitRev.tar.gz" CHECKSUM_SHA256_2="17e96a70754c8467ebe12c6fe8033b53dfc03a2d52d336be876eb7cf256d36e2" SOURCE_FILENAME="capstone-$portVersion.tar.gz" PATCHES="capstone-$portVersion.patchset" ARCHITECTURES="all !x86_gcc2 ?x86" SECONDARY_ARCHITECTURES="x86" PROVIDES=" capstone$secondaryArchSuffix = $portVersion cmd:cstool = $portVersion lib:libcapstone$secondaryArchSuffix = 0.4 compat >= 0.4 " REQUIRES=" haiku$secondaryArchSuffix " PROVIDES_devel=" capstone${secondaryArchSuffix}_devel = $portVersion devel:libcapstone$secondaryArchSuffix = 0.4 compat >= 0.4 " REQUIRES_devel=" capstone$secondaryArchSuffix == $portVersion base " BUILD_REQUIRES=" haiku${secondaryArchSuffix}_devel " BUILD_PREREQUIRES=" cmd:awk cmd:sed cmd:find cmd:cmake cmd:gcc$secondaryArchSuffix cmd:make " TEST_REQUIRES=" cmd:unzip " BUILD() { rm -rf build mkdir build; cd build cmake .. $cmakeDirArgs -DCMAKE_BUILD_TYPE=Release make $jobArgs } INSTALL() { cd build make install prepareInstalledDevelLib libcapstone fixPkgconfig # Fix broken include path sed -i -e "s|includedir=.*|includedir=\"$includeDir/capstone\"/|" \ $developLibDir/pkgconfig/capstone.pc packageEntries devel $developDir } TEST() { cd build export filename="corpus-libFuzzer-capstone_fuzz_disasmnext-latest" if [ -d "./suite/fuzz/$filename" ]; then true else unzip -o -q $sourceDir2/capstonefuzz-$srcGitRev/corpus/$filename.zip -d suite/fuzz fi make check }