# Template file for 'emacs' pkgname=emacs version=28.1 revision=3 build_style=gnu-configure configure_args="--with-file-notification=inotify --with-modules $(vopt_with jpeg) $(vopt_with tiff) $(vopt_with gif) $(vopt_with png) $(vopt_with xpm) $(vopt_with svg rsvg) $(vopt_with imagemagick) $(vopt_with xml xml2) $(vopt_with gnutls) $(vopt_with sound) $(vopt_with m17n m17n-flt) $(vopt_with json) $(vopt_with harfbuzz) $(vopt_with cairo) $(vopt_with gmp libgmp) $(vopt_with nativecomp native-compilation)" hostmakedepends="pkg-config tar" makedepends="ncurses-devel libXaw-devel gtk+3-devel webkit2gtk-devel dbus-devel acl-devel $(vopt_if jpeg libjpeg-turbo-devel) $(vopt_if tiff tiff-devel) $(vopt_if gif giflib-devel) $(vopt_if png libpng-devel) $(vopt_if xpm libXpm-devel) $(vopt_if svg librsvg-devel) $(vopt_if imagemagick libmagick-devel) $(vopt_if xml libxml2-devel) $(vopt_if gnutls gnutls-devel) $(vopt_if sound alsa-lib-devel) $(vopt_if m17n m17n-lib-devel) $(vopt_if json jansson-devel) $(vopt_if harfbuzz harfbuzz-devel) $(vopt_if cairo cairo-devel) $(vopt_if gmp gmp-devel) $(vopt_if nativecomp libgccjit-devel)" depends="emacs-common-${version}_${revision}" short_desc="GNU Emacs editor" maintainer="Leah Neukirchen " license="GPL-3.0-or-later" homepage="http://www.gnu.org/software/emacs/" distfiles="${GNU_SITE}/${pkgname}/${pkgname}-${version}.tar.xz" checksum=28b1b3d099037a088f0a4ca251d7e7262eab5ea1677aabffa6c4426961ad75e1 nocross=yes nopie=yes # Package build options build_options="jpeg tiff gif png xpm svg xml imagemagick gnutls sound m17n dbus json harfbuzz cairo gmp nativecomp" desc_option_cairo="Enable support for drawing with Cairo" desc_option_gmp="Enable support for big numbers using GMP" desc_option_json="Enable support for native JSON parsing" desc_option_m17n="Enable support for m17n multilingual text processing" desc_option_nativecomp="Enable support for native compilation" desc_option_sound="Enable support for sound" desc_option_xpm="Enable support for XPM images" build_options_default="cairo gif gmp gnutls harfbuzz jpeg json m17n png sound svg tiff xml xpm" case "$XBPS_TARGET_MACHINE" in ppc64*) build_options_default+=" nativecomp";; ppc*) ;; # assembler errors *) build_options_default+=" nativecomp";; esac pre_configure() { # Just configuring in different directories results in # spurious emacs rebuilds with incompatible build numbers. mkdir -p nox mv * nox || true cp -a nox x11 cp -a nox gtk3 } do_configure() { cd $wrksrc/nox ./configure --without-x $(vopt_with dbus) ${configure_args} \ --without-native-compilation cd $wrksrc/x11 ./configure --with-x-toolkit=athena --without-toolkit-scroll-bars \ $(vopt_with dbus) --without-gconf --without-gsettings \ ${configure_args} cd $wrksrc/gtk3 ./configure --with-x-toolkit=gtk3 --with-xwidgets ${configure_args} } do_build() { make ${makejobs} -C nox make ${makejobs} -C x11 $(vopt_if nativecomp NATIVE_FULL_AOT=1) make ${makejobs} -C gtk3 $(vopt_if nativecomp NATIVE_FULL_AOT=1) } do_install() { make DESTDIR=$DESTDIR -C ${wrksrc}/nox install rm -f ${DESTDIR}/usr/bin/ctags rm -f ${DESTDIR}/usr/lib/systemd/user/emacs.service rm -f ${DESTDIR}/usr/share/man/man1/ctags.1* rm -f ${DESTDIR}/usr/share/info/info.info rm -rf ${DESTDIR}/usr/share/applications rm -rf ${DESTDIR}/usr/share/icons } emacs-common_package() { short_desc+=" - common files" replaces="emacs-common-eln>=0" pkg_install() { vmove usr/share/emacs vmove usr/share/man vmove usr/share/info rm -f ${PKGDESTDIR}/usr/share/info/info.info.gz } } emacs-x11_package() { depends="emacs-common-${version}_${revision}" provides="emacs-${version}_${revision}" replaces="emacs>=0" short_desc+=" - X11 version" pkg_install() { make DESTDIR=${PKGDESTDIR} -C ${wrksrc}/x11 install rm -f ${PKGDESTDIR}/usr/bin/ctags rm -rf ${PKGDESTDIR}/usr/share rm -rf ${PKGDESTDIR}/usr/lib/systemd } } emacs-gtk3_package() { depends="emacs-common-${version}_${revision} desktop-file-utils hicolor-icon-theme" provides="emacs-${version}_${revision}" replaces="emacs>=0" short_desc+=" - GTK+3 version" pkg_install() { make DESTDIR=${PKGDESTDIR} -C ${wrksrc}/gtk3 install rm -f ${PKGDESTDIR}/usr/bin/ctags rm -rf ${PKGDESTDIR}/usr/share/{emacs,man,info} rm -rf ${PKGDESTDIR}/usr/lib/systemd } }