| 1 | TERMUX_PKG_HOMEPAGE=http://www.gnu.org/software/emacs/ |
| 2 | TERMUX_PKG_DESCRIPTION="Extensible, customizable text editor-and more" |
| 3 | TERMUX_PKG_VERSION=25.1 |
| 4 | TERMUX_PKG_SRCURL=https://mirrors.kernel.org/gnu/emacs/emacs-${TERMUX_PKG_VERSION}.tar.xz |
| 5 | TERMUX_PKG_SHA256=19f2798ee3bc26c95dca3303e7ab141e7ad65d6ea2b6945eeba4dbea7df48f33 |
| 6 | TERMUX_PKG_DEPENDS="ncurses, gnutls, libxml2" |
| 7 | TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--without-x --with-xpm=no --with-jpeg=no --with-png=no --with-gif=no --with-tiff=no --without-gconf --without-gsettings --with-gnutls --with-xml2" |
| 8 | # Ensure use of system malloc: |
| 9 | TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" emacs_cv_sanitize_address=yes" |
| 10 | # Prevent configure from adding -nopie: |
| 11 | TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" emacs_cv_prog_cc_nopie=no" |
| 12 | # Prevent linking against libelf: |
| 13 | TERMUX_PKG_EXTRA_CONFIGURE_ARGS+=" ac_cv_lib_elf_elf_begin=no" |
| 14 | TERMUX_PKG_HOSTBUILD=yes |
| 15 | TERMUX_PKG_KEEP_INFOPAGES=yes |
| 16 | |
| 17 | # Remove some irrelevant files: |
| 18 | TERMUX_PKG_RM_AFTER_INSTALL="share/icons share/emacs/${TERMUX_PKG_VERSION}/etc/images share/applications/emacs.desktop share/emacs/${TERMUX_PKG_VERSION}/etc/emacs.desktop share/emacs/${TERMUX_PKG_VERSION}/etc/emacs.icon bin/grep-changelog share/man/man1/grep-changelog.1.gz share/emacs/${TERMUX_PKG_VERSION}/etc/refcards share/emacs/${TERMUX_PKG_VERSION}/etc/tutorials/TUTORIAL.*" |
| 19 | |
| 20 | # Remove ctags from the emacs package to prevent conflicting with |
| 21 | # the Universal Ctags from the 'ctags' package (the bin/etags |
| 22 | # program still remain in the emacs package): |
| 23 | TERMUX_PKG_RM_AFTER_INSTALL+=" bin/ctags share/man/man1/ctags.1" |
| 24 | |
| 25 | termux_step_post_extract_package () { |
| 26 | # XXX: We have to start with new host build each time |
| 27 | # to avoid build error when cross compiling. |
| 28 | rm -Rf $TERMUX_PKG_HOSTBUILD_DIR |
| 29 | |
| 30 | # We cannot run a dumped emacs on Android 5.0+ due to the pie requirement. |
| 31 | # Also, the native emacs we build (bootstrap-emacs) cannot used dumps when |
| 32 | # building inside docker: https://github.com/docker/docker/issues/22801 |
| 33 | export CANNOT_DUMP=yes |
| 34 | } |
| 35 | |
| 36 | termux_step_host_build () { |
| 37 | # Build a bootstrap-emacs binary to be used in termux_step_post_configure. |
| 38 | local NATIVE_PREFIX=$TERMUX_PKG_TMPDIR/emacs-native |
| 39 | mkdir -p $NATIVE_PREFIX/share/emacs/$TERMUX_PKG_VERSION |
| 40 | ln -s $TERMUX_PKG_SRCDIR/lisp $NATIVE_PREFIX/share/emacs/$TERMUX_PKG_VERSION/lisp |
| 41 | |
| 42 | $TERMUX_PKG_SRCDIR/configure --prefix=$NATIVE_PREFIX --without-all --with-x-toolkit=no |
| 43 | make -j $TERMUX_MAKE_PROCESSES |
| 44 | } |
| 45 | |
| 46 | termux_step_post_configure () { |
| 47 | cp $TERMUX_PKG_HOSTBUILD_DIR/src/bootstrap-emacs $TERMUX_PKG_BUILDDIR/src/bootstrap-emacs |
| 48 | cp $TERMUX_PKG_HOSTBUILD_DIR/lib-src/make-docfile $TERMUX_PKG_BUILDDIR/lib-src/make-docfile |
| 49 | # Update timestamps so that the binaries does not get rebuilt: |
| 50 | $TERMUX_TOUCH -d "next hour" $TERMUX_PKG_BUILDDIR/src/bootstrap-emacs $TERMUX_PKG_BUILDDIR/lib-src/make-docfile |
| 51 | } |
| 52 | |
| 53 | termux_step_post_make_install () { |
| 54 | cp $TERMUX_PKG_BUILDER_DIR/site-init.el $TERMUX_PREFIX/share/emacs/${TERMUX_PKG_VERSION}/lisp/emacs-lisp/ |
| 55 | } |