summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlfredo Tupone <tupone@gentoo.org>2021-02-17 07:58:06 +0100
committerAlfredo Tupone <tupone@gentoo.org>2021-02-17 07:58:06 +0100
commita3e8774a6625fae44f96745e0f5c42bf39b96940 (patch)
tree014967982bf836390f1db2a1f2db258358f4702c /dev-lang/ocaml
parentmail-mta/postfix: bump to 3.6_pre20210215 (diff)
downloadgentoo-a3e8774a6625fae44f96745e0f5c42bf39b96940.tar.gz
gentoo-a3e8774a6625fae44f96745e0f5c42bf39b96940.tar.bz2
gentoo-a3e8774a6625fae44f96745e0f5c42bf39b96940.zip
dev-lang/ocaml: migrate to EAPI 7
Package-Manager: Portage-3.0.13, Repoman-3.0.2 Signed-off-by: Alfredo Tupone <tupone@gentoo.org>
Diffstat (limited to 'dev-lang/ocaml')
-rw-r--r--dev-lang/ocaml/ocaml-4.05.0-r1.ebuild130
-rw-r--r--dev-lang/ocaml/ocaml-4.05.0-r3.ebuild (renamed from dev-lang/ocaml/ocaml-4.05.0-r2.ebuild)31
2 files changed, 17 insertions, 144 deletions
diff --git a/dev-lang/ocaml/ocaml-4.05.0-r1.ebuild b/dev-lang/ocaml/ocaml-4.05.0-r1.ebuild
deleted file mode 100644
index f1e64c43cdab..000000000000
--- a/dev-lang/ocaml/ocaml-4.05.0-r1.ebuild
+++ /dev/null
@@ -1,130 +0,0 @@
-# Copyright 1999-2021 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI="5"
-
-inherit flag-o-matic eutils multilib versionator toolchain-funcs
-
-PATCHLEVEL="9"
-MY_P="${P/_/-}"
-DESCRIPTION="Type-inferring functional programming language descended from the ML family"
-HOMEPAGE="https://ocaml.org"
-SRC_URI="https://github.com/ocaml/ocaml/archive/${PV/_/+}.tar.gz -> ${MY_P}.tar.gz
- mirror://gentoo/${PN}-patches-${PATCHLEVEL}.tar.bz2"
-
-LICENSE="QPL-1.0 LGPL-2"
-# Everytime ocaml is updated to a new version, everything ocaml must be rebuilt,
-# so here we go with the subslot.
-SLOT="0/${PV}"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~sparc-solaris ~x86-solaris"
-IUSE="emacs flambda latex ncurses +ocamlopt spacetime X xemacs"
-
-RDEPEND="
- sys-libs/binutils-libs:=
- ncurses? ( sys-libs/ncurses:0= )
- spacetime? ( sys-libs/libunwind:= )
- X? ( x11-libs/libX11 )"
-DEPEND="${RDEPEND}
- virtual/pkgconfig"
-
-PDEPEND="emacs? ( app-emacs/ocaml-mode )
- xemacs? ( app-xemacs/ocaml )"
-
-S="${WORKDIR}/${MY_P}"
-pkg_setup() {
- # dev-lang/ocaml creates its own objects but calls gcc for linking, which will
- # results in relocations if gcc wants to create a PIE executable
- if gcc-specs-pie ; then
- append-ldflags -nopie
- ewarn "Ocaml generates its own native asm, you're using a PIE compiler"
- ewarn "We have appended -nopie to ocaml build options"
- ewarn "because linking an executable with pie while the objects are not pic will not work"
- fi
-}
-
-src_prepare() {
- EPATCH_SUFFIX="patch" epatch "${WORKDIR}/patches"
- epatch "${FILESDIR}/${PN}-4.04.2-tinfo.patch" #459512
-}
-
-src_configure() {
- export LC_ALL=C
- local myconf=""
-
- # Causes build failures because it builds some programs with -pg,
- # bug #270920
- filter-flags -fomit-frame-pointer
- # Bug #285993
- filter-mfpmath sse
-
- # -ggdb3 & co makes it behave weirdly, breaks sexplib
- replace-flags -ggdb* -ggdb
-
- # It doesn't compile on alpha without this LDFLAGS
- use alpha && append-ldflags "-Wl,--no-relax"
-
- use ncurses || myconf="${myconf} -no-curses"
- use X || myconf="${myconf} -no-graph"
- use flambda && myconf="${myconf} -flambda"
- use spacetime && myconf="${myconf} -spacetime"
-
- # ocaml uses a home-brewn configure script, preventing it to use econf.
- RAW_LDFLAGS="$(raw-ldflags)" ./configure \
- --prefix "${EPREFIX}"/usr \
- --bindir "${EPREFIX}"/usr/bin \
- --target-bindir "${EPREFIX}"/usr/bin \
- --libdir "${EPREFIX}"/usr/$(get_libdir)/ocaml \
- --mandir "${EPREFIX}"/usr/share/man \
- -target "${CHOST}" \
- -host "${CBUILD}" \
- -cc "$(tc-getCC)" \
- -as "$(tc-getAS)" \
- -aspp "$(tc-getCC) -c" \
- -partialld "$(tc-getLD) -r" \
- --with-pthread ${myconf} || die "configure failed!"
-
- # http://caml.inria.fr/mantis/view.php?id=4698
- export CCLINKFLAGS="${LDFLAGS}"
-}
-
-src_compile() {
- emake world
-
- # Native code generation can be disabled now
- if use ocamlopt ; then
- # bug #279968
- emake opt
- emake -j1 opt.opt
- fi
-}
-
-src_test() {
- if use ocamlopt ; then
- emake -j1 tests
- else
- ewarn "${PN} testsuite requires ocamlopt useflag"
- fi
-}
-
-src_install() {
- emake BINDIR="${ED}"/usr/bin \
- LIBDIR="${ED}"/usr/$(get_libdir)/ocaml \
- MANDIR="${ED}"/usr/share/man \
- install
-
- # Symlink the headers to the right place
- dodir /usr/include
- dosym /usr/$(get_libdir)/ocaml/caml /usr/include/caml
-
- dodoc Changes README.adoc
-
- # Create and envd entry for latex input files
- if use latex ; then
- echo "TEXINPUTS=${EPREFIX}/usr/$(get_libdir)/ocaml/ocamldoc:" > "${T}"/99ocamldoc
- doenvd "${T}"/99ocamldoc
- fi
-
- # Install ocaml-rebuild portage set
- insinto /usr/share/portage/config/sets
- doins "${FILESDIR}/ocaml.conf"
-}
diff --git a/dev-lang/ocaml/ocaml-4.05.0-r2.ebuild b/dev-lang/ocaml/ocaml-4.05.0-r3.ebuild
index dc6ca02c535e..ecf884d0ff1a 100644
--- a/dev-lang/ocaml/ocaml-4.05.0-r2.ebuild
+++ b/dev-lang/ocaml/ocaml-4.05.0-r3.ebuild
@@ -1,9 +1,9 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
-EAPI="5"
+EAPI=7
-inherit flag-o-matic eutils multilib versionator toolchain-funcs
+inherit flag-o-matic eutils multilib toolchain-funcs
PATCHLEVEL="9"
MY_P="${P/_/-}"
@@ -25,13 +25,18 @@ RDEPEND="
spacetime? ( sys-libs/libunwind:= )
X? ( x11-libs/libX11 )
!dev-ml/num"
-DEPEND="${RDEPEND}
+BDEPEND="${RDEPEND}
virtual/pkgconfig"
-
PDEPEND="emacs? ( app-emacs/ocaml-mode )
xemacs? ( app-xemacs/ocaml )"
S="${WORKDIR}/${MY_P}"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-4.04.2-tinfo.patch" #459512
+ "${FILESDIR}"/${P}-gcc10.patch
+)
+
pkg_setup() {
# dev-lang/ocaml creates its own objects but calls gcc for linking, which will
# results in relocations if gcc wants to create a PIE executable
@@ -45,8 +50,8 @@ pkg_setup() {
src_prepare() {
EPATCH_SUFFIX="patch" epatch "${WORKDIR}/patches"
- epatch "${FILESDIR}/${PN}-4.04.2-tinfo.patch" #459512
- epatch "${FILESDIR}"/${P}-gcc10.patch
+ default
+
}
src_configure() {
@@ -104,7 +109,7 @@ src_test() {
if use ocamlopt ; then
emake -j1 tests
else
- ewarn "${PN} testsuite requires ocamlopt useflag"
+ ewarn "${PN} was built without 'ocamlopt' USE flag; skipping tests."
fi
}
@@ -116,16 +121,14 @@ src_install() {
# Symlink the headers to the right place
dodir /usr/include
- dosym /usr/$(get_libdir)/ocaml/caml /usr/include/caml
-
+ # Create symlink for header files
+ dosym "../$(get_libdir)/ocaml/caml" /usr/include/caml
dodoc Changes README.adoc
-
- # Create and envd entry for latex input files
+ # Create envd entry for latex input files
if use latex ; then
- echo "TEXINPUTS=${EPREFIX}/usr/$(get_libdir)/ocaml/ocamldoc:" > "${T}"/99ocamldoc
- doenvd "${T}"/99ocamldoc
+ echo "TEXINPUTS=\"${EPREFIX}/usr/$(get_libdir)/ocaml/ocamldoc:\"" > "${T}/99ocamldoc"
+ doenvd "${T}/99ocamldoc"
fi
-
# Install ocaml-rebuild portage set
insinto /usr/share/portage/config/sets
doins "${FILESDIR}/ocaml.conf"