[Midnightbsd-cvs] mports [24683] trunk/Mk/extensions/emacs.mk: update emacs config

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Thu Nov 22 15:58:56 EST 2018


Revision: 24683
          http://svnweb.midnightbsd.org/mports/?rev=24683
Author:   laffer1
Date:     2018-11-22 15:58:55 -0500 (Thu, 22 Nov 2018)
Log Message:
-----------
update emacs config

Modified Paths:
--------------
    trunk/Mk/extensions/emacs.mk

Modified: trunk/Mk/extensions/emacs.mk
===================================================================
--- trunk/Mk/extensions/emacs.mk	2018-11-22 20:52:57 UTC (rev 24682)
+++ trunk/Mk/extensions/emacs.mk	2018-11-22 20:58:55 UTC (rev 24683)
@@ -1,229 +1,145 @@
+# $MidnightBSD$
 #
-# 	$MidnightBSD$
-#	$FreeBSD: ports/Mk/bsd.emacs.mk,v 1.59 2006/08/14 13:24:18 erwin Exp $
+# Provide support for ports requiring Emacs.  This includes flavors with proper
+# dependencies and useful variables.
 #
-#	bsd.emacs.mk - 19990829 Shigeyuki Fukushima.
+# Feature:	emacs
+# Usage:	USES=emacs or USES=emacs:args
+# Valid ARGS:	build, run, noflavors
 #
-
-.if !defined(_POSTMKINCLUDED) && !defined(Emacs_Pre_Include)
-
-Emacs_Pre_Include=			emacs.mk		
-Emacs_Include_MAINTAINER=	ports at MidnightBSD.org
-
+# build		Indicates that Emacs is required at build time.
+# run		Indicates that Emacs is required at run time.
+# noflavors	Prevents flavors.  This is implied when there is no run
+#               dependency on Emacs.
 #
-# This file for ports which depend on emacs family.
-# Define EMACS_PORT_NAME variable before bsd.port.[pre.]mk
-# and it will automatically include this file.
+# 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
+# dependencies.
 #
-# This file exports the following common variables:
+# Variables, which can be set in make.conf:
+# DEFAULT_VERSIONS+=          The default flavor for Emacs ports (ports with
+#                             USES=emacs, but not the Emacs ports themselves)
+#                             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.
 #
-# EMACS_NAME:
-#		emacsen's command-line basename.
-#		ex.) "emacs" when emacsen is a emacs-20.6.
+# Variables, which can be set by ports:
+# EMACS_FLAVORS_EXCLUDE:      Do NOT build these Emacs flavors.
+#                             If EMACS_FLAVORS_EXCLUDE is not defined and
+#                               - there is a run dependency on Emacs
+#                               - the noflavors argument is not specified
+#                             then all valid Emacs flavors are assumed.
 #
-# EMACS_VER:
-#		emacsen's version.
-#		ex.) "20.6" when emacsen is a emacs-20.6.
+# EMACS_NO_DEPENDS:           Do NOT add build or run dependencies on Emacs.
+#                             This will prevent flavors.
 #
-# EMACS_MAJOR_VER:
-#		emacsen's major version.
-#		ex.) "20" when emacsen is a emacs-20.6.
+# Variables, which can be read by ports:
+# EMACS_CMD:                  Emacs command with full path (e.g. /usr/local/bin/emacs-26.1)
+# 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/26.1)
+# EMACS_MAJOR_VER:            Emacs major version (e.g. 26)
+# 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. 26.1)
+# EMACS_VERSION_SITE_LISPDIR: Include version (e.g. share/emacs/26.1/site-lisp)
+#-------------------------------------------------------------------------------
 #
-# EMACS_LIBDIR:
-#		emacsen's library directory name without ${PREFIX}.
-#		ex.) "share/emacs" when emacsen is a emacs-20.6.
-#
-# EMACS_LIBDIR_WITH_VER:
-#		emacsen's version specific library directory name
-#		without ${PREFIX}.
-#		ex.) "share/emacs/20.6" when emacsen is a emacs-20.6.
-#
-# EMACS_CMD:
-#		emacsen's command-line filename. (full path)
-#		ex.) "/usr/local/bin/emacs-20.6" when emacsen is a
-#		     emacs-20.6 and ${PREFIX} is "/usr/local".
-#
-# EMACS_SITE_LISPDIR:
-#		emacsen's site-lisp directory name without ${PREFIX}.
-#		ex.) "share/emacs/site-lisp" when emacsen is a emacs-20.6.
-#
-# EMACS_VERSION_SITE_LISPDIR:
-#		emacsen's version specific site-lisp directory name
-#		without	${PREFIX}.
-#		ex.) "share/emacs/20.6/site-lisp" when emacsen is a
-#		emacs-20.6.
-#
-# EMACS_NO_BUILD_DEPENDS:
-#		If set "YES" to this variable, port does not
-#		build-depend on EMACS_PORT_NAME's emacsen.
-#
-# EMACS_NO_RUN_DEPENDS:
-#		If set "YES" to this variable, port does not
-#		run-depend on EMACS_PORT_NAME's emacsen.
-#
 
