aboutsummaryrefslogtreecommitdiff
path: root/devel/distcc/Makefile
blob: 0eec8e25aef87d91ca461419abee4cbf28473213 (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
128
129
130
131
132
133
# Created by: Frerich Raabe <frerich.raabe@gmx.de>
# $FreeBSD$
#   $MCom: ports/devel/distcc/Makefile,v 1.3 2007/10/21 02:46:13 ahze Exp $

PORTNAME=	distcc
PORTVERSION=	3.1
PORTREVISION=	6
CATEGORIES=	devel
MASTER_SITES=	GOOGLE_CODE

MAINTAINER=	ports@FreeBSD.org
COMMENT=	Distribute compilation of C(++) code acrosss machines on a network

LICENSE=	GPLv2
LICENSE_FILE=	${WRKSRC}/COPYING

LIB_DEPENDS=	libpopt.so:devel/popt

GNU_CONFIGURE=	yes
USES=		alias gmake tar:bzip2
WANT_GNOME=	yes

GROUPS=		distcc
USERS=		distcc

CCLINKDIR?=	libexec/distcc
CONFIGURE_ARGS=	--disable-Werror
CONFIGURE_ENV=	PYTHON="${NONEXISTENT}"
CPPFLAGS+=	-I${LOCALBASE}/include
LDFLAGS+=	-L${LOCALBASE}/lib

SUB_FILES=	pkg-message
SUB_LIST=	DISTCCD_PIDFILE=/var/run/distccd.pid
USE_RC_SUBR=	distccd

BIN_FILES=	distcc distccmon-text lsdistcc
DOC_FILES=	protocol-1.txt status-1.txt \
		protocol-2.txt reporting-bugs.txt
MAN_FILES=	distcc.1 distccd.1 distccmon-text.1
README_FILES=	AUTHORS INSTALL NEWS README
SBIN_FILES=	distccd

PLIST_FILES=	${BIN_FILES:S|^|bin/|}
PLIST_FILES+=	${DISTCC_COMPILERS:S|^|${CCLINKDIR}/|}
PLIST_FILES+=	${MAN_FILES:S|^|man/man1/|:S|$|.gz|}
PLIST_FILES+=	${SBIN_FILES:S|^|sbin/|}

OPTIONS_DEFINE=	AVAHI CLANGLINK DOCS IPV6 LLVMLINK
OPTIONS_RADIO=	GUI
OPTIONS_RADIO_GUI=	GNOME GTK

CLANGLINK_DESC=	Create clang compiler links if clang is installed
GUI_DESC=	Build GUI for distcc monitor
GNOME_DESC=	Monitor based on GNOME
GTK_DESC=	Monitor based on GTK
LLVMLINK_DESC=	Create llvm compiler links if llvm is installed

AVAHI_CONFIGURE_WITH=	avahi
AVAHI_LIB_DEPENDS=	libavahi-client.so:net/avahi-app
DOCS_PLIST_FILES=	${README_FILES:S|^|${DOCSDIR_REL}/|}
DOCS_PLIST_FILES+=	${DOC_FILES:S|^|${DOCSDIR_REL}/|}
GNOME_CONFIGURE_WITH=	gnome
GNOME_USE=	GNOME=gtk20,libgnome,libgnomeui,pango
GTK_CONFIGURE_WITH=	gtk
GTK_USE=	GNOME=gtk20
IPV6_CONFIGURE_ENABLE=	rfc2553

DISTCC_COMPILERS=	CC c++ cc

.include <bsd.port.options.mk>

.if ${PORT_OPTIONS:MCLANGLINK}
CLANG_COMPILERS=	-devel 31 32 33 34 35
DISTCC_COMPILERS+=	clang++ clang
DISTCC_COMPILERS+=	${CLANG_COMPILERS:S|^|clang++|}
DISTCC_COMPILERS+=	${CLANG_COMPILERS:S|^|clang|}
.endif
GNU_COMPILERS=		34 42 43 44 45 46 47 48 49 5
DISTCC_COMPILERS+=	gcc g++
DISTCC_COMPILERS+=	${GNU_COMPILERS:S|^|g++|}
DISTCC_COMPILERS+=	${GNU_COMPILERS:S|^|gcc|}
.if ${ARCH} == "i386"
DISTCC_COMPILERS+=	icc icpc
.endif
.if ${PORT_OPTIONS:MLLVMLINK}
DISTCC_COMPILERS+=	llvm-c++ llvm-g++ llvm-gcc
.endif
DISTCC_COMPILERS+=	${EXTRA_COMPILERS}

.if ${PORT_OPTIONS:MGNOME} || ${PORT_OPTIONS:MGTK}
.if ${PORT_OPTIONS:MGNOME}
PKGNAMESUFFIX=	-gnome
.else
PKGNAMESUFFIX=	-gtk
.endif
BIN_FILES+=	distccmon-gnome
PLIST_FILES+=	${DESKTOPDIR}/distccmon-gnome.desktop
PLIST_FILES+=	share/pixmaps/distccmon-gnome-icon.png
.endif

.if ${PORT_OPTIONS:MGNOME} || ${PORT_OPTIONS:MGTK}
post-patch:
	${REINPLACE_CMD} -e 's|PKGDATADIR "|"${PREFIX}/share/pixmaps|' \
	    ${WRKSRC}/src/mon-gnome.c
.endif

do-install:
	cd ${WRKSRC} && ${INSTALL_PROGRAM} ${BIN_FILES} \
	    ${STAGEDIR}${PREFIX}/bin
	cd ${WRKSRC} && ${INSTALL_PROGRAM} ${SBIN_FILES} \
	    ${STAGEDIR}${PREFIX}/sbin
	${MKDIR} ${STAGEDIR}${PREFIX}/${CCLINKDIR}
.for link in ${DISTCC_COMPILERS}
	${LN} -sf ${PREFIX}/bin/distcc \
	    ${STAGEDIR}${PREFIX}/${CCLINKDIR}/${link}
.endfor
.if ${PORT_OPTIONS:MGNOME} || ${PORT_OPTIONS:MGTK}
	cd ${WRKSRC}/gnome && ${INSTALL_DATA} distccmon-gnome.desktop \
	    ${STAGEDIR}${DESKTOPDIR}
	cd ${WRKSRC}/gnome && ${INSTALL_DATA} distccmon-gnome-icon.png \
	    ${STAGEDIR}${PREFIX}/share/pixmaps
.endif
.if ${PORT_OPTIONS:MDOCS}
	${MKDIR} ${STAGEDIR}${DOCSDIR}
	cd ${WRKSRC} && ${INSTALL_DATA} ${README_FILES} \
	    ${STAGEDIR}${DOCSDIR}
	cd ${WRKSRC}/doc && ${INSTALL_DATA} ${DOC_FILES} \
	    ${STAGEDIR}${DOCSDIR}
.endif
	cd ${WRKSRC}/man && ${INSTALL_MAN} ${MAN_FILES} \
	    ${STAGEDIR}${MANPREFIX}/man/man1

.include <bsd.port.mk>