diff options
author | Andres Loeh <kosmikus@gentoo.org> | 2004-10-18 17:20:50 +0000 |
---|---|---|
committer | Andres Loeh <kosmikus@gentoo.org> | 2004-10-18 17:20:50 +0000 |
commit | 8f3b70d5c484cc3f9c6f6e816d98150c868c27af (patch) | |
tree | 11b96a1b1c528d6b390555d9c93171950e1ec789 /dev-lang/ghc/ghc-6.2.2.ebuild | |
parent | stable on x86 (Manifest recommit) (diff) | |
download | gentoo-2-8f3b70d5c484cc3f9c6f6e816d98150c868c27af.tar.gz gentoo-2-8f3b70d5c484cc3f9c6f6e816d98150c868c27af.tar.bz2 gentoo-2-8f3b70d5c484cc3f9c6f6e816d98150c868c27af.zip |
new version, and closing #59709
Diffstat (limited to 'dev-lang/ghc/ghc-6.2.2.ebuild')
-rw-r--r-- | dev-lang/ghc/ghc-6.2.2.ebuild | 183 |
1 files changed, 183 insertions, 0 deletions
diff --git a/dev-lang/ghc/ghc-6.2.2.ebuild b/dev-lang/ghc/ghc-6.2.2.ebuild new file mode 100644 index 000000000000..c380f9f3319d --- /dev/null +++ b/dev-lang/ghc/ghc-6.2.2.ebuild @@ -0,0 +1,183 @@ +# Copyright 1999-2004 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-lang/ghc/ghc-6.2.2.ebuild,v 1.1 2004/10/18 17:20:50 kosmikus Exp $ + +# Brief explanation of the bootstrap logic: +# +# ghc requires ghc-bin to bootstrap. +# Therefore, +# (1) both ghc-bin and ghc provide virtual/ghc +# (2) virtual/ghc *must* default to ghc-bin +# (3) ghc depends on virtual/ghc +# +# This solution has the advantage that the binary distribution +# can be removed once an forall after the first succesful install +# of ghc. + +inherit base flag-o-matic eutils + +IUSE="doc tetex opengl" + +DESCRIPTION="The Glasgow Haskell Compiler" +HOMEPAGE="http://www.haskell.org/ghc/" + +SRC_URI="http://www.haskell.org/ghc/dist/${PV}/ghc-${PV}-src.tar.bz2" + +LICENSE="as-is" +SLOT="0" +KEYWORDS="~x86 -alpha" + + +PROVIDE="virtual/ghc" +# FIXME: Add USE support for parallel haskell (requires PVM) +# Get PVM from ftp://ftp.netlib.org/pvm3/ +DEPEND="virtual/ghc + >=dev-lang/perl-5.6.1 + >=sys-devel/gcc-2.95.3 + >=sys-devel/make-3.79.1 + >=sys-apps/sed-3.02.80 + >=sys-devel/flex-2.5.4a + >=dev-libs/gmp-4.1 + doc? ( >=app-text/openjade-1.3.1 + >=app-text/sgml-common-0.6.3 + ~app-text/docbook-sgml-dtd-3.1 + >=app-text/docbook-dsssl-stylesheets-1.64 + >=dev-haskell/haddock-0.6-r2 + tetex? ( virtual/tetex + >=app-text/jadetex-3.12 ) ) + opengl? ( virtual/opengl + virtual/glu + virtual/glut )" + +RDEPEND="virtual/libc + >=sys-devel/gcc-2.95.3 + >=dev-lang/perl-5.6.1 + >=dev-libs/gmp-4.1 + opengl? ( virtual/opengl virtual/glu virtual/glut )" + +# extend path to /opt/ghc/bin to guarantee that ghc-bin is found +GHCPATH="${PATH}:/opt/ghc/bin" + +SUPPORTED_CFLAGS="" + +# Setup supported CFLAGS. +setup_cflag() { + OLD_CFLAGS="${CFLAGS}" + CFLAGS="${CFLAGS} $1" + strip-unsupported-flags + + if [ "${OLD_CFLAGS}" != "${CFLAGS}" ]; + then + SUPPORTED_CFLAGS="$1 ${SUPPORTED_CFLAGS}" + fi +} + +setup_cflags() { + setup_cflag "-fno-pic" + setup_cflag "-fno-stack-protector" +} + +src_unpack() { + base_src_unpack + + # hardened-gcc needs to be disabled, because the + # mangler doesn't accept its output; yes, the 6.2 version + # should do ... + cd ${S}/ghc + pushd driver + setup_cflags + epatch ${FILESDIR}/${PN}-6.2.hardened.patch + sed -i -e "s|@GHC_CFLAGS@|${SUPPORTED_CFLAGS//-f/-optc-f}|" ghc/ghc.sh + sed -i -e "s|@GHC_CFLAGS@|${SUPPORTED_CFLAGS//-f/-optc-f}|" ghci/ghci.sh + popd +} + +src_compile() { + local myconf + if use opengl; then + myconf="--enable-hopengl" + fi + + # disable the automatic PIC building which is considered as Prologue Junk by the Haskell Compiler + # thanks to Peter Simons for finding this and giving notice on bugs.gentoo.org + # (this is still necessary, even though we have the patch, because + # we might be bootstrapping from a version that didn't have the + # patch included) + setup_cflags + echo "SRC_CC_OPTS+=${SUPPORTED_CFLAGS}" >> mk/build.mk + echo "SRC_HC_OPTS+=${SUPPORTED_CFLAGS//-f/-optc-f}" >> mk/build.mk + + # force the config variable ArSupportsInput to be unset; + # ar in binutils >= 2.14.90.0.8-r1 seems to be classified + # incorrectly by the configure script + echo "ArSupportsInput:=" >> mk/build.mk + + # Required under ppc to work around some obscure linker problem. + if use ppc; + then + echo "SplitObjs=NO" >> mk/build.mk + fi + + # unset SGML_CATALOG_FILES because documentation installation + # breaks otherwise ... + # (--enable-threaded-rts is no longer needed) + PATH="${GHCPATH}" SGML_CATALOG_FILES="" econf \ + ${myconf} || die "econf failed" + + # the build does not seem to work all that + # well with parallel make + emake -j1 || die "make failed" + + # if documentation has been requested, build documentation ... + if use doc; then + emake -j1 html || die "make html failed" + if use tetex; then + emake -j1 ps || die "make ps failed" + fi + fi + +} + +src_install () { + local mydoc + local insttarget + + insttarget="install" + + # determine what to do with documentation + if use doc; then + mydoc="html" + insttarget="${insttarget} install-docs" + if use tetex; then + mydoc="${mydoc} ps" + fi + else + mydoc="" + # needed to prevent haddock from being called + echo NO_HADDOCK_DOCS=YES >> mk/build.mk + fi + echo SGMLDocWays="${mydoc}" >> mk/build.mk + + emake -j1 ${insttarget} \ + prefix="${D}/usr" \ + datadir="${D}/usr/share/doc/${PF}" \ + infodir="${D}/usr/share/info" \ + mandir="${D}/usr/share/man" \ + || die "make ${insttarget} failed" + + #need to remove ${D} from ghcprof script + cd ${D}/usr/bin + mv ghcprof ghcprof-orig + sed -e 's:$FPTOOLS_TOP_ABS:#$FPTOOLS_TOP_ABS:' ghcprof-orig > ghcprof + chmod a+x ghcprof + rm -f ghcprof-orig + + cd ${S}/ghc + dodoc README ANNOUNCE LICENSE VERSION +} + + +pkg_postinst () { + einfo "If you have dev-lang/ghc-bin installed, you might" + einfo "want to unmerge it again. It is no longer needed." +} |