-EMACS_MASTERDIR_PKGFILES?=	NO
+.if !defined(_INCLUDE_USES_EMACS_MK)
+_INCLUDE_USES_EMACS_MK=	yes
 
-# Emacs-22.x
-.if (${EMACS_PORT_NAME} == "emacs22")
-EMACS_NAME=		emacs
-EMACS_VER=		22.2
-EMACS_MAJOR_VER=	22
-EMACS_LIBDIR?=		share/${EMACS_NAME}
-EMACS_LIBDIR_WITH_VER?=	share/${EMACS_NAME}/${EMACS_VER}
-EMACS_PORTSDIR=		${PORTSDIR}/editors/emacs
-EMACS_COMMON_PORT=	NO
-EMACS_HAS_MULE=		YES
-EMACS_NO_SUBDIRSEL=	NO
-.if (${EMACS_MASTERDIR_PKGFILES} == "YES")
-COMMENTFILE?=		${PKGDIR}/pkg-comment.${EMACS_PORT_NAME}
-DESCR?=			${PKGDIR}/pkg-descr.${EMACS_PORT_NAME}
-PLIST?=			${PKGDIR}/pkg-plist.${EMACS_PORT_NAME}
+# Make sure that no dependency or some other environment variable
+# pollutes the build/run dependency detection
+.undef _EMACS_BUILD_DEP
+.undef _EMACS_RUN_DEP
+.undef _EMACS_NOFLAVORS
+_EMACS_ARGS=		${emacs_ARGS:S/,/ /g}
+.if ${_EMACS_ARGS:Mbuild}
+_EMACS_BUILD_DEP=	yes
+_EMACS_ARGS:=		${_EMACS_ARGS:Nbuild}
 .endif
-
-# Mule-19.x
-.elif (${EMACS_PORT_NAME} == "mule")
-EMACS_NAME=		mule
-EMACS_VER=		19.34
-EMACS_MAJOR_VER=	19
-EMACS_LIBDIR?=		share/${EMACS_NAME}
-EMACS_LIBDIR_WITH_VER?=	share/${EMACS_NAME}/${EMACS_VER}
-EMACS_PORTSDIR=		${PORTSDIR}/editors/mule
-EMACS_COMMON_PORT=	YES
-EMACS_HAS_MULE=		YES
-EMACS_NO_SUBDIRSEL=	YES
-.if (${EMACS_MASTERDIR_PKGFILES} == "YES")
-COMMENTFILE?=		${PKGDIR}/pkg-comment.${EMACS_PORT_NAME}
-DESCR?=                 ${PKGDIR}/pkg-descr.${EMACS_PORT_NAME}
-PLIST?=                 ${PKGDIR}/pkg-plist.${EMACS_PORT_NAME}
+.if ${_EMACS_ARGS:Mrun}
+_EMACS_RUN_DEP=		yes
+_EMACS_ARGS:=		${_EMACS_ARGS:Nrun}
 .endif
-
-# XEmacs-21.x
-.elif (${EMACS_PORT_NAME} == "xemacs21")
-EMACS_NAME=		xemacs
-EMACS_VER=		21.4.19
-EMACS_MAJOR_VER=	21
-EMACS_LIBDIR?=		lib/${EMACS_NAME}
-EMACS_LIBDIR_WITH_VER?=	lib/${EMACS_NAME}-${EMACS_VER}
-EMACS_PORTSDIR=		${PORTSDIR}/editors/xemacs
-EMACS_COMMON_PORT=	NO
-EMACS_HAS_MULE=		NO
-EMACS_NO_SUBDIRSEL=	NO
-.if (${EMACS_MASTERDIR_PKGFILES} == "YES")
-COMMENTFILE?=		${PKGDIR}/pkg-comment.${EMACS_PORT_NAME}
-DESCR?=                 ${PKGDIR}/pkg-descr.${EMACS_PORT_NAME}
-PLIST?=                 ${PKGDIR}/pkg-plist.${EMACS_PORT_NAME}
+.if ${_EMACS_ARGS:Mnoflavors}
+_EMACS_NOFLAVORS=	yes
+_EMACS_ARGS:=		${_EMACS_ARGS:Nnoflavors}
 .endif
 
