pkgsrc/chat/inspircd/Makefile

152 lines
4.6 KiB
Makefile

# $NetBSD: Makefile,v 1.39 2014/10/07 16:47:18 adam Exp $
#
DISTNAME= InspIRCd-1.1.23
PKGNAME= ${DISTNAME:S/InspIRCd/inspircd/}
PKGREVISION= 16
CATEGORIES= chat
MASTER_SITES= http://www.inspircd.org/downloads/
EXTRACT_SUFX= .tar.bz2
MAINTAINER= pkgsrc-users@NetBSD.org
HOMEPAGE= http://www.inspircd.org/
COMMENT= Modular C++ IRC Daemon
USE_TOOLS+= perl:build gmake pkg-config
REPLACE_PERL+= .inspircd.inc configure
WRKSRC= ${WRKDIR}/${DISTNAME:S/InspIRCd/inspircd/}
HAS_CONFIGURE= yes
CONFIG_SHELL= ${PERL5}
USE_LANGUAGES= c++
PLIST_SRC= ${WRKDIR}/.PLIST_SRC
RCD_SCRIPTS+= inspircd
PKG_SYSCONFSUBDIR= inspircd
FILES_SUBST+= INSPIRCD_USER=${INSPIRCD_USER:Q}
FILES_SUBST+= INSPIRCD_GROUP=${INSPIRCD_GROUP:Q}
.include "../../mk/bsd.prefs.mk"
EGDIR= ${PREFIX}/share/examples/inspircd
EXTRA= ${WRKSRC}/src/modules/extra
MODULES?= # undef
HEADERS?= # undef
CONF_FILES_PERMS= ${EGDIR}/inspircd.conf.example \
${PKG_SYSCONFDIR}/inspircd.conf \
${INSPIRCD_USER:Q} ${INSPIRCD_GROUP:Q} 0400
PKG_USERS_VARS= INSPIRCD_USER
PKG_GROUPS_VARS= INSPIRCD_GROUP
PKG_GROUPS= ${INSPIRCD_GROUP:Q}
PKG_USERS= ${INSPIRCD_USER:Q}:${INSPIRCD_GROUP:Q}
PKG_GECOS.${INSPIRCD_USER}= InspIRCd user
CONFIGURE_ARGS+= --disable-interactive
CONFIGURE_ARGS+= --prefix=${PREFIX}/share/inspircd
CONFIGURE_ARGS+= --config-dir=${PKG_SYSCONFDIR}
CONFIGURE_ARGS+= --binary-dir=${PREFIX}/bin
CONFIGURE_ARGS+= --library-dir=${PREFIX}/lib/inspircd
CONFIGURE_ARGS+= --module-dir=${PREFIX}/share/inspircd/modules
CONFIGURE_ARGS+= --with-nick-length=${INSP_NICLEN:Q}
CONFIGURE_ARGS+= --with-channel-length=${INSP_CHANLEN:Q}
CONFIGURE_ARGS+= --with-max-clients=${INSP_MAXCLI:Q}
CONFIGURE_ARGS+= --with-ident-length=${INSP_MAXIDENT:Q}
CONFIGURE_ARGS+= --with-quit-length=${INSP_MAXQUIT:Q}
CONFIGURE_ARGS+= --with-topic-length=${INSP_MAXTOPIC:Q}
CONFIGURE_ARGS+= --with-kick-length=${INSP_MAXKICK:Q}
CONFIGURE_ARGS+= --with-gecos-length=${INSP_MAXGECOS:Q}
CONFIGURE_ARGS+= --with-away-length=${INSP_MAXAWAY:Q}
CONFIGURE_ARGS+= --with-max-modes=${INSP_MAXMODES:Q}
.include "options.mk"
SUBST_CLASSES+= conf
SUBST_STAGE.conf= pre-configure
SUBST_FILES.conf= docs/inspircd.conf.example
SUBST_SED.conf+= -e "s|/path/to/inspircd.pid|${VARBASE}/run/inspircd/inspircd.pid|g"
SUBST_MESSAGE.conf= Fixing configuration files.
SUBST_CLASSES+= make
SUBST_STAGE.make= pre-configure
SUBST_FILES.make= configure make/utilities.pm
SUBST_SED.make+= -e "s|-Wl,--rpath|${COMPILER_RPATH_FLAG}|g"
SUBST_MESSAGE.make= Fixing Makefiles.
BUILD_DEFS+= INSP_NICLEN INSP_CHANLEN INSPIRCD_USER INSPIRCD_GROUP
BUILD_DEFS+= INSP_MAXCLI INSP_MAXIDENT INSP_MAXQUIT INSP_MAXTOPIC
BUILD_DEFS+= INSP_MAXKICK INSP_MAXGECOS INSP_MAXAWAY INSP_MAXMODES
BUILD_DEFS+= VARBASE
MAKE_DIRS+= ${VARBASE}/log
OWN_DIRS_PERMS+= ${VARBASE}/run/inspircd \
${INSPIRCD_USER:Q} ${INSPIRCD_GROUP:Q} 750
INSPIRCD_USER?= inspircd
INSPIRCD_GROUP?= inspircd
# from a default ./configure
INSP_NICLEN?= 31
INSP_CHANLEN?= 64
INSP_MAXCLI?= 64
INSP_MAXIDENT?= 12
INSP_MAXQUIT?= 255
INSP_MAXTOPIC?= 307
INSP_MAXKICK?= 255
INSP_MAXGECOS?= 128
INSP_MAXAWAY?= 200
INSP_MAXMODES?= 20
CHECK_BUILTIN.openssl:=yes
.include "../../security/openssl/builtin.mk"
CHECK_BUILTIN.openssl:=no
post-extract:
${MV} ${WRKDIR}/inspircd ${WRKDIR}/${DISTNAME:S/InspIRCd/inspircd/}
.if !empty(USE_BUILTIN.openssl:M[yY][eE][sS]) && !empty(PKG_OPTIONS:Mssl)
${CP} ${FILESDIR}/openssl.pc ${WRKSRC}/openssl.pc
SUBST_FILES.conf+= ${WRKSRC}/openssl.pc
SUBST_SED.conf+= -e "s|@SSLBASE@|${BUILDLINK_PREFIX.openssl}|g"
SUBST_SED.conf+= -e "s|@SSLVER@|${BUILTIN_VERSION.openssl}|g"
.endif
pre-configure:
.if !empty(USE_BUILTIN.openssl:M[yY][eE][sS]) && !empty(PKG_OPTIONS:Mssl)
${MKDIR} ${BUILDLINK_DIR}/lib/pkgconfig
${CP} ${WRKSRC}/openssl.pc ${BUILDLINK_DIR}/lib/pkgconfig
.endif
.if defined(MODULES)
. for f in ${MODULES}
${CP} ${EXTRA}/${f} ${WRKSRC}/src/modules/${f}
. endfor
.endif
.if defined(HEADERS)
. for f in ${HEADERS}
${CP} ${EXTRA}/${f} ${WRKSRC}/src/modules/${f}
. endfor
.endif
post-build:
${CP} ${PKGDIR}/PLIST ${WRKDIR}/.PLIST_SRC
.if defined(MODULES)
. for f in ${MODULES}
${ECHO} share/inspircd/modules/${f} | \
${SED} -e "s|\\.cpp|\\.so|g" >> ${WRKDIR}/.PLIST_SRC
. endfor
.endif
INSTALLATION_DIRS+= bin ${EGDIR}/aliases ${EGDIR}/sql
CONF_FILES_PERS+= /dev/null ${VARBASE}/log/inspircd.log \
${INSPIRCD_USER}:${INSPIRCD_GROUP} 0640
post-install:
${INSTALL_DATA} ${WRKSRC}/conf/inspircd.* ${DESTDIR}${EGDIR}
${INSTALL_DATA} ${WRKSRC}/conf/aliases/*.example ${DESTDIR}${EGDIR}/aliases
${INSTALL_DATA} ${WRKSRC}/docs/inspircd.conf.example ${DESTDIR}${EGDIR}
${INSTALL_DATA} ${WRKSRC}/extras/m_*.sql ${DESTDIR}${EGDIR}/sql
.include "../../mk/bsd.pkg.mk"