Sync Mk with ports
[dports.git] / Mk / bsd.xorg.mk
1 #-*- tab-width: 4; -*-
2 # ex:ts=4
3 #
4 # bsd.xorg.mk - Support for X.Org ports and dependencies
5 #
6 # Created by: Florent Thoumie <flz@FreeBSD.org>
7 #
8 # !!! Here be dragons !!! (yeah, here as well...)
9 #
10 # $FreeBSD$
11 #
12
13 .if !defined(_POSTMKINCLUDED) && !defined(Xorg_Pre_Include)
14
15 Xorg_Include_MAINTAINER=        x11@FreeBSD.org
16 Xorg_Pre_Include=               bsd.xorg.mk
17
18 # Some notes:
19 #
20 # app - Installs applications, no shared libraries.
21 # data - Installs only data.
22 # doc - no particular notes
23 # driver - input depends on inputproto/randrproto at least
24 #          video depends on randrproto/renderproto at least
25 # font - don't install .pc file
26 # lib - various dependencies, install .pc file, needs pathfix
27 # proto - install .pc file, needs pathfix, most only needed at build time.
28 # xserver - there's only one atm, I guess everything can fit into the port itself
29
30 .if defined(XORG_CAT)
31 # Default variables, common to all new modular xorg ports.
32 .if !defined(USES) || ! ${USES:Mtar*}
33 USES+=          tar:bzip2
34 .endif
35 GNU_CONFIGURE=  yes
36 DIST_SUBDIR=    xorg/${XORG_CAT}
37
38 MASTER_SITES?=  ${MASTER_SITE_XORG}
39 MASTER_SITE_SUBDIR?=    individual/${XORG_CAT}
40
41 # All xorg ports needs pkgconfig to build, but some ports look for pkgconfig and
42 # then continues the build.
43 USES+=          pkgconfig
44
45 # All xorg ports needs xorg-macros.
46 . if ${PORTNAME} != xorg-macros
47 USE_XORG+=      xorg-macros
48 . endif
49
50 . if ${XORG_CAT} == "app"
51 # Nothing at the moment
52 . endif
53
54 . if ${XORG_CAT} == "data"
55 # Nothing at the moment.
56 . endif
57
58 . if ${XORG_CAT} == "driver"
59 USE_XORG+=      xorg-server xproto randrproto xi renderproto xextproto \
60                         inputproto kbproto fontsproto videoproto dri2proto xf86driproto \
61                         glproto xineramaproto resourceproto scrnsaverproto
62 # work around a llvm bug on i386, llvm bug #15806 
63 # reproduced with clang 3.2 (current release) and 3.1
64 .  if ${ARCH} == i386
65 CFLAGS+=        -fno-optimize-sibling-calls
66 .  endif
67 CONFIGURE_ENV+= DRIVER_MAN_SUFFIX=4x DRIVER_MAN_DIR='$$(mandir)/man4'
68 USES+=          libtool
69 . endif
70
71 . if ${XORG_CAT} == "font"
72 FONTNAME?=      ${PORTNAME:C/.*-//g:S/type/Type/:S/ttf/TTF/:S/speedo/Speedo/}
73 CONFIGURE_ARGS+=        --with-fontrootdir=${PREFIX}/share/fonts
74 CONFIGURE_ENV+= FONTROOTDIR=${PREFIX}/share/fonts
75 .    if !defined(NOFONT)
76 USES+=  fonts
77 BUILD_DEPENDS+= mkfontdir:${PORTSDIR}/x11-fonts/mkfontdir \
78                                 bdftopcf:${PORTSDIR}/x11-fonts/bdftopcf
79 PLIST_FILES+=   "@comment ${FONTSDIR}/fonts.dir" \
80                                 "@comment ${FONTSDIR}/fonts.scale"
81 .    endif
82 .  endif
83
84 . if ${XORG_CAT} == "lib"
85 USES+=          pathfix libtool:keepla
86 USE_LDCONFIG=   yes
87 CONFIGURE_ARGS+=--enable-malloc0returnsnull
88 . endif
89
90 . if ${XORG_CAT} == "proto"
91 USES+=  pathfix
92 . endif
93
94 . if ${XORG_CAT} == "xserver"
95 DISTFILES?=     xorg-server-${PORTVERSION}.tar.bz2
96 WRKSRC=         ${WRKDIR}/xorg-server-${PORTVERSION}
97 USES+=  pathfix
98 CONFIGURE_ARGS+=        --with-xkb-path=${LOCALBASE}/share/X11/xkb \
99                                         --with-fontrootdir=${LOCALBASE}/share/fonts
100
101 LIB_PC_DEPENDS+=        ${LOCALBASE}/libdata/pkgconfig/dri.pc:${PORTSDIR}/graphics/dri
102 USE_XORG+=      pciaccess xextproto videoproto fontsproto dri2proto fontutil:build
103 . endif
104
105 .endif
106
107 .endif
108
109 .if defined(_POSTMKINCLUDED) && !defined(Xorg_Post_Include)
110
111 Xorg_Post_Include=              bsd.xorg.mk
112
113 # Register all xorg .pc files here.
114 # foo_LIB_PC_DEPENDS means it should go to BUILD_DEPENDS *and* RUN_DEPENDS.
115
116 XORG_MODULES=   bigreqsproto \
117                                 compositeproto \
118                                 damageproto \
119                                 dmx \
120                                 dmxproto \
121                                 dri2proto \
122                                 dri3proto \
123                                 evieproto \
124                                 fixesproto \
125                                 fontcacheproto \
126                                 fontenc \
127                                 fontsproto \
128                                 fontutil \
129                                 glproto \
130                                 ice \
131                                 inputproto \
132                                 kbproto \
133                                 libfs \
134                                 oldx \
135                                 pciaccess \
136                                 pixman \
137                                 presentproto \
138                                 printproto \
139                                 randrproto \
140                                 recordproto \
141                                 renderproto \
142                                 resourceproto \
143                                 scrnsaverproto \
144                                 sm \
145                                 trapproto \
146                                 videoproto \
147                                 x11 \
148                                 xau \
149                                 xaw \
150                                 xaw6 \
151                                 xaw7 \
152                                 xbitmaps \
153                                 xcb \
154                                 xcmiscproto \
155                                 xcomposite \
156                                 xcursor \
157                                 xdamage \
158                                 xdmcp \
159                                 xevie \
160                                 xext \
161                                 xextproto \
162                                 xf86bigfontproto \
163                                 xf86dgaproto \
164                                 xf86driproto \
165                                 xf86miscproto \
166                                 xf86rushproto \
167                                 xf86vidmodeproto \
168                                 xfixes \
169                                 xfont \
170                                 xfontcache \
171                                 xft \
172                                 xi \
173                                 xinerama \
174                                 xineramaproto \
175                                 xkbfile \
176                                 xkbui \
177                                 xmu \
178                                 xmuu \
179                                 xorg-macros \
180                                 xorg-server \
181                                 xp \
182                                 xpm \
183                                 xprintapputil \
184                                 xprintutil \
185                                 xproto \
186                                 xproxymngproto \
187                                 xrandr \
188                                 xrender \
189                                 xres \
190                                 xscrnsaver \
191                                 xshmfence \
192                                 xt \
193                                 xtrans \
194                                 xtrap \
195                                 xtst \
196                                 xv \
197                                 xvmc \
198                                 xxf86dga \
199                                 xxf86misc \
200                                 xxf86vm
201
202 bigreqsproto_BUILD_DEPENDS=     ${LOCALBASE}/libdata/pkgconfig/bigreqsproto.pc:${PORTSDIR}/x11/bigreqsproto
203 compositeproto_BUILD_DEPENDS=   ${LOCALBASE}/libdata/pkgconfig/compositeproto.pc:${PORTSDIR}/x11/compositeproto
204 damageproto_BUILD_DEPENDS=      ${LOCALBASE}/libdata/pkgconfig/damageproto.pc:${PORTSDIR}/x11/damageproto
205 dmx_LIB_PC_DEPENDS=             ${LOCALBASE}/libdata/pkgconfig/dmx.pc:${PORTSDIR}/x11/libdmx
206 dmxproto_BUILD_DEPENDS=         ${LOCALBASE}/libdata/pkgconfig/dmxproto.pc:${PORTSDIR}/x11/dmxproto
207 dri2proto_BUILD_DEPENDS=        ${LOCALBASE}/libdata/pkgconfig/dri2proto.pc:${PORTSDIR}/x11/dri2proto
208 dri3proto_BUILD_DEPENDS=        ${LOCALBASE}/libdata/pkgconfig/dri3proto.pc:${PORTSDIR}/x11/dri3proto
209 evieproto_BUILD_DEPENDS=        ${LOCALBASE}/libdata/pkgconfig/evieproto.pc:${PORTSDIR}/x11/evieext
210 fixesproto_BUILD_DEPENDS=       ${LOCALBASE}/libdata/pkgconfig/fixesproto.pc:${PORTSDIR}/x11/fixesproto
211 fontcacheproto_BUILD_DEPENDS=   ${LOCALBASE}/libdata/pkgconfig/fontcacheproto.pc:${PORTSDIR}/x11-fonts/fontcacheproto
212 fontenc_LIB_PC_DEPENDS=         ${LOCALBASE}/libdata/pkgconfig/fontenc.pc:${PORTSDIR}/x11-fonts/libfontenc
213 fontsproto_BUILD_DEPENDS=       ${LOCALBASE}/libdata/pkgconfig/fontsproto.pc:${PORTSDIR}/x11-fonts/fontsproto
214 fontutil_LIB_PC_DEPENDS=        ${LOCALBASE}/libdata/pkgconfig/fontutil.pc:${PORTSDIR}/x11-fonts/font-util
215 glproto_BUILD_DEPENDS=          ${LOCALBASE}/libdata/pkgconfig/glproto.pc:${PORTSDIR}/x11/glproto
216 ice_LIB_PC_DEPENDS=             ${LOCALBASE}/libdata/pkgconfig/ice.pc:${PORTSDIR}/x11/libICE
217 inputproto_BUILD_DEPENDS=       ${LOCALBASE}/libdata/pkgconfig/inputproto.pc:${PORTSDIR}/x11/inputproto
218 kbproto_BUILD_DEPENDS=          ${LOCALBASE}/libdata/pkgconfig/kbproto.pc:${PORTSDIR}/x11/kbproto
219 libfs_LIB_PC_DEPENDS=           ${LOCALBASE}/libdata/pkgconfig/libfs.pc:${PORTSDIR}/x11-fonts/libFS
220 oldx_LIB_PC_DEPENDS=            ${LOCALBASE}/libdata/pkgconfig/oldx.pc:${PORTSDIR}/x11/liboldX
221 pciaccess_LIB_PC_DEPENDS=       ${LOCALBASE}/libdata/pkgconfig/pciaccess.pc:${PORTSDIR}/devel/libpciaccess
222 pixman_LIB_PC_DEPENDS=          ${LOCALBASE}/libdata/pkgconfig/pixman-1.pc:${PORTSDIR}/x11/pixman
223 presentproto_BUILD_DEPENDS=     ${LOCALBASE}/libdata/pkgconfig/presentproto.pc:${PORTSDIR}/x11/presentproto
224 printproto_BUILD_DEPENDS=       ${LOCALBASE}/libdata/pkgconfig/printproto.pc:${PORTSDIR}/x11/printproto
225 randrproto_BUILD_DEPENDS=       ${LOCALBASE}/libdata/pkgconfig/randrproto.pc:${PORTSDIR}/x11/randrproto
226 recordproto_BUILD_DEPENDS=      ${LOCALBASE}/libdata/pkgconfig/recordproto.pc:${PORTSDIR}/x11/recordproto
227 renderproto_BUILD_DEPENDS=      ${LOCALBASE}/libdata/pkgconfig/renderproto.pc:${PORTSDIR}/x11/renderproto
228 resourceproto_BUILD_DEPENDS=    ${LOCALBASE}/libdata/pkgconfig/resourceproto.pc:${PORTSDIR}/x11/resourceproto
229 scrnsaverproto_BUILD_DEPENDS=   ${LOCALBASE}/libdata/pkgconfig/scrnsaverproto.pc:${PORTSDIR}/x11/scrnsaverproto
230 sm_LIB_PC_DEPENDS=              ${LOCALBASE}/libdata/pkgconfig/sm.pc:${PORTSDIR}/x11/libSM
231 trapproto_BUILD_DEPENDS=        ${LOCALBASE}/libdata/pkgconfig/trapproto.pc:${PORTSDIR}/x11/trapproto
232 videoproto_BUILD_DEPENDS=       ${LOCALBASE}/libdata/pkgconfig/videoproto.pc:${PORTSDIR}/x11/videoproto
233 x11_LIB_PC_DEPENDS=             ${LOCALBASE}/libdata/pkgconfig/x11.pc:${PORTSDIR}/x11/libX11
234 xau_LIB_PC_DEPENDS=             ${LOCALBASE}/libdata/pkgconfig/xau.pc:${PORTSDIR}/x11/libXau
235 xaw_LIB_PC_DEPENDS=             ${xaw7_LIB_PC_DEPENDS}
236 xaw6_LIB_PC_DEPENDS=            ${LOCALBASE}/libdata/pkgconfig/xaw6.pc:${PORTSDIR}/x11-toolkits/libXaw
237 xaw7_LIB_PC_DEPENDS=            ${LOCALBASE}/libdata/pkgconfig/xaw7.pc:${PORTSDIR}/x11-toolkits/libXaw
238 xbitmaps_LIB_PC_DEPENDS=        ${LOCALBASE}/libdata/pkgconfig/xbitmaps.pc:${PORTSDIR}/x11/xbitmaps
239 xcb_LIB_PC_DEPENDS=                     ${LOCALBASE}/libdata/pkgconfig/xcb.pc:${PORTSDIR}/x11/libxcb
240 xcmiscproto_BUILD_DEPENDS=      ${LOCALBASE}/libdata/pkgconfig/xcmiscproto.pc:${PORTSDIR}/x11/xcmiscproto
241 xcomposite_LIB_PC_DEPENDS=      ${LOCALBASE}/libdata/pkgconfig/xcomposite.pc:${PORTSDIR}/x11/libXcomposite
242 xcursor_LIB_PC_DEPENDS=         ${LOCALBASE}/libdata/pkgconfig/xcursor.pc:${PORTSDIR}/x11/libXcursor
243 xdamage_LIB_PC_DEPENDS=         ${LOCALBASE}/libdata/pkgconfig/xdamage.pc:${PORTSDIR}/x11/libXdamage
244 xdmcp_LIB_PC_DEPENDS=           ${LOCALBASE}/libdata/pkgconfig/xdmcp.pc:${PORTSDIR}/x11/libXdmcp
245 xevie_LIB_PC_DEPENDS=           ${LOCALBASE}/libdata/pkgconfig/xevie.pc:${PORTSDIR}/x11/libXevie
246 xext_LIB_PC_DEPENDS=            ${LOCALBASE}/libdata/pkgconfig/xext.pc:${PORTSDIR}/x11/libXext
247 xextproto_BUILD_DEPENDS=        ${LOCALBASE}/libdata/pkgconfig/xextproto.pc:${PORTSDIR}/x11/xextproto
248 xf86bigfontproto_BUILD_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xf86bigfontproto.pc:${PORTSDIR}/x11-fonts/xf86bigfontproto
249 xf86dgaproto_BUILD_DEPENDS=     ${LOCALBASE}/libdata/pkgconfig/xf86dgaproto.pc:${PORTSDIR}/x11/xf86dgaproto
250 xf86driproto_BUILD_DEPENDS=     ${LOCALBASE}/libdata/pkgconfig/xf86driproto.pc:${PORTSDIR}/x11/xf86driproto
251 xf86miscproto_BUILD_DEPENDS=    ${LOCALBASE}/libdata/pkgconfig/xf86miscproto.pc:${PORTSDIR}/x11/xf86miscproto
252 xf86rushproto_BUILD_DEPENDS=    ${LOCALBASE}/libdata/pkgconfig/xf86rushproto.pc:${PORTSDIR}/x11/xf86rushproto
253 xf86vidmodeproto_BUILD_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xf86vidmodeproto.pc:${PORTSDIR}/x11/xf86vidmodeproto
254 xfixes_LIB_PC_DEPENDS=          ${LOCALBASE}/libdata/pkgconfig/xfixes.pc:${PORTSDIR}/x11/libXfixes
255 xfont_LIB_PC_DEPENDS=           ${LOCALBASE}/libdata/pkgconfig/xfont.pc:${PORTSDIR}/x11-fonts/libXfont
256 xfontcache_LIB_PC_DEPENDS=      ${LOCALBASE}/libdata/pkgconfig/xfontcache.pc:${PORTSDIR}/x11-fonts/libXfontcache
257 xft_LIB_PC_DEPENDS=             ${LOCALBASE}/libdata/pkgconfig/xft.pc:${PORTSDIR}/x11-fonts/libXft
258 xi_LIB_PC_DEPENDS=              ${LOCALBASE}/libdata/pkgconfig/xi.pc:${PORTSDIR}/x11/libXi
259 xinerama_LIB_PC_DEPENDS=        ${LOCALBASE}/libdata/pkgconfig/xinerama.pc:${PORTSDIR}/x11/libXinerama
260 xineramaproto_BUILD_DEPENDS=    ${LOCALBASE}/libdata/pkgconfig/xineramaproto.pc:${PORTSDIR}/x11/xineramaproto
261 xkbfile_LIB_PC_DEPENDS=         ${LOCALBASE}/libdata/pkgconfig/xkbfile.pc:${PORTSDIR}/x11/libxkbfile
262 xkbui_LIB_PC_DEPENDS=           ${LOCALBASE}/libdata/pkgconfig/xkbui.pc:${PORTSDIR}/x11/libxkbui
263 xmu_LIB_PC_DEPENDS=             ${LOCALBASE}/libdata/pkgconfig/xmu.pc:${PORTSDIR}/x11-toolkits/libXmu
264 xmuu_LIB_PC_DEPENDS=            ${LOCALBASE}/libdata/pkgconfig/xmuu.pc:${PORTSDIR}/x11-toolkits/libXmu
265 xorg-macros_BUILD_DEPENDS=      ${LOCALBASE}/libdata/pkgconfig/xorg-macros.pc:${PORTSDIR}/devel/xorg-macros
266 xorg-server_LIB_PC_DEPENDS=     ${LOCALBASE}/libdata/pkgconfig/xorg-server.pc:${PORTSDIR}/x11-servers/xorg-server
267 xp_LIB_PC_DEPENDS=              ${LOCALBASE}/libdata/pkgconfig/xp.pc:${PORTSDIR}/x11/libXp
268 xpm_LIB_PC_DEPENDS=             ${LOCALBASE}/libdata/pkgconfig/xpm.pc:${PORTSDIR}/x11/libXpm
269 xprintapputil_LIB_PC_DEPENDS=   ${LOCALBASE}/libdata/pkgconfig/xprintapputil.pc:${PORTSDIR}/x11/libXprintAppUtil
270 xprintutil_LIB_PC_DEPENDS=      ${LOCALBASE}/libdata/pkgconfig/xprintutil.pc:${PORTSDIR}/x11/libXprintUtil
271 xproto_LIB_PC_DEPENDS=          ${LOCALBASE}/libdata/pkgconfig/xproto.pc:${PORTSDIR}/x11/xproto
272 xproxymngproto_BUILD_DEPENDS=   ${LOCALBASE}/libdata/pkgconfig/xproxymngproto.pc:${PORTSDIR}/x11/xproxymanagementprotocol
273 xrandr_LIB_PC_DEPENDS=          ${LOCALBASE}/libdata/pkgconfig/xrandr.pc:${PORTSDIR}/x11/libXrandr
274 xrender_LIB_PC_DEPENDS=         ${LOCALBASE}/libdata/pkgconfig/xrender.pc:${PORTSDIR}/x11/libXrender
275 xres_LIB_PC_DEPENDS=            ${LOCALBASE}/libdata/pkgconfig/xres.pc:${PORTSDIR}/x11/libXres
276 xscrnsaver_LIB_PC_DEPENDS=      ${LOCALBASE}/libdata/pkgconfig/xscrnsaver.pc:${PORTSDIR}/x11/libXScrnSaver
277 xt_LIB_PC_DEPENDS=              ${LOCALBASE}/libdata/pkgconfig/xt.pc:${PORTSDIR}/x11-toolkits/libXt
278 xshmfence_LIB_PC_DEPENDS=       ${LOCALBASE}/libdata/pkgconfig/xshmfence.pc:${PORTSDIR}/x11/libxshmfence
279 xtrans_BUILD_DEPENDS=           ${LOCALBASE}/libdata/pkgconfig/xtrans.pc:${PORTSDIR}/x11/xtrans
280 xtrap_LIB_PC_DEPENDS=           ${LOCALBASE}/libdata/pkgconfig/xtrap.pc:${PORTSDIR}/x11/libXTrap
281 xtst_LIB_PC_DEPENDS=            ${LOCALBASE}/libdata/pkgconfig/xtst.pc:${PORTSDIR}/x11/libXtst
282 xv_LIB_PC_DEPENDS=              ${LOCALBASE}/libdata/pkgconfig/xv.pc:${PORTSDIR}/x11/libXv
283 xvmc_LIB_PC_DEPENDS=            ${LOCALBASE}/libdata/pkgconfig/xvmc.pc:${PORTSDIR}/x11/libXvMC
284 xxf86dga_LIB_PC_DEPENDS=        ${LOCALBASE}/libdata/pkgconfig/xxf86dga.pc:${PORTSDIR}/x11/libXxf86dga
285 xxf86misc_LIB_PC_DEPENDS=       ${LOCALBASE}/libdata/pkgconfig/xxf86misc.pc:${PORTSDIR}/x11/libXxf86misc
286 xxf86vm_LIB_PC_DEPENDS=         ${LOCALBASE}/libdata/pkgconfig/xxf86vm.pc:${PORTSDIR}/x11/libXxf86vm
287
288 .for _module in ${USE_XORG:M*\:both:C/\:.*//g}
289 . if ${XORG_MODULES:M${_module}} == ""
290 IGNORE=                         requires unknown xorg module (${_module})
291 . endif
292 RUN_DEPENDS+=                   ${${_module}_BUILD_DEPENDS}
293 .endfor
294
295 .for _module in ${USE_XORG:C/\:.*//g}
296 . if ${XORG_MODULES:M${_module}} == ""
297 IGNORE=                         requires unknown xorg module (${_module})
298 . endif
299 LIB_PC_DEPENDS+=                ${${_module}_LIB_PC_DEPENDS}
300 BUILD_DEPENDS+=                 ${${_module}_BUILD_DEPENDS}
301 .endfor
302
303 RUN_DEPENDS+=                   ${LIB_PC_DEPENDS}
304 BUILD_DEPENDS+=                 ${LIB_PC_DEPENDS}
305
306 .endif