Mk/Uses/iconv: support iconv+
[dports.git] / Mk / bsd.emacs.mk
1 #
2 #       $FreeBSD: Mk/bsd.emacs.mk 315598 2013-03-30 05:13:30Z ashish $
3 #
4 #       bsd.emacs.mk - 19990829 Shigeyuki Fukushima.
5 #
6
7 Emacs_Include=                  bsd.emacs.mk
8 Emacs_Include_MAINTAINER=       ashish@FreeBSD.org
9
10 EMACS_PORT_NAME?=       emacs24
11
12 #
13 # This file for ports which depend on emacs family.
14 # Define EMACS_PORT_NAME variable before bsd.port.[pre.]mk
15 # and it will automatically include this file.
16 #
17 # This file exports the following common variables:
18 #
19 # EMACS_NAME:
20 #               emacsen's command-line basename.
21 #               ex.) "emacs" when emacsen is a emacs-20.6.
22 #
23 # EMACS_VER:
24 #               emacsen's version.
25 #               ex.) "20.6" when emacsen is a emacs-20.6.
26 #
27 # EMACS_MAJOR_VER:
28 #               emacsen's major version.
29 #               ex.) "20" when emacsen is a emacs-20.6.
30 #
31 # EMACS_LIBDIR:
32 #               emacsen's library directory name without ${PREFIX}.
33 #               ex.) "share/emacs" when emacsen is a emacs-20.6.
34 #
35 # EMACS_LIBDIR_WITH_VER:
36 #               emacsen's version specific library directory name
37 #               without ${PREFIX}.
38 #               ex.) "share/emacs/20.6" when emacsen is a emacs-20.6.
39 #
40 # EMACS_CMD:
41 #               emacsen's command-line filename. (full path)
42 #               ex.) "/usr/local/bin/emacs-20.6" when emacsen is a
43 #                    emacs-20.6 and ${PREFIX} is "/usr/local".
44 #
45 # EMACS_SITE_LISPDIR:
46 #               emacsen's site-lisp directory name without ${PREFIX}.
47 #               ex.) "share/emacs/site-lisp" when emacsen is a emacs-20.6.
48 #
49 # EMACS_VERSION_SITE_LISPDIR:
50 #               emacsen's version specific site-lisp directory name
51 #               without ${PREFIX}.
52 #               ex.) "share/emacs/20.6/site-lisp" when emacsen is a
53 #               emacs-20.6.
54 #
55 # EMACS_NO_BUILD_DEPENDS:
56 #               If set "YES" to this variable, port does not
57 #               build-depend on EMACS_PORT_NAME's emacsen.
58 #
59 # EMACS_NO_RUN_DEPENDS:
60 #               If set "YES" to this variable, port does not
61 #               run-depend on EMACS_PORT_NAME's emacsen.
62 #
63
64 EMACS_MASTERDIR_PKGFILES?=      NO
65
66 # Emacs-21.x
67 .if (${EMACS_PORT_NAME} == "emacs21")
68 EMACS_NAME=             emacs
69 EMACS_VER=              21.3
70 EMACS_MAJOR_VER=        21
71 EMACS_LIBDIR?=          share/${EMACS_NAME}
72 EMACS_LIBDIR_WITH_VER?= share/${EMACS_NAME}/${EMACS_VER}
73 EMACS_PORTSDIR=         ${PORTSDIR}/editors/emacs21
74 EMACS_COMMON_PORT=      NO
75 EMACS_HAS_MULE=         YES
76 EMACS_NO_SUBDIRSEL=     NO
77 .if (${EMACS_MASTERDIR_PKGFILES} == "YES")
78 COMMENTFILE?=           ${PKGDIR}/pkg-comment.${EMACS_PORT_NAME}
79 DESCR?=                 ${PKGDIR}/pkg-descr.${EMACS_PORT_NAME}
80 PLIST?=                 ${PKGDIR}/pkg-plist.${EMACS_PORT_NAME}
81 .endif
82
83 # Emacs-22.x
84 .elif (${EMACS_PORT_NAME} == "emacs22")
85 EMACS_NAME=             emacs
86 EMACS_VER=              22.3
87 EMACS_MAJOR_VER=        22
88 EMACS_LIBDIR?=          share/${EMACS_NAME}
89 EMACS_LIBDIR_WITH_VER?= share/${EMACS_NAME}/${EMACS_VER}
90 EMACS_PORTSDIR=         ${PORTSDIR}/editors/emacs22
91 EMACS_COMMON_PORT=      NO
92 EMACS_HAS_MULE=         YES
93 EMACS_NO_SUBDIRSEL=     NO
94 .if (${EMACS_MASTERDIR_PKGFILES} == "YES")
95 COMMENTFILE?=           ${PKGDIR}/pkg-comment.${EMACS_PORT_NAME}
96 DESCR?=                 ${PKGDIR}/pkg-descr.${EMACS_PORT_NAME}
97 PLIST?=                 ${PKGDIR}/pkg-plist.${EMACS_PORT_NAME}
98 .endif
99
100 # Emacs-23.x
101 .elif (${EMACS_PORT_NAME} == "emacs23")
102 EMACS_NAME=             emacs
103 EMACS_VER=              23.4
104 EMACS_MAJOR_VER=        23
105 EMACS_LIBDIR?=          share/${EMACS_NAME}
106 EMACS_LIBDIR_WITH_VER?= share/${EMACS_NAME}/${EMACS_VER}
107 EMACS_PORTSDIR=         ${PORTSDIR}/editors/emacs
108 EMACS_COMMON_PORT=      NO
109 EMACS_HAS_MULE=         YES
110 EMACS_NO_SUBDIRSEL=     NO
111 .if (${EMACS_MASTERDIR_PKGFILES} == "YES")
112 COMMENTFILE?=           ${PKGDIR}/pkg-comment.${EMACS_PORT_NAME}
113 DESCR?=                 ${PKGDIR}/pkg-descr.${EMACS_PORT_NAME}
114 PLIST?=                 ${PKGDIR}/pkg-plist.${EMACS_PORT_NAME}
115 .endif
116
117 # Emacs-24.x
118 .elif (${EMACS_PORT_NAME} == "emacs24")
119 EMACS_NAME=             emacs
120 EMACS_VER=              24.3
121 EMACS_MAJOR_VER=        24
122 EMACS_LIBDIR?=          share/${EMACS_NAME}
123 EMACS_LIBDIR_WITH_VER?= share/${EMACS_NAME}/${EMACS_VER}
124 EMACS_PORTSDIR=         ${PORTSDIR}/editors/emacs
125 EMACS_COMMON_PORT=      NO
126 EMACS_HAS_MULE=         YES
127 EMACS_NO_SUBDIRSEL=     NO
128 .if (${EMACS_MASTERDIR_PKGFILES} == "YES")
129 COMMENTFILE?=           ${PKGDIR}/pkg-comment.${EMACS_PORT_NAME}
130 DESCR?=                 ${PKGDIR}/pkg-descr.${EMACS_PORT_NAME}
131 PLIST?=                 ${PKGDIR}/pkg-plist.${EMACS_PORT_NAME}
132 .endif
133
134 # Emacs-24.x (development version)
135 .elif (${EMACS_PORT_NAME} == "emacs-devel")
136 EMACS_NAME=             emacs
137 EMACS_VER=              24.3.50
138 EMACS_MAJOR_VER=        24
139 EMACS_LIBDIR?=          share/${EMACS_NAME}
140 EMACS_LIBDIR_WITH_VER?= share/${EMACS_NAME}/${EMACS_VER}
141 EMACS_PORTSDIR=         ${PORTSDIR}/editors/emacs-devel
142 EMACS_COMMON_PORT=      NO
143 EMACS_HAS_MULE=         YES
144 EMACS_NO_SUBDIRSEL=     NO
145 .if (${EMACS_MASTERDIR_PKGFILES} == "YES")
146 COMMENTFILE?=           ${PKGDIR}/pkg-comment.${EMACS_PORT_NAME}
147 DESCR?=                 ${PKGDIR}/pkg-descr.${EMACS_PORT_NAME}
148 PLIST?=                 ${PKGDIR}/pkg-plist.${EMACS_PORT_NAME}
149 .endif
150
151 # XEmacs-21.x
152 .elif (${EMACS_PORT_NAME} == "xemacs21")
153 EMACS_NAME=             xemacs
154 EMACS_VER=              21.4.22
155 EMACS_MAJOR_VER=        21
156 EMACS_LIBDIR?=          lib/${EMACS_NAME}
157 EMACS_LIBDIR_WITH_VER?= lib/${EMACS_NAME}-${EMACS_VER}
158 EMACS_PORTSDIR=         ${PORTSDIR}/editors/xemacs
159 EMACS_COMMON_PORT=      NO
160 EMACS_HAS_MULE=         NO
161 EMACS_NO_SUBDIRSEL=     NO
162 .if (${EMACS_MASTERDIR_PKGFILES} == "YES")
163 COMMENTFILE?=           ${PKGDIR}/pkg-comment.${EMACS_PORT_NAME}
164 DESCR?=                 ${PKGDIR}/pkg-descr.${EMACS_PORT_NAME}
165 PLIST?=                 ${PKGDIR}/pkg-plist.${EMACS_PORT_NAME}
166 .endif
167
168 # XEmacs-21.x with Mule
169 .elif (${EMACS_PORT_NAME} == "xemacs21-mule")
170 EMACS_NAME=             xemacs
171 EMACS_VER=              21.4.22
172 EMACS_MAJOR_VER=        21
173 EMACS_LIBDIR?=          lib/${EMACS_NAME}
174 EMACS_LIBDIR_WITH_VER?= lib/${EMACS_NAME}-${EMACS_VER}
175 EMACS_PORTSDIR=         ${PORTSDIR}/editors/xemacs21-mule
176 EMACS_COMMON_PORT=      NO
177 EMACS_HAS_MULE=         YES
178 EMACS_NO_SUBDIRSEL=     NO
179 .if (${EMACS_MASTERDIR_PKGFILES} == "YES")
180 COMMENTFILE?=           ${PKGDIR}/pkg-comment.${EMACS_PORT_NAME}
181 DESCR?=                 ${PKGDIR}/pkg-descr.${EMACS_PORT_NAME}
182 PLIST?=                 ${PKGDIR}/pkg-plist.${EMACS_PORT_NAME}
183 .endif
184
185 # XEmacs-21 development version
186 .elif (${EMACS_PORT_NAME} == "xemacs-devel")
187 EMACS_NAME=             xemacs
188 EMACS_VER=              21.5-b28
189 EMACS_MAJOR_VER=        21
190 EMACS_LIBDIR?=          lib/${EMACS_NAME}
191 EMACS_LIBDIR_WITH_VER?= lib/${EMACS_NAME}-${EMACS_VER}
192 EMACS_PORTSDIR=         ${PORTSDIR}/editors/xemacs-devel
193 EMACS_COMMON_PORT=      NO
194 EMACS_HAS_MULE=         NO
195 EMACS_NO_SUBDIRSEL=     NO
196 .if (${EMACS_MASTERDIR_PKGFILES} == "YES")
197 COMMENTFILE?=           ${PKGDIR}/pkg-comment.${EMACS_PORT_NAME}
198 DESCR?=                 ${PKGDIR}/pkg-descr.${EMACS_PORT_NAME}
199 PLIST?=                 ${PKGDIR}/pkg-plist.${EMACS_PORT_NAME}
200 .endif
201
202 # XEmacs-21 development version with Mule
203 .elif (${EMACS_PORT_NAME} == "xemacs-devel-mule") || \
204         (${EMACS_PORT_NAME} == "xemacs-mule-xft")
205 EMACS_NAME=             xemacs
206 EMACS_VER=              21.5-b28
207 EMACS_MAJOR_VER=        21
208 EMACS_LIBDIR?=          lib/${EMACS_NAME}
209 EMACS_LIBDIR_WITH_VER?= lib/${EMACS_NAME}-${EMACS_VER}
210 .if ${EMACS_PORT_NAME} == "xemacs-mule-xft"
211 EMACS_PORTSDIR=         ${PORTSDIR}/editors/xemacs-devel-mule-xft
212 .else
213 EMACS_PORTSDIR=         ${PORTSDIR}/editors/xemacs-devel-mule
214 .endif
215 EMACS_COMMON_PORT=      NO
216 EMACS_HAS_MULE=         YES
217 EMACS_NO_SUBDIRSEL=     NO
218 .if (${EMACS_MASTERDIR_PKGFILES} == "YES")
219 COMMENTFILE?=           ${PKGDIR}/pkg-comment.${EMACS_PORT_NAME}
220 DESCR?=                 ${PKGDIR}/pkg-descr.${EMACS_PORT_NAME}
221 PLIST?=                 ${PKGDIR}/pkg-plist.${EMACS_PORT_NAME}
222 .endif
223
224 .else
225 check-makevars::
226         @${ECHO} "Makefile error: Bad value of EMACS_PORT_NAME: ${EMACS_PORT_NAME}."
227         @${ECHO} "Valid values are:"
228         @${ECHO} "      Emacs  family: emacs21 emacs22 emacs23 emacs24"
229         @${ECHO} "                     emacs-devel"
230         @${ECHO} "      XEmacs family: xemacs21 xemacs21-mule xemacs-devel"
231         @${ECHO} "                     xemacs-devel-mule xemacs-mule-xft"
232         @${FALSE}
233 .endif
234
235
236 #
237 # Common Definitions
238 #
239
240 # find where emacsen is installed
241 # look for it in PREFIX first and fall back to LOCALBASE then
242 .if exists(/bin/${EMACS_NAME}-${EMACS_VER})
243 EMACS_BASE?=                    ${PREFIX}
244 .else
245 EMACS_BASE?=                    ${LOCALBASE}
246 .endif
247 # emacsen command-line filename
248 EMACS_CMD?=                     ${EMACS_BASE}/bin/${EMACS_NAME}-${EMACS_VER}
249 # emacsen core elisp filename
250 EMACS_CORE_DIR=                 ${EMACS_LIBDIR_WITH_VER}/lisp/${EMACS_CORE_SUBDIR}
251 EMACS_COREEL=                   ${EMACS_BASE}/${EMACS_CORE_DIR}/startup.el
252 # emacsen libdir without ${LOCALBASE}
253 EMACS_SITE_LISPDIR?=            ${EMACS_LIBDIR}/site-lisp
254 EMACS_VERSION_SITE_LISPDIR?=    ${EMACS_LIBDIR_WITH_VER}/site-lisp
255
256 # build&run-dependency
257 EMACS_NO_BUILD_DEPENDS?=        NO
258 EMACS_NO_RUN_DEPENDS?=          NO
259 .if (${EMACS_NO_BUILD_DEPENDS} == "NO")
260 BUILD_DEPENDS+=         ${EMACS_CMD}:${EMACS_PORTSDIR}
261 .endif
262 .if (${EMACS_NO_RUN_DEPENDS} == "NO")
263 .if defined(EMACS_COMMON_PORT) && (${EMACS_COMMON_PORT} == "YES")
264 RUN_DEPENDS+=   ${EMACS_COREEL}:${EMACS_PORTSDIR}-common
265 .else
266 RUN_DEPENDS+=   ${EMACS_CMD}:${EMACS_PORTSDIR}
267 .endif
268 .endif
269
270 # environments for build
271 MAKE_ARGS+=     EMACS=${EMACS_CMD} XEMACS=${EMACS_CMD}
272 SCRIPTS_ENV+=   EMACS_LIBDIR=${EMACS_LIBDIR} \
273                 EMACS_VER=${EMACS_VER} \
274                 EMACS_LIBDIR_WITH_VER=${EMACS_LIBDIR_WITH_VER} \
275                 EMACS_SITE_LISPDIR=${EMACS_SITE_LISPDIR} \
276                 EMACS_VERSION_SITE_LISPDIR=${EMACS_VERSION_SITE_LISPDIR}
277 # pkg/PLIST substrings
278 PLIST_SUB+=     EMACS_LIBDIR=${EMACS_LIBDIR} \
279                 EMACS_VER=${EMACS_VER} \
280                 EMACS_LIBDIR_WITH_VER=${EMACS_LIBDIR_WITH_VER} \
281                 EMACS_SITE_LISPDIR=${EMACS_SITE_LISPDIR} \
282                 EMACS_VERSION_SITE_LISPDIR=${EMACS_VERSION_SITE_LISPDIR}