120 lines
3.9 KiB
Bash
120 lines
3.9 KiB
Bash
# Copyright 1999-2012 Gentoo Foundation
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
# $Header: /var/cvsroot/gentoo-x86/dev-lang/pike/pike-7.8.352-r2.ebuild,v 1.2 2012/10/04 15:28:42 ottxor Exp $
|
|
|
|
EAPI=4
|
|
|
|
inherit eutils multilib
|
|
|
|
DESCRIPTION="Pike programming language and runtime"
|
|
HOMEPAGE="http://pike.ida.liu.se/"
|
|
SRC_URI="http://pike.ida.liu.se/pub/pike/all/${PV}/Pike-v${PV}.tar.gz"
|
|
|
|
LICENSE="GPL-2 LGPL-2.1 MPL-1.1"
|
|
SLOT="0"
|
|
KEYWORDS="~alpha ~amd64 ~hppa ~ia64 ~mips ~ppc ~sparc ~x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux"
|
|
IUSE="bzip2 debug doc fftw gdbm glut gnome gtk hardened java jpeg kerberos mysql odbc opengl pcre scanner sdl sqlite svg test tiff truetype zlib"
|
|
|
|
DEPEND=">=dev-libs/nettle-2.1
|
|
dev-libs/gmp
|
|
media-libs/giflib
|
|
bzip2? ( app-arch/bzip2 )
|
|
fftw? ( sci-libs/fftw )
|
|
gdbm? ( sys-libs/gdbm )
|
|
gtk? ( >=x11-libs/gtk+-1.2:1 >=x11-libs/gtk+-2.16:2 )
|
|
gtk? ( gnome? ( gnome-base/libgnome gnome-base/libgnomeui gnome-base/gnome-applets gnome-base/libglade ) )
|
|
gtk? ( opengl? ( x11-libs/gtkglarea:1 ) )
|
|
java? ( virtual/jdk virtual/libffi )
|
|
jpeg? ( virtual/jpeg )
|
|
kerberos? ( virtual/krb5 net-libs/libgssglue )
|
|
mysql? ( virtual/mysql )
|
|
odbc? ( dev-db/libiodbc )
|
|
opengl? ( virtual/opengl glut? ( media-libs/freeglut ) )
|
|
pcre? ( dev-libs/libpcre )
|
|
!x86-fbsd? ( scanner? ( media-gfx/sane-backends ) )
|
|
sdl? ( media-libs/libsdl media-libs/sdl-mixer )
|
|
sqlite? ( dev-db/sqlite )
|
|
svg? ( gnome-base/librsvg )
|
|
test? ( sys-devel/m4 )
|
|
tiff? ( media-libs/tiff )
|
|
truetype? ( >media-libs/freetype-2 )
|
|
zlib? ( sys-libs/zlib )"
|
|
RDEPEND=""
|
|
|
|
S=${WORKDIR}/Pike-v${PV}
|
|
|
|
src_prepare(){
|
|
epatch "${FILESDIR}/nettle-2.1.patch"
|
|
}
|
|
|
|
src_compile() {
|
|
local myconf=""
|
|
# ffmpeg is broken atm #110136
|
|
myconf="${myconf} --without-_Ffmpeg"
|
|
# on hardened, disable runtime-generated code
|
|
# otherwise let configure work it out for itself
|
|
use hardened && myconf="${myconf} --without-machine-code"
|
|
|
|
# Add '-j1' since parallel builds is a bit broken.
|
|
emake -j1 \
|
|
CONFIGUREARGS=" \
|
|
--prefix=/usr \
|
|
--libdir=/usr/$(get_libdir) \
|
|
--disable-make_conf \
|
|
--disable-noopty-retry \
|
|
--without-cdebug \
|
|
--without-bundles \
|
|
--without-copt \
|
|
--without-libpdf \
|
|
--without-ssleay \
|
|
--with-crypt \
|
|
--with-gif \
|
|
--with-gmp \
|
|
--with-bignums \
|
|
$(use_with bzip2 Bz2) \
|
|
$(use_with debug rtldebug) \
|
|
$(use_with fftw) \
|
|
$(use_with gdbm) \
|
|
$(use_with java Java) \
|
|
$(use_with jpeg jpeglib) \
|
|
$(use_with kerberos Kerberos) \
|
|
$(use_with kerberos gssapi) \
|
|
$(use_with mysql) \
|
|
$(use_with odbc Odbc) \
|
|
$(use_with opengl GL) \
|
|
$(use opengl && use_with glut GLUT) \
|
|
$(use opengl || use_with opengl GLUT) \
|
|
$(use_with pcre _Regexp_PCRE) \
|
|
$(use_with scanner sane) \
|
|
$(use_with sdl SDL) \
|
|
$(use_with sdl SDL_mixer) \
|
|
$(use_with svg) \
|
|
$(use_with tiff tifflib) \
|
|
$(use_with truetype freetype) \
|
|
$(use_with zlib) \
|
|
${myconf}"
|
|
|
|
if use doc; then
|
|
PATH="${S}/bin:${PATH}" emake -j1 doc
|
|
fi
|
|
}
|
|
|
|
src_install() {
|
|
# do not remove modules to avoid sandbox violation.
|
|
# The sandbox really ought to allow deletion of files
|
|
# that belong to previous installs of the ebuild, or
|
|
# even better: hide them.
|
|
sed -i s/rm\(mod\+\"\.o\"\)\;/break\;/ "${S}"/bin/install.pike || die "Failed to modify install.pike (1)"
|
|
sed -i 's/\(Array.map *( *files_to_delete *- *files_to_not_delete,*rm*);\)/; \/\/ \1/' "${S}"/bin/install.pike || die "Failed to modify install.pike (2)"
|
|
if use doc ; then
|
|
emake -j1 INSTALLARGS="--traditional" buildroot="${D}" install
|
|
einfo "Installing 60MB of docs, this could take some time ..."
|
|
dohtml -r "${S}"/refdoc/traditional_manual "${S}"/refdoc/modref
|
|
else
|
|
emake -j1 INSTALLARGS="--traditional" buildroot="${D}" install_nodoc
|
|
fi
|
|
# Installation is a bit broken.. remove the doc sources.
|
|
rm -rf "${ED}/usr/doc"
|
|
# Install the man pages in the proper location.
|
|
rm -rf "${ED}/usr/man" && doman "${S}/man/pike.1"
|
|
}
|