aboutsummaryrefslogtreecommitdiff
path: root/net/unison/Makefile
blob: 05f212a2fbff37e2dfdf17a6a0e94f9a09dc1e96 (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
PORTNAME=	unison
PORTVERSION=	2.53.4
DISTVERSIONPREFIX=	v
CATEGORIES=	net

MAINTAINER=	madpilot@FreeBSD.org
COMMENT=	User-level file synchronization tool
WWW=		https://www.cis.upenn.edu/~bcpierce/unison/

LICENSE=	GPLv3+
LICENSE_FILE=	${WRKSRC}/COPYING

FLAVORS=	x11 nox11
FLAVOR?=	${FLAVORS:[1]}

nox11_PKGNAMESUFFIX=		-nox11
nox11_CONFLICTS_INSTALL=	unison

x11_BUILD_DEPENDS=	icotool:graphics/icoutils \
			ocaml-lablgtk3>0:x11-toolkits/ocaml-lablgtk3
x11_LIB_DEPENDS=	libfontconfig.so:x11-fonts/fontconfig \
			libfreetype.so:print/freetype2 \
			libharfbuzz.so:print/harfbuzz
x11_CONFLICTS_INSTALL=	unison-nox11

USES=		gmake localbase
USE_GITHUB=	yes
GH_ACCOUNT=	bcpierce00
USE_OCAML=	yes

NO_OCAML_RUNDEPENDS=	yes
MAKE_ENV=	CLIBS="${LIBS:S/^-/-ccopt -/}" \
		COFLAGS="${CFLAGS:C/ *(-[^ ]*) */ -ccopt \"\1 \"/gW}"
WRKSRC_SUBDIR=	src
PLIST_SUB=	PORTVERSION=${PORTVERSION}

OPTIONS_DEFINE=		DOCS FSMONITOR
OPTIONS_DEFAULT?=	FSMONITOR
OPTIONS_SUB=		YES

FSMONITOR_DESC=	Compile and install fsmonitor plugin

DOCS_USES=	tex
DOCS_USE=	TEX=dvipsk:build,latex:build

FSMONITOR_LIB_DEPENDS=	libinotify.so:devel/libinotify

.if ${FLAVOR} == nox11
ALL_TARGET=	tui
PKGMESSAGE=	${PKGDIR}/pkg-message.nox11
PLIST_SUB+=	X11="@comment "
.else
ALL_TARGET=	tui guimaybe
SUB_FILES=	${PORTNAME}.desktop
USE_GNOME=	atk cairo gdkpixbuf2 glib20 gtk30 pango
USES+=		gettext-runtime gnome
PLIST_SUB+=	X11=""
.endif

DOCS=		NEWS.md README.md

.include <bsd.port.options.mk>

.if ${PORT_OPTIONS:MFSMONITOR}
ALL_TARGET+=	fsmonitor
.endif

post-build:
	cd ${WRKSRC} && HOME=${WRKSRC} ./unison -selftest -ui text -batch
	${SETENV} ${MAKE_ENV} ${MAKE_CMD} -C ${WRKSRC}/../man
.if ${PORT_OPTIONS:MDOCS}
	${SETENV} ${MAKE_ENV} ${MAKE_CMD} -C ${WRKSRC}/../doc unison-manual.pdf
.endif
.if ${FLAVOR} == x11
	cd ${WRKSRC}/win32rc && ${LOCALBASE}/bin/icotool -x U.ico
.endif

do-install:
.if ${FLAVOR} == nox11
	${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${STAGEDIR}${PREFIX}/bin
.else
	${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME}-gui ${STAGEDIR}${PREFIX}/bin/${PORTNAME}
	${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${STAGEDIR}${PREFIX}/bin/${PORTNAME}-text
	${INSTALL_DATA} ${WRKDIR}/${PORTNAME}.desktop ${STAGEDIR}${DESKTOPDIR}
	${INSTALL_DATA} ${WRKSRC}/win32rc/U_4_48x48x32.png ${STAGEDIR}${PREFIX}/share/pixmaps/${PORTNAME}.png
.endif
	${INSTALL_MAN} ${WRKSRC}/../man/${PORTNAME}.1 ${STAGEDIR}${PREFIX}/share/man/man1

do-install-DOCS-on:
	@${MKDIR} ${STAGEDIR}${DOCSDIR}
	cd ${WRKSRC}/.. && ${INSTALL_DATA} ${DOCS} ${STAGEDIR}${DOCSDIR}
	cd ${WRKSRC}/../doc && ${INSTALL_DATA} unison-manual.pdf ${STAGEDIR}${DOCSDIR}

do-install-FSMONITOR-on:
	${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME}-fsmonitor ${STAGEDIR}${PREFIX}/bin

.include <bsd.port.mk>