#-*- tab-width: 4; -*- # ex:ts=4 # # bsd.xorg.mk - Support for X.Org ports and dependencies # # Created by: Florent Thoumie # # !!! Here be dragons !!! (yeah, here as well...) # # $FreeBSD$ # .if !defined(_POSTMKINCLUDED) && !defined(Xorg_Pre_Include) Xorg_Include_MAINTAINER= x11@FreeBSD.org Xorg_Pre_Include= bsd.xorg.mk # 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 GNU_CONFIGURE= yes DIST_SUBDIR= xorg/${XORG_CAT} MASTER_SITES?= ${MASTER_SITE_XORG} MASTER_SITE_SUBDIR?= individual/${XORG_CAT} . if ${XORG_CAT} == "app" USE_PKGCONFIG= build . endif . if ${XORG_CAT} == "data" # Nothing at the moment. . endif . if ${XORG_CAT} == "driver" USE_PKGCONFIG= build USE_XORG+= xorg-server xproto randrproto xi # work around a llvm bug on i386, llvm bug #15806 # reproduced with clang 3.2 (current release) and 3.1 . if ${ARCH} == i386 CFLAGS+= -fno-optimize-sibling-calls . endif CONFIGURE_ENV+= DRIVER_MAN_SUFFIX=4x DRIVER_MAN_DIR='$$(mandir)/man4' . if ${PORTNAME:M*input*}x != x USE_XORG+= inputproto videoproto fontsproto renderproto xextproto \ dri2proto . elif ${PORTNAME:M*video*}x != x USE_XORG+= videoproto fontsproto renderproto xextproto dri2proto . else IGNORE= doesn't contain either "video" or "input" . endif . endif . if ${XORG_CAT} == "font" FONTDIR?= ${PORTNAME:C/.*-//g:S/type/Type/:S/ttf/TTF/:S/speedo/Speedo/} CONFIGURE_ARGS+= --with-fontrootdir=${PREFIX}/lib/X11/fonts CONFIGURE_ENV+= FONTROOTDIR=${PREFIX}/lib/X11/fonts 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+= ${LOCALBASE}/bin/mkfontscale:${PORTSDIR}/x11-fonts/mkfontscale INSTALLS_TTF?= no . else INSTALLS_TTF?= no . endif . if ${PORTNAME:M*font-util*}x != x USES+= pathfix NEED_MKFONTFOO= no . elif ${INSTALLS_TTF} == "yes" USE_PKGCONFIG= build BUILD_DEPENDS+= ${LOCALBASE}/libdata/pkgconfig/fontconfig.pc:${PORTSDIR}/x11-fonts/fontconfig RUN_DEPENDS+= ${LOCALBASE}/libdata/pkgconfig/fontconfig.pc:${PORTSDIR}/x11-fonts/fontconfig . else BUILD_DEPENDS+= ${LOCALBASE}/bin/bdftopcf:${PORTSDIR}/x11-fonts/bdftopcf . endif . if ${NEED_MKFONTFOO} == "yes" BUILD_DEPENDS+= ${LOCALBASE}/bin/mkfontdir:${PORTSDIR}/x11-fonts/mkfontdir \ ${LOCALBASE}/bin/mkfontscale:${PORTSDIR}/x11-fonts/mkfontscale RUN_DEPENDS+= ${LOCALBASE}/bin/mkfontdir:${PORTSDIR}/x11-fonts/mkfontdir \ ${LOCALBASE}/bin/mkfontscale:${PORTSDIR}/x11-fonts/mkfontscale . endif post-install: . if ${INSTALLS_TTF} == "yes" . for _fontdir in ${FONTDIR} @${ECHO_CMD} "@exec fc-cache -s %D/lib/X11/fonts/${_fontdir} 2>/dev/null || true" >> ${TMPPLIST} @${ECHO_CMD} "@unexec fc-cache -s %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_PKGCONFIG= build USES+= pathfix USE_LDCONFIG= yes CONFIGURE_ARGS+=--enable-malloc0returnsnull . endif . if ${XORG_CAT} == "proto" USES+= pathfix . endif . if ${XORG_CAT} == "xserver" DISTFILES?= xorg-server-${PORTVERSION}.tar.bz2 WRKSRC= ${WRKDIR}/xorg-server-${PORTVERSION} USES+= pathfix CONFIGURE_ARGS+= --with-xkb-path=${LOCALBASE}/share/X11/xkb LIB_PC_DEPENDS+= ${LOCALBASE}/libdata/pkgconfig/dri.pc:${PORTSDIR}/graphics/dri USE_XORG+= pciaccess xextproto videoproto fontsproto dri2proto . endif .endif .endif .if exists(${LOCALBASE}/bin/X) XSERVER_VER!= ${LOCALBASE}/bin/X -version 2>&1 | sed -n 's;^X\.Org X Server \([^ ]*\).*;\1;p' .endif .if defined(_POSTMKINCLUDED) && !defined(Xorg_Post_Include) Xorg_Post_Include= bsd.xorg.mk # 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 \ dri2proto \ evieproto \ fixesproto \ fontcacheproto \ fontenc \ fontsproto \ fontutil \ glproto \ ice \ inputproto \ kbproto \ libfs \ oldx \ pciaccess \ pixman \ printproto \ randrproto \ recordproto \ renderproto \ resourceproto \ scrnsaverproto \ sm \ trapproto \ videoproto \ x11 \ xau \ xaw \ xaw6 \ xaw7 \ xbitmaps \ xcb \ 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-macros \ xorg-server \ xp \ xpm \ xprintapputil \ xprintutil \ xproto \ xproxymngproto \ xrandr \ xrender \ xres \ xscrnsaver \ xt \ xtrans \ xtrap \ xtst \ xv \ xvmc \ xxf86dga \ xxf86misc \ xxf86vm bigreqsproto_BUILD_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/bigreqsproto.pc:${PORTSDIR}/x11/bigreqsproto compositeproto_BUILD_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/compositeproto.pc:${PORTSDIR}/x11/compositeproto damageproto_BUILD_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/damageproto.pc:${PORTSDIR}/x11/damageproto dmx_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/dmx.pc:${PORTSDIR}/x11/libdmx dmxproto_BUILD_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/dmxproto.pc:${PORTSDIR}/x11/dmxproto dri2proto_BUILD_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/dri2proto.pc:${PORTSDIR}/x11/dri2proto evieproto_BUILD_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/evieproto.pc:${PORTSDIR}/x11/evieext fixesproto_BUILD_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/fixesproto.pc:${PORTSDIR}/x11/fixesproto fontcacheproto_BUILD_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/fontcacheproto.pc:${PORTSDIR}/x11-fonts/fontcacheproto fontenc_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/fontenc.pc:${PORTSDIR}/x11-fonts/libfontenc fontsproto_BUILD_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/fontsproto.pc:${PORTSDIR}/x11-fonts/fontsproto fontutil_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/fontutil.pc:${PORTSDIR}/x11-fonts/font-util glproto_BUILD_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/glproto.pc:${PORTSDIR}/x11/glproto ice_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/ice.pc:${PORTSDIR}/x11/libICE inputproto_BUILD_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/inputproto.pc:${PORTSDIR}/x11/inputproto kbproto_BUILD_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/kbproto.pc:${PORTSDIR}/x11/kbproto libfs_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/libfs.pc:${PORTSDIR}/x11-fonts/libFS oldx_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/oldx.pc:${PORTSDIR}/x11/liboldX pciaccess_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/pciaccess.pc:${PORTSDIR}/devel/libpciaccess pixman_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/pixman-1.pc:${PORTSDIR}/x11/pixman printproto_BUILD_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/printproto.pc:${PORTSDIR}/x11/printproto randrproto_BUILD_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/randrproto.pc:${PORTSDIR}/x11/randrproto recordproto_BUILD_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/recordproto.pc:${PORTSDIR}/x11/recordproto renderproto_BUILD_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/renderproto.pc:${PORTSDIR}/x11/renderproto resourceproto_BUILD_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/resourceproto.pc:${PORTSDIR}/x11/resourceproto scrnsaverproto_BUILD_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/scrnsaverproto.pc:${PORTSDIR}/x11/scrnsaverproto sm_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/sm.pc:${PORTSDIR}/x11/libSM trapproto_BUILD_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/trapproto.pc:${PORTSDIR}/x11/trapproto videoproto_BUILD_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/videoproto.pc:${PORTSDIR}/x11/videoproto x11_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/x11.pc:${PORTSDIR}/x11/libX11 xau_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xau.pc:${PORTSDIR}/x11/libXau xaw_LIB_PC_DEPENDS= ${xaw7_LIB_PC_DEPENDS} xaw6_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xaw6.pc:${PORTSDIR}/x11-toolkits/libXaw xaw7_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xaw7.pc:${PORTSDIR}/x11-toolkits/libXaw xbitmaps_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xbitmaps.pc:${PORTSDIR}/x11/xbitmaps xcb_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xcb.pc:${PORTSDIR}/x11/libxcb xcmiscproto_BUILD_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xcmiscproto.pc:${PORTSDIR}/x11/xcmiscproto xcomposite_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xcomposite.pc:${PORTSDIR}/x11/libXcomposite xcursor_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xcursor.pc:${PORTSDIR}/x11/libXcursor xdamage_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xdamage.pc:${PORTSDIR}/x11/libXdamage xdmcp_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xdmcp.pc:${PORTSDIR}/x11/libXdmcp xevie_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xevie.pc:${PORTSDIR}/x11/libXevie xext_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xext.pc:${PORTSDIR}/x11/libXext xextproto_BUILD_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xextproto.pc:${PORTSDIR}/x11/xextproto xf86bigfontproto_BUILD_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xf86bigfontproto.pc:${PORTSDIR}/x11-fonts/xf86bigfontproto xf86dgaproto_BUILD_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xf86dgaproto.pc:${PORTSDIR}/x11/xf86dgaproto xf86driproto_BUILD_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xf86driproto.pc:${PORTSDIR}/x11/xf86driproto xf86miscproto_BUILD_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xf86miscproto.pc:${PORTSDIR}/x11/xf86miscproto xf86rushproto_BUILD_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xf86rushproto.pc:${PORTSDIR}/x11/xf86rushproto xf86vidmodeproto_BUILD_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xf86vidmodeproto.pc:${PORTSDIR}/x11/xf86vidmodeproto xfixes_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xfixes.pc:${PORTSDIR}/x11/libXfixes xfont_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xfont.pc:${PORTSDIR}/x11-fonts/libXfont xfontcache_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xfontcache.pc:${PORTSDIR}/x11-fonts/libXfontcache xft_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xft.pc:${PORTSDIR}/x11-fonts/libXft xi_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xi.pc:${PORTSDIR}/x11/libXi xinerama_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xinerama.pc:${PORTSDIR}/x11/libXinerama xineramaproto_BUILD_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xineramaproto.pc:${PORTSDIR}/x11/xineramaproto xkbfile_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xkbfile.pc:${PORTSDIR}/x11/libxkbfile xkbui_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xkbui.pc:${PORTSDIR}/x11/libxkbui xmu_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xmu.pc:${PORTSDIR}/x11-toolkits/libXmu xmuu_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xmuu.pc:${PORTSDIR}/x11-toolkits/libXmu xorg-macros_BUILD_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xorg-macros.pc:${PORTSDIR}/devel/xorg-macros xorg-server_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xorg-server.pc:${PORTSDIR}/x11-servers/xorg-server xp_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xp.pc:${PORTSDIR}/x11/libXp xpm_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xpm.pc:${PORTSDIR}/x11/libXpm xprintapputil_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xprintapputil.pc:${PORTSDIR}/x11/libXprintAppUtil xprintutil_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xprintutil.pc:${PORTSDIR}/x11/libXprintUtil xproto_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xproto.pc:${PORTSDIR}/x11/xproto xproxymngproto_BUILD_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xproxymngproto.pc:${PORTSDIR}/x11/xproxymanagementprotocol xrandr_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xrandr.pc:${PORTSDIR}/x11/libXrandr xrender_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xrender.pc:${PORTSDIR}/x11/libXrender xres_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xres.pc:${PORTSDIR}/x11/libXres xscrnsaver_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xscrnsaver.pc:${PORTSDIR}/x11/libXScrnSaver xt_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xt.pc:${PORTSDIR}/x11-toolkits/libXt xtrans_BUILD_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xtrans.pc:${PORTSDIR}/x11/xtrans xtrap_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xtrap.pc:${PORTSDIR}/x11/libXTrap xtst_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xtst.pc:${PORTSDIR}/x11/libXtst xv_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xv.pc:${PORTSDIR}/x11/libXv xvmc_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xvmc.pc:${PORTSDIR}/x11/libXvMC xxf86dga_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xxf86dga.pc:${PORTSDIR}/x11/libXxf86dga xxf86misc_LIB_PC_DEPENDS= ${LOCALBASE}/libdata/pkgconfig/xxf86misc.pc:${PORTSDIR}/x11/libXxf86misc xxf86vm_LIB_PC_DEPENDS= ${LOCALBASE}/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 .endif