mirror of
https://github.com/yann64/haikuports.git
synced 2026-04-16 00:30:06 +02:00
146 lines
3.6 KiB
Bash
146 lines
3.6 KiB
Bash
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
|
|
}
|