aboutsummaryrefslogtreecommitdiff
path: root/Mk/bsd.xorg.mk
diff options
context:
space:
mode:
Diffstat (limited to 'Mk/bsd.xorg.mk')
-rw-r--r--Mk/bsd.xorg.mk262
1 files changed, 262 insertions, 0 deletions
diff --git a/Mk/bsd.xorg.mk b/Mk/bsd.xorg.mk
new file mode 100644
index 000000000000..59ffc2bdb2db
--- /dev/null
+++ b/Mk/bsd.xorg.mk
@@ -0,0 +1,262 @@
+#-*- mode: Fundamental; tab-width: 4; -*-
+# ex:ts=4
+#
+# bsd.xorg.mk - Support for USE_XORG variable. (XXX - this comment sucks)
+#
+# Created by: Florent Thoumie <flz@FreeBSD.org>
+#
+# Complete list of dependencies for xorg ports can be found at :
+# http://people.freebsd.org/~flz/local/xorg/xorg-dep-list
+#
+# RSS feed for X.org individual releases can be found at :
+# http://feed.xbsd.org/xorg/
+#
+# !!! Here be dragons !!! (yeah, here as well...)
+#
+# $FreeBSD$
+#
+
+XORG_Include_MAINTAINER= x11@FreeBSD.org
+
+# Some notes:
+#
+# app - requires pkgconfig, don't install shared libraries (I guess)
+# data - nothing I could factorize
+# doc - no particular notes
+# driver - input depends on inputproto/randrproto at least
+# video depends on randrproto/renderproto at least
+# font - don't install .pc file
+# lib - various dependencies, install .pc file
+# proto - install .pc file, no dependencies, needed only at build time for most of them
+# xserver - there's only one atm, I guess everything can fit into the port itself
+
+.if defined(XORG_CAT)
+# Default variables, common to all new modular xorg ports.
+.if !defined(USE_TGZ)
+USE_BZIP2= yes
+.endif
+PREFIX?= ${X11BASE}
+GNU_CONFIGURE= yes
+DIST_SUBDIR= xorg/${XORG_CAT}
+
+MASTER_SITES?= ${MASTER_SITE_XORG}
+MASTER_SITE_SUBDIR?= individual/${XORG_CAT}
+
+CONFIGURE_ARGS+= --mandir="${PREFIX}/man/"
+
+. if ${XORG_CAT} == "app"
+USE_GNOME+= pkgconfig
+. endif
+
+. if ${XORG_CAT} == "data"
+# Nothing at the moment.
+. endif
+
+. if ${XORG_CAT} == "driver"
+USE_GNOME+= pkgconfig
+USE_XORG+= xorg-server xproto randrproto
+CONFIGURE_ENV+= DRIVER_MAN_SUFFIX=4x DRIVER_MAN_DIR='$$(mandir)/man4'
+. if ${PORTNAME:M*input*}x != x
+USE_XORG+= inputproto
+. elif ${PORTNAME:M*video*}x != x
+USE_XORG+= fontsproto renderproto
+. else
+IGNORE= doesn't contain either "driver" or "input"
+. endif
+. if ${PORTNAME:M*-sun*}x != x && ${ARCH} != sparc64
+IGNORE= is for sparc64 only
+. endif
+. endif
+
+. if ${XORG_CAT} == "font"
+FONTDIR?= ${PORTNAME:C/.*-//g:S/type/Type/:S/ttf/TTF/:S/speedo/Speedo/}
+NEED_MKFONTFOO= yes
+
+. if ${PORTNAME:M*type1*}x != x
+INSTALLS_TTF?= yes
+. elif ${PORTNAME:M*ttf*}x != x
+INSTALLS_TTF?= yes
+. elif ${PORTNAME:M*encodings*}x != x
+# This is terrific, we want mkfontscale at build time, but don't use it like for the other ports.
+NEED_MKFONTFOO= no
+BUILD_DEPENDS+= ${X11BASE}/bin/mkfontscale:${PORTSDIR}/x11-fonts/mkfontscale
+INSTALLS_TTF?= no
+. else
+INSTALLS_TTF?= no
+. endif
+
+. if ${PORTNAME:M*font-util*}x != x
+USE_GNOME+= gnomehack
+NEED_MKFONTFOO= no
+. elif ${INSTALLS_TTF} == "yes"
+USE_GNOME+= pkgconfig
+BUILD_DEPENDS+= ${X11BASE}/libdata/pkgconfig/fontconfig.pc:${PORTSDIR}/x11-fonts/fontconfig
+RUN_DEPENDS+= ${X11BASE}/libdata/pkgconfig/fontconfig.pc:${PORTSDIR}/x11-fonts/fontconfig
+. else
+BUILD_DEPENDS+= ${X11BASE}/bin/bdftopcf:${PORTSDIR}/x11-fonts/bdftopcf
+. endif
+
+. if ${NEED_MKFONTFOO} == "yes"
+BUILD_DEPENDS+= ${X11BASE}/bin/mkfontdir:${PORTSDIR}/x11-fonts/mkfontdir \
+ ${X11BASE}/bin/mkfontscale:${PORTSDIR}/x11-fonts/mkfontscale
+RUN_DEPENDS+= ${X11BASE}/bin/mkfontdir:${PORTSDIR}/x11-fonts/mkfontdir \
+ ${X11BASE}/bin/mkfontscale:${PORTSDIR}/x11-fonts/mkfontscale
+. endif
+
+post-install:
+. if ${INSTALLS_TTF} == "yes"
+. for _fontdir in ${FONTDIR}
+ @${ECHO_CMD} "@exec fc-cache -v %D/lib/X11/fonts/${_fontdir} 2>/dev/null || true" >> ${TMPPLIST}
+ @${ECHO_CMD} "@unexec fc-cache -v %D/lib/X11/fonts/${_fontdir} 2>/dev/null || true" >> ${TMPPLIST}
+ @${ECHO_CMD} "@unexec rmdir %D/lib/X11/fonts/${_fontdir} 2>/dev/null || true" >> ${TMPPLIST}
+. endfor
+. endif
+. for _fontdir in ${FONTDIR}
+. if ${NEED_MKFONTFOO} == "yes"
+ @${ECHO_CMD} "@exec mkfontscale %D/lib/X11/fonts/${_fontdir} 2>/dev/null || true" >> ${TMPPLIST}
+ @${ECHO_CMD} "@unexec mkfontscale %D/lib/X11/fonts/${_fontdir} 2>/dev/null || true" >> ${TMPPLIST}
+ @${ECHO_CMD} "@unexec if [ -e %D/lib/X11/fonts/${_fontdir}/fonts.scale -a \"\`stat -f '%%z' %D/lib/X11/fonts/${_fontdir}/fonts.scale 2>/dev/null\`\" = '2' ]; then rm %D/lib/X11/fonts/${_fontdir}/fonts.scale; fi" >> ${TMPPLIST}
+ @${ECHO_CMD} "@exec mkfontdir %D/lib/X11/fonts/${_fontdir} 2>/dev/null || true" >> ${TMPPLIST}
+ @${ECHO_CMD} "@unexec mkfontdir %D/lib/X11/fonts/${_fontdir} 2>/dev/null || true" >> ${TMPPLIST}
+ @${ECHO_CMD} "@unexec if [ -e %D/lib/X11/fonts/${_fontdir}/fonts.dir -a \"\`stat -f '%%z' %D/lib/X11/fonts/${_fontdir}/fonts.dir 2>/dev/null\`\" = '2' ]; then rm %D/lib/X11/fonts/${_fontdir}/fonts.dir; fi" >> ${TMPPLIST}
+. endif
+ @${ECHO_CMD} "@unexec rmdir %D/lib/X11/fonts/${_fontdir} 2>/dev/null || true" >> ${TMPPLIST}
+. endfor
+. endif
+
+. if ${XORG_CAT} == "lib"
+USE_GNOME+= gnomehack pkgconfig
+USE_LDCONFIG= yes
+CONFIGURE_ARGS+=--enable-malloc0returnsnull
+. endif
+
+. if ${XORG_CAT} == "proto"
+USE_GNOME+= gnomehack
+. endif
+
+. if ${XORG_CAT} == "xserver"
+DISTFILES?= xorg-server-${PORTVERSION}.tar.bz2
+WRKSRC= ${WRKDIR}/xorg-server-${PORTVERSION}
+USE_GNOME+= gnomehack
+CONFIGURE_ARGS+= --with-xkb-path=${X11BASE}/share/X11/xkb
+. endif
+
+.endif
+
+# Might not be useful, need to check this later.
+.if defined(USE_XORG)
+USE_GNOME+= pkgconfig
+.endif
+
+# Register all xorg .pc files here.
+# foo_LIB_PC_DEPENDS means it should go to BUILD_DEPENDS *and* RUN_DEPENDS.
+
+XORG_MODULES= bigreqsproto compositeproto damageproto dmx dmxproto evieproto fixesproto fontcacheproto fontenc fontsproto fontutil glproto ice inputproto kbproto libfs oldx printproto randrproto recordproto renderproto resourceproto scrnsaverproto sm trapproto videoproto x11 xau xaw xaw6 xaw7 xaw8 xbitmaps xcmiscproto xcomposite xcursor xdamage xdmcp xevie xext xextproto xf86bigfontproto xf86dgaproto xf86driproto xf86miscproto xf86rushproto xf86vidmodeproto xfixes xfont xfontcache xft xi xinerama xineramaproto xkbfile xkbui xmu xmuu xorg-server xp xpm xprintapputil xprintutil xproto xproxymngproto xrandr xrender xres xscrnsaver xt xtrans xtrap xtst xv xvmc xxf86dga xxf86misc xxf86vm
+
+bigreqsproto_BUILD_DEPENDS= ${X11BASE}/libdata/pkgconfig/bigreqsproto.pc:${PORTSDIR}/x11/bigreqsproto
+compositeproto_BUILD_DEPENDS= ${X11BASE}/libdata/pkgconfig/compositeproto.pc:${PORTSDIR}/x11/compositeproto
+damageproto_BUILD_DEPENDS= ${X11BASE}/libdata/pkgconfig/damageproto.pc:${PORTSDIR}/x11/damageproto
+dmx_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/dmx.pc:${PORTSDIR}/x11/libdmx
+dmxproto_BUILD_DEPENDS= ${X11BASE}/libdata/pkgconfig/dmxproto.pc:${PORTSDIR}/x11/dmxproto
+evieproto_BUILD_DEPENDS= ${X11BASE}/libdata/pkgconfig/evieproto.pc:${PORTSDIR}/x11/evieext
+fixesproto_BUILD_DEPENDS= ${X11BASE}/libdata/pkgconfig/fixesproto.pc:${PORTSDIR}/x11/fixesproto
+fontcacheproto_BUILD_DEPENDS= ${X11BASE}/libdata/pkgconfig/fontcacheproto.pc:${PORTSDIR}/x11-fonts/fontcacheproto
+fontenc_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/fontenc.pc:${PORTSDIR}/x11-fonts/libfontenc
+fontsproto_BUILD_DEPENDS= ${X11BASE}/libdata/pkgconfig/fontsproto.pc:${PORTSDIR}/x11-fonts/fontsproto
+fontutil_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/fontutil.pc:${PORTSDIR}/x11-fonts/font-util
+glproto_BUILD_DEPENDS= ${X11BASE}/libdata/pkgconfig/glproto.pc:${PORTSDIR}/x11/glproto
+ice_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/ice.pc:${PORTSDIR}/x11/libICE
+inputproto_BUILD_DEPENDS= ${X11BASE}/libdata/pkgconfig/inputproto.pc:${PORTSDIR}/x11/inputproto
+kbproto_BUILD_DEPENDS= ${X11BASE}/libdata/pkgconfig/kbproto.pc:${PORTSDIR}/x11/kbproto
+libfs_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/libfs.pc:${PORTSDIR}/x11-fonts/libFS
+oldx_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/oldx.pc:${PORTSDIR}/x11/liboldX
+printproto_BUILD_DEPENDS= ${X11BASE}/libdata/pkgconfig/printproto.pc:${PORTSDIR}/x11/printproto
+randrproto_BUILD_DEPENDS= ${X11BASE}/libdata/pkgconfig/randrproto.pc:${PORTSDIR}/x11/randrproto
+recordproto_BUILD_DEPENDS= ${X11BASE}/libdata/pkgconfig/recordproto.pc:${PORTSDIR}/x11/recordproto
+renderproto_BUILD_DEPENDS= ${X11BASE}/libdata/pkgconfig/renderproto.pc:${PORTSDIR}/x11/renderproto
+resourceproto_BUILD_DEPENDS= ${X11BASE}/libdata/pkgconfig/resourceproto.pc:${PORTSDIR}/x11/resourceproto
+scrnsaverproto_BUILD_DEPENDS= ${X11BASE}/libdata/pkgconfig/scrnsaverproto.pc:${PORTSDIR}/x11/scrnsaverproto
+sm_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/sm.pc:${PORTSDIR}/x11/libSM
+trapproto_BUILD_DEPENDS= ${X11BASE}/libdata/pkgconfig/trapproto.pc:${PORTSDIR}/x11/trapproto
+videoproto_BUILD_DEPENDS= ${X11BASE}/libdata/pkgconfig/videoproto.pc:${PORTSDIR}/x11/videoproto
+x11_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/x11.pc:${PORTSDIR}/x11/libX11
+xau_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/xau.pc:${PORTSDIR}/x11/libXau
+xaw_LIB_PC_DEPENDS= ${xaw${XAWVER}_LIB_PC_DEPENDS}
+xaw6_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/xaw6.pc:${PORTSDIR}/x11-toolkits/libXaw
+xaw7_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/xaw7.pc:${PORTSDIR}/x11-toolkits/libXaw
+xaw8_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/xaw8.pc:${PORTSDIR}/x11-toolkits/libXaw
+xbitmaps_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/xbitmaps.pc:${PORTSDIR}/x11/xbitmaps
+xcmiscproto_BUILD_DEPENDS= ${X11BASE}/libdata/pkgconfig/xcmiscproto.pc:${PORTSDIR}/x11/xcmiscproto
+xcomposite_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/xcomposite.pc:${PORTSDIR}/x11/libXcomposite
+xcursor_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/xcursor.pc:${PORTSDIR}/x11/libXcursor
+xdamage_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/xdamage.pc:${PORTSDIR}/x11/libXdamage
+xdmcp_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/xdmcp.pc:${PORTSDIR}/x11/libXdmcp
+xevie_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/xevie.pc:${PORTSDIR}/x11/libXevie
+xext_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/xext.pc:${PORTSDIR}/x11/libXext
+xextproto_BUILD_DEPENDS= ${X11BASE}/libdata/pkgconfig/xextproto.pc:${PORTSDIR}/x11/xextproto
+xf86bigfontproto_BUILD_DEPENDS= ${X11BASE}/libdata/pkgconfig/xf86bigfontproto.pc:${PORTSDIR}/x11-fonts/xf86bigfontproto
+xf86dgaproto_BUILD_DEPENDS= ${X11BASE}/libdata/pkgconfig/xf86dgaproto.pc:${PORTSDIR}/x11/xf86dgaproto
+xf86driproto_BUILD_DEPENDS= ${X11BASE}/libdata/pkgconfig/xf86driproto.pc:${PORTSDIR}/x11/xf86driproto
+xf86miscproto_BUILD_DEPENDS= ${X11BASE}/libdata/pkgconfig/xf86miscproto.pc:${PORTSDIR}/x11/xf86miscproto
+xf86rushproto_BUILD_DEPENDS= ${X11BASE}/libdata/pkgconfig/xf86rushproto.pc:${PORTSDIR}/x11/xf86rushproto
+xf86vidmodeproto_BUILD_DEPENDS= ${X11BASE}/libdata/pkgconfig/xf86vidmodeproto.pc:${PORTSDIR}/x11/xf86vidmodeproto
+xfixes_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/xfixes.pc:${PORTSDIR}/x11/libXfixes
+xfont_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/xfont.pc:${PORTSDIR}/x11-fonts/libXfont
+xfontcache_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/xfontcache.pc:${PORTSDIR}/x11-fonts/libXfontcache
+xft_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/xft.pc:${PORTSDIR}/x11-fonts/libXft
+xi_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/xi.pc:${PORTSDIR}/x11/libXi
+xinerama_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/xinerama.pc:${PORTSDIR}/x11/libXinerama
+xineramaproto_BUILD_DEPENDS= ${X11BASE}/libdata/pkgconfig/xineramaproto.pc:${PORTSDIR}/x11/xineramaproto
+xkbfile_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/xkbfile.pc:${PORTSDIR}/x11/libxkbfile
+xkbui_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/xkbui.pc:${PORTSDIR}/x11/libxkbui
+xmu_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/xmu.pc:${PORTSDIR}/x11-toolkits/libXmu
+xmuu_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/xmuu.pc:${PORTSDIR}/x11-toolkits/libXmu
+xorg-server_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/xorg-server.pc:${PORTSDIR}/x11-servers/xorg-server
+xp_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/xp.pc:${PORTSDIR}/x11/libXp
+xpm_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/xpm.pc:${PORTSDIR}/x11/libXpm
+xprintapputil_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/xprintapputil.pc:${PORTSDIR}/x11/libXprintAppUtil
+xprintutil_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/xprintutil.pc:${PORTSDIR}/x11/libXprintUtil
+xproto_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/xproto.pc:${PORTSDIR}/x11/xproto
+xproxymngproto_BUILD_DEPENDS= ${X11BASE}/libdata/pkgconfig/xproxymngproto.pc:${PORTSDIR}/x11/xproxymanagementprotocol
+xrandr_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/xrandr.pc:${PORTSDIR}/x11/libXrandr
+xrender_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/xrender.pc:${PORTSDIR}/x11/libXrender
+xres_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/xres.pc:${PORTSDIR}/x11/libXres
+xscrnsaver_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/xscrnsaver.pc:${PORTSDIR}/x11/libXScrnSaver
+xt_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/xt.pc:${PORTSDIR}/x11-toolkits/libXt
+xtrans_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/xtrans.pc:${PORTSDIR}/x11/xtrans
+xtrap_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/xtrap.pc:${PORTSDIR}/x11/libXTrap
+xtst_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/xtst.pc:${PORTSDIR}/x11/libXtst
+xv_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/xv.pc:${PORTSDIR}/x11/libXv
+xvmc_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/xvmc.pc:${PORTSDIR}/x11/libXvMC
+xxf86dga_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/xxf86dga.pc:${PORTSDIR}/x11/libXxf86dga
+xxf86misc_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/xxf86misc.pc:${PORTSDIR}/x11/libXxf86misc
+xxf86vm_LIB_PC_DEPENDS= ${X11BASE}/libdata/pkgconfig/xxf86vm.pc:${PORTSDIR}/x11/libXxf86vm
+
+.for _module in ${USE_XORG:M*\:both:C/\:.*//g}
+. if ${XORG_MODULES:M${_module}} == ""
+IGNORE= requires unknown xorg module (${_module})
+. endif
+RUN_DEPENDS+= ${${_module}_BUILD_DEPENDS}
+.endfor
+
+.for _module in ${USE_XORG:C/\:.*//g}
+. if ${XORG_MODULES:M${_module}} == ""
+IGNORE= requires unknown xorg module (${_module})
+. endif
+LIB_PC_DEPENDS+= ${${_module}_LIB_PC_DEPENDS}
+BUILD_DEPENDS+= ${${_module}_BUILD_DEPENDS}
+.endfor
+
+RUN_DEPENDS+= ${LIB_PC_DEPENDS}
+BUILD_DEPENDS+= ${LIB_PC_DEPENDS}
+
+.if !target(check-latest)
+check-latest:
+ @AVAIL_VER=`fetch -qo - http://xorg.freedesktop.org/releases/individual/${XORG_CAT}/ | sed -ne 's/.*${PORTNAME}-\(.*\).tar.bz2\".*/\1/p'` && \
+ ${ECHO_CMD} "Available versions for ${PORTNAME} are: $${AVAIL_VER}." && \
+ for ver in $${AVAIL_VER}; do \
+ if [ `pkg_version -t $$ver ${PORTVERSION}` = ">" ]; then \
+ ${ECHO_CMD} "${PORTNAME} $$ver is newer than current version."; \
+ fi; \
+ done
+.endif