Files
haikuports/dev-libs/libxml2/libxml2-2.9.2.recipe
Jessica Hamilton 954a419096 libxml2: fix finding catalog files
The previous patch for 2.8.0 didn't actually work at all, as
HAIKU was not defined. Also moved the nested function to its
own local function, as was running into weird crashes otherwise.
2015-05-30 13:37:17 +12:00

181 lines
4.7 KiB
Bash

SUMMARY="The XML C parser and toolkit of Gnome"
DESCRIPTION="
Libxml2 is the XML C parser and toolkit developed for the Gnome project \
(but usable outside of the Gnome platform), it is free software available \
under the MIT License. XML itself is a metalanguage to design markup \
languages, i.e. text language where semantic and structure are added to \
the content using extra "markup" information enclosed between angle \
brackets. HTML is the most well-known markup language. Though the library \
is written in C a variety of language bindings make it available in other \
environments.
"
HOMEPAGE="http://www.xmlsoft.org/"
LICENSE="MIT"
COPYRIGHT="1998-2013 Daniel Veillard. All Rights Reserved."
SRC_URI="ftp://xmlsoft.org/libxml2/libxml2-$portVersion.tar.gz"
CHECKSUM_SHA256="5178c30b151d044aefb1b08bf54c3003a0ac55c59c866763997529d60770d5bc"
REVISION="1"
ARCHITECTURES="x86_gcc2 x86 x86_64"
SECONDARY_ARCHITECTURES="x86_gcc2 x86"
PATCHES="libxml2-$portVersion.patchset"
# build the python module only for the primary architecture
pythonModuleEnabled=false
if [ -z "$secondaryArchSuffix" ]; then
pythonModuleEnabled=true
fi
PROVIDES="
libxml2$secondaryArchSuffix = $portVersion compat >= 2
lib:libxml2$secondaryArchSuffix = $portVersion compat >= 2
"
if [ -z "$secondaryArchSuffix" ]; then
PROVIDES="$PROVIDES
cmd:xmlcatalog = $portVersion compat >= 2
cmd:xmllint = $portVersion compat >= 2
"
fi
REQUIRES="
haiku$secondaryArchSuffix
lib:libz$secondaryArchSuffix
"
BUILD_REQUIRES="
devel:libz$secondaryArchSuffix
"
if $pythonModuleEnabled; then
BUILD_REQUIRES="$BUILD_REQUIRES
python >= 2.7
"
# Note: We don't use "cmd:python" here to avoid issues with the
# python search path.
fi
BUILD_PREREQUIRES="
haiku${secondaryArchSuffix}_devel
haiku_devel
lib:libicudata$secondaryArchSuffix
cmd:aclocal
cmd:autoconf
cmd:automake
cmd:gcc$secondaryArchSuffix
cmd:ld$secondaryArchSuffix
cmd:libtoolize
cmd:make
cmd:sed
cmd:pkg_config$secondaryArchSuffix
"
PATCH()
{
# replace hard-coded references to the development documentation dir
sed -i "s,^DEVHELP_DIR=\(.*\),DEVHELP_DIR=${developDocDir}," \
doc/devhelp/Makefile.am
sed -i "s,%{_datadir}/gtk-doc/html/libxml2,${developDocDir},g" \
libxml.spec.in
}
BUILD()
{
libtoolize --force --copy --install
aclocal
autoconf
automake --add-missing
withPython=
if $pythonModuleEnabled; then
# We symlink python's directories into our packaging directory and tell
# configure that it can find python there. This way the correct
# installation directory for the python module is determined.
pythonDir="$portPackageLinksDir/python"
ln -s $pythonDir/bin $pythonDir/develop $pythonDir/lib $prefix
withPython="--with-python=$prefix"
fi
runConfigure ./configure LDFLAGS="-lnetwork" \
--with-html-dir=$docDir/html \
--with-html-subdir="" \
$withPython
make $jobArgs
}
INSTALL()
{
if $pythonModuleEnabled; then
# Unfortunately we can't just remove the in symlinks we created in
# BUILD() and install normally, since then make detects that the
# Python.h is missing and tries to rebuild the module. So we leave
# things as is and use DESTDIR to install the everything in a subdir.
# Then we remove the symlinks and move everything where it belongs.
make DESTDIR=$prefix install
rm -f $prefix/bin $prefix/develop $prefix/lib
mv $prefix/$prefix/* $prefix
rm -r $prefix/packages
else
make install
fi
# prepare develop/lib
prepareInstalledDevelLibs libxml2
fixPkgconfig
mv $libDir/xml2Conf.sh $developLibDir/
fixDevelopLibDirReferences $developLibDir/xml2Conf.sh $binDir/xml2-config
# python package
if $pythonModuleEnabled; then
packageEntries python \
$libDir/python* \
${docDir}_python*
fi
# devel package
packageEntries devel \
$binDir/xml2-config \
$dataDir \
$developDir \
$docDir \
$manDir/man1/xml2-config.1 \
$manDir/man3
# Remove stuff we don't need in the secondary architecture base package.
if [ -n "$secondaryArchSuffix" ]; then
rm -rf $binDir
rm -rf $documentationDir
else
# left-over since all contents has been moved to other packages
rmdir $(dirname $docDir)
fi
}
TEST()
{
make tests
}
# ----- devel package ---------------------------------------------------------
PROVIDES_devel="
libxml2${secondaryArchSuffix}_devel = $portVersion
cmd:xml2_config$secondaryArchSuffix = $portVersion compat >= 2
devel:libxml2$secondaryArchSuffix = $portVersion compat >= 2
"
REQUIRES_devel="
libxml2$secondaryArchSuffix == $portVersion base
devel:libz$secondaryArchSuffix
"
# ----- python package -------------------------------------------------------
if $pythonModuleEnabled; then
SUMMARY_python="The python module for libxml2"
PROVIDES_python="
libxml2_python = $portVersion
"
REQUIRES_python="
libxml2 == $portVersion base
cmd:python
"
fi