public inbox for gentoo-lisp@lists.gentoo.org
 help / color / mirror / Atom feed
From: Morgon Kanter <morgon.kanter@gmail.com>
To: gentoo-lisp@lists.gentoo.org
Subject: [gentoo-lisp] Ebuild for Racket 5.1
Date: Mon, 21 Feb 2011 12:07:03 -0500	[thread overview]
Message-ID: <AANLkTin-HS0qCw83xg3T80vQ3eYfoS-_a3LfaQqg9e8k@mail.gmail.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 635 bytes --]

Hey folks,

I noticed there wasn't yet an ebuild for the new version of Racket, so
I went ahead and made one. It's attached.

A couple changes besides just bumping the version number:
* Doesn't really seem like that makefile patch was required anymore (I
didn't need it), so I commented that out.
* The new Racket GUI system doesn't appear to include any of those
external libraries that the ebuild used to issue an "rm" for, so I
removed those bits from the ebuild (as well as the formerly
commented-out rm commands that were replaced by something different).

That's it for the changes, aside from a version bump.

Thanks,
-- Morgon

[-- Attachment #2: racket-5.1.ebuild --]
[-- Type: application/octet-stream, Size: 3941 bytes --]

# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

EAPI="3"

inherit eutils

DESCRIPTION="Programming environment based on Scheme."
SRC_URI="http://download.racket-lang.org/installers/${PV}/${PN}/${P}-src-unix.tgz"
HOMEPAGE="http://www.racket-lang.org"

LICENSE="LGPL-2.1"
SLOT="0"
KEYWORDS="~x86 ~amd64"
IUSE="-backtrace cairo cgc doc opengl profile X slatex sgc -futures -places +foreign static -plain"
# jit
RDEPEND="X? ( x11-libs/libX11
			x11-libs/libXaw
			x11-libs/libXft
			x11-libs/libXrender
			media-libs/jpeg
			media-libs/libpng
			opengl? ( virtual/opengl )
			cairo? ( x11-libs/cairo[X] ) )
		slatex? ( virtual/latex-base )
		!dev-scheme/plt-scheme"
DEPEND="${RDEPEND}"
S="${WORKDIR}/${P}/src/build"
ECONF_SOURCE="${S}/.."
MY_PNUM="01"

pkg_setup() {
	if use cgc && use sgc ; then
		die "You cannot use both cgc and sgc USE flags, you have to choose one of them"
	fi
	for my_flag in backtrace futures places
	do
		if use "${my_flag}" ; then
			ewarn "${my_flag} USE flag is known that may make ${P} compilation"
			ewarn "to fail. Please remove it, if the ebuild fails for you. "
		fi
	done
	if use cairo || use opengl ; then
		if ! use X ; then
			ewarn "cairo and opengl USE flags support features that are disabled"
			ewarn "by ${P} build system when you haven't enabled the X USE flag."
		fi
	fi
}

src_unpack() {
	unpack ${A}
	mkdir -v "${S}" || die "failed to create build dir"
}

src_prepare() {
	sed -i -e "s/docdir=\"\${datadir}\/racket\/doc\"/docdir=\"\${datadir}\/doc\/${PF}\"/" ../configure || die "sed failed"
	pushd ..
#	epatch "${FILESDIR}/${P}-hack_makefile_in_temp${MY_PNUM}.patch"
	popd
	#sed -i -e 's/#! \/bin\/sh/#! \/bin\/sh -x/g' ../configure \
	#|| die "sed failed"
	sed -i -e 's:CFLAGS) -o ../starter:CFLAGS) @LDFLAGS@ -o ../starter:' \
		../racket/dynsrc/Makefile.in || die 'sed starter LDFLAGS failed'
}

src_configure() {
	econf \
		$(use_enable !static shared) \
		$(use_enable doc docs) \
		$(use_enable X gracket) \
		$(use_enable X xrender) \
		$(use_enable X xft) \
		$(use_enable opengl gl) \
		$(use_enable cairo) \
		$(use_enable profile gprof) \
		$(use_enable backtrace) \
		$(use_enable sgc) \
		$(use_enable futures) \
		$(use_enable places) \
		$(use_enable foreign) \
		--enable-jit \
		--enable-libpng \
		--enable-libjpeg \
		--enable-pthread \
		--enable-account \
		--disable-sgcdebug \
		--disable-compact \
		--disable-smalloskit \
		--disable-oskit \
		--disable-wbuild \
		--disable-perl \
		$(use_with X x)
}

src_compile() {
	emake || die "emake default target(3m) failed"
	if use cgc || use sgc ; then
		time emake cgc || die "emake cgc-install target failed"
	fi
}

src_install() {
	local pla1n=""
	if use plain; then
		pla1n="plain-"
	fi

	# From boost-1.42.0-r2.ebuild
	local jobs=$( echo " ${MAKEOPTS} " | \
		sed -e 's/ --jobs[= ]/ -j /g' \
		-e 's/ -j \([1-9][0-9]*\)/ -j\1/g' \
		-e 's/ -j\>/ -j1/g' | \
		( while read -d ' ' j ; do if [[ "${j#-j}" = "$j" ]]; then continue; fi; jobs="${j#-j}"; done; echo ${jobs} ) )
	if [[ "${jobs}" != "" ]]; then NUMJOBS="-j "${jobs}; fi;

	time emake DESTDIR="${D}" PLT_SETUP_OPTIONS="${NUMJOBS}" "${pla1n}"install || die "emake install failed"
	if use cgc || use sgc ; then
		time emake DESTDIR="${D}" "${pla1n}"install-cgc || die "emake cgc target failed"
	fi
	if use X; then
		newicon ../../collects/icons/PLT-206.png drscheme.png
		make_desktop_entry drscheme "DrScheme" drscheme "Development"
	fi
	# deal with slatex
	if use slatex; then
		if ! use plain; then
			pushd "${D}"/usr/bin
			{ rename slatex plt-slatex slatex* && rename pdf-slatex plt-pdf-slatex pdf-slatex* ; } || die "Failed to rename slatex* to plt-slatex*"
			popd
		fi
		insinto /usr/share/texmf/tex/latex/slatex/
		newins ../../collects/slatex/slatex.sty plt-slatex.sty
	else
		if ! use plain; then
			rm -Rfv "${D}"/usr/bin/*slatex* || die "Failed to delete slatex files"
		fi
	fi
}

             reply	other threads:[~2011-02-21 17:07 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-21 17:07 Morgon Kanter [this message]
2011-02-21 21:18 ` [gentoo-lisp] Ebuild for Racket 5.1 Neil Funk
2011-02-22 10:32 ` Cyprien Nicolas
2011-02-22 17:53   ` Neil Funk
2011-02-22 19:05     ` Morgon Kanter
2011-02-22 19:51       ` Cyprien Nicolas
2011-02-23 21:41         ` Neil Funk

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=AANLkTin-HS0qCw83xg3T80vQ3eYfoS-_a3LfaQqg9e8k@mail.gmail.com \
    --to=morgon.kanter@gmail.com \
    --cc=gentoo-lisp@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox