Merge from vendor branch TNF:
[pkgsrcv2.git] / chat / inspircd12 / Makefile
1 # $NetBSD: Makefile,v 1.10 2011/06/10 21:57:06 obache Exp $
2 #
3
4 DISTNAME=       InspIRCd-1.2.0
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 CONFLICTS+=     inspircd<1.2.0
18
19 USE_TOOLS+=             perl:build gmake pkg-config
20 REPLACE_PERL+=          .inspircd.inc configure make/run-cc.pl
21
22 WRKSRC=                 ${WRKDIR}/${DISTNAME:S/InspIRCd/inspircd/}
23 HAS_CONFIGURE=          yes
24 CONFIG_SHELL=           ${PERL5}
25 USE_LANGUAGES=          c++
26 PLIST_SRC=              ${WRKDIR}/.PLIST_SRC
27 RCD_SCRIPTS+=           inspircd
28 PKG_SYSCONFSUBDIR=      inspircd
29 MAKE_FILE=              GNUmakefile
30
31 FILES_SUBST+=           INSPIRCD_USER=${INSPIRCD_USER:Q}
32 FILES_SUBST+=           INSPIRCD_GROUP=${INSPIRCD_GROUP:Q}
33
34 .include "../../mk/bsd.prefs.mk"
35
36 EGDIR=                  ${PREFIX}/share/examples/inspircd
37 EXTRA=                  ${WRKSRC}/src/modules/extra
38 MODULES?=               # undef
39 HEADERS?=               # undef
40 CONF_FILES_PERMS=       ${EGDIR}/inspircd.conf.example \
41                         ${PKG_SYSCONFDIR}/inspircd.conf \
42                         ${INSPIRCD_USER:Q} ${INSPIRCD_GROUP:Q} 0400
43 CONF_FILES_PERMS+=      ${EGDIR}/modules.conf.example \
44                         ${PKG_SYSCONFDIR}/modules.conf \
45                         ${INSPIRCD_USER:Q} ${INSPIRCD_GROUP:Q} 0400
46
47 PKG_USERS_VARS=         INSPIRCD_USER
48 PKG_GROUPS_VARS=        INSPIRCD_GROUP
49
50 PKG_GROUPS=             ${INSPIRCD_GROUP:Q}
51 PKG_USERS=              ${INSPIRCD_USER:Q}:${INSPIRCD_GROUP:Q}
52
53 PKG_GECOS.${INSPIRCD_USER}=     InspIRCd user
54
55 CONFIGURE_ARGS+=        --disable-interactive
56 CONFIGURE_ARGS+=        --prefix=${PREFIX}/share/inspircd
57 CONFIGURE_ARGS+=        --config-dir=${PKG_SYSCONFDIR}
58 CONFIGURE_ARGS+=        --binary-dir=${PREFIX}/bin
59 CONFIGURE_ARGS+=        --library-dir=${PREFIX}/lib/inspircd
60 CONFIGURE_ARGS+=        --module-dir=${PREFIX}/share/inspircd/modules
61
62 .include "options.mk"
63
64 SUBST_CLASSES+=         conf
65 SUBST_STAGE.conf=       pre-configure
66 SUBST_FILES.conf=       conf/inspircd.conf.example
67 SUBST_SED.conf+=        -e "s|/path/to/inspircd.pid|${VARBASE}/run/inspircd/inspircd.pid|g"
68 SUBST_MESSAGE.conf=     Fixing configuration files.
69
70 SUBST_CLASSES+=         install
71 SUBST_STAGE.install=    post-configure
72 SUBST_FILES.install=    GNUmakefile
73 SUBST_SED.install+=     -e "s|-cp conf|\#-cp conf|g"
74 SUBST_MESSAGE.install=  Fixing installation files.
75
76 BUILD_DEFS+=            INSPIRCD_USER INSPIRCD_GROUP VARBASE
77
78 MAKE_DIRS+=             ${VARBASE}/log
79 OWN_DIRS_PERMS+=        ${VARBASE}/run/inspircd \
80                         ${INSPIRCD_USER:Q} ${INSPIRCD_GROUP:Q} 750
81
82 INSPIRCD_USER?=         inspircd
83 INSPIRCD_GROUP?=        inspircd
84
85 CHECK_BUILTIN.openssl:=yes
86 .include "../../security/openssl/builtin.mk"
87 CHECK_BUILTIN.openssl:=no
88
89 post-extract:
90         ${MV} ${WRKDIR}/inspircd ${WRKDIR}/${DISTNAME:S/InspIRCd/inspircd/}
91 .if !empty(USE_BUILTIN.openssl:M[yY][eE][sS]) && !empty(PKG_OPTIONS:Mssl)
92         ${CP} ${FILESDIR}/openssl.pc ${WRKSRC}/openssl.pc
93 SUBST_FILES.conf+=      ${WRKSRC}/openssl.pc
94 SUBST_SED.conf+=        -e "s|@SSLBASE@|${BUILDLINK_PREFIX.openssl}|g"
95 SUBST_SED.conf+=        -e "s|@SSLVER@|${BUILTIN_VERSION.openssl}|g"
96 .endif
97
98 pre-configure:
99 .if !empty(USE_BUILTIN.openssl:M[yY][eE][sS]) && !empty(PKG_OPTIONS:Mssl)
100         ${MKDIR} ${BUILDLINK_DIR}/lib/pkgconfig
101         ${CP} ${WRKSRC}/openssl.pc ${BUILDLINK_DIR}/lib/pkgconfig
102 .endif
103 .if defined(MODULES)
104 .  for f in ${MODULES}
105         ${CP} ${EXTRA}/${f} ${WRKSRC}/src/modules/${f}
106 .  endfor
107 .endif
108 .if defined(HEADERS)
109 .  for f in ${HEADERS}
110         ${CP} ${EXTRA}/${f} ${WRKSRC}/src/modules/${f}
111 .  endfor
112 .endif
113
114 post-build:
115         ${CP} ${PKGDIR}/PLIST ${WRKDIR}/.PLIST_SRC
116 .if defined(MODULES)
117 .  for f in ${MODULES}
118         ${ECHO} share/inspircd/modules/${f} | \
119                 ${SED} -e "s|\\.cpp|\\.so|g" >> ${WRKDIR}/.PLIST_SRC
120 .  endfor
121 .endif
122
123 INSTALLATION_DIRS+=     bin ${EGDIR}/aliases ${EGDIR}/sql
124
125 CONF_FILES_PERMS+=      /dev/null ${VARBASE}/log/inspircd.log \
126                         ${INSPIRCD_USER} ${INSPIRCD_GROUP} 0640
127
128 post-install:
129         ${INSTALL_DATA} ${WRKSRC}/conf/inspircd.* ${DESTDIR}${EGDIR}
130         ${INSTALL_DATA} ${WRKSRC}/conf/modules.* ${DESTDIR}${EGDIR}
131         ${INSTALL_DATA} ${WRKSRC}/conf/aliases/*.example ${DESTDIR}${EGDIR}/aliases
132         ${INSTALL_DATA} ${WRKSRC}/conf/inspircd.conf.example ${DESTDIR}${EGDIR}
133         ${INSTALL_DATA} ${WRKSRC}/extras/m_*.sql ${DESTDIR}${EGDIR}/sql
134
135 .include "../../mk/bsd.pkg.mk"