blob: 10591346a94ee800ade6e5c7c35b67342b93f6c0 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
|
# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-libs/xerces-c/xerces-c-2.8.0-r1.ebuild,v 1.4 2008/10/25 17:48:58 halcy0n Exp $
EAPI="1"
inherit eutils multilib versionator flag-o-matic toolchain-funcs
MY_PN="xerces-c-src"
MY_P=${MY_PN}_$(replace_all_version_separators _)
DESCRIPTION="A validating XML parser written in a portable subset of C++."
HOMEPAGE="http://xerces.apache.org/xerces-c/"
SRC_URI="mirror://apache/xerces/c/2/sources/${MY_P}.tar.gz"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~hppa ppc ~ppc64 ~sparc ~x86 ~x86-fbsd"
IUSE="debug doc icu libwww +threads elibc_Darwin elibc_FreeBSD xqilla"
RDEPEND="icu? ( <dev-libs/icu-3.8 )
libwww? ( net-libs/libwww )"
DEPEND="${RDEPEND}
doc? ( app-doc/doxygen )"
S=${WORKDIR}/${MY_P}
pkg_setup() {
export ICUROOT="/usr"
}
src_unpack() {
unpack ${A}
cd "${S}"
sed -i \
-e 's|sh ./configure.*|true|' \
src/xercesc/runConfigure || die "sed failed"
sed -i \
-e 's|-L/usr/lib64 -L/usr/lib -L/usr/local/lib -L/usr/ccs/lib|-L${XERCESCROOT}/lib|g' \
-e 's|-L/usr/lib -L/usr/local/lib -L/usr/ccs/lib|-L${XERCESCROOT}/lib|g' \
-e 's|-L/usr/lib|-L${XERCESCROOT}/lib|g' \
{samples,src/xercesc,tests}/Makefile.incl || die "sed for fixing library include path failed"
sed -i \
-e 's|${PREFIX}/lib|${PREFIX}/${MLIBDIR}|g' \
-e 's|$(PREFIX)/lib|$(PREFIX)/${MLIBDIR}|g' \
obj/Makefile.in src/xercesc/Makefile.incl || die "sed for fixing install lib dir failed"
sed -i \
-e 's|$(PREFIX)/msg|$(PREFIX)/share/xerces-c/msg|g' \
-e 's|${PREFIX}/msg|${PREFIX}/share/xerces-c/msg|g' \
src/xercesc/util/Makefile.in || die "sed for changing message catalogue directory failed"
epatch \
"${FILESDIR}/${P}-64bit_cast.patch" \
"${FILESDIR}/${P}-icu_ressource_fix.patch" \
"${FILESDIR}/${P}-IconvGNUTransService.cpp.patch"
use xqilla && epatch \
"${FILESDIR}/xqilla-xercesc_content_type.patch" \
"${FILESDIR}/xqilla-xercesc_regex.patch"
}
src_compile() {
export XERCESCROOT="${S}"
cd src/xercesc
local myconf
use debug && myconf="-d"
local bitstobuild="32"
$(has_m64) && bitstobuild="64"
# We need a case-switch here for other platforms,
# but we wait until there's a real use case
local target="linux"
use elibc_FreeBSD && target="freebsd"
use elibc_Darwin && target="macosx"
local mloader="inmem"
use icu && mloader="icu"
local transcoder="native"
use icu && transcoder="icu"
# Other options are available for AIX, HP-11, IRIX or Solaris
local thread="none"
use threads && thread="pthread"
# 'native' is only available on OSX (see use.mask) and 'socket'
# isn't supposed to work. But the docs aren't clear about it, so
# we would need some testing...
local netaccessor="socket"
use elibc_Darwin && netaccessor="native"
use libwww && netaccessor="libwww"
./runConfigure -p ${target} -c "$(tc-getCC)" -x "$(tc-getCXX)" \
${myconf} -m ${mloader} -n ${netaccessor} -t ${transcoder} \
-r ${thread} -b ${bitstobuild} > configure.vars || die "runConfigure failed"
# This should be safe since runConfigure includes our C[XX]FLAGS
eval $(grep export configure.vars)
econf || die "econf failed"
# Parallel building is horribly broken when not using --as-needed
emake -j1 MLIBDIR=$(get_libdir) || die "emake failed"
if use doc ; then
cd "${S}/doc"
doxygen || die "making docs failed"
fi
}
src_install () {
export XERCESCROOT="${S}"
cd src/xercesc
emake DESTDIR="${D}" MLIBDIR=$(get_libdir) install || die "emake failed"
if use xqilla; then
insinto /usr/include/xercesc/dom/impl
cd dom/impl
doins \
DOMAttrImpl.hpp DOMAttrMapImpl.hpp DOMCasts.hpp DOMCharacterDataImpl.hpp \
DOMChildNode.hpp DOMDeepNodeListPool.hpp DOMDocumentImpl.hpp \
DOMDocumentTypeImpl.hpp DOMElementImpl.hpp DOMElementNSImpl.hpp \
DOMNodeIDMap.hpp DOMNodeImpl.hpp DOMNodeListImpl.hpp DOMParentNode.hpp \
DOMRangeImpl.hpp DOMTextImpl.hpp DOMTypeInfoImpl.hpp DOMWriterImpl.hpp
fi
cd "${S}"
doenvd "${FILESDIR}/50xerces-c"
# Upstream forgot this
if use icu ; then
dolib.so lib/libXercesMessages.so.28.0
dosym libXercesMessages.so.28.0 /usr/$(get_libdir)/libXercesMessages.so.28
dosym libXercesMessages.so.28.0 /usr/$(get_libdir)/libXercesMessages.so
fi
if use doc; then
insinto /usr/share/doc/${PF}
rm -rf samples/config* samples/Makefile* samples/runConfigure samples/install-sh samples/*/Makefile*
doins -r samples
dohtml -r doc/html/*
fi
dodoc STATUS credits.txt version.incl
dohtml Readme.html
unset XERCESCROOT
}
# There are tests available, but without a script to run them
|