Fixup fromcvs/togit conversion
[pkgsrcv2.git] / chat / inspircd / Makefile
1 # $NetBSD: Makefile,v 1.25 2012/03/03 12:54:15 wiz Exp $
2 #
3
4 DISTNAME=       InspIRCd-1.1.23
5 PKGNAME=        ${DISTNAME:S/InspIRCd/inspircd/}
6 PKGREVISION=    4
7 CATEGORIES=     chat
8 MASTER_SITES=   http://www.inspircd.org/downloads/
9 EXTRACT_SUFX=   .tar.bz2
10
11 MAINTAINER=     pkgsrc-users@NetBSD.org
12 HOMEPAGE=       http://www.inspircd.org/
13 COMMENT=        Modular C++ IRC Daemon
14
15 PKG_DESTDIR_SUPPORT=    user-destdir
16
17 USE_TOOLS+=             perl:build gmake pkg-config
18 REPLACE_PERL+=          .inspircd.inc configure
19
20 WRKSRC=                 ${WRKDIR}/${DISTNAME:S/InspIRCd/inspircd/}
21 HAS_CONFIGURE=          yes
22 CONFIG_SHELL=           ${PERL5}
23 USE_LANGUAGES=          c++
24 PLIST_SRC=              ${WRKDIR}/.PLIST_SRC
25 RCD_SCRIPTS+=           inspircd
26 PKG_SYSCONFSUBDIR=      inspircd
27
28 FILES_SUBST+=           INSPIRCD_USER=${INSPIRCD_USER:Q}
29 FILES_SUBST+=           INSPIRCD_GROUP=${INSPIRCD_GROUP:Q}
30
31 .include "../../mk/bsd.prefs.mk"
32
33 EGDIR=                  ${PREFIX}/share/examples/inspircd
34 EXTRA=                  ${WRKSRC}/src/modules/extra
35 MODULES?=               # undef
36 HEADERS?=               # undef
37 CONF_FILES_PERMS=       ${EGDIR}/inspircd.conf.example \
38                         ${PKG_SYSCONFDIR}/inspircd.conf \
39                         ${INSPIRCD_USER:Q} ${INSPIRCD_GROUP:Q} 0400
40
41 PKG_USERS_VARS=         INSPIRCD_USER
42 PKG_GROUPS_VARS=        INSPIRCD_GROUP
43
44 PKG_GROUPS=             ${INSPIRCD_GROUP:Q}
45 PKG_USERS=              ${INSPIRCD_USER:Q}:${INSPIRCD_GROUP:Q}
46
47 PKG_GECOS.${INSPIRCD_USER}=     InspIRCd user
48
49 CONFIGURE_ARGS+=        --disable-interactive
50 CONFIGURE_ARGS+=        --prefix=${PREFIX}/share/inspircd
51 CONFIGURE_ARGS+=        --config-dir=${PKG_SYSCONFDIR}
52 CONFIGURE_ARGS+=        --binary-dir=${PREFIX}/bin
53 CONFIGURE_ARGS+=        --library-dir=${PREFIX}/lib/inspircd
54 CONFIGURE_ARGS+=        --module-dir=${PREFIX}/share/inspircd/modules
55
56 CONFIGURE_ARGS+=        --with-nick-length=${INSP_NICLEN:Q}
57 CONFIGURE_ARGS+=        --with-channel-length=${INSP_CHANLEN:Q}
58 CONFIGURE_ARGS+=        --with-max-clients=${INSP_MAXCLI:Q}
59 CONFIGURE_ARGS+=        --with-ident-length=${INSP_MAXIDENT:Q}
60 CONFIGURE_ARGS+=        --with-quit-length=${INSP_MAXQUIT:Q}
61 CONFIGURE_ARGS+=        --with-topic-length=${INSP_MAXTOPIC:Q}
62 CONFIGURE_ARGS+=        --with-kick-length=${INSP_MAXKICK:Q}
63 CONFIGURE_ARGS+=        --with-gecos-length=${INSP_MAXGECOS:Q}
64 CONFIGURE_ARGS+=        --with-away-length=${INSP_MAXAWAY:Q}
65 CONFIGURE_ARGS+=        --with-max-modes=${INSP_MAXMODES:Q}
66
67 .include "options.mk"
68
69 SUBST_CLASSES+=         conf
70 SUBST_STAGE.conf=       pre-configure
71 SUBST_FILES.conf=       docs/inspircd.conf.example
72 SUBST_SED.conf+=        -e "s|/path/to/inspircd.pid|${VARBASE}/run/inspircd/inspircd.pid|g"
73 SUBST_MESSAGE.conf=     Fixing configuration files.
74
75 SUBST_CLASSES+=         make
76 SUBST_STAGE.make=       pre-configure
77 SUBST_FILES.make=       configure make/utilities.pm
78 SUBST_SED.make+=        -e "s|-Wl,--rpath|${COMPILER_RPATH_FLAG}|g"
79 SUBST_MESSAGE.make=     Fixing Makefiles.
80
81 BUILD_DEFS+=            INSP_NICLEN INSP_CHANLEN INSPIRCD_USER INSPIRCD_GROUP
82 BUILD_DEFS+=            INSP_MAXCLI INSP_MAXIDENT INSP_MAXQUIT INSP_MAXTOPIC
83 BUILD_DEFS+=            INSP_MAXKICK INSP_MAXGECOS INSP_MAXAWAY INSP_MAXMODES
84 BUILD_DEFS+=            VARBASE
85
86 MAKE_DIRS+=             ${VARBASE}/log
87 OWN_DIRS_PERMS+=        ${VARBASE}/run/inspircd \
88                         ${INSPIRCD_USER:Q} ${INSPIRCD_GROUP:Q} 750
89
90 INSPIRCD_USER?=         inspircd
91 INSPIRCD_GROUP?=        inspircd
92
93 # from a default ./configure
94 INSP_NICLEN?=           31
95 INSP_CHANLEN?=          64
96 INSP_MAXCLI?=           64
97 INSP_MAXIDENT?=         12
98 INSP_MAXQUIT?=          255
99 INSP_MAXTOPIC?=         307
100 INSP_MAXKICK?=          255
101 INSP_MAXGECOS?=         128
102 INSP_MAXAWAY?=          200
103 INSP_MAXMODES?=         20
104
105 CHECK_BUILTIN.openssl:=yes
106 .include "../../security/openssl/builtin.mk"
107 CHECK_BUILTIN.openssl:=no
108
109 post-extract:
110         ${MV} ${WRKDIR}/inspircd ${WRKDIR}/${DISTNAME:S/InspIRCd/inspircd/}
111 .if !empty(USE_BUILTIN.openssl:M[yY][eE][sS]) && !empty(PKG_OPTIONS:Mssl)
112         ${CP} ${FILESDIR}/openssl.pc ${WRKSRC}/openssl.pc
113 SUBST_FILES.conf+=      ${WRKSRC}/openssl.pc
114 SUBST_SED.conf+=        -e "s|@SSLBASE@|${BUILDLINK_PREFIX.openssl}|g"
115 SUBST_SED.conf+=        -e "s|@SSLVER@|${BUILTIN_VERSION.openssl}|g"
116 .endif
117
118 pre-configure:
119 .if !empty(USE_BUILTIN.openssl:M[yY][eE][sS]) && !empty(PKG_OPTIONS:Mssl)
120         ${MKDIR} ${BUILDLINK_DIR}/lib/pkgconfig
121         ${CP} ${WRKSRC}/openssl.pc ${BUILDLINK_DIR}/lib/pkgconfig
122 .endif
123 .if defined(MODULES)
124 .  for f in ${MODULES}
125         ${CP} ${EXTRA}/${f} ${WRKSRC}/src/modules/${f}
126 .  endfor
127 .endif
128 .if defined(HEADERS)
129 .  for f in ${HEADERS}
130         ${CP} ${EXTRA}/${f} ${WRKSRC}/src/modules/${f}
131 .  endfor
132 .endif
133
134 post-build:
135         ${CP} ${PKGDIR}/PLIST ${WRKDIR}/.PLIST_SRC
136 .if defined(MODULES)
137 .  for f in ${MODULES}
138         ${ECHO} share/inspircd/modules/${f} | \
139                 ${SED} -e "s|\\.cpp|\\.so|g" >> ${WRKDIR}/.PLIST_SRC
140 .  endfor
141 .endif
142
143 INSTALLATION_DIRS+=     bin ${EGDIR}/aliases ${EGDIR}/sql
144
145 CONF_FILES_PERS+=       /dev/null ${VARBASE}/log/inspircd.log \
146                         ${INSPIRCD_USER}:${INSPIRCD_GROUP} 0640
147
148 post-install:
149         ${INSTALL_DATA} ${WRKSRC}/conf/inspircd.* ${DESTDIR}${EGDIR}
150         ${INSTALL_DATA} ${WRKSRC}/conf/aliases/*.example ${DESTDIR}${EGDIR}/aliases
151         ${INSTALL_DATA} ${WRKSRC}/docs/inspircd.conf.example ${DESTDIR}${EGDIR}
152         ${INSTALL_DATA} ${WRKSRC}/extras/m_*.sql ${DESTDIR}${EGDIR}/sql
153
154 .include "../../mk/bsd.pkg.mk"