| # Copyright 1999-2008 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Header: /var/cvsroot/gentoo-x86/dev-lisp/gcl/gcl-2.6.7.ebuild,v 1.12 2008/09/03 21:42:59 opfer Exp $ |
| |
| inherit elisp-common flag-o-matic autotools |
| |
| DESCRIPTION="GNU Common Lisp" |
| HOMEPAGE="http://www.gnu.org/software/gcl/gcl.html" |
| SRC_URI="ftp://ftp.gnu.org/gnu/gcl/${P}.tar.gz" |
| |
| LICENSE="GPL-2" |
| SLOT="0" |
| KEYWORDS="x86 ~ppc amd64 sparc" |
| IUSE="emacs readline debug X tk custreloc dlopen gprof doc ansi" |
| |
| RDEPEND="emacs? ( virtual/emacs ) |
| X? ( x11-libs/libXt x11-libs/libXext x11-libs/libXmu x11-libs/libXaw ) |
| readline? ( sys-libs/readline ) |
| >=dev-libs/gmp-4.1 |
| tk? ( dev-lang/tk )" |
| |
| DEPEND="$RDEPEND |
| doc? ( virtual/texi2dvi ) |
| >=app-text/texi2html-1.64 |
| >=sys-devel/autoconf-2.52" |
| |
| src_unpack() { |
| unpack ${A} |
| sed -e "s/gcl-doc/${PF}/g" "${S}"/info/makefile > "${T}"/makefile |
| mv "${T}"/makefile "${S}"/info/makefile |
| epatch "${FILESDIR}"/${PV}-fix-configure.in-gentoo.patch |
| epatch "${FILESDIR}"/${P}-fix-configure.in-bfd.patch |
| |
| eautoconf || die |
| } |
| |
| src_compile() { |
| export SANDBOX_ON=0 |
| local myconfig="" |
| |
| # Hardened gcc may automatically use PIE building, which does not |
| # work for this package so far |
| |
| filter-flags "-fPIC" |
| |
| # -fomit-frame-pointer cannot be used with gprof |
| |
| if use gprof; then |
| filter-flags "-fomit-frame-pointer" |
| fi |
| |
| # Unfortunately, we need to override any relocation choices below |
| # while upstream doesn't work with system BFD. SuSE has the same |
| # problem apparently. |
| |
| if false; then |
| |
| # Linking options are enumerated at |
| # http://www.gnu.org/software/gcl/RELEASE-2.6.2.html |
| |
| local dlopen_config=" |
| --disable-custreloc |
| --enable-dlopen |
| --disable-dynsysbfd |
| --disable-statsysbfd"; |
| |
| local bfd_config=" |
| --disable-custreloc |
| --disable-dlopen |
| --enable-dynsysbfd |
| --disable-statsysbfd"; |
| |
| local custreloc_config=" |
| --enable-custreloc |
| --disable-dlopen |
| --disable-dynsysbfd |
| --disable-statsysbfd"; |
| |
| if use custreloc; then |
| case "${ARCH}" in |
| x86 | sparc) |
| myconfig="${myconfig} ${custreloc_config}";; |
| *) |
| ewarn "--enable-custreloc is not supported on your architecture (${ARCH})." |
| ewarn "Using --enable-dlopen instead." |
| myconfig="${myconfig} ${dlopen_config}" |
| |
| esac |
| elif use dlopen; then |
| myconfig="${myconfig} ${dlopen_config}" |
| else |
| case "${ARCH}" in |
| x86 | sparc | ppc | amd64 | s390) |
| myconfig="${myconfig} ${bfd_config}";; |
| *) |
| ewarn "BFD is not supported on your architecture (${ARCH})." |
| ewarn "Using --enable-dlopen instead." |
| myconfig="${myconfig} ${dlopen_config}";; |
| esac |
| fi |
| |
| else |
| myconfig="${myconfig} --enable-locbfd --disable-dynsysbfd --disable-statsysbfd" |
| fi |
| |
| if use tk; then |
| myconfig="${myconfig} |
| --enable-tkconfig=/usr/lib |
| --enable-tclconfig=/usr/lib" |
| fi |
| |
| myconfig="${myconfig} |
| --enable-dynsysgmp |
| `use_enable readline readline` |
| `use_with X x` |
| `use_enable debug debug` |
| `use_enable gprof gprof` |
| `use_enable ansi ansi` |
| --enable-xdr=no |
| --enable-infodir=/usr/share/info |
| --enable-emacsdir=/usr/share/emacs/site-lisp/gcl" |
| |
| einfo "Configuring with the following: |
| ${myconfig}" |
| econf ${myconfig} || die |
| make || die |
| } |
| |
| src_install() { |
| export SANDBOX_ON=0 |
| make DESTDIR="${D}" install || die |
| |
| rm -rf "${D}"/usr/lib/${P}/info |
| mv "${D}"/default.el elisp/ |
| |
| if use emacs; then |
| mv elisp/add-default.el "${T}"/50gcl-gentoo.el |
| elisp-site-file-install "${T}"/50gcl-gentoo.el |
| elisp-install ${PN} elisp/* |
| fperms 0644 /usr/share/emacs/site-lisp/gcl/* |
| else |
| rm -rf "${D}"/usr/share/emacs |
| fi |
| |
| dosed /usr/bin/gcl |
| fperms 0755 /usr/bin/gcl |
| |
| # fix the GCL_TK_DIR=/var/tmp/portage/${P}/image// |
| dosed /usr/lib/${P}/gcl-tk/gcltksrv |
| fperms 0755 /usr/lib/${P}/gcl-tk/gcltksrv |
| |
| #repair gcl.exe symlink |
| #rm ${D}/usr/bin/gcl.exe |
| dosym ../lib/${P}/unixport/saved_gcl /usr/bin/gcl.exe |
| |
| dodoc readme* RELEASE* ChangeLog* doc/* |
| |
| for i in "${D}"/usr/share/doc/gcl-{tk,si}; do |
| mv $i "${D}"/usr/share/doc/${PF} |
| done |
| |
| find "${D}"/usr/lib/gcl-${PV}/ -type f \( -perm 640 -o -perm 750 \) -exec chmod 0644 '{}' \; |
| } |
| |
| pkg_postinst() { |
| use emacs && elisp-site-regen |
| } |
| |
| pkg_postrm() { |
| use emacs && elisp-site-regen |
| } |