# $NetBSD: Makefile,v 1.1.1.1 2001/10/21 21:26:51 seb Exp $
#

DISTNAME=	ircd-hybrid-6.2
CATEGORIES=	chat
MASTER_SITES=	http://prdownloads.sourceforge.net/ircd-hybrid/
EXTRACT_SUFX=	.tgz

MAINTAINER=	seb@pbox.org
HOMEPAGE=	http://www.ircd-hybrid.net/
COMMENT=	Irc server with many options

GNU_CONFIGURE=	YES

USE_BUILDLINK_ONLY=	# defined

DEINSTALL_FILE=		${WRKDIR}/DEINSTALL
INSTALL_FILE=		${WRKDIR}/INSTALL

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

.if (${IRCD_HYBRID_SMALL_NET} == "YES")
IRCD_HYBRID_LINK_PREALLOCATE?=		64
IRCD_HYBRID_CLIENTS_PREALLOCATE?=	64
IRCD_HYBRID_USERS_PREALLOCATE?=		64
IRCD_HYBRID_NICKNAMEHISTORYLENGTH?=	1000
IRCD_HYBRID_MAXSENDQLENGTH?=		500000
IRCD_HYBRID_INITIAL_DBUFS?=		300
IRCD_HYBRID_HARD_FDLIMIT_?=		90
IRCD_HYBRID_INIT_MAXCLIENTS?=		40
.endif

# this is not supposed to be changed
IRCD_HYBRID_SPATH=		${PREFIX}/sbin/ircd-hybrid
IRCD_HYBRID_SDIR=		${IRCD_HYBRID_SPATH:C|/[^/]*$||}

# throw all the settings in _DEFS
.for def in \
	IRCD_HYBRID_LINK_PREALLOCATE IRCD_HYBRID_CLIENTS_PREALLOCATE \
	IRCD_HYBRID_USERS_PREALLOCATE IRCD_HYBRID_NICKNAMEHISTORYLENGTH \
	IRCD_HYBRID_MAXSENDQLENGTH IRCD_HYBRID_INITIAL_DBUFS \
	IRCD_HYBRID_HARD_FDLIMIT_ IRCD_HYBRID_INIT_MAXCLIENTS
. ifdef ${def}
_DEFS+=		-D${def:S|^IRCD_HYBRID_||}=${${def}}
. endif
.endfor
.for def in \
	IRCD_HYBRID_NETWORK_NAME IRCD_HYBRID_NETWORK_DESC
. ifdef ${def}
_DEFS+=		-D${def:S|^IRCD_HYBRID_||}=\"${${def}:Q}\"
. endif
.endfor
.for def in \
	IRCD_HYBRID_DPATH IRCD_HYBRID_SPATH \
	IRCD_HYBRID_FNAME_USERLOG IRCD_HYBRID_FNAME_OPERLOG IRCD_HYBRID_PPATH \
	IRCD_HYBRID_IRC_USER IRCD_HYBRID_IRC_GROUP
_DEFS+=		-D${def:S|^IRCD_HYBRID_||}=\"${${def}}\"
.endfor
.if (${IRCD_HYBRID_USE_SYSLOG} == "YES")
_DEFS+=		-DUSE_SYSLOG=1
_DEFS+=		-DLOG_FACILITY=${IRCD_HYBRID_SYSLOG_FACILITY}
.endif
.if (${IRCD_HYBRID_USE_LOGFILE} == "YES")
_DEFS+=		-DUSE_LOGFILE=1
_DEFS+=		-DLPATH=\"${IRCD_HYBRID_LPATH}\"
.endif
_DEFS+=		-DINIT_LOG_LEVEL=${IRCD_HYBRID_INIT_LOG_LEVEL}

# and pass then down to make as DEFS
MAKE_FLAGS+=	DEFS='${_DEFS}'

# and few other things for install target
MAKE_FLAGS+=	SPATH=${IRCD_HYBRID_SPATH} SDIR=${IRCD_HYBRID_SDIR}
MAKE_FLAGS+=	PREFIX=${PREFIX} DESTDIR=${DESTDIR}

