summaryrefslogtreecommitdiff
path: root/net/arla/Makefile
blob: 4d013a7e1679beb24305598742b93dc6777d167c (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
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
# $NetBSD: Makefile,v 1.10 2000/10/18 16:32:57 wennmach Exp $
#

DISTNAME=		arla-0.34.5
CATEGORIES=		net security
MASTER_SITES=		ftp://ftp.stacken.kth.se/pub/arla/

MAINTAINER=		wennmach@netbsd.org
HOMEPAGE=		http://www.stacken.kth.se/project/arla/

DEPENDS+=		kth-krb4-1.0.1:../../security/kth-krb4

OSVERSION_SPECIFIC=	yes
GNU_CONFIGURE=		yes
INFO_FILES=		arla.info

.include "../../mk/bsd.prefs.mk"

.if !exists(/sys/lib/libkern/libkern.h)
.if exists(${BSDSRCDIR}/sys/lib/libkern/libkern.h)
CONFIGURE_ARGS+=	--with-sys=${BSDSRCDIR}/sys
.else
IGNORE=			"${PKGNAME} requires kernel sources available under \$$BSDSRCDIR/sys (or /sys)"
.endif
.endif

CONFIGURE_ARGS+=	--with-krb4=${PREFIX}
.if defined(ARLA_CACHE)
CONFIGURE_ARGS+=	--with-arlacachedir=${ARLA_CACHE}
.endif

PLIST_SRC=		${WRKDIR}/PLIST
MESSAGE_FILE=		${WRKDIR}/MESSAGE

.if defined(ARLA_CACHE)
CACHEDIR=		${ARLA_CACHE}
.else
CACHEDIR=		${LOCALBASE}/cache
.endif

post-patch:
# This is ugly. Utterly ugly. Sigh.
# kth-krb4 and arla both have their own, different, versions or libroken.
# To resolve this conflict, which manifests in the inability to recompile
# kth-krb4 once it is installed, we rename arla's roken to arla-roken.
	@${ECHO} "===> Applying more NetBSD patches for ${DISTNAME}"
	@${ECHO} -n "=> Patching configure,"
	@${MV} ${WRKSRC}/configure ${WRKSRC}/configure.old
# Notice, the following sed produces some funny comments in configure :-)
	@${SED} -e 's/roken/arla-roken/g' ${WRKSRC}/configure.old > ${WRKSRC}/configure
	@${CHMOD} 755 ${WRKSRC}/configure
	@${ECHO} -n " Makefile.in,"
	@for file in `${FIND} ${WRKSRC} -name Makefile.in -print`; {          \
		${MV} $$file $$file.old;                                      \
		${SED} -e 's/roken/arla-roken/g' $$file.old > $$file;         \
	}
	@${ECHO} -n " .c files,"
	@for file in `${FIND} ${WRKSRC} -name "*.c" -print`; {                \
		${MV} $$file $$file.old;                                      \
		${SED} -e 's/roken.h/arla-roken.h/g' $$file.old > $$file;     \
	}
	@${ECHO} -n " .h files,"
	@for file in `${FIND} ${WRKSRC} -name "*.h" -print`; {                \
		${MV} $$file $$file.old;                                      \
		${SED} -e 's/roken.h/arla-roken.h/g' $$file.old > $$file;     \
	}
	@${ECHO} -n " .y files,"
	@for file in `${FIND} ${WRKSRC} -name "*.y" -print`; {                \
		${MV} $$file $$file.old;                                      \
		${SED} -e 's/roken.h/arla-roken.h/g' $$file.old > $$file;     \
	}
	@${ECHO} -n " .l files"
	@for file in `${FIND} ${WRKSRC} -name "*.l" -print`; {                \
		${MV} $$file $$file.old;                                      \
		${SED} -e 's/roken.h/arla-roken.h/g' $$file.old > $$file;     \
	}
	@${ECHO} "."
	@${MV} ${WRKSRC}/lib/roken/roken.h ${WRKSRC}/lib/roken/arla-roken.h
	@${MV} ${WRKSRC}/lib/roken ${WRKSRC}/lib/arla-roken

do-configure:
# *Sometimes* it's bad to try to be too smart:
# pkgsrc's LDFLAGS choice is completely inadequate for arla, since
# arla's configure uses $LDFLAGS as flags for $LD, whereas
# pkgsrc's LDFLAGS are conceived to be used with $CC
# So, basically, bsd.pkg.mk sets LDFLAGS=-Wl,-R${LOCALBASE}
# while arla expects LDFLAGS=-R${LOCALBASE}
	@(LDFLAGS= ; cd ${WRKSRC}; ./configure ${CONFIGURE_ARGS})

pre-install:
	@${SED} -e 's|@ARLA_CACHE@|${CACHEDIR}|g'                             \
		<${PKGDIR}/PLIST                                              \
		>${PLIST_SRC}
	@${SED} -e 's|@PREFIX@|${PREFIX}|g'                                   \
		-e 's|@ARLA_CACHE@|${CACHEDIR}|g'                             \
		<${PKGDIR}/MESSAGE                                            \
		>${MESSAGE_FILE}

post-install:
	@${ECHO} " "
	@if [ -e ${CACHEDIR} ]; then                                          \
		${ECHO} "Arla cache dir (${CACHEDIR}) already exists";        \
	else                                                                  \
		${ECHO} "Creating arla cache directory ${CACHEDIR}";          \
		${MKDIR} ${CACHEDIR};                                         \
		${CHMOD} 700 ${CACHEDIR};                                     \
		${CHOWN} root ${CACHEDIR};                                    \
	fi
	@if [ -e /sbin/mount_xfs ]; then                                      \
		${ECHO} "/sbin/mount_xfs already exists";                     \
	else                                                                  \
		${ECHO} "Creating /sbin/mount_xfs";                           \
		${LN} -s ${PREFIX}/bin/mount_xfs /sbin/mount_xfs;             \
	fi
	@-${MKDIR} ${PREFIX}/share/examples/arla
	@${SED} -e 's|@PREFIX@|${PREFIX}|g'                                   \
		< ${FILESDIR}/lkm.conf                                        \
		> ${PREFIX}/share/examples/arla/lkm.conf
	@${INSTALL} -c -o root -g wheel -m 444                                \
		${FILESDIR}/services ${PREFIX}/share/examples/arla
	@${INSTALL} -c -o root -g wheel -m 444                                \
		 ${FILESDIR}/fstab ${PREFIX}/share/examples/arla
	@${SED} -e 's|@PREFIX@|${PREFIX}|' ${FILESDIR}/arlad.sh               \
		> ${PREFIX}/etc/rc.d/arlad.sh
	@${ECHO} " "

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