aboutsummaryrefslogtreecommitdiffstats
path: root/net/vnc/Makefile
blob: 808e570f7bbff7031b5d43b4197914ba8feb4362 (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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
# New ports collection makefile for:    vnc
# Date created:     24 February 1998
# Whom:         msmith
#
# $FreeBSD$
#

PORTNAME=   vnc
PORTVERSION=    4.1.2
CATEGORIES= net ipv6
MASTER_SITES=   http://www.realvnc.com/:vnc
DISTNAME=   vnc-4_1_2-unixsrc
DISTFILES=  ${DISTNAME}${EXTRACT_SUFX}:vnc
DIST_SUBDIR=    xc

MAINTAINER= james@now.ie
COMMENT=    Display X and Win32 desktops on remote X/Win32/Java displays

GNU_CONFIGURE=  yes
# The vnc supplied zlib seg. faults if compiled with -O
CONFIGURE_ARGS= --with-installed-zlib
USE_GCC=    3.4
USE_XLIB=   yes
USE_XPM=    yes

WRKSRC=     ${WRKDIR}/${DISTNAME}/unix
PLIST=      ${WRKDIR}/pkg-plist
CONFLICTS=  tightvnc-[0-9]*

OPTIONS=    SERVER "Install VNC server components" on

MAN1=       vncviewer.1 \
        vncpasswd.1 \
        vncconfig.1 \
        x0vncserver.1

.include <bsd.port.pre.mk>

.if !defined(WITHOUT_SERVER)
# This is a placeholder MASTER_SITES entry -- see the pre-fetch target.
MASTER_SITES+=  ${MASTER_SITE_XFREE:S/$/:x/}
MASTER_SITE_SUBDIR+=    4.3.0/:x
DISTFILES+= X430src-1.tgz:x \
        X430src-2.tgz:x \
        X430src-3.tgz:x

RUN_DEPENDS+=   xauth:${X_CLIENTS_PORT} \
        ${X11BASE}/lib/X11/fonts/misc/6x13-ISO8859-1.pcf.gz:${X_FONTS_MISC_PORT}

USE_PERL5=  yes

EXTRA_PATCHES+= ${WRKSRC}/xc.patch \
        ${PATCHDIR}/vnc.def-patch \
        ${PATCHDIR}/FreeBSD.cf-patch \
        ${PATCHDIR}/extra-patch-fix_Xvnc_no_valid_address

MAN1+=      Xvnc.1 \
        vncserver.1

PLIST_SUB+= SERVER=""
.else
PLIST_SUB+= SERVER="@comment "
.endif

# No direct URL for VNC -- have to pseudo-submit their webform.
pre-fetch:
    @${MKDIR} ${DISTDIR}/${DIST_SUBDIR} && cd ${DISTDIR}/${DIST_SUBDIR} && \
    ${FETCH_CMD} -o ${DISTNAME}.tar.gz 'http://www.realvnc.com/cgi-bin/download.cgi?product=free4/src/unix&acceptLicense=1&haveDetails=1&filetype=tar_gz'

post-extract:
.if !defined(WITHOUT_SERVER)
    @cd ${WRKSRC} && ${TAR} -cf - -C ${WRKDIR} xc | ${TAR} -xf - && \
    ${RM} -rf ${WRKDIR}/xc
.endif

post-patch:
.if !defined(WITHOUT_SERVER)
    @${REINPLACE_CMD} -e 's|%%X11BASE%%|${X11BASE}|g' \
        ${WRKSRC}/xc/config/cf/vnc.def
    @${REINPLACE_CMD} -e 's|%%CC%%|${CC}|g' -e 's|%%CXX%%|${CXX}|g' \
        ${WRKSRC}/xc/config/cf/FreeBSD.cf
.endif

post-build:
.if defined(WITHOUT_SERVER)
    @${ECHO_MSG} "Skipping build of VNC server."
.else
    cd ${WRKSRC}/xc && make CC=${CC} CXX=${CXX} World
.endif

pre-install:
    @${CP} ${PKGDIR}/pkg-plist ${PLIST}
.if !defined(WITHOUT_SERVER)
    @if [ -f ${WRKSRC}/xc/programs/Xserver/vnc/module/vnc.so ]; then \
        ${ECHO_CMD} @cwd ${X11BASE} ; \
        ${ECHO_CMD} lib/modules/extensions/vnc.so ; \
        ${ECHO_CMD} "@dirrmtry lib/modules/extensions" ; \
        ${ECHO_CMD} "@dirrmtry lib/modules" ; \
        ${ECHO_CMD} "@dirrmtry lib" ; \
    fi >> ${PLIST}
.endif

do-install:
.for f in vncviewer vncpasswd vncconfig x0vncserver
    ${INSTALL_PROGRAM} ${WRKSRC}/${f}/${f} ${PREFIX}/bin
    ${INSTALL_MAN} ${WRKSRC}/${f}/${f}.man ${PREFIX}/man/man1/${f}.1
.endfor
.if !defined(WITHOUT_SERVER)
    @${REINPLACE_CMD} -e \
        's|/usr/local/vnc/classes|${DATADIR}/classes|g' \
        ${WRKSRC}/vncserver
    ${INSTALL_PROGRAM} ${WRKSRC}/xc/programs/Xserver/Xvnc ${PREFIX}/bin
    ${INSTALL_SCRIPT} ${WRKSRC}/vncserver ${PREFIX}/bin
    @if [ -f ${WRKSRC}/xc/programs/Xserver/vnc/module/vnc.so ]; then \
        ${MKDIR} ${X11BASE}/lib/modules/extensions ; \
        ${INSTALL_PROGRAM} \
            ${WRKSRC}/xc/programs/Xserver/vnc/module/vnc.so \
            ${X11BASE}/lib/modules/extensions ; \
    fi
    ${INSTALL_MAN} ${WRKSRC}/xc/programs/Xserver/Xvnc.man \
        ${PREFIX}/man/man1/Xvnc.1
    ${INSTALL_MAN} ${WRKSRC}/vncserver.man ${PREFIX}/man/man1/vncserver.1
    ${MKDIR} ${DATADIR}/classes
    ${INSTALL_DATA} ${WRKSRC}/../common/javabin/* ${DATADIR}/classes
.endif

.include <bsd.port.post.mk>