diff options
author | jrm <jrm@FreeBSD.org> | 2018-02-02 02:03:09 +0800 |
---|---|---|
committer | jrm <jrm@FreeBSD.org> | 2018-02-02 02:03:09 +0800 |
commit | 8e8d43ac5d573ba0718403b8beae8b36fa9baf37 (patch) | |
tree | 4a6b8513515fb032f2183d945863a1d39dbcd0c1 /Mk/Uses | |
parent | 48204ec74d19374b66c2d2475473f797a292c193 (diff) | |
download | freebsd-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.mk | 133 |
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 |