Files
ports/misc/compat.el/Makefile
Joseph Mingrone bc45b7ec88 Emacs Lisp ports framework: Overhaul
This overhaul introduces four key changes to the elisp ports framework:

1. Remove support for packaged byte-compiled elisp.

   The primary motivation is to remove a large number of flavor-specific
   packages and to simplify the ports tree.  As an example, supporting
   byte-compiled elisp for devel/tablist required six packages, one for
   each flavor of editors/emacs and editors/emacs-devel.  With over 100
   elisp ports and requests for new Emacs flavors, this was
   unmanageable.

2. Install configuration to integrate with Emacs's native compilation
   machinery, allowing elisp from ports to be compiled into the standard
   cache under the user's home directory.

   This matches the behavior of GNU ELPA packages and generally results
   in a faster experience.  Speedups vary depending on the
   characteristics of the elisp code, but are often reported to be 2.5
   to 5 times faster than byte-compiled code.

3. Perform byte compilation on the target host, but only when native
   compilation is unavailable.  Compilation is initiated when Emacs
   starts, and the resulting .elc files are cached under the user's
   home directory.

4. Load all autoload files installed by FreeBSD elisp ports.  This
   mirrors what package.el does for ELPA packages, ensuring that
   autoloaded functions are available without requiring users to
   explicitly load each package.

Users with elisp packages (*-emacs_*) installed should consult the
2026-04-11 UPDATING entry for instructions on handling the transition.

Reviewed by:	ashish, Benjamin Jacobs <freebsd@dev.thsi.be>, dinoex,
		mandree, mce, nobutaka, Pat Maddox <pat@patmaddox.com>,
		rhurlin
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D56001
2026-04-11 13:03:58 -03:00

42 lines
1004 B
Makefile

PORTNAME= compat.el
DISTVERSION= 30.1.0.1
PORTREVISION= 2
CATEGORIES= misc elisp
MAINTAINER= jrm@FreeBSD.org
COMMENT= Compatibility library for Emacs Lisp
WWW= https://github.com/emacs-compat/compat
LICENSE= GPLv3+
LICENSE_FILE= ${WRKSRC}/COPYING
USES= emacs:build gmake makeinfo
USE_GITHUB= yes
GH_ACCOUNT= emacs-compat
GH_PROJECT= compat
ALL_TARGET= all compat.info
CONFLICTS_INSTALL= compat.el-emacs_*
NO_ARCH= yes
INFO= compat
PORTDOCS= NEWS.org README.md
OPTIONS_DEFINE= DOCS
ELISP_FILES= compat-25.el compat-26.el compat-27.el compat-28.el \
compat-29.el compat-30.el compat-macs.el compat.el
do-install:
@${MKDIR} ${STAGEDIR}${PREFIX}/${EMACS_SITE_LISPDIR}/compat
${INSTALL_DATA} ${ELISP_FILES:C/^/${WRKSRC}\//} \
${STAGEDIR}${PREFIX}/${EMACS_SITE_LISPDIR}/compat
${INSTALL_DATA} ${WRKSRC}/*.info ${STAGEDIR}${PREFIX}/${INFO_PATH}
do-install-DOCS-on:
@${MKDIR} ${STAGEDIR}${DOCSDIR}
${INSTALL_DATA} ${PORTDOCS:C/^/${WRKSRC}\//} ${STAGEDIR}${DOCSDIR}
.include <bsd.port.mk>