-# XEmacs-21.x with Mule
-.elif (${EMACS_PORT_NAME} == "xemacs21-mule")
-EMACS_NAME=		xemacs
-EMACS_VER=		21.4.19
-EMACS_MAJOR_VER=	21
-EMACS_LIBDIR?=		lib/${EMACS_NAME}
-EMACS_LIBDIR_WITH_VER?=	lib/${EMACS_NAME}-${EMACS_VER}
-EMACS_PORTSDIR=		${PORTSDIR}/editors/xemacs21-mule
-EMACS_COMMON_PORT=	NO
-EMACS_HAS_MULE=		YES
-EMACS_NO_SUBDIRSEL=	NO
-.if (${EMACS_MASTERDIR_PKGFILES} == "YES")
-COMMENTFILE?=		${PKGDIR}/pkg-comment.${EMACS_PORT_NAME}
-DESCR?=                 ${PKGDIR}/pkg-descr.${EMACS_PORT_NAME}
-PLIST?=                 ${PKGDIR}/pkg-plist.${EMACS_PORT_NAME}
+# 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
 
-# XEmacs-21 development version
-.elif (${EMACS_PORT_NAME} == "xemacs-devel")
-EMACS_NAME=		xemacs
-EMACS_VER=		21.5-b27
-EMACS_MAJOR_VER=	21
-EMACS_LIBDIR?=		lib/${EMACS_NAME}
-EMACS_LIBDIR_WITH_VER?=	lib/${EMACS_NAME}-${EMACS_VER}
-EMACS_PORTSDIR=		${PORTSDIR}/editors/xemacs-devel
-EMACS_COMMON_PORT=	NO
-EMACS_HAS_MULE=		NO
-EMACS_NO_SUBDIRSEL=	NO
-.if (${EMACS_MASTERDIR_PKGFILES} == "YES")
-COMMENTFILE?=		${PKGDIR}/pkg-comment.${EMACS_PORT_NAME}
-DESCR?=                 ${PKGDIR}/pkg-descr.${EMACS_PORT_NAME}
-PLIST?=                 ${PKGDIR}/pkg-plist.${EMACS_PORT_NAME}
+# Only set FLAVORS when...
+.if defined(_EMACS_RUN_DEP) && !defined(_EMACS_NOFLAVORS)
+FLAVORS=	full canna nox devel_full devel_nox
+.for flavor in ${EMACS_FLAVORS_EXCLUDE}
+FLAVORS:=	${FLAVORS:N${flavor}}
+.endfor
 .endif
 
-# XEmacs-21 development version with Mule
-.elif (${EMACS_PORT_NAME} == "xemacs-devel-mule") || \
-	(${EMACS_PORT_NAME} == "xemacs-mule-xft")
-EMACS_NAME=		xemacs
-EMACS_VER=		21.5-b27
-EMACS_MAJOR_VER=	21
-EMACS_LIBDIR?=		lib/${EMACS_NAME}
-EMACS_LIBDIR_WITH_VER?=	lib/${EMACS_NAME}-${EMACS_VER}
-.if ${EMACS_PORT_NAME} == "xemacs-mule-xft"
-EMACS_PORTSDIR=		${PORTSDIR}/editors/xemacs-devel-mule-xft
+# Only set FLAVOR when...
+.if defined(_EMACS_RUN_DEP) && !defined(_EMACS_NOFLAVORS) && empty(FLAVOR)
+.if defined(EMACS_DEFAULT)
+FLAVOR=	${EMACS_DEFAULT}
 .else
-EMACS_PORTSDIR=		${PORTSDIR}/editors/xemacs-devel-mule
+FLAVOR=	${FLAVORS:[1]}
+.endif # defined(EMACS_DEFAULT)
+.endif # !defined(_EMACS_NOFLAVORS) && defined(_EMACS_RUN_DEP) && empty(FLAVOR)
+
+.if !empty(FLAVOR)
+EMACS_FLAVOR=	${FLAVOR}
+.else
+EMACS_FLAVOR=	full
 .endif
