diff --git a/Mk/Uses/display.mk b/Mk/Uses/display.mk --- a/Mk/Uses/display.mk +++ b/Mk/Uses/display.mk @@ -14,24 +14,43 @@ . endif . if !defined(DISPLAY) -BUILD_DEPENDS+= Xvfb:x11-servers/xorg-server@xvfb \ + +. if ${display_ARGS:Mfetch} +DISPLAY_DEPENDS= FETCH_DEPENDS +. elif ${display_ARGS:Mextract} +DISPLAY_DEPENDS= EXTRACT_DEPENDS +. elif ${display_ARGS:Mpatch} +DISPLAY_DEPENDS= PATCH_DEPENDS +. elif ${display_ARGS:Mconfigure} +DISPLAY_DEPENDS= BUILD_DEPENDS +CONFIGURE_ENV+= DISPLAY=":${XVFBPORT}" +. elif ${display_ARGS:Mtest} +DISPLAY_DEPENDS= TEST_DEPENDS +TEST_ENV+= DISPLAY=":${XVFBPORT}" +. else +DISPLAY_DEPENDS= BUILD_DEPENDS +MAKE_ENV+= DISPLAY=":${XVFBPORT}" +. endif + +${DISPLAY_DEPENDS}+= \ + Xvfb:x11-servers/xorg-server@xvfb \ ${LOCALBASE}/share/fonts/misc/8x13O.pcf.gz:x11-fonts/xorg-fonts-miscbitmaps \ ${LOCALBASE}/share/fonts/misc/fonts.alias:x11-fonts/font-alias \ ${LOCALBASE}/share/X11/xkb/rules/base:x11/xkeyboard-config \ xkbcomp:x11/xkbcomp -XVFBPORT!= port=0; while test -S /tmp/.X11-unix/X$${port} ; do port=$$(( port + 1 )) ; done ; ${ECHO_CMD} $$port -PREV_XVFBPORT!= ${ECHO_CMD} $$(( ${XVFBPORT} - 1)) -XVFBPIDFILE= /tmp/.xvfb-${XVFBPORT}.pid -PREV_XVFBPIDFILE= /tmp/.xvfb-${PREV_XVFBPORT}.pid -MAKE_ENV+= DISPLAY=":${XVFBPORT}" +XVFBPORT?= 0 +XVFBPIDFILE= /tmp/.xvfb-${XVFBPORT}-display-mk.pid -_USES_${display_ARGS}+= 290:start-display 860:stop-display +. for t in ${display_ARGS} +_USES_${t}+= 290:start-display 860:stop-display +. endfor start-display: + pkill -15 -F ${XVFBPIDFILE} || ${TRUE} daemon -p ${XVFBPIDFILE} Xvfb :${XVFBPORT} stop-display: - pkill -15 -F ${PREV_XVFBPIDFILE} + pkill -15 -F ${XVFBPIDFILE} . endif .endif