blob: 6d734a3d7fc7e6f8b3e75ede04dc1aac58832f71 [file] [log] [blame]
# Copyright 1999-2009 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/app-editors/emacs/emacs-18.59-r6.ebuild,v 1.9 2009/12/30 16:19:12 ulm Exp $
EAPI=2
inherit eutils toolchain-funcs flag-o-matic multilib
DESCRIPTION="The extensible self-documenting text editor"
HOMEPAGE="http://www.gnu.org/software/emacs/"
SRC_URI="mirror://gnu/old-gnu/emacs/${P}.tar.gz
ftp://ftp.splode.com/pub/users/friedman/emacs/${P}-linux22x-elf-glibc21.diff.gz
mirror://gentoo/${P}-patches-4.tar.bz2"
LICENSE="GPL-1 GPL-2 BSD" #as-is
SLOT="18"
KEYWORDS="amd64 x86"
IUSE=""
RDEPEND="sys-libs/ncurses
>=app-admin/eselect-emacs-1.2
amd64? ( app-emulation/emul-linux-x86-baselibs )"
# X? ( x11-libs/libX11[-xcb] )
DEPEND="${RDEPEND}"
MY_BASEDIR="/usr/share/emacs/${PV}"
MY_LOCKDIR="/var/lib/emacs/lock"
src_prepare() {
epatch "${WORKDIR}/${P}-linux22x-elf-glibc21.diff"
EPATCH_SUFFIX=patch epatch
}
src_configure() {
# autoconf? What's autoconf? We are living in 1992. ;-)
local arch
case ${ARCH} in
amd64) arch=intel386; multilib_toolchain_setup x86 ;;
x86) arch=intel386 ;;
*) die "Architecture ${arch} not supported" ;;
esac
local cmd="s/\"s-.*\.h\"/\"s-linux.h\"/;s/\"m-.*\.h\"/\"m-${arch}.h\"/"
#use X && cmd="${cmd};s/.*\(#define HAVE_X_WINDOWS\).*/\1/"
sed -e "${cmd}" src/config.h-dist >src/config.h
cat <<-END >src/paths.h
#define PATH_LOADSEARCH "${MY_BASEDIR}/lisp"
#define PATH_EXEC "${MY_BASEDIR}/etc"
#define PATH_LOCK "${MY_LOCKDIR}/"
#define PATH_SUPERLOCK "${MY_LOCKDIR}/!!!SuperLock!!!"
END
sed -i -e "s:/usr/lib/\([^ ]*\).o:/usr/$(get_libdir)/\1.o:g" \
src/s-linux.h || die
# -O3 and -finline-functions cause segmentation faults at run time.
filter-flags -finline-functions
replace-flags -O[3-9] -O2
strip-flags
}
src_compile() {
# Do not use the sandbox, or the dumped Emacs will be twice as large
export SANDBOX_ON=0
emake --jobs=1 CC="$(tc-getCC)" CFLAGS="${CFLAGS} -Demacs" || die
}
src_install() {
local i
dodir ${MY_BASEDIR}
dodir /usr/share/man/man1
make install LIBDIR="${D}${MY_BASEDIR}" BINDIR="${D}/usr/bin" \
MANDIR="${D}/usr/share/man/man1" || die
chmod -R go-w "${D}${MY_BASEDIR}"
rmdir "${D}${MY_BASEDIR}/lock"
dodir ${MY_LOCKDIR%/*}
diropts -m0777
keepdir ${MY_LOCKDIR}
for i in emacsclient etags ctags; do
mv "${D}"/usr/bin/${i}{,-emacs-${SLOT}} || die "mv ${i} failed"
done
mv "${D}"/usr/bin/emacs{,-${SLOT}} || die "mv emacs failed"
mv "${D}"/usr/share/man/man1/emacs{,-emacs-${SLOT}}.1 || die
dosym ../emacs/${PV}/info /usr/share/info/emacs-${SLOT}
dodoc README PROBLEMS
}
pkg_postinst() {
eselect emacs update ifunset
}
pkg_postrm() {
eselect emacs update ifunset
}