aboutsummaryrefslogtreecommitdiffstats
path: root/Mk/Uses/display.mk
blob: 5b5c8b5335595232dd71b3b619afb3f8fb7e5303 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# $FreeBSD$
#
# Feature:  display
# Usage:    USES=display or USES=display:ARGS
# Valid ARGS:   install (default, implicit), any target
# 
# Except the target where the DISPLAY is needed
#
# MAINTAINER: x11@FreeBSD.org

.if !defined(_INCLUDE_USES_DISPLAY_MK)
_INCLUDE_USES_DISPLAY_MK=   yes

.if empty(display_ARGS)
display_ARGS=   install
.endif

.if !defined(DISPLAY)
BUILD_DEPENDS+= Xvfb:${PORTSDIR}/x11-servers/xorg-vfbserver \
    ${LOCALBASE}/lib/X11/fonts/misc/8x13O.pcf.gz:${PORTSDIR}/x11-fonts/xorg-fonts-miscbitmaps \
    ${LOCALBASE}/lib/X11/fonts/misc/fonts.alias:${PORTSDIR}/x11-fonts/font-alias \
    ${LOCALBASE}/share/X11/xkb/rules/base:${PORTSDIR}/x11/xkeyboard-config \
    xkbcomp:${PORTSDIR}/x11/xkbcomp

XVFBPORT!=  port=0; while test -S /tmp/.X11-unix/X$${port} ; do port=$$(( port + 1 )) ; done ; ${ECHO_CMD} $$port
XVFBPIDFILE=    /tmp/.xvfb-${XVFBPORT}.pid
MAKE_ENV+=  DISPLAY=":${XVFBPORT}"

.PHONY: start-display stop-display
pre-${display_ARGS}: start-display

post-${display_ARGS}: stop-display

start-display:
    daemon -p ${XVFBPIDFILE} Xvfb :${XVFBPORT}

stop-display:
    pkill -15 -F ${XVFBPIDFILE}

.endif
.endif