-EMACS_COMMON_PORT=	NO
-EMACS_HAS_MULE=		YES
-EMACS_NO_SUBDIRSEL=	NO
-.if (${EMACS_MASTERDIR_PKGFILES} == "YES")
-COMMENTFILE?=		${PKGDIR}/pkg-comment.${EMACS_PORT_NAME}
-DESCR?=                 ${PKGDIR}/pkg-descr.${EMACS_PORT_NAME}
-PLIST?=                 ${PKGDIR}/pkg-plist.${EMACS_PORT_NAME}
-.endif
 
+.if ${FLAVOR:Mdevel*}
+EMACS_VER=			27.0.50
+EMACS_PORTDIR=		editors/emacs-devel
 .else
-check-makevars::
-	@${ECHO} "Makefile error: Bad value of EMACS_PORT_NAME: ${EMACS_PORT_NAME}."
-	@${ECHO} "Valid values are:"
-	@${ECHO} "	Emacs  family: emacs19 mule emacs20 emacs21 emacs22"
-	@${ECHO} "	XEmacs family: xemacs xemacs20 xemacs21 xemacs21-mule"
-	@${ECHO} "	               xemacs-devel xemacs-devel-mule xemacs-mule-xft"
-	@${FALSE}
+EMACS_VER=			26.1
+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}
 
-#
-# Common Definitions
-#
-
-# find where emacsen is installed
-# look for it in PREEFIX first and fall back to LOCALBASE then
-.if exists(${TARGETDIR}/bin/${EMACS_NAME}-${EMACS_VER})
-EMACS_BASE?=			${TARGETDIR}
+.if ${FLAVOR:M*nox}
+EMACS_PKGNAMESUFFIX=		-${EMACS_PORT_NAME}_nox
+.elif ${FLAVOR:Mcanna}
+EMACS_PKGNAMESUFFIX=		-${EMACS_PORT_NAME}_canna
 .else
-EMACS_BASE?=			${LOCALBASE}
+EMACS_PKGNAMESUFFIX=		-${EMACS_PORT_NAME}
 .endif
-# emacsen command-line filename
-EMACS_CMD?=			${EMACS_BASE}/bin/${EMACS_NAME}-${EMACS_VER}
-# emacsen core elisp filename
-EMACS_CORE_DIR=			${EMACS_LIBDIR_WITH_VER}/lisp/${EMACS_CORE_SUBDIR}
-EMACS_COREEL=			${EMACS_BASE}/${EMACS_CORE_DIR}/startup.el
-# emacsen libdir without ${LOCALBASE}
-EMACS_SITE_LISPDIR?=		${EMACS_LIBDIR}/site-lisp
-EMACS_VERSION_SITE_LISPDIR?=	${EMACS_LIBDIR_WITH_VER}/site-lisp
 
-# build&run-dependency
-EMACS_NO_BUILD_DEPENDS?=	NO
-EMACS_NO_RUN_DEPENDS?=		NO
-.if (${EMACS_NO_BUILD_DEPENDS} == "NO")
-BUILD_DEPENDS+=		${EMACS_CMD}:${EMACS_PORTSDIR}
+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}
 .endif
-.if (${EMACS_NO_RUN_DEPENDS} == "NO")
-.if defined(EMACS_COMMON_PORT) && (${EMACS_COMMON_PORT} == "YES")
-RUN_DEPENDS+=	${EMACS_COREEL}:${EMACS_PORTSDIR}-common
-.else
-RUN_DEPENDS+=	${EMACS_CMD}:${EMACS_PORTSDIR}
+.if defined(_EMACS_RUN_DEP)
+RUN_DEPENDS+=	${EMACS_CMD}:${EMACS_PORTDIR}
 .endif
-.endif
 
-# environments for build
-MAKE_ARGS+=	EMACS=${EMACS_CMD} XEMACS=${EMACS_CMD}
+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}
-# pkg/PLIST substrings
+
 PLIST_SUB+=	EMACS_LIBDIR=${EMACS_LIBDIR} \
 		EMACS_VER=${EMACS_VER} \
 		EMACS_LIBDIR_WITH_VER=${EMACS_LIBDIR_WITH_VER} \
@@ -230,5 +146,4 @@
 		EMACS_SITE_LISPDIR=${EMACS_SITE_LISPDIR} \
 		EMACS_VERSION_SITE_LISPDIR=${EMACS_VERSION_SITE_LISPDIR}
 
-
-.endif #!defined(_POSTMKINCLUDED) && !defined(Emacs_Pre_Include)
+.endif # _INCLUDE_USES_EMACS_MK



More information about the Midnightbsd-cvs mailing list