Update editors/libreoffice-is to version 5.0.3
[dports.git] / editors / emacs / Makefile
1 # Created by: MANTANI Nobutaka <nobutaka@nobutaka.com>
2 # $FreeBSD$
3
4 PORTNAME=       emacs
5 PORTVERSION=    ${EMACS_VER}
6 PORTEPOCH=      3
7 PORTREVISION=   1
8 CATEGORIES=     editors ipv6
9 MASTER_SITES=   GNU
10 PKGNAMESUFFIX?= 24
11
12 PATCH_SITE_SUBDIR+=     ashish
13 PATCH_DIST_STRIP=       -p1
14
15 MAINTAINER=     ashish@FreeBSD.org
16 COMMENT=        GNU editing macros
17
18 LICENSE=        GPLv3
19 LICENSE_FILE=   ${WRKSRC}/COPYING
20
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]* \
24                 emacs-devel-[0-9]*
25
26 EMACS_VER=      24.5
27 GNU_CONFIGURE=  yes
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}
33 CPE_VENDOR=     gnu
34
35 SUB_FILES=      pkg-install
36 SUB_LIST+=      ARCHLIBDIR=${PREFIX}/libexec/emacs/${EMACS_VER}/${CONFIGURE_TARGET}
37 SHEBANG_FILES=  lib-src/grep-changelog
38
39 CONFIGURE_ARGS= --localstatedir=/var
40
41 PLIST_SUB=      EMACS_VER=${EMACS_VER} GNU_HOST=${CONFIGURE_TARGET}
42
43 MAKE_ENV=       LC_ALL=C
44
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
52
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
55
56 OPTIONS_SINGLE= X11 SOUND
57
58 CANNA_DESC=             Canna support
59 ACL_DESC=               ACL 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+)
71
72 OPTIONS_SINGLE_X11=     GTK2 GTK3 XAW XAW3D MOTIF
73 OPTIONS_SINGLE_SOUND=   ALSA OSS
74
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]*
79 .else
80 OPTIONS_DEFAULT=SOURCES GNUTLS XML
81 CONFLICTS+=     emacs24-[0-9]*
82 .endif
83
84 OPTIONS_SUB=            SOURCES
85
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
92
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
97
98 DBUS_LIB_DEPENDS=       libdbus-1.so:${PORTSDIR}/devel/dbus
99 DBUS_CONFIGURE_WITH=    dbus
100
101 GNUTLS_LIB_DEPENDS=     libgnutls.so:${PORTSDIR}/security/gnutls
102 GNUTLS_CONFIGURE_WITH=  gnutls
103
104 XML_USE=                GNOME=libxml2
105 XML_CONFIGURE_WITH=     xml2
106
107 SVG_USE=                GNOME=librsvg2
108 SVG_CONFIGURE_WITH=     rsvg
109
110 X11_CONFIGURE_WITH=     x
111 X11_USE=                XORG=x11
112 X11_USES=               desktop-file-utils
113
114 GTK2_USE=               GNOME=gtk20
115 GTK2_CONFIGURE_ON=      --with-x-toolkit=gtk2
116
117 GTK3_USE=               GNOME=gtk30
118 GTK3_CONFIGURE_ON=      --with-x-toolkit=gtk3
119
120 XAW3D_LIB_DEPENDS=      libXaw3d.so:${PORTSDIR}/x11-toolkits/Xaw3d
121 XAW3D_CONFIGURE_ON=     --with-x-toolkit=athena
122
123 XAW_USE=                XORG=xaw
124 XAW_CONFIGURE_ON+=      --with-x-toolkit=athena --without-xaw3d
125
126 MOTIF_USES=             motif
127 MOTIF_CONFIGURE_ON+=    --with-x-toolkit=motif
128
129 SCROLLBARS_CONFIGURE_WITH=      toolkit-scroll-bars
130
131 JPEG_USES=              jpeg
132 JPEG_CONFIGURE_WITH=    jpeg
133
134 TIFF_LIB_DEPENDS=       libtiff.so:${PORTSDIR}/graphics/tiff
135 TIFF_CONFIGURE_WITH=    tiff
136
137 GIF_LIB_DEPENDS=        libgif.so:${PORTSDIR}/graphics/giflib
138 GIF_CONFIGURE_WITH=     gif
139
140 PNG_LIB_DEPENDS+=       libpng.so:${PORTSDIR}/graphics/png
141 PNG_CONFIGURE_WITH=     png
142
143 XPM_USE=                XORG=xpm
144 XPM_CONFIGURE_WITH=     xpm
145
146 XFT_USE=                XORG=xft
147 XFT_LIB_DEPENDS=        libfreetype.so:${PORTSDIR}/print/freetype2
148 XFT_CONFIGURE_WITH=     xft
149
150 M17N_LIB_DEPENDS=       libm17n.so:${PORTSDIR}/devel/m17n-lib
151 M17N_CONFIGURE_WITH=    m17n-flt
152
153 OTF_LIB_DEPENDS=        libotf.so:${PORTSDIR}/print/libotf
154 OTF_CONFIGURE_WITH=     libotf
155
156 MAGICK_LIB_DEPENDS=     libMagickCore-6.so:${PORTSDIR}/graphics/ImageMagick
157 MAGICK_CONFIGURE_WITH=  imagemagick
158
159 GSETTINGS_USE=          gnome=glib20
160 GSETTINGS_CONFIGURE_WITH=       gsettings
161
162 GCONF_USE=              gnome=gconf2
163 GCONF_CONFIGURE_WITH=   gconf
164
165 XIM_CONFIGURE_WITH=     xim
166
167 LTO_CONFIGURE_ON=       --enable-link-time-optimization
168 LTO_USE=                GCC=4.6+
169
170 ACL_CONFIGURE_OFF=      --disable-acl
171
172 FILENOTIFY_CONFIGURE_ON=        --with-file-notification=gfile
173 FILENOTIFY_CONFIGURE_OFF=       --without-file-notification
174 FILENOTIFY_USE=         GNOME=glib20
175
176 .include <bsd.port.options.mk>
177
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)
184 USE_GCC=                any
185 .endif
186 .endif
187
188
189 .if ${PORT_OPTIONS:MX11}
190
191 INSTALLS_ICONS= yes
192
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'
198 .endif
199 .endif
200
201 .else
202
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
206 .endif
207 .endfor
208
209 .endif
210
211 .if !${PORT_OPTIONS:MDBUS}
212 .if ${PORT_OPTIONS:MGSETTINGS}
213 IGNORE= support for GSettings requires DBUS. Please run 'make config'
214 .endif
215 .endif
216
217 .include <bsd.port.pre.mk>
218
219 # Building with GCC 4.6+ requires it
220 .if ${ncurses_ARGS} == "port"
221 LDFLAGS+=       -ltinfo
222 .endif
223
224 .if ${ARCH} == "ia64"
225 BROKEN= Emacs 24.X does not currently build on ia64
226 .endif
227
228 post-patch:
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
232 .endif
233
234 post-install:
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
240 .endif
241         @${FIND} ${STAGEDIR}${PREFIX}/${INFO_PATH} -type f -name '*.gz' -exec ${GUNZIP_CMD} '{}' \;
242
243 .if !defined(WITHOUT_X11)
244 pre-everything::
245         @${ECHO_MSG}
246         @${ECHO_MSG} "====> To disable X11 support, define: WITHOUT_X11."
247         @${ECHO_MSG}
248 .endif
249
250 .include <bsd.port.post.mk>