aboutsummaryrefslogtreecommitdiffstats
path: root/Mk/Uses
diff options
context:
space:
mode:
authorjrm <jrm@FreeBSD.org>2018-02-02 02:03:09 +0800
committerjrm <jrm@FreeBSD.org>2018-02-02 02:03:09 +0800
commit8e8d43ac5d573ba0718403b8beae8b36fa9baf37 (patch)
tree4a6b8513515fb032f2183d945863a1d39dbcd0c1 /Mk/Uses
parent48204ec74d19374b66c2d2475473f797a292c193 (diff)
downloadfreebsd-ports-gnome-8e8d43ac5d573ba0718403b8beae8b36fa9baf37.tar.gz
freebsd-ports-gnome-8e8d43ac5d573ba0718403b8beae8b36fa9baf37.tar.zst
freebsd-ports-gnome-8e8d43ac5d573ba0718403b8beae8b36fa9baf37.zip
Flavorize and modernize Emacs ports
- Convert USE_EMACS to USES=emacs - Remove editors/emacs-nox11 (refer to nox flavors of editors/emacs and editors/emacs-devel) - Permit default Emacs flavor to be specified in make.conf - Rename japanese/migemo-emacs23 to japanese/migemo-emacs - Update and simplify audio/emms and fix build on FreeBSD 10 [1] - Update databases/bbdd and fix build on FreeBSD 10 [1] - Update editors/emacs-devel - Ensure Makefile shell commands that change directory are executed in a subshell - Silence some portlint warnings [1] By not depending on base texinfo PR: 225404 Reviewed by: antoine Approved by: portmgr (mat) ashish (maintainer) Differential Revision: https://reviews.freebsd.org/D13506
Diffstat (limited to 'Mk/Uses')
-rw-r--r--Mk/Uses/emacs.mk133
1 files changed, 133 insertions, 0 deletions
diff --git a/Mk/Uses/emacs.mk b/Mk/Uses/emacs.mk
new file mode 100644
index 000000000000..0a2166524882
--- /dev/null
+++ b/Mk/Uses/emacs.mk
@@ -0,0 +1,133 @@
+# $FreeBSD$
+#
+# Provide support for ports requiring Emacs. This includes flavors with proper
+# dependencies and useful variables.
+#
+# Feature: emacs
+# Usage: USES=emacs or USES=emacs:args
+# Valid ARGS: build, run
+#
+# build Indicates that Emacs is needed at build time.
+# run Indicates that Emacs is needed at run time.
+#
+# If build and run are omitted from the argument list, Emacs will be added to
+# BUILD_DEPENDS and RUN_DEPENDS. EMACS_NO_DEPENDS can be set to prevent both
+# Emacs dependencies.
+#
+# Variables, which can be set in make.conf:
+# DEFAULT_VERSIONS+= The default flavor for Emacs ports can be added to
+# DEFAULT_VERSIONS. For example,
+# DEFAULT_VERSIONS+= emacs=nox
+# Valid flavors: full canna nox devel_full devel_nox
+# Flavors specified on the command line take precedence.
+#
+# Variables, which can be set by ports:
+# EMACS_FLAVORS_EXCLUDE: Do NOT build these Emacs flavors.
+# If EMACS_FLAVORS_EXCLUDE is not define then all
+# valid Emacs flavors are assumed.
+#
+# EMACS_NO_DEPENDS: Do NOT add build or run dependencies on Emacs.
+#
+# Variables, which can be read by ports:
+# EMACS_CMD: Emacs command with full path (e.g. /usr/local/bin/emacs-25.3)
+# EMACS_FLAVOR: Used for dependencies (e.g. BUILD_DEPENDS= dash.el${EMACS_PKGNAMESUFFIX}>0:devel/dash@${EMACS_FLAVOR})
+# EMACS_LIBDIR: Emacs Library directory without ${PREFIX} (e.g. share/emacs)
+# EMACS_LIBDIR_WITH_VER: Library directory without ${PREFIX} including version (e.g. share/emacs/25.3)
+# EMACS_MAJOR_VER: Emacs major version (e.g. 25)
+# EMACS_PKGNAMESUFFIX: PKGNAMESUFFIX to distinguish Emacs flavors
+# EMACS_SITE_LISPDIR: Emacs site-lisp directory without ${PREFIX} (e.g. share/emacs/site-lisp)
+# EMACS_VER: Emacs version (e.g. 25.3)
+# EMACS_VERSION_SITE_LISPDIR: Include version (e.g. share/emacs/25.3/site-lisp)
+#-------------------------------------------------------------------------------
+#
+# MAINTAINER: emacs@FreeBSD.org
+
+.if !defined(_INCLUDE_USES_EMACS_MK)
+_INCLUDE_USES_EMACS_MK= yes
+
+# Make sure that no dependency or some other environment variable
+# pollutes the build/run dependency detection
+.undef _EMACS_BUILD_DEP
+.undef _EMACS_RUN_DEP
+_EMACS_ARGS= ${emacs_ARGS:S/,/ /g}
+.if ${_EMACS_ARGS:Mbuild}
+_EMACS_BUILD_DEP= yes
+_EMACS_ARGS:= ${_EMACS_ARGS:Nbuild}
+.endif
+.if ${_EMACS_ARGS:Mrun}
+_EMACS_RUN_DEP= yes
+_EMACS_ARGS:= ${_EMACS_ARGS:Nrun}
+.endif
+
+# If the port does not specify a build or run dependency, and does not define
+# EMACS_NO_DEPENDS, assume both dependencies are required.
+.if !defined(_EMACS_BUILD_DEP) && !defined(_EMACS_RUN_DEP) && \
+ !defined(EMACS_NO_DEPENDS)
+_EMACS_BUILD_DEP= yes
+_EMACS_RUN_DEP= yes
+.endif
+
+.if defined(_EMACS_RUN_DEP)
+FLAVORS= full canna nox devel_full devel_nox
+.for flavor in ${EMACS_FLAVORS_EXCLUDE}
+FLAVORS:= ${FLAVORS:N${flavor}}
+.endfor
+.else
+FLAVORS= full
+.endif
+
+.if empty(FLAVOR)
+.if defined(EMACS_DEFAULT)
+FLAVOR= ${EMACS_DEFAULT}
+.else
+FLAVOR= ${FLAVORS:[1]}
+.endif
+.endif
+EMACS_FLAVOR= ${FLAVOR}
+
+.if ${FLAVOR:Mdevel*}
+EMACS_VER= 27.0.50
+EMACS_PORTDIR= editors/emacs-devel
+.else
+EMACS_VER= 25.3
+EMACS_PORTDIR= editors/emacs
+.endif
+
+EMACS_MAJOR_VER= ${EMACS_VER:C/\..*//}
+EMACS_LIBDIR= share/emacs
+EMACS_LIBDIR_WITH_VER= share/emacs/${EMACS_VER}
+EMACS_PORT_NAME= emacs${EMACS_MAJOR_VER}
+
+.if ${FLAVOR:M*nox}
+EMACS_PKGNAMESUFFIX= -${EMACS_PORT_NAME}_nox
+.elif ${FLAVOR:Mcanna}
+EMACS_PKGNAMESUFFIX= -${EMACS_PORT_NAME}_canna
+.else
+EMACS_PKGNAMESUFFIX= -${EMACS_PORT_NAME}
+.endif
+
+EMACS_CMD= ${PREFIX}/bin/emacs-${EMACS_VER}
+EMACS_SITE_LISPDIR= ${EMACS_LIBDIR}/site-lisp
+EMACS_VERSION_SITE_LISPDIR= ${EMACS_LIBDIR_WITH_VER}/site-lisp
+
+.if defined(_EMACS_BUILD_DEP)
+BUILD_DEPENDS+= ${EMACS_CMD}:${EMACS_PORTDIR}@${EMACS_FLAVOR:C/devel_//}
+.endif
+.if defined(_EMACS_RUN_DEP)
+RUN_DEPENDS+= ${EMACS_CMD}:${EMACS_PORTDIR}@${EMACS_FLAVOR:C/devel_//}
+.endif
+
+MAKE_ARGS+= EMACS=${EMACS_CMD}
+SCRIPTS_ENV+= EMACS_LIBDIR=${EMACS_LIBDIR} \
+ EMACS_VER=${EMACS_VER} \
+ EMACS_LIBDIR_WITH_VER=${EMACS_LIBDIR_WITH_VER} \
+ EMACS_SITE_LISPDIR=${EMACS_SITE_LISPDIR} \
+ EMACS_VERSION_SITE_LISPDIR=${EMACS_VERSION_SITE_LISPDIR}
+
+PLIST_SUB+= EMACS_LIBDIR=${EMACS_LIBDIR} \
+ EMACS_VER=${EMACS_VER} \
+ EMACS_LIBDIR_WITH_VER=${EMACS_LIBDIR_WITH_VER} \
+ EMACS_SITE_LISPDIR=${EMACS_SITE_LISPDIR} \
+ EMACS_VERSION_SITE_LISPDIR=${EMACS_VERSION_SITE_LISPDIR}
+
+.endif # _INCLUDE_USES_EMACS_MK