mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-19 10:10:06 +02:00
x86_64 is used as a baseline: the "x86_64" entry, whatever status it has, is transformed into "all", and then the other entries in ARCHITECTURES either dropped or rearranged appropriately.
100 lines
2.7 KiB
Bash
100 lines
2.7 KiB
Bash
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
|
|
}
|