mirror of
https://github.com/yann64/haikuports.git
synced 2026-03-19 01:46:00 +01:00
ffcall, new recipe (#11248)
This commit is contained in:
145
dev-libs/ffcall/ffcall-2.5.recipe
Normal file
145
dev-libs/ffcall/ffcall-2.5.recipe
Normal file
@@ -0,0 +1,145 @@
|
||||
SUMMARY="Foreign function call libraries"
|
||||
DESCRIPTION="This is a library which can be used to build foreign function call interfaces in \
|
||||
embedded interpreters.
|
||||
|
||||
Installed libraries and header files:
|
||||
It installs a library libffcall.{a,so}; to link with it, use the compiler option '-lffcall'.
|
||||
|
||||
It consists of two parts:
|
||||
* avcall - calling C functions with variable arguments. Its include file is <avcall.h>.
|
||||
* callback - closures with variable arguments as first-class C functions. Its include file is \
|
||||
<callback.h>.
|
||||
|
||||
Additionally, you can determine the libffcall version by including <ffcall-version.h>.
|
||||
|
||||
For backward compatibility with versions 1.x, libraries libavcall.{a,so} and libcallback.{a,so} \
|
||||
are installed as well. But they are deprecated; use libffcall.{a,so} instead."
|
||||
HOMEPAGE="https://www.gnu.org/software/libffcall/"
|
||||
COPYRIGHT="1993-1995 Bill Triggs
|
||||
1995-2021 Bruno Haible
|
||||
1997 Jörg Höhle
|
||||
2000 Adam Fedor
|
||||
2001-2012 Sam Steingold
|
||||
2001-2002 Gerhard Tonn
|
||||
2004 Paul Guyot
|
||||
2005 Thiemo Seufer
|
||||
2009 Max Lapan
|
||||
2010 Valery Ushakov"
|
||||
LICENSE="GNU GPL v2"
|
||||
REVISION="1"
|
||||
SOURCE_URI="https://ftp.gnu.org/gnu/libffcall/libffcall-$portVersion.tar.gz"
|
||||
CHECKSUM_SHA256="7f422096b40498b1389093955825f141bb67ed6014249d884009463dc7846879"
|
||||
SOURCE_DIR="libffcall-$portVersion"
|
||||
|
||||
ARCHITECTURES="all !x86_gcc2"
|
||||
SECONDARY_ARCHITECTURES="x86"
|
||||
|
||||
ffcallLibs="
|
||||
libavcall
|
||||
libcallback
|
||||
libffcall
|
||||
libtrampoline
|
||||
"
|
||||
libavcallVersion="1.1.1"
|
||||
libcallbackVersion="1.0.5"
|
||||
libffcallVersion="0.1.1"
|
||||
libtrampolineVersion="1.0.4"
|
||||
|
||||
for i in lib $ffcallLibs; do
|
||||
eval "${i}VersionCompat=\"\$${i}Version compat >= \${${i}Version%%.*}\""
|
||||
done
|
||||
|
||||
PROVIDES="
|
||||
ffcall$secondaryArchSuffix = $portVersion
|
||||
lib:libavcall$secondaryArchSuffix = $libavcallVersionCompat
|
||||
lib:libcallback$secondaryArchSuffix = $libcallbackVersionCompat
|
||||
lib:libffcall$secondaryArchSuffix = $libffcallVersionCompat
|
||||
lib:libtrampoline$secondaryArchSuffix = $libtrampolineVersionCompat
|
||||
"
|
||||
REQUIRES="
|
||||
haiku$secondaryArchSuffix
|
||||
"
|
||||
|
||||
PROVIDES_devel="
|
||||
ffcall${secondaryArchSuffix}_devel = $portVersion
|
||||
devel:libavcall$secondaryArchSuffix = $libavcallVersionCompat
|
||||
devel:libcallback$secondaryArchSuffix = $libcallbackVersionCompat
|
||||
devel:libffcall$secondaryArchSuffix = $libffcallVersionCompat
|
||||
devel:libtrampoline$secondaryArchSuffix = $libtrampolineVersionCompat
|
||||
devel:libvacall$secondaryArchSuffix
|
||||
"
|
||||
REQUIRES_devel="
|
||||
ffcall$secondaryArchSuffix == $portVersion base
|
||||
"
|
||||
|
||||
BUILD_REQUIRES="
|
||||
haiku${secondaryArchSuffix}_devel
|
||||
"
|
||||
BUILD_PREREQUIRES="
|
||||
cmd:aclocal
|
||||
cmd:autoreconf
|
||||
cmd:gcc$secondaryArchSuffix
|
||||
cmd:libtoolize$secondaryArchSuffix
|
||||
cmd:make
|
||||
"
|
||||
|
||||
defineDebugInfoPackage ffcall$secondaryArchSuffix \
|
||||
$libDir/libavcall.so.$libavcallVersion \
|
||||
$libDir/libcallback.so.$libcallbackVersion \
|
||||
$libDir/libffcall.so.$libffcallVersion \
|
||||
$libDir/libtrampoline.so.$libtrampolineVersion
|
||||
|
||||
BUILD()
|
||||
{
|
||||
autoreconf -fi
|
||||
runConfigure --omit-dirs dataDir ./configure \
|
||||
--datadir=$developDocDir \
|
||||
--disable-static
|
||||
make $jobArgs
|
||||
}
|
||||
|
||||
INSTALL()
|
||||
{
|
||||
make install
|
||||
|
||||
# remove libtool files
|
||||
rm -rf $libDir/*.la
|
||||
|
||||
# rename generic manpage names
|
||||
pushd $manDir/man3
|
||||
for f in *; do
|
||||
mv $f ffcall-$f
|
||||
done
|
||||
popd
|
||||
|
||||
# Add pkgconfig file
|
||||
mkdir -p $developLibDir/pkgconfig
|
||||
cat > $developLibDir/pkgconfig/libffcall.pc << EOF
|
||||
bindir=$prefix/bin
|
||||
exec_prefix=$prefix
|
||||
libdir=$libDir
|
||||
includedir=$includeDir
|
||||
|
||||
Name: libffcall
|
||||
Description: $SUMMARY
|
||||
Version: $portVersion
|
||||
Libs: -L$developLibDir -lffcall
|
||||
Cflags: -I$includeDir
|
||||
EOF
|
||||
|
||||
prepareInstalledDevelLibs \
|
||||
libavcall\
|
||||
libcallback \
|
||||
libffcall \
|
||||
libtrampoline \
|
||||
libvacall
|
||||
|
||||
packageEntries devel \
|
||||
$developDir \
|
||||
$manDir
|
||||
}
|
||||
|
||||
TEST()
|
||||
{
|
||||
make check
|
||||
}
|
||||
Reference in New Issue
Block a user