1 # Created by: MANTANI Nobutaka <nobutaka@nobutaka.com>
5 PORTVERSION= ${EMACS_VER}
8 CATEGORIES= editors ipv6
12 PATCH_SITE_SUBDIR+= ashish
15 MAINTAINER= ashish@FreeBSD.org
16 COMMENT= GNU editing macros
19 LICENSE_FILE= ${WRKSRC}/COPYING
21 CONFLICTS= emacs-19.* emacs21-[0-9]* emacs22-[0-9]* emacs23-[0-9]* \
22 xemacs-[0-9]* xemacs-devel-[0-9]* xemacs-mule-[0-9]* \
23 xemacs-devel-mule-[0-9]* \
28 USES= cpe gmake makeinfo ncurses pkgconfig shebangfix tar:xz
29 CPPFLAGS+= -I${LOCALBASE}/include
30 LDFLAGS+= -L${LOCALBASE}/lib
31 INFO_PATH= ${DATADIR_REL}/info
32 WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}
35 SUB_FILES= pkg-install
36 SUB_LIST+= ARCHLIBDIR=${PREFIX}/libexec/emacs/${EMACS_VER}/${CONFIGURE_TARGET}
37 SHEBANG_FILES= lib-src/grep-changelog
39 CONFIGURE_ARGS= --localstatedir=/var
41 PLIST_SUB= EMACS_VER=${EMACS_VER} GNU_HOST=${CONFIGURE_TARGET}
45 INFO= ada-mode auth autotype bovine calc ccmode cl dbus dired-x \
46 ebrowse ede ediff edt efaq eieio eintr elisp emacs-gnutls \
47 emacs-mime emacs epa erc ert eshell eudc eww flymake forms \
48 gnus htmlfontify idlwave ido info mairix-el message mh-e \
49 newsticker nxml-mode octave-mode org pcl-cvs pgg rcirc reftex \
50 remember sasl sc semantic ses sieve smtpmail speedbar srecode \
51 todo-mode tramp url vip viper widget wisent woman
53 OPTIONS_DEFINE= CANNA X11 ACL DBUS GCONF GIF JPEG M17N OTF PNG SOUND SOURCES SVG TIFF SCROLLBARS \
54 XFT XIM XML XPM MAGICK GNUTLS GSETTINGS LTO FILENOTIFY
56 OPTIONS_SINGLE= X11 SOUND
58 CANNA_DESC= Canna support
60 GSETTINGS_DESC= GSettings support
61 SCROLLBARS_DESC= Toolkit scroll-bars
62 SOUND_DESC= Sound support
63 SOURCES_DESC= Install sources
64 XAW_DESC= Athena widgets
65 XAW3D_DESC= Athena3D widgets
66 XIM_DESC= X Input Method Support
67 M17N_DESC= M17N support for text-shaping
68 OTF_DESC= Opentype fonts suport
69 FILENOTIFY_DESC= File notification support
70 LTO_DESC= Enable link-time optimization (requires GCC 4.6+)
72 OPTIONS_SINGLE_X11= GTK2 GTK3 XAW XAW3D MOTIF
73 OPTIONS_SINGLE_SOUND= ALSA OSS
75 .if !defined(EMACS_NO_X11_SLAVE)
76 OPTIONS_DEFAULT=DBUS GCONF GIF GTK2 JPEG M17N OTF PNG SOUND SOURCES SVG TIFF \
77 SCROLLBARS XFT XIM XML XPM MAGICK GNUTLS GSETTINGS OSS X11
78 CONFLICTS+= emacs-nox11-[0-9]*
80 OPTIONS_DEFAULT=SOURCES GNUTLS XML
81 CONFLICTS+= emacs24-[0-9]*
86 CANNA_CONFIGURE_ON= --with-canna \
87 --with-canna-includes=${LOCALBASE}/include \
88 --with-canna-libraries=${LOCALBASE}/lib
89 CANNA_PATCH_SITES= http://distfiles.pirateparty.in/%SUBDIR%/ LOCAL
90 CANNA_PATCHFILES= emacs24.4canna-20141030.diff.gz
91 CANNA_LIB_DEPENDS= libcanna.so:${PORTSDIR}/japanese/canna-lib
93 SOUND_CONFIGURE_OFF= --with-sound=no
94 ALSA_CONFIGURE_ON= --with-sound=alsa
95 ALSA_LIB_DEPENDS= libasound.so:${PORTSDIR}/audio/alsa-lib
96 OSS_CONFIGURE_ON= --with-sound=oss
98 DBUS_LIB_DEPENDS= libdbus-1.so:${PORTSDIR}/devel/dbus
99 DBUS_CONFIGURE_WITH= dbus
101 GNUTLS_LIB_DEPENDS= libgnutls.so:${PORTSDIR}/security/gnutls
102 GNUTLS_CONFIGURE_WITH= gnutls
104 XML_USE= GNOME=libxml2
105 XML_CONFIGURE_WITH= xml2
107 SVG_USE= GNOME=librsvg2
108 SVG_CONFIGURE_WITH= rsvg
110 X11_CONFIGURE_WITH= x
112 X11_USES= desktop-file-utils
114 GTK2_USE= GNOME=gtk20
115 GTK2_CONFIGURE_ON= --with-x-toolkit=gtk2
117 GTK3_USE= GNOME=gtk30
118 GTK3_CONFIGURE_ON= --with-x-toolkit=gtk3
120 XAW3D_LIB_DEPENDS= libXaw3d.so:${PORTSDIR}/x11-toolkits/Xaw3d
121 XAW3D_CONFIGURE_ON= --with-x-toolkit=athena
124 XAW_CONFIGURE_ON+= --with-x-toolkit=athena --without-xaw3d
127 MOTIF_CONFIGURE_ON+= --with-x-toolkit=motif
129 SCROLLBARS_CONFIGURE_WITH= toolkit-scroll-bars
132 JPEG_CONFIGURE_WITH= jpeg
134 TIFF_LIB_DEPENDS= libtiff.so:${PORTSDIR}/graphics/tiff
135 TIFF_CONFIGURE_WITH= tiff
137 GIF_LIB_DEPENDS= libgif.so:${PORTSDIR}/graphics/giflib
138 GIF_CONFIGURE_WITH= gif
140 PNG_LIB_DEPENDS+= libpng.so:${PORTSDIR}/graphics/png
141 PNG_CONFIGURE_WITH= png
144 XPM_CONFIGURE_WITH= xpm
147 XFT_LIB_DEPENDS= libfreetype.so:${PORTSDIR}/print/freetype2
148 XFT_CONFIGURE_WITH= xft
150 M17N_LIB_DEPENDS= libm17n.so:${PORTSDIR}/devel/m17n-lib
151 M17N_CONFIGURE_WITH= m17n-flt
153 OTF_LIB_DEPENDS= libotf.so:${PORTSDIR}/print/libotf
154 OTF_CONFIGURE_WITH= libotf
156 MAGICK_LIB_DEPENDS= libMagickCore-6.so:${PORTSDIR}/graphics/ImageMagick
157 MAGICK_CONFIGURE_WITH= imagemagick
159 GSETTINGS_USE= gnome=glib20
160 GSETTINGS_CONFIGURE_WITH= gsettings
162 GCONF_USE= gnome=gconf2
163 GCONF_CONFIGURE_WITH= gconf
165 XIM_CONFIGURE_WITH= xim
167 LTO_CONFIGURE_ON= --enable-link-time-optimization
170 ACL_CONFIGURE_OFF= --disable-acl
172 FILENOTIFY_CONFIGURE_ON= --with-file-notification=gfile
173 FILENOTIFY_CONFIGURE_OFF= --without-file-notification
174 FILENOTIFY_USE= GNOME=glib20
176 .include <bsd.port.options.mk>
178 # clang is broken on i386 platform in -O2, due to use of alloca, and stack realignment
179 # and %esi as frame pointer register
180 # http://llvm.org/bugs/show_bug.cgi?id=18171
181 # fixed in r263312 (11-CURRENT), and fixed in r263765 (10-STABLE)
182 .if ${ARCH} == "i386"
183 .if (${OSVERSION} < 1000706) || (${OSVERSION} >= 1100000 && ${OSVERSION} < 1100015)
189 .if ${PORT_OPTIONS:MX11}
193 .if !${PORT_OPTIONS:MXFT}
194 .if ${PORT_OPTIONS:MM17N}
195 IGNORE= m17n support for text-shaping requires Xft. Please run 'make config'
196 .elif ${PORT_OPTIONS:MOTF}
197 IGNORE= opentype fonts support requires Xft. Please run 'make config'
203 .for OPT in SVG GTK2 GTK3 XAW3D XAW MOTIF SCROLLBARS JPEG TIFF GIF PNG XPM XFT M17N MAGICK GCONF GSETTINGS XIM
204 .if ${PORT_OPTIONS:M${OPT}}
205 IGNORE= option ${OPT} requires requires X11 option
211 .if !${PORT_OPTIONS:MDBUS}
212 .if ${PORT_OPTIONS:MGSETTINGS}
213 IGNORE= support for GSettings requires DBUS. Please run 'make config'
217 .include <bsd.port.pre.mk>
219 # Building with GCC 4.6+ requires it
220 .if ${ncurses_ARGS} == "port"
224 .if ${ARCH} == "ia64"
225 BROKEN= Emacs 24.X does not currently build on ia64
229 @${REINPLACE_CMD} -e "s/%%EMACS_VER%%/${EMACS_VER}/g" -e "s/%%DATADIR%%/${DATADIR:C/\//\\\//g}/g" ${WRKSRC}/sources.el
230 .if empty(PORT_OPTIONS:MX11)
231 @${REINPLACE_CMD} -e 's/^Terminal=.*$$/Terminal=true/' ${WRKSRC}/etc/emacs.desktop
235 @${RM} -rf ${STAGEDIR}/var/games/emacs
236 .if ${PORT_OPTIONS:MSOURCES}
237 @${MKDIR} ${STAGEDIR}${DATADIR}/${EMACS_VER}/src
238 ${INSTALL_DATA} ${WRKSRC}/src/*.[ch] ${STAGEDIR}${DATADIR}/${EMACS_VER}/src
239 ${INSTALL_DATA} ${WRKSRC}/sources.el ${STAGEDIR}${DATADIR}/${EMACS_VER}/site-lisp/site-start.el
241 @${FIND} ${STAGEDIR}${PREFIX}/${INFO_PATH} -type f -name '*.gz' -exec ${GUNZIP_CMD} '{}' \;
243 .if !defined(WITHOUT_X11)
246 @${ECHO_MSG} "====> To disable X11 support, define: WITHOUT_X11."
250 .include <bsd.port.post.mk>