blob: fbbdbce3eb9ade15200095f7387ce0fe986c987c (
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
|
# Copyright 1999-2007 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-lang/ocaml/ocaml-3.08.4.ebuild,v 1.14 2007/02/17 19:16:10 grobian Exp $
inherit flag-o-matic eutils multilib toolchain-funcs
DESCRIPTION="fast modern type-inferring functional programming language descended from the ML (Meta Language) family"
HOMEPAGE="http://www.ocaml.org/"
SRC_URI="http://caml.inria.fr/distrib/ocaml-3.08/${P}.tar.bz2"
LICENSE="QPL-1.0 LGPL-2"
SLOT="0"
KEYWORDS="alpha amd64 arm hppa ia64 ~ppc ~ppc64 -s390 sparc ~x86"
IUSE="tk latex"
DEPEND="virtual/libc
tk? ( >=dev-lang/tk-3.3.3 )"
pkg_setup() {
ewarn
ewarn "Building ocaml with unsafe CFLAGS can have unexpected results"
ewarn "Please retry building with safer CFLAGS before reporting bugs"
ewarn "Likewise, building with a hardened gcc is not possible."
ewarn
}
src_compile() {
gcc-specs-pie && append-flags -nopie
filter-flags -pie
replace-flags "-O?" -O2
local myconf
use tk || myconf="-no-tk"
# Fix for bug #23767.
if [ "${ARCH}" = "sparc" ]; then
myconf="${myconf} -host sparc-unknown-linux-gnu"
fi
# Fix for bug #46703
export LC_ALL=C
./configure -prefix /usr \
-bindir /usr/bin \
-libdir /usr/$(get_libdir)/ocaml \
-mandir /usr/share/man \
--with-pthread ${myconf} || die
sed -i -e "s/\(BYTECCCOMPOPTS=.*\)/\1 ${CFLAGS}/" config/Makefile
sed -i -e "s/\(NATIVECCCOMPOPTS=.*\)/\1 ${CFLAGS}/" config/Makefile
make world || die
# Native code generation unsupported on some archs
if ! use ppc64 ; then
make opt || die
make opt.opt || die
fi
}
src_install() {
make BINDIR=${D}/usr/bin \
LIBDIR=${D}/usr/$(get_libdir)/ocaml \
MANDIR=${D}/usr/share/man \
install || die
# compiler libs
dodir /usr/lib/ocaml/compiler-libs
insinto /usr/lib/ocaml/compiler-libs
doins {utils,typing,parsing}/*.{mli,cmi,cmo,cmx,o}
# headers
dodir /usr/include
dosym /usr/include/caml /usr/lib/ocaml/caml
# silly, silly makefiles
dosed "s:${D}::g" /usr/$(get_libdir)/ocaml/ld.conf
# documentation
dodoc Changes INSTALL LICENSE README Upgrading
}
pkg_postinst() {
if use latex; then
echo "TEXINPUTS=/usr/$(get_libdir)/ocaml/ocamldoc:" > /etc/env.d/99ocamldoc
fi
echo
elog "OCaml is not binary compatible from version to version,"
elog "so you (may) need to rebuild all packages depending on it that"
elog "are actually installed on your system."
elog "To do so, you can run: "
elog "sh ${FILESDIR}/ocaml-rebuild.sh [-h | emerge options]"
elog "Which will call emerge on all old packages with the given options"
echo
}
|