# Maintainer: Juergen Hoetzel <juergen@archlinux.org>
# Maintainer: Frederik Schwan <freswa at archlinux dot org>
# Contributor: Jaroslav Lichtblau <svetlemodry@archlinux.org>
# Contributor: Renchi Raju <renchi@green.tam.uiuc.edu>
pkgbase=emacs
pkgname=(emacs
#emacs-nativecomp
emacs-nox
#emacs-wayland
)
pkgver=29.3
pkgrel=3
arch=('x86_64' 'armv7h')
url='https://www.gnu.org/software/emacs/emacs.html'
license=('GPL3')
depends=(
gmp
gnutls
jansson
lcms2
acl # libacl.so
libasound.so
dbus # libdbus-1.so
libfontconfig.so
libfreetype.so
libgdk-3.so
libgdk_pixbuf-2.0.so
libgif.so
libgio-2.0.so
libglib-2.0.so
libgobject-2.0.so
# libgpm.so
libgtk-3.so
libharfbuzz.so
libice
libjpeg.so
ncurses
# libncursesw.so
libotf
libpango-1.0.so
libpng
librsvg-2.so
libsm
sqlite #libsqlite3.so
systemd #libsystemd.so
libtiff.so
libtree-sitter.so
libwebp.so
libwebpdemux.so
libxfixes
libxml2.so
m17n-lib
zlib
)
#makedepends=(libgccjit)
source=(https://ftp.gnu.org/gnu/emacs/${pkgname}-${pkgver}.tar.xz{,.sig})
b2sums=('73651c52e508d5341f66659bbaf98e839040239198cb66f62239f489a961794adf837d9a14e9b605f059b7b612803e0ce5998ec47100ba545db642baacdb55ec'
'SKIP')
validpgpkeys=('17E90D521672C04631B1183EE78DAE0F3115E06B' # Eli Zaretskii <eliz@gnu.org>
'CEA1DE21AB108493CC9C65742E82323B8F4353EE') # Stefan Kangas <stefankangas@gmail.com>
prepare() {
cp --reflink=auto -ar ${pkgname}-${pkgver} ${pkgbase}-${pkgver}-nativecomp
cp --reflink=auto -ar ${pkgname}-${pkgver} ${pkgbase}-${pkgver}-nox
cp --reflink=auto -ar ${pkgname}-${pkgver} ${pkgbase}-${pkgver}-wayland
}
build() {
local _confflags="--sysconfdir=/etc \
--prefix=/usr \
--libexecdir=/usr/lib \
--with-tree-sitter \
--localstatedir=/var \
--with-cairo \
--disable-build-details \
--with-harfbuzz \
--with-libsystemd \
--with-modules"
export ac_cv_lib_gif_EGifPutExtensionLast=yes
cd ${pkgname}-${pkgver}
./configure $_confflags \
--with-x-toolkit=gtk3
make
# cd ../${pkgbase}-${pkgver}-nativecomp
# ./configure \
# --with-x-toolkit=gtk3 \
# --with-native-compilation=aot \
# $_confflags
# make bootstrap
cd ../${pkgbase}-${pkgver}-nox
./configure \
--without-x \
--without-sound \
$_confflags
make
# cd ../${pkgbase}-${pkgver}-wayland
# ./configure \
# --with-pgtk \
# --with-native-compilation=aot \
# $_confflags
# make bootstrap
}
package_emacs() {
pkgdesc='The extensible, customizable, self-documenting real-time display editor'
cd ${pkgname}-${pkgver}
make DESTDIR="${pkgdir}" install
# remove conflict with ctags package
mv "${pkgdir}"/usr/bin/{ctags,ctags.emacs}
mv "${pkgdir}"/usr/share/man/man1/{ctags.1.gz,ctags.emacs.1}
# fix user/root permissions on usr/share files
find "${pkgdir}"/usr/share/emacs/${pkgver} -exec chown root:root {} \;
}
package_emacs-nativecomp() {
pkgdesc='The extensible, customizable, self-documenting real-time display editor with native compilation enabled'
depends+=(libgccjit)
provides=(emacs)
conflicts=(emacs)
cd ${pkgbase}-${pkgver}-nativecomp
make DESTDIR="${pkgdir}" install
# remove conflict with ctags package
mv "${pkgdir}"/usr/bin/{ctags,ctags.emacs}
mv "${pkgdir}"/usr/share/man/man1/{ctags.1.gz,ctags.emacs.1}
# fix user/root permissions on usr/share files
find "${pkgdir}"/usr/share/emacs/${pkgver} -exec chown root:root {} \;
}
package_emacs-nox() {
pkgdesc='The extensible, customizable, self-documenting real-time display editor without X11 support'
depends=(
gmp
gnutls
hicolor-icon-theme
jansson
lcms2
libacl.so
libdbus-1.so
libgpm.so
libncursesw.so
libsystemd.so
libtree-sitter.so
libxml2.so
zlib
)
provides=(emacs)
conflicts=(emacs)
cd ${pkgbase}-${pkgver}-nox
make DESTDIR="${pkgdir}" install
# remove conflict with ctags package
mv "${pkgdir}"/usr/bin/{ctags,ctags.emacs}
mv "${pkgdir}"/usr/share/man/man1/{ctags.1.gz,ctags.emacs.1}
# fix user/root permissions on usr/share files
find "${pkgdir}"/usr/share/emacs/${pkgver} -exec chown root:root {} \;
}
package_emacs-wayland() {
pkgdesc='The extensible, customizable, self-documenting real-time display editor with native compilation and PGTK enabled'
depends+=(libgccjit)
provides=(emacs)
conflicts=(emacs)
cd ${pkgbase}-${pkgver}-wayland
make DESTDIR="${pkgdir}" install
# remove conflict with ctags package
mv "${pkgdir}"/usr/bin/{ctags,ctags.emacs}
mv "${pkgdir}"/usr/share/man/man1/{ctags.1.gz,ctags.emacs.1}
# fix user/root permissions on usr/share files
find "${pkgdir}"/usr/share/emacs/${pkgver} -exec chown root:root {} \;
}