# for the records
.for def in \
	IRCD_HYBRID_LINK_PREALLOCATE IRCD_HYBRID_CLIENTS_PREALLOCATE \
	IRCD_HYBRID_USERS_PREALLOCATE IRCD_HYBRID_NICKNAMEHISTORYLENGTH \
	IRCD_HYBRID_MAXSENDQLENGTH IRCD_HYBRID_INITIAL_DBUFS \
	IRCD_HYBRID_HARD_FDLIMIT_ IRCD_HYBRID_INIT_MAXCLIENTS \
	IRCD_HYBRID_NETWORK_NAME IRCD_HYBRID_NETWORK_DESC IRCD_HYBRID_DPATH \
	IRCD_HYBRID_FNAME_OPERLOG IRCD_HYBRID_PPATH \
	IRCD_HYBRID_IRC_USER IRCD_HYBRID_IRC_GROUP
. ifdef ${def}
BUILD_DEFS+=	${def}
. endif
.endfor
.ifdef ${IRCD_HYBRID_USE_SYSLOG} == "YES"
BUILD_DEFS+=	IRCD_HYBRID_USE_SYSLOG
BUILD_DEFS+=	IRCD_HYBRID_SYSLOG_FACILITY
.else
BUILD_DEFS+=	IRCD_HYBRID_FNAME_USERLOG
.endif
.if (${IRCD_HYBRID_USE_LOGFILE} == "YES")
BUILD_DEFS+=	IRCD_HYBRID_USE_LOGFILE
BUILD_DEFS+=	IRCD_HYBRID_LPATH
.endif

# to handle user and group creation...
.if ${OPSYS} == "NetBSD"
.if exists(/usr/sbin/user)
ADDUSER=		/usr/sbin/useradd
ADDGROUP=		/usr/sbin/groupadd
.else
DEPENDS+=		user>=20000313:../../sysutils/user
ADDUSER=		${LOCALBASE}/sbin/useradd
ADDGROUP=		${LOCALBASE}/sbin/groupadd
.endif
.elif ${OPSYS} == "SunOS"
ADDUSER=		useradd
ADDGROUP=		groupadd
.endif

# tuning of INSTALL and DEINSTALL scripts
INSTALL_SUBST+=		USER=${IRCD_HYBRID_IRC_USER}
INSTALL_SUBST+=		GROUP=${IRCD_HYBRID_IRC_GROUP}
INSTALL_SUBST+=		DPATH=${IRCD_HYBRID_DPATH}
INSTALL_SUBST+=		LPATH=${IRCD_HYBRID_LPATH}
INSTALL_SUBST+=		USERLOG=${IRCD_HYBRID_FNAME_USERLOG}
INSTALL_SUBST+=		OPERLOG=${IRCD_HYBRID_FNAME_OPERLOG}

INSTALL_SUBST+=		ADDUSER=${ADDUSER:Q}
INSTALL_SUBST+=		ADDGROUP=${ADDGROUP:Q}
INSTALL_SUBST+=		CAT=${CAT:Q}
INSTALL_SUBST+=		CHGRP=${CHGRP:Q}
INSTALL_SUBST+=		ID=${ID:Q}
INSTALL_SUBST+=		RM=${RM:Q}
INSTALL_SUBST+=		TOUCH=${TOUCH:Q}

INSTALL_SUBST_SED=	${INSTALL_SUBST:S/=/@!/:S/$/!g/:S/^/ -e s!@/}

# tuning of "etc script"
SCRIPT_SUBST+=		PPATH=${IRCD_HYBRID_PPATH:Q}
SCRIPT_SUBST+=		SPATH=${IRCD_HYBRID_SPATH:Q}
SCRIPT_SUBST+=		USER=${IRCD_HYBRID_IRC_USER:Q}
SCRIPT_SUBST+=		DPATH=${IRCD_HYBRID_DPATH:Q}

