c7438a7320744f18a00396099e8619bfa8e64d5a
[gentoo.git] / app-text / hyperestraier / hyperestraier-1.4.13.ebuild
1 # Copyright 1999-2020 Gentoo Authors
2 # Distributed under the terms of the GNU General Public License v2
3
4 EAPI="6"
5 USE_RUBY="ruby24 ruby25"
6 RUBY_OPTIONAL="yes"
7
8 inherit autotools java-pkg-opt-2 perl-functions ruby-ng
9
10 IUSE="bzip2 debug java lzo mecab perl ruby +zlib"
11
12 DESCRIPTION="a full-text search system for communities"
13 HOMEPAGE="http://fallabs.com/hyperestraier/"
14 SRC_URI="http://fallabs.com/hyperestraier/${P}.tar.gz"
15
16 LICENSE="LGPL-2.1"
17 KEYWORDS="~alpha amd64 ~arm hppa ia64 ppc ppc64 sparc x86"
18 SLOT="0"
19
20 RDEPEND="dev-db/qdbm
21         bzip2? ( app-arch/bzip2 )
22         java? ( >=virtual/jre-1.4:* )
23         lzo? ( dev-libs/lzo )
24         mecab? ( app-text/mecab )
25         perl? ( dev-lang/perl )
26         ruby? ( $(ruby_implementations_depend) )
27         zlib? ( sys-libs/zlib )"
28 DEPEND="${RDEPEND}
29         virtual/pkgconfig
30         java? ( >=virtual/jdk-1.4:* )"
31 S="${WORKDIR}/all/${P}"
32
33 PATCHES=(
34         "${FILESDIR}"/${PN}-configure.patch
35         "${FILESDIR}"/${PN}-perl.patch
36         "${FILESDIR}"/${PN}-ruby19.patch
37 )
38 HTML_DOCS=( doc/. )
39
40 AT_NOELIBTOOLIZE="yes"
41
42 pkg_setup() {
43         java-pkg-opt-2_pkg_setup
44         use ruby && ruby-ng_pkg_setup
45 }
46
47 he_foreach_api() {
48         local u d
49         for u in java perl ruby; do
50                 if ! use "${u}"; then
51                         continue
52                 fi
53                 if [[ "${u}" != "ruby" ]]; then
54                         for d in ${u}native ${u}pure; do
55                                 if [[ ! -d "${d}" ]]; then
56                                         continue
57                                 fi
58                                 einfo "${EBUILD_PHASE} ${d}"
59                                 cd "${d}"
60                                 case "${EBUILD_PHASE}" in
61                                 prepare)
62                                         mv configure.{in,ac}
63                                         eautoreconf
64                                         ;;
65                                 configure)
66                                         econf
67                                         ;;
68                                 compile)
69                                         emake
70                                         ;;
71                                 test)
72                                         if [[ "${d}" == "${u}native" ]]; then
73                                                 emake check
74                                         fi
75                                         ;;
76                                 install)
77                                         if [[ "${u}" != "java" ]]; then
78                                                 emake DESTDIR="${D}" install
79                                         else
80                                                 java-pkg_dojar *.jar
81                                                 if [[ "${d}" == "${u}native" ]]; then
82                                                         dolib.so lib*.so*
83                                                 fi
84                                         fi
85                                         ;;
86                                 esac
87                                 cd - >/dev/null
88                         done
89                 else
90                         PATCHES= ruby-ng_src_${EBUILD_PHASE}
91                 fi
92         done
93 }
94
95 he_foreach_ruby_api() {
96         local d
97         for d in rubynative rubypure; do
98                 cd "${d}"
99                 case "${EBUILD_PHASE}" in
100                 prepare)
101                         sed -i \
102                                 -e "/RUBY=/cRUBY=\"${RUBY}\"" \
103                                 -e "/=\`.*ruby/s|ruby|${RUBY}|" \
104                                 configure.in
105
106                         mv configure.{in,ac}
107                         eautoreconf
108                         ;;
109                 configure)
110                         econf
111                         ;;
112                 compile)
113                         emake
114                         ;;
115                 test)
116                         if [[ "${d}" == "${u}native" ]]; then
117                                 emake check
118                         fi
119                         ;;
120                 install)
121                         emake DESTDIR="${D}" install
122                         ;;
123                 esac
124                 cd - >/dev/null
125         done
126 }
127
128 src_prepare() {
129         default
130         java-pkg-opt-2_src_prepare
131
132         sed -i \
133                 -e "/^CFLAGS/s|$| ${CFLAGS}|" \
134                 -e "/^JAVACFLAGS/s|$| ${JAVACFLAGS}|" \
135                 -e '/^LDENV/d' \
136                 -e 's/make\( \|$\)/$(MAKE)\1/g' \
137                 Makefile.in {java,perl,ruby}*/Makefile.in
138
139         mv configure.{in,ac}
140         eautoreconf
141         he_foreach_api # prepare
142 }
143
144 all_ruby_prepare() {
145         sed -i "/^RUNENV /s|\.\.|${WORKDIR}/all/${P}|" ruby*/Makefile.in
146         sed -i "s|\.\./\.\.|${WORKDIR}/all/${P}|" rubynative/src/extconf.rb
147 }
148
149 each_ruby_prepare() {
150         he_foreach_ruby_api
151 }
152
153 src_configure() {
154         econf \
155                 $(use_enable bzip2 bzip) \
156                 $(use_enable debug) \
157                 $(use_enable lzo) \
158                 $(use_enable mecab) \
159                 $(use_enable zlib)
160         he_foreach_api
161 }
162
163 each_ruby_configure() {
164         he_foreach_ruby_api
165 }
166
167 src_compile() {
168         default
169         he_foreach_api
170 }
171
172 each_ruby_compile() {
173         he_foreach_ruby_api
174 }
175
176 src_test() {
177         default
178         he_foreach_api
179 }
180
181 each_ruby_test() {
182         he_foreach_ruby_api
183 }
184
185 src_install() {
186         emake DESTDIR="${D}" MYDOCS= install
187         einstalldocs
188         he_foreach_api
189
190         if use perl; then
191                 perl_delete_module_manpages
192                 perl_fix_packlist
193         fi
194
195         rm -f "${D}"/usr/bin/*test
196 }
197
198 each_ruby_install() {
199         he_foreach_ruby_api
200 }