diff options
author | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 13:49:04 -0700 |
---|---|---|
committer | Robin H. Johnson <robbat2@gentoo.org> | 2015-08-08 17:38:18 -0700 |
commit | 56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch) | |
tree | 3f91093cdb475e565ae857f1c5a7fd339e2d781e /dev-lang/ocaml | |
download | gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2 gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip |
proj/gentoo: Initial commit
This commit represents a new era for Gentoo:
Storing the gentoo-x86 tree in Git, as converted from CVS.
This commit is the start of the NEW history.
Any historical data is intended to be grafted onto this point.
Creation process:
1. Take final CVS checkout snapshot
2. Remove ALL ChangeLog* files
3. Transform all Manifests to thin
4. Remove empty Manifests
5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$
5.1. Do not touch files with -kb/-ko keyword flags.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests
X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project
X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration
X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn
X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts
X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration
X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging
X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'dev-lang/ocaml')
-rw-r--r-- | dev-lang/ocaml/Manifest | 8 | ||||
-rw-r--r-- | dev-lang/ocaml/files/ocaml-3.11.2-Fix-ocamlopt-w.r.t.-binutils-2.21.patch | 66 | ||||
-rw-r--r-- | dev-lang/ocaml/files/ocaml-4.01.0-pkg-config-ncurses.patch | 15 | ||||
-rw-r--r-- | dev-lang/ocaml/files/ocaml-rebuild.sh | 51 | ||||
-rw-r--r-- | dev-lang/ocaml/files/ocaml.conf | 5 | ||||
-rw-r--r-- | dev-lang/ocaml/metadata.xml | 5 | ||||
-rw-r--r-- | dev-lang/ocaml/ocaml-3.12.1.ebuild | 132 | ||||
-rw-r--r-- | dev-lang/ocaml/ocaml-4.01.0.ebuild | 128 | ||||
-rw-r--r-- | dev-lang/ocaml/ocaml-4.02.1.ebuild | 114 | ||||
-rw-r--r-- | dev-lang/ocaml/ocaml-4.02.2.ebuild | 115 | ||||
-rw-r--r-- | dev-lang/ocaml/ocaml-4.02.3.ebuild | 115 |
11 files changed, 754 insertions, 0 deletions
diff --git a/dev-lang/ocaml/Manifest b/dev-lang/ocaml/Manifest new file mode 100644 index 000000000000..31e4a535f518 --- /dev/null +++ b/dev-lang/ocaml/Manifest @@ -0,0 +1,8 @@ +DIST ocaml-3.12.1.tar.bz2 2949124 SHA256 edcf563da75e0b91f09765649caa98ab1535e0c7498f0737b5591b7de084958d SHA512 cbb050aabcbe19a4aa070d6cb74f3774cb136692dfd9433ca977f0f9520ad2f583b6cfb1a9cedfedc92e7dc794ac4a869e20aa5a67a4739002feb290435dc7e7 WHIRLPOOL b7bf4844452ab52027e6b785159df6e4defc548d2f3d31eb73dc0dc05214e7c19ed654c8b3ff234a85691599df0be568ba02fafe257856be7f603177584a7ca0 +DIST ocaml-4.01.0.tar.bz2 3691090 SHA256 b1ca708994180236917ae79e17606da5bd334ca6acd6873a550027e1c0ec874a SHA512 b0a4efa89d0e48e5c01922156a73a8ed67c58efa07170710eaef9de1138e1d6fff8a440b2c81860fc63c604f3a4e189b795bb08a5e9d8df60778fcd468985f6e WHIRLPOOL a31cc2c46e19ca1c5ca65ffdee77ef42b7269b1584f81629e29b725b167c7e3d9eb467a3e8171aaba7d2cf1d8aea31d1822c5631fe3e209ce7731c16112a11d3 +DIST ocaml-4.02.1.tar.xz 2031244 SHA256 68c4b01be54c23bc20fc0a8beaa5c7433b8483f8950490129cfe7662e0c6f4dc SHA512 79d257210c0ddfb0367250a688ffb58f143fcc8c159f7d6e149d42b074e811eaf69449b66ad39da399e1bdcb2bab5924d195fc7c5ebc29d44cb637c093b9931d WHIRLPOOL 2c9849f73a705a63c0d0d4682d1ab1225a3150f68bda98805dc2d2b11f100ee7206200b9dc49b07d39d1b737f45671f3662a9bf2c069d6795f26e1f9b9b65ead +DIST ocaml-4.02.2.tar.xz 2059800 SHA256 60f923988ab7ae023a0799f9699d7d7a476bf8207ee2c900f92c8288ea363085 SHA512 f826cdb149ba594134b02d62343c5d25aca7ca2a36154e360560fe11d285c4f4905074d81db03ce71758254fc390e93ae8d530ecd08853324966f39af870d46e WHIRLPOOL 8fa47f214743000c0e372f77cfe874d1c8e5b043647c753a459a22e6045cecda3f8a18edaca75e262d4004d2b3bf11c500232864cfdf71e9231ac24af4419c0e +DIST ocaml-4.02.3.tar.xz 2058552 SHA256 83c6697e135b599a196fd7936eaf8a53dd6b8f3155a796d18407b56f91df9ce3 SHA512 a815421f6a320b18e7f351bd66884024ad4a33525ba161a198ea356892ce331be6c1ddf4cd07d120ebe9a902bcf815ce1b17e45f405e4e0b2d55ce1b6d2adada WHIRLPOOL 1104cdcf23b773ebf0c0ef8d8ee36b2b4b58b1fab10a41ff7f2d522c34ae6161bc6cba28b279eea03ac183a111fc332557084b017d0c2ad6f9c969204e309597 +DIST ocaml-patches-3.tar.bz2 4101 SHA256 c4ceb604f4480c78d1cf4f848b0903c8d37798d9761f582d8d1643d4e38b8658 SHA512 8be5c44de5a6b0b7c14723e41d92fe807b881b218cc5eee38ea7519c0f971415cb7fe30035303da275089dcb8a61c4f334c4a88e0bdbced3953503794b8308a7 WHIRLPOOL f1920606785702c44dead01b1426145653bc1931acba2d614c6818baddc051e4f74ca0322cae66ade63ba0cd0df5651cfd67f511fca5f12973b67a0c50ebab6d +DIST ocaml-patches-6.tar.bz2 2197 SHA256 7acfa3d056c2b3f7dfc3b1f96a2557d81802c837c2ba0abc1487de10627e5e07 SHA512 88afa904044192b945b537cbfc3c17308e333ed1d241332212b9500d01c14bb306905b03f2b48ec64dd2f428df1f7179772d742b77b4402da108ba7790239bf6 WHIRLPOOL d2001a8a3e799080c3981be87bcef62635c11cab037d6d92da186643614c6e2a568543f82f3566bfb099c063ad344cab2238edf863a9fb02081f4e20f442d9f8 +DIST ocaml-patches-7.tar.bz2 2194 SHA256 71e9496af89ded9852d8e1f32be18a5f0d7e11270958fb4bc8c588420b1e9156 SHA512 63bca96f009e2de24ff6f7a4b37b97c5b7655d5ad6196f06cc2b18ca213e87878a310d169378c341c00aaac698530e458e301620bcc21284bc8b9ea143f642dd WHIRLPOOL 02d17436f901c70b2fa8a104d8b7a6526c65ab9b40408b549c4f4dfe7a1eeae8213620d151fb181833782504e4d7cb6fa3ff7ddebe77efcb88d32fe057cbd8cc diff --git a/dev-lang/ocaml/files/ocaml-3.11.2-Fix-ocamlopt-w.r.t.-binutils-2.21.patch b/dev-lang/ocaml/files/ocaml-3.11.2-Fix-ocamlopt-w.r.t.-binutils-2.21.patch new file mode 100644 index 000000000000..fa7664cecc98 --- /dev/null +++ b/dev-lang/ocaml/files/ocaml-3.11.2-Fix-ocamlopt-w.r.t.-binutils-2.21.patch @@ -0,0 +1,66 @@ +From: Stephane Glondu <steph@glondu.net> +Date: Tue, 8 Mar 2011 21:17:40 +0100 +Subject: [PATCH] Fix ocamlopt w.r.t. binutils 2.21 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Bug: http://caml.inria.fr/mantis/view.php?id=5237 +Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=617404 +Authors: Eric Cooper, spiralvoice +Reviewed-by: Stéphane Glondu <steph@glondu.net> +--- + asmcomp/amd64/emit.mlp | 13 +++++++------ + asmcomp/i386/emit.mlp | 6 +++--- + 2 files changed, 10 insertions(+), 9 deletions(-) + +diff --git a/asmcomp/amd64/emit.mlp b/asmcomp/amd64/emit.mlp +index 4a3f844..525c6e6 100644 +--- a/asmcomp/amd64/emit.mlp ++++ b/asmcomp/amd64/emit.mlp +@@ -679,17 +679,18 @@ let fundecl fundecl = + emit_all true fundecl.fun_body; + List.iter emit_call_gc !call_gc_sites; + emit_call_bound_errors (); ++ begin match Config.system with ++ "linux" | "gnu" -> ++ ` .type {emit_symbol fundecl.fun_name},@function\n`; ++ ` .size {emit_symbol fundecl.fun_name},.-{emit_symbol fundecl.fun_name}\n` ++ | _ -> () ++ end; + if !float_constants <> [] then begin + if macosx + then ` .literal8\n` + else ` .section .rodata.cst8,\"a\",@progbits\n`; + List.iter emit_float_constant !float_constants +- end; +- match Config.system with +- "linux" | "gnu" -> +- ` .type {emit_symbol fundecl.fun_name},@function\n`; +- ` .size {emit_symbol fundecl.fun_name},.-{emit_symbol fundecl.fun_name}\n` +- | _ -> () ++ end + + (* Emission of data *) + +diff --git a/asmcomp/i386/emit.mlp b/asmcomp/i386/emit.mlp +index 2992f29..0b1252c 100644 +--- a/asmcomp/i386/emit.mlp ++++ b/asmcomp/i386/emit.mlp +@@ -905,12 +905,12 @@ let fundecl fundecl = + emit_all true fundecl.fun_body; + List.iter emit_call_gc !call_gc_sites; + emit_call_bound_errors (); +- List.iter emit_float_constant !float_constants; +- match Config.system with ++ begin match Config.system with + "linux_elf" | "bsd_elf" | "gnu" -> + ` .type {emit_symbol fundecl.fun_name},@function\n`; + ` .size {emit_symbol fundecl.fun_name},.-{emit_symbol fundecl.fun_name}\n` +- | _ -> () ++ | _ -> () end; ++ List.iter emit_float_constant !float_constants + + + (* Emission of data *) +-- diff --git a/dev-lang/ocaml/files/ocaml-4.01.0-pkg-config-ncurses.patch b/dev-lang/ocaml/files/ocaml-4.01.0-pkg-config-ncurses.patch new file mode 100644 index 000000000000..b9fa750ff07d --- /dev/null +++ b/dev-lang/ocaml/files/ocaml-4.01.0-pkg-config-ncurses.patch @@ -0,0 +1,15 @@ +--- ocaml-4.01.0-orig/configure 2013-08-23 16:22:36.000000000 +1000 ++++ ocaml-4.01.0/configure 2014-01-18 20:06:50.669644267 +1100 +@@ -892,7 +892,11 @@ + # For the terminfo module + + if test "$withcurses" = "yes"; then +- for libs in "" "-lcurses" "-ltermcap" "-lcurses -ltermcap" "-lncurses"; do ++ ncurseslibs="" ++ if pkg-config --exists ncurses 2>/dev/null; then ++ ncurseslibs=`pkg-config --libs ncurses` ++ fi ++ for libs in "${ncurseslibs}" "-lcurses" "-ltermcap" "-lcurses -ltermcap" "-lncurses"; do + if sh ./hasgot $libs tgetent tgetstr tgetnum tputs; then + echo "termcap functions found (with libraries '$libs')" + echo "#define HAS_TERMCAP" >> s.h diff --git a/dev-lang/ocaml/files/ocaml-rebuild.sh b/dev-lang/ocaml/files/ocaml-rebuild.sh new file mode 100644 index 000000000000..7dd14a4eb7d2 --- /dev/null +++ b/dev-lang/ocaml/files/ocaml-rebuild.sh @@ -0,0 +1,51 @@ +#!/bin/sh +# run like this: ocaml-rebuild.sh [-h | -f] [emerge_options] + +emerge=/usr/bin/emerge + +if [ "$1" = "-h" ] +then + echo "usage: ocaml-rebuild.sh [-h | -f(orce)] [emerge_options]" + echo "With -f, the packages will first be unmerged and then emerged" + echo "with the given options to ensuree correct dependancy analysis." + echo "Otherwise emerge is run with the --pretend flag and the given" + echo "options." + echo "It is recommended to keep the list of rebuilt packages printed" + echo "in pretend mode in case something go wrong" + exit 1 +fi + +if [ "$1" = "-f" ] +then + pretend=0 + shift +else + pretend=1 +fi + +depends=`find /var/db/pkg -name DEPEND -exec grep -l 'dev-lang/ocaml\\|dev-ml/findlib' {} \;` + +for dep in $depends +do + dir=`dirname $dep` + pkg=`basename $dir` + category=`cat $dir/CATEGORY` + slot=`cat $dir/SLOT` + + tobuild=">=$category/$pkg:$slot $tobuild" + tobuildstr="\">=$category/$pkg:$slot\" $tobuildstr" +done + +if [ "$tobuild" = "" ] ; then + echo "Nothing to do!" + exit 0 +fi + +echo Building $tobuildstr + +if [ $pretend -eq 1 ] +then + $emerge --pretend $@ $tobuild +else + $emerge --oneshot $@ $tobuild +fi diff --git a/dev-lang/ocaml/files/ocaml.conf b/dev-lang/ocaml/files/ocaml.conf new file mode 100644 index 000000000000..083b8cef960b --- /dev/null +++ b/dev-lang/ocaml/files/ocaml.conf @@ -0,0 +1,5 @@ +# Rebuild all ocaml modules (must be rebuilt after each ocaml upgrade) +[ocaml-rebuild] +class = portage.sets.dbapi.OwnerSet +files = /usr/lib/ocaml +exclude-files = /usr/bin/ocaml diff --git a/dev-lang/ocaml/metadata.xml b/dev-lang/ocaml/metadata.xml new file mode 100644 index 000000000000..2193d772e351 --- /dev/null +++ b/dev-lang/ocaml/metadata.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<herd>ml</herd> +</pkgmetadata> diff --git a/dev-lang/ocaml/ocaml-3.12.1.ebuild b/dev-lang/ocaml/ocaml-3.12.1.ebuild new file mode 100644 index 000000000000..a662590f5841 --- /dev/null +++ b/dev-lang/ocaml/ocaml-3.12.1.ebuild @@ -0,0 +1,132 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="1" + +inherit flag-o-matic eutils multilib versionator toolchain-funcs + +PATCHLEVEL="3" +MY_P="${P/_/+}" +DESCRIPTION="Fast modern type-inferring functional programming language descended from the ML family" +HOMEPAGE="http://www.ocaml.org/" +SRC_URI="ftp://ftp.inria.fr/INRIA/Projects/cristal/ocaml/ocaml-$(get_version_component_range 1-2)/${MY_P}.tar.bz2 + mirror://gentoo/${PN}-patches-${PATCHLEVEL}.tar.bz2" + +LICENSE="QPL-1.0 LGPL-2" +SLOT="0" +KEYWORDS="alpha amd64 arm hppa ia64 ~mips ppc ppc64 sparc x86 ~amd64-fbsd ~x86-fbsd" +IUSE="emacs gdbm latex ncurses +ocamlopt tk X xemacs" + +RDEPEND="tk? ( >=dev-lang/tk-3.3.3 ) + ncurses? ( sys-libs/ncurses ) + X? ( x11-libs/libX11 x11-proto/xproto ) + gdbm? ( sys-libs/gdbm )" +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_unpack() { + unpack ${A} + cd "${S}" + EPATCH_SUFFIX="patch" epatch "${WORKDIR}/patches" + # Bug #459512 + epatch "${FILESDIR}/${PN}-4.01.0-pkg-config-ncurses.patch" +} + +src_compile() { + 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 + + # It doesn't compile on alpha without this LDFLAGS + use alpha && append-ldflags "-Wl,--no-relax" + + use tk || myconf="${myconf} -no-tk" + use ncurses || myconf="${myconf} -no-curses" + use X || myconf="${myconf} -no-graph" + use gdbm || myconf="${myconf} -no-dbm" + + # ocaml uses a home-brewn configure script, preventing it to use econf. + RAW_LDFLAGS="$(raw-ldflags)" ./configure -prefix /usr \ + --bindir /usr/bin \ + --libdir /usr/$(get_libdir)/ocaml \ + --mandir /usr/share/man \ + -host "${CHOST}" \ + -cc "$(tc-getCC)" \ + -as "$(tc-getAS)" \ + -aspp "$(tc-getCC) -c" \ + -partialld "$(tc-getLD) -r" \ + --with-pthread ${myconf} || die "configure failed!" + + emake -j1 world || die "make world failed!" + + # Native code generation can be disabled now + if use ocamlopt ; then + # bug #279968 + emake -j1 opt || die "make opt failed!" + emake -j1 opt.opt || die "make opt.opt failed!" + fi +} + +src_install() { + make BINDIR="${D}"/usr/bin \ + LIBDIR="${D}"/usr/$(get_libdir)/ocaml \ + MANDIR="${D}"/usr/share/man \ + install || die "make install failed!" + + # Install the compiler libs + dodir /usr/$(get_libdir)/ocaml/compiler-libs + insinto /usr/$(get_libdir)/ocaml/compiler-libs + doins {utils,typing,parsing}/*.{mli,cmi,cmo} + use ocamlopt && doins {utils,typing,parsing}/*.{cmx,o} + + # Symlink the headers to the right place + dodir /usr/include + dosym /usr/$(get_libdir)/ocaml/caml /usr/include/ + + # Remove ${D} from ld.conf, as the buildsystem isn't $(DESTDIR) aware + dosed "s:${D}::g" /usr/$(get_libdir)/ocaml/ld.conf + + dodoc Changes INSTALL README Upgrading + + # Create and envd entry for latex input files (this definitely belongs into + # CONTENT and not in pkg_postinst. + if use latex ; then + echo "TEXINPUTS=/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" || die +} + +pkg_postinst() { + echo + ewarn "OCaml is not binary compatible from version to version, so you" + ewarn "need to rebuild all packages depending on it, that are actually" + ewarn "installed on your system. To do so, you can run:" + ewarn "emerge @ocaml-rebuild" + ewarn "Or, (almost) equivalently: emerge -1 /usr/$(get_libdir)/ocaml" + echo +} diff --git a/dev-lang/ocaml/ocaml-4.01.0.ebuild b/dev-lang/ocaml/ocaml-4.01.0.ebuild new file mode 100644 index 000000000000..6278a86157e1 --- /dev/null +++ b/dev-lang/ocaml/ocaml-4.01.0.ebuild @@ -0,0 +1,128 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="5" + +inherit flag-o-matic eutils multilib versionator toolchain-funcs + +PATCHLEVEL="6" +MY_P="${P/_/+}" +DESCRIPTION="Fast modern type-inferring functional programming language descended from the ML family" +HOMEPAGE="http://www.ocaml.org/" +SRC_URI="ftp://ftp.inria.fr/INRIA/Projects/cristal/ocaml/ocaml-$(get_version_component_range 1-2)/${MY_P}.tar.bz2 + 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 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-fbsd ~amd64-linux ~x86-fbsd ~x86-linux" +IUSE="emacs latex ncurses +ocamlopt tk X xemacs" + +RDEPEND="tk? ( >=dev-lang/tk-3.3.3 ) + ncurses? ( sys-libs/ncurses ) + X? ( x11-libs/libX11 x11-proto/xproto )" +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" + # Bug #459512 + epatch "${FILESDIR}/${PN}-4.01.0-pkg-config-ncurses.patch" +} + +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 + + # It doesn't compile on alpha without this LDFLAGS + use alpha && append-ldflags "-Wl,--no-relax" + + use tk || myconf="${myconf} -no-tk" + use ncurses || myconf="${myconf} -no-curses" + use X || myconf="${myconf} -no-graph" + + # ocaml uses a home-brewn configure script, preventing it to use econf. + RAW_LDFLAGS="$(raw-ldflags)" ./configure -prefix "${EPREFIX}"/usr \ + --bindir "${EPREFIX}"/usr/bin \ + --libdir "${EPREFIX}"/usr/$(get_libdir)/ocaml \ + --mandir "${EPREFIX}"/usr/share/man \ + -host "${CHOST}" \ + -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 -j1 world + + # Native code generation can be disabled now + if use ocamlopt ; then + # bug #279968 + emake -j1 opt + emake -j1 opt.opt + fi +} + +src_install() { + make 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 INSTALL README + + # 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" +} + +pkg_postinst() { + echo + ewarn "OCaml is not binary compatible from version to version, so you" + ewarn "need to rebuild all packages depending on it, that are actually" + ewarn "installed on your system. To do so, you can run:" + if has_version '>=sys-apps/portage-2.2' ; then + ewarn "emerge @ocaml-rebuild" + else + ewarn "emerge -1 ${EROOT%/}/usr/$(get_libdir)/ocaml" + fi + echo +} diff --git a/dev-lang/ocaml/ocaml-4.02.1.ebuild b/dev-lang/ocaml/ocaml-4.02.1.ebuild new file mode 100644 index 000000000000..deefc1fd7f39 --- /dev/null +++ b/dev-lang/ocaml/ocaml-4.02.1.ebuild @@ -0,0 +1,114 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="5" + +inherit flag-o-matic eutils multilib versionator toolchain-funcs + +PATCHLEVEL="6" +MY_P="${P/_/+}" +DESCRIPTION="Fast modern type-inferring functional programming language descended from the ML family" +HOMEPAGE="http://www.ocaml.org/" +SRC_URI="http://caml.inria.fr/pub/distrib/ocaml-$(get_version_component_range 1-2)/${MY_P}.tar.xz + 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 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-fbsd ~amd64-linux ~x86-fbsd ~x86-linux" +IUSE="emacs latex ncurses +ocamlopt X xemacs" + +RDEPEND=" + ncurses? ( sys-libs/ncurses ) + X? ( x11-libs/libX11 x11-proto/xproto )" +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" +} + +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 + + # 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" + + # ocaml uses a home-brewn configure script, preventing it to use econf. + RAW_LDFLAGS="$(raw-ldflags)" ./configure \ + --prefix "${EPREFIX}"/usr \ + --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 opt.opt + 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 INSTALL README + + # 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.02.2.ebuild b/dev-lang/ocaml/ocaml-4.02.2.ebuild new file mode 100644 index 000000000000..c63ec6413718 --- /dev/null +++ b/dev-lang/ocaml/ocaml-4.02.2.ebuild @@ -0,0 +1,115 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="5" + +inherit flag-o-matic eutils multilib versionator toolchain-funcs + +PATCHLEVEL="7" +MY_P="${P/_/+}" +DESCRIPTION="Fast modern type-inferring functional programming language descended from the ML family" +HOMEPAGE="http://www.ocaml.org/" +SRC_URI="http://caml.inria.fr/pub/distrib/ocaml-$(get_version_component_range 1-2)/${MY_P}.tar.xz + 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 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-fbsd ~amd64-linux ~x86-fbsd ~x86-linux" +IUSE="emacs latex ncurses +ocamlopt X xemacs" + +RDEPEND=" + ncurses? ( sys-libs/ncurses ) + X? ( x11-libs/libX11 x11-proto/xproto )" +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" +} + +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 + + # 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" + + # 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 opt.opt + 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 INSTALL README + + # 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.02.3.ebuild b/dev-lang/ocaml/ocaml-4.02.3.ebuild new file mode 100644 index 000000000000..c63ec6413718 --- /dev/null +++ b/dev-lang/ocaml/ocaml-4.02.3.ebuild @@ -0,0 +1,115 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="5" + +inherit flag-o-matic eutils multilib versionator toolchain-funcs + +PATCHLEVEL="7" +MY_P="${P/_/+}" +DESCRIPTION="Fast modern type-inferring functional programming language descended from the ML family" +HOMEPAGE="http://www.ocaml.org/" +SRC_URI="http://caml.inria.fr/pub/distrib/ocaml-$(get_version_component_range 1-2)/${MY_P}.tar.xz + 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 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86 ~amd64-fbsd ~amd64-linux ~x86-fbsd ~x86-linux" +IUSE="emacs latex ncurses +ocamlopt X xemacs" + +RDEPEND=" + ncurses? ( sys-libs/ncurses ) + X? ( x11-libs/libX11 x11-proto/xproto )" +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" +} + +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 + + # 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" + + # 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 opt.opt + 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 INSTALL README + + # 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" +} |