SCRIPT_SUBST+=		TOUCH=${TOUCH:Q}
SCRIPT_SUBST+=		CHOWN=${CHOWN:Q}
SCRIPT_SUBST+=		CHMOD=${CHMOD:Q}

SCRIPT_SUBST_SED=	${SCRIPT_SUBST:S/=/@!/:S/$/!g/:S/^/ -e s!@/}

# tuning of document file
DOC_SUBST=		PREFIX=${PREFIX}
DOC_SUBST+=		USER=${IRCD_HYBRID_IRC_USER}
DOC_SUBST+=		GROUP=${IRCD_HYBRID_IRC_GROUP}
DOC_SUBST+=		DPATH=${IRCD_HYBRID_DPATH}
DOC_SUBST+=		LPATH=${IRCD_HYBRID_LPATH}
DOC_SUBST+=		OPERLOG=${IRCD_HYBRID_FNAME_OPERLOG}
DOC_SUBST+=		USERLOG=${IRCD_HYBRID_FNAME_USERLOG}
DOC_SUBST+=		SYSLOG_FACILITY=${IRCD_HYBRID_SYSLOG_FACILITY}

post-build:
	${SED} ${SCRIPT_SUBST_SED} ${FILESDIR}/ircd-hybrid > ${WRKDIR}/ircd-hybrid
	${CP} ${FILESDIR}/pkg-setup.txt ${WRKDIR}/pkg-setup.txt
.if (${IRCD_HYBRID_USE_LOGFILE} != "YES")
	${MV} ${WRKDIR}/pkg-setup.txt ${WRKDIR}/.pkg-setup.txt
	${SED} -e '/LPATH/d' -e '/USERLOG/d' ${WRKDIR}/.pkg-setup.txt > ${WRKDIR}/pkg-setup.txt
	cp ${WRKDIR}/pkg-setup.txt ${WRKDIR}/pkg-setup.txt.1
.endif
.if (${IRCD_HYBRID_USE_SYSLOG} != "YES")
	${MV} ${WRKDIR}/pkg-setup.txt ${WRKDIR}/.pkg-setup.txt
	${SED} -e '/SYSLOG_FACILITY/d' ${WRKDIR}/.pkg-setup.txt > ${WRKDIR}/pkg-setup.txt
	cp ${WRKDIR}/pkg-setup.txt ${WRKDIR}/pkg-setup.txt.2
.endif
	${MV} ${WRKDIR}/pkg-setup.txt ${WRKDIR}/.pkg-setup.txt
	${SED} ${DOC_SUBST:S/=/}!/:S/$/!g/:S/^/ -e s!\\\${/}\
		${WRKDIR}/.pkg-setup.txt > ${WRKDIR}/pkg-setup.txt

pre-install:
	${SED} ${INSTALL_SUBST_SED} ${PKGDIR}/DEINSTALL > ${DEINSTALL_FILE}
	${SED} ${INSTALL_SUBST_SED} ${PKGDIR}/INSTALL > ${INSTALL_FILE}
	PKG_PREFIX=${PREFIX} ${SH} ${INSTALL_FILE} ${PKGNAME} PRE-INSTALL

post-install:
	${INSTALL_SCRIPT} ${WRKDIR}/ircd-hybrid ${PREFIX}/etc/rc.d/ircd-hybrid
	${INSTALL_DATA_DIR} ${PREFIX}/share/doc/ircd-hybrid
	${INSTALL_DATA} ${WRKDIR}/pkg-setup.txt ${PREFIX}/share/doc/ircd-hybrid/pkg-setup.txt
	for f in operguide.txt opermyth.txt; do \
		${INSTALL_DATA} ${WRKDIR}/ircd-hybrid-6.2/doc/$$f  ${PREFIX}/share/doc/ircd-hybrid/$$f ; \
	done

.include "../../devel/zlib/buildlink.mk"
.include "../../mk/bsd.pkg.mk"
