summaryrefslogtreecommitdiff
path: root/sysutils/fam/Makefile
blob: 80dea78a651d2994cf54a9e2c9880f67d665187f (plain)
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
# $NetBSD: Makefile,v 1.30 2006/02/05 23:10:49 joerg Exp $
#

DISTNAME=		fam-2.7.0
PKGREVISION=		7
CATEGORIES=		sysutils devel
MASTER_SITES=		ftp://oss.sgi.com/projects/fam/download/stable/	\
			ftp://ftp.tuwien.ac.at/opsys/linux/gentoo/distfiles/ \
			http://gd.tuwien.ac.at/opsys/linux/gentoo/distfiles/

CONFLICTS+=		gamin-[0-9]*

MAINTAINER=		tech-pkg@NetBSD.org
HOMEPAGE=		http://oss.sgi.com/projects/fam/
COMMENT=		File Alteration Monitor

PKG_INSTALLATION_TYPES=	overwrite pkgviews

# fam is bundled with IRIX
NOT_FOR_PLATFORM=	IRIX-*-*

USE_TOOLS+=		gmake
USE_LIBTOOL=		YES
GNU_CONFIGURE=		YES
USE_LANGUAGES=		c c++
CONFIGURE_ARGS+=	--sysconfdir=${PKG_SYSCONFDIR:Q}

EGDIR=			${PREFIX}/share/examples/fam
CONF_FILES=		${EGDIR}/fam.conf ${PKG_SYSCONFDIR}/fam.conf

RCD_SCRIPTS=		famd

SUBST_CLASSES+=		paths
SUBST_MESSAGE.paths=	"Fixing hardcoded paths."
SUBST_STAGE.paths=	pre-configure
SUBST_FILES.paths=	man/famd.conf.5 man/famd.8
SUBST_SED.paths=	-e 's,/usr/local/etc/,${PKG_SYSCONFDIR}/,g'

PKG_OPTIONS_VAR=	PKG_OPTIONS.fam
PKG_SUPPORTED_OPTIONS=	kqueue

.include "../../mk/bsd.options.mk"

.if !empty(PKG_OPTIONS:Mkqueue) && \
    (${OPSYS} == "FreeBSD" || ${OPSYS} == "NetBSD" || ${OPSYS} == "OpenBSD")
CPPFLAGS+=		-DHAVE_KQUEUE

SUBST_CLASSES+=		kqueue
SUBST_MESSAGE.kqueue=	"Enabling kqueue monitoring."
SUBST_STAGE.kqueue=	pre-configure
SUBST_FILES.kqueue=	src/Makefile.in
SUBST_SED.kqueue=	-e 's,@MONITOR_FUNCS@,IMonKQueue,g'
SUBST_SED.kqueue+=	-e 's,@LIBS@,@LIBS@ -lpthread,g'

MESSAGE_SRC=		${.CURDIR}/MESSAGE ${.CURDIR}/MESSAGE.kqueue

.include "../../mk/pthread.buildlink3.mk"
.endif

CPPFLAGS.Darwin+=	-DNDEBUG
LDFLAGS.SunOS+=		-lsocket -lnsl

.if ${OPSYS} == "SunOS"
SUBST_CLASSES+=		sunfix dirent

SUBST_MESSAGE.sunfix=	"Fixing ${OPSYS} namespace collision."
SUBST_STAGE.sunfix=	pre-configure
SUBST_FILES.sunfix+=	lib/Client.c++
SUBST_FILES.sunfix+=	src/ClientConnection.c++ src/ClientConnection.h
SUBST_FILES.sunfix+=	src/LocalClient.c++ src/LocalClient.h
SUBST_FILES.sunfix+=	src/Listener.c++
SUBST_FILES.sunfix+=	src/TCP_Client.h
SUBST_SED.sunfix=	-e 's/sun\([^_]\)/sa_un\1/g'

SUBST_MESSAGE.dirent=	"Fixing old sys/dir.h usage."
SUBST_STAGE.dirent=	pre-configure
SUBST_FILES.dirent+=	src/Directory.c++
SUBST_FILES.dirent+=	src/DirectoryScanner.c++ src/DirectoryScanner.h
SUBST_SED.dirent=	-e 's,sys/dir.h,dirent.h,g' -e 's/struct direct/struct dirent/g'

.include "../../mk/compiler.mk"

.if !empty(PKGSRC_COMPILER:Msunpro)
BUILDLINK_TRANSFORM+=	rm:-lstdc++
.endif

.endif

post-extract:
	${CP} ${FILESDIR}/IMonKQueue.c++ ${WRKSRC}/src
	${CP} ${FILESDIR}/imon-compat.h ${WRKSRC}/src

.include "../../mk/bsd.pkg.mk"