diff options
Diffstat (limited to 'app-editors/sxemacs/sxemacs-22.1.15.ebuild')
-rw-r--r-- | app-editors/sxemacs/sxemacs-22.1.15.ebuild | 359 |
1 files changed, 359 insertions, 0 deletions
diff --git a/app-editors/sxemacs/sxemacs-22.1.15.ebuild b/app-editors/sxemacs/sxemacs-22.1.15.ebuild new file mode 100644 index 0000000..10d486a --- /dev/null +++ b/app-editors/sxemacs/sxemacs-22.1.15.ebuild @@ -0,0 +1,359 @@ +# Distributed under the terms of the GNU General Public License v2 + +# Note: Although this ebuild has the approval of the SXEmacs Project, +# it is not an official subset of the project and thus only limited +# support can be offered for this ebuild. + +EAPI="4" + +inherit eutils flag-o-matic + +DESCRIPTION="A text editing and development environment based on XEmacs that aims to be second to none in stability, features, and innovation." +HOMEPAGE="http://www.sxemacs.org/" +SRC_URI="http://downloads.sxemacs.org/releases/${P}.tar.xz + http://www.malfunction.de/afterstep/files/NeXT_XEmacs.tar.gz" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +IUSE="X alsa jack pulseaudio oss nas ao gif png jpeg xface tiff ffmpeg mad bdwgc \ + sndfile sox ssl tls ipv6 pop kerberos hesiod postgresql libffi gmp mpfr magic xpm \ + athena neXt motif xim canna freewnn gdbm berkdb tty gpm ncurses mule socks \ + omgoptimize warnfull" + +X_DEPEND="x11-libs/libXt x11-libs/libXmu x11-libs/libXext x11-misc/xbitmaps" + +# The blockers at the end are because sxemacs has file conflicts with all of +# those packages and blockers are the easiest solution. +DEPEND="virtual/libc + sys-libs/zlib + >=media-libs/audiofile-0.2.3 + X? ( $X_DEPEND !neXt? ( x11-libs/libXaw ) ) + alsa? ( media-sound/alsa-headers ) + jack? ( media-sound/jack ) + pulseaudio? ( media-sound/pulseaudio ) + nas? ( media-libs/nas ) + ao? ( >=media-libs/libao-0.8.5 ) + png? ( media-libs/libpng ) + jpeg? ( virtual/jpeg ) + xface? ( media-libs/compface ) + tiff? ( media-libs/tiff ) + ffmpeg? ( media-video/ffmpeg ) + mad? ( media-libs/libmad media-sound/madplay ) + bdwgc? ( dev-libs/boehm-gc ) + sndfile? ( media-libs/libsndfile ) + sox? ( media-sound/sox ) + ssl? ( >=dev-libs/openssl-0.9.8 ) + tls? ( >=net-libs/gnutls-2.0.4 ) + kerberos? ( app-crypt/mit-krb5 ) + hesiod? ( net-dns/hesiod ) + postgresql? ( dev-db/postgresql-base ) + libffi? ( dev-libs/libffi ) + gmp? ( dev-libs/gmp ) + mpfr? ( dev-libs/mpfr ) + athena? ( x11-libs/libXaw ) + neXt? ( x11-libs/neXtaw ) + motif? ( >=x11-libs/openmotif-2.1.30 ) + canna? ( app-i18n/canna ) + freewnn? ( app-i18n/freewnn ) + gdbm? ( >=sys-libs/gdbm-1.8.3 ) + berkdb? ( sys-libs/db ) + gpm? ( sys-libs/gpm ) + ncurses? ( >=sys-libs/ncurses-5.2 ) + magic? ( sys-apps/file ) + !app-admin/eselect-ctags + !app-editors/emacs + !app-editors/emacs-vcs + !app-editors/xemacs + !dev-util/ctags" + +# app-xemacs/xemacs-base should probably be here but it causes +# app-editors/xemacs to be installed which causes file conflicts +PDEPEND="mule? ( app-xemacs/mule-base )" + +pkg_setup() { + if use libffi ; + then + elog "You've elected to build SXEmacs with FFI support." + elog "This will allow you to view in SXEmacs any image type" + elog "supported by ImageMagick's libWand." + elog "It will also allow you to download the initial XE packages" + elog "from within SXEmacs itself. To do this, use" + elog " M-x pui-bootstrap RET" + fi + + if use bdwgc ; + then + ewarn "You've elected to compile SXEmacs with support for the" + ewarn "Boehm-Demers-Weiser Garbage Collector, or Boehm-GC." + ewarn "The BDWGC code is still in its infancy, and is known to" + ewarn "consume larger-than-average amounts of memory in an SXEmacs" + ewarn "session. You have been warned." + fi + + ewarn "Note: Although this ebuild has the approval of the SXEmacs Project," + ewarn "it is not an official subset of the project and thus only limited" + ewarn "support can be offered for this ebuild. " +} + +src_unpack() { + unpack ${P}.tar.xz + use neXt && unpack NeXT_XEmacs.tar.gz +} + +src_prepare() { + use neXt && cp "${WORKDIR}"/NeXT.XEmacs/xemacs-icons/* "${S}"/etc/toolbar/ +} + +src_configure() { + + ##################################### + # Allow SXEmacs to decide on CFLAGS # + ##################################### + # Don't know why a higher value won't work on some Gentoo systems, but to be + # safe and ensure that users don't whinge too much, we'll arbitrate -O2 as + # the optimisation level. + # Also work around hardened compiler bugs. + if use omgoptimize ; then + echo "" + else + replace-flags -O* -O2 + fi + filter-flags -fomit-frame-pointer -fPIE + is-flag -nopie && append-flags -nopie + + ################# + # Configuration # + ################# + local myconf="" + + ####################### + # Configuration for X # + ####################### + if use X ; then + myconf="${myconf} --with-widgets=athena" + myconf="${myconf} --with-dialogs=athena" + myconf="${myconf} --with-menubars=lucid" + myconf="${myconf} --with-scrollbars=lucid" + if use motif ; then + myconf="--with-widgets=motif" + myconf="${myconf} --with-dialogs=motif" + myconf="${myconf} --with-scrollbars=motif" + myconf="${myconf} --with-menubars=lucid" + fi + if use athena ; then + myconf="--with-scrollbars=athena" + fi + if use neXt ; then + myconf="${myconf} --with-athena=next" + else + myconf="${myconf} --with-athena=xaw" + fi + + else + myconf="${myconf} --without-x" + fi + + ######################### + # Configuration for TTY # + ######################### + local ttyconf="" + if use tty ; then + ttyconf="${ttyconf} --with-tty" + if use tty ; then + if use ncurses ; then + ttyconf="${ttyconf} --with-ncurses" + else + ttyconf="${ttyconf} --without-ncurses" + fi + if use gpm ; then + ttyconf="${ttyconf} --with-gpm" + else + ttyconf="${ttyconf} --without-gpm" + fi + fi + else + ttyconf="${ttyconf} --without-tty" + fi + myconf="${myconf} ${ttyconf}" + + ###################### + # MULE Configuration # + ###################### + if use mule ; then + myconf="${myconf} --with-mule" + if use xim ; then + if use motif ; then + myconf="${myconf} --with-xim=motif" + else + myconf="${myconf} --with-xim=xlib" + fi + else + myconf="${myconf} --with-xim=no" + fi + use canna && myconf="${myconf} --with-canna" + use freewnn && myconf="${myconf} --with-wnn" + else + myconf="${myconf} --without-mule" + fi + + ####################### + # Sound Configuration # + ####################### + local soundconf="none" + # Define what sound outputs we use + use alsa && soundconf="${soundconf},alsa" + use jack && soundconf="${soundconf},jack" + use oss && soundconf="${soundconf},oss" + use nas && soundconf="${soundconf},nas" + use arts && soundconf="${soundconf},arts" + use ao && soundconf="${soundconf},ao" + use esd && soundconf="${soundconf},esd" + # And make them work + myconf="${myconf} --with-sound=${soundconf}" + use pulseaudio && myconf="${myconf} --with-pulseaudio" + + ######################## + # Images Configuration # + ######################## + local imageconf="none" + # Define Image Types to support + use gif && imageconf="${imageconf},gif" + use png && imageconf="${imageconf},png" + use jpeg && imageconf="${imageconf},jpeg" + use xface && imageconf="${imageconf},xface" + use tiff && imageconf="${imageconf},tiff" + use xpm && imageconf="${imageconf},xpm" + # And make them work + myconf="${myconf} --with-image=${imageconf}" + # Note - If FFI useflag is set, and ImageMagick is installed, SXEmacs + # will make use of libWand and can thus display many more types of + # image. + + ########################## + # Database Configuration # + ########################## + local mydb="none" + use gdbm && mydb="${mydb},gdbm" + use berkdb && mydb="${mydb},berkdb" + myconf="${myconf} --with-database=${mydb}" + # and add support for postgre here + use postgresql && myconf="${myconf} --with-postgresql" || myconf="${myconf} --without-postgresql" + + ####################### + # Media Configuration # + ####################### + local mediaconf="none,internal" + # Define Media Types to support + use ffmpeg && mediaconf="${mediaconf},ffmpeg" + use mad && mediaconf="${mediaconf},mad" + use sndfile && mediaconf="${mediaconf},sndfile" + use magic && mediaconf="${mediaconf},magic" + use sox && mediaconf="${mediaconf},sox" + # And make them work + myconf="${myconf} --with-media=${mediaconf}" + + ######################## + # Cryptography Options # + ######################## + local crypto="" + use ssl && crypto="${crypto} --with-openssl" + use tls && crypto="${crypto} --with-gnutls" + myconf="${myconf} ${crypto}" + + ############################ + # Networking Configuration # + ############################ + local netconf="" + use pop && netconf="${netconf} --with-pop" || netconf="${netconf} --without-pop" + use kerberos && netconf="${netconf} --with-kerberos" || netconf="${netconf} --without-kerberos" + use hesiod && netconf="${netconf} --with-hesiod" + use socks && netconf="${netconf} --with-socks" + myconf="${myconf} ${netconf}" + + ####### + # FFI # + ####### + use libffi && myconf="${myconf} --with-ffi" + + ######################################### + # Boehm-Demers-Weiser Garbage Collector # + ######################################### + use bdwgc && myconf="${myconf} --with-experimental-features=all" + + ############################ + # Aggressive Optimisations # + ############################ + use omgoptimize && myconf="${myconf} --with-ridiculously-aggressive-optimisations" + + ########################## + # Maximum Warning Output # + ########################## + use warnfull && myconf="${myconf} --with-maximum-warning-output" + + #################### + # Neat Math Tricks # + #################### + # I'm going to let SXEmacs do the deciding here. + # The useflags will simply be for dependencies. + myconf="${myconf} --with-ent=all --with-ase=all" + + ################## + # Module Support # + ################## + myconf="${myconf} --with-module-support" + myconf="${myconf} --with-modules=all" + + ######################## + # End of Configuration # + ######################## + + ############### + # ./configure # + ############### + + econf ${myconf} +} + +src_compile() +{ + ################# + # Build SXEmacs # + ################# + + emake build-report + +} + +src_install() { + ################### + # Install SXEmacs # + ################### + default + + dodir /usr/share/sxemacs-22.1.15/ + dodir /usr/share/sxemacs/xemacs-packages/ + dodir /usr/share/sxemacs/sxemacs-packages/ + dodir /usr/share/sxemacs/site-packages/ + + if use mule; + then + dodir /usr/share/sxemacs/mule-packages + fi + + insinto /usr/share/pixmaps + newins "${S}"/etc/${PN}-icon3.xpm ${PN}.xpm + + insinto /usr/share/applications + doins "${S}"/etc/${PN}.desktop + +} + +pkg_postinst() { + eselect emacs update --if-unset +} + +pkg_postrm() { + eselect emacs update --if-unset +}
\ No newline at end of file |