summaryrefslogtreecommitdiff
blob: 0423f509cec92887c292240839abf66945b6c1df (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
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=6

inherit toolchain-funcs flag-o-matic webapp

DESCRIPTION="The UCSC genome browser suite, also known as Jim Kent's library and GoldenPath"
HOMEPAGE="http://genome.ucsc.edu/"
SRC_URI="http://hgdownload.cse.ucsc.edu/admin/jksrc.v${PV}.zip"

LICENSE="blat"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="+mysql +server static-libs"

REQUIRED_USE="server? ( mysql )"

WEBAPP_MANUAL_SLOT="yes"

RDEPEND="
	dev-libs/openssl:0=
	media-libs/libpng:0=
	!<sci-biology/ucsc-genome-browser-223
	mysql? ( dev-db/mysql-connector-c:0= )
	server? ( virtual/httpd-cgi )" # TODO: test with other webservers
DEPEND="${RDEPEND} app-arch/unzip"

S="${WORKDIR}/kent"

src_prepare() {
	default

	use server && webapp_src_preinst

	# bug #708064
	append-flags -fcommon

	sed \
		-e 's/-Werror//' \
		-e "/COPT/s:=.*$:=${LDFLAGS}:g" \
		-e "s/CC=gcc/CC=$(tc-getCC) ${CFLAGS}/" \
		-e 's:${CC} ${COPT} ${CFLAGS}:${CC} ${CFLAGS}:g' \
		-i src/inc/common.mk src/hg/lib/makefile || die
	find -name makefile -or -name cgi_build_rules.mk \
		| xargs sed -i \
			-e 's/-${USER}//g' \
			-e 's/-$(USER)//g' \
			-e 's:-O2::g' \
			-e 's:-ggdb::g' \
			-e 's:-pipe::g' || die
	sed \
		-e 's:${DISTDIR}${BINDIR}:${BINDIR}:g' \
		-i src/hg/genePredToMafFrames/makefile || die
}

src_compile() {
	export MACHTYPE=${MACHTYPE/-*/} \
		BINDIR="${WORKDIR}/destdir/opt/${PN}/bin" \
		SCRIPTS="${WORKDIR}/destdir/opt/${PN}/cluster/scripts" \
		ENCODE_PIPELINE_BIN="${WORKDIR}/destdir/opt/${PN}/cluster/data/encode/pipeline/bin" \
		PATH="${BINDIR}:${PATH}" \
		STRIP="echo 'skipping strip' "

	export MYSQLLIBS="none" MYSQLINC="none" DOCUMENTROOT="none" CGI_BIN="none"

	use mysql && export MYSQLLIBS="-L${EROOT}usr/$(get_libdir)/mysql/ -lmysqlclient -lz -lssl" \
		MYSQLINC="${ROOT}usr/include/mysql"

	use server && export DOCUMENTROOT="${WORKDIR}/destdir/${MY_HTDOCSDIR}" \
		CGI_BIN="${WORKDIR}/destdir/${MY_HTDOCSDIR}/cgi-bin"

	mkdir -p "$BINDIR" "$SCRIPTS" "$ENCODE_PIPELINE_BIN" || die
	use server && mkdir -p "$CGI_BIN" "$DOCUMENTROOT"

	emake -C src clean
	emake -C src/lib
	emake -C src/jkOwnLib
	emake -C src/utils/stringify
	emake -C src blatSuite
	if use mysql; then
		emake -j1 -C src/hg utils
		emake -j1 -C src utils
		emake -C src libs userApps
		if use server; then
			emake -j1 -C src/hg
			emake -j1 -C src
		fi
	fi
}

src_install() {
	use server && webapp_src_preinst
	cp -ad "${WORKDIR}"/destdir/* "${D}" || die
	use static-libs && dolib.a src/lib/${MACHTYPE/-*/}/*.a
	echo "PATH=${EPREFIX}/opt/${PN}/bin" > "${S}/98${PN}"
	doenvd "${S}/98${PN}"

	use server && webapp_postinst_txt en src/product/README.QuickStart
	use server && webapp_src_install

	insinto "/usr/include/${PN}"
	doins src/inc/*.h
	insinto "/usr/share/${PN}"
	doins -r src/product
	keepdir "/usr/share/doc/${PF}"
	find -name 'README*' -or -name '*.doc' | grep -v test | cpio -padv "${ED}/usr/share/doc/${PF}" || die
}

pkg_postinst() {
	use server && webapp_pkg_postinst
}