Merge branch 'staged'
[dports.git] / irc / ircd-ratbox-devel / Makefile
1 # Created by: Shaun Amott <shaun@inerd.com>
2 # $FreeBSD$
3
4 PORTNAME=       ircd-ratbox
5 PORTVERSION=    3.0.7
6 PORTREVISION=   3
7 CATEGORIES=     irc
8 MASTER_SITES=   http://www.ratbox.org/download/                         \
9                 http://www.ratbox.org/download/old/
10 PKGNAMESUFFIX=  -devel
11
12 MAINTAINER=     moggie@elasticmind.net
13 COMMENT=        Advanced, stable IRC daemon, used widely on EFnet ('testing' release)
14
15 LICENSE=        GPLv2
16
17 CONFLICTS=      ircd-ratbox-[0-9]* charybdis-[0-9]*
18
19 USES=           libtool perl5 sqlite tar:bzip2
20 USE_RC_SUBR=    ircd-ratbox
21 USE_PERL5=      build
22 USE_LDCONFIG=   ${PREFIX}/lib/ircd-ratbox
23
24 USERS=          ircd
25 GROUPS=         ${USERS}
26
27 LOGDIR?=        /var/log/${PORTNAME}
28 RUNDIR?=        /var/run/${PORTNAME}
29 DBDIR?=         /var/db/${PORTNAME}
30 SUB_FILES=      pkg-message
31 PLIST_SUB=      LOGDIR=${LOGDIR} RUNDIR=${RUNDIR} DBDIR=${DBDIR}
32 SUB_LIST=       LOGDIR=${LOGDIR} RUNDIR=${RUNDIR} DBDIR=${DBDIR}
33
34 GNU_CONFIGURE=  yes
35 CONFIGURE_ARGS= --with-confdir=${PREFIX}/etc/${PORTNAME}                \
36                 --with-logdir=/var/log/${PORTNAME}                      \
37                 --with-moduledir=${PREFIX}/lib/${PORTNAME}/modules      \
38                 --libexecdir=${PREFIX}/libexec                          \
39                 --with-helpdir=${DATADIR}/help                          \
40                 --libdir=${PREFIX}/lib/${PORTNAME}                      \
41                 --with-sqlite3=${LOCALBASE}                             \
42                 --disable-backups
43 INSTALL_TARGET= install-strip
44
45 PORTDOCS=       [^i]*.txt README.* technical/[^i]*.txt Tao-of-IRC.*
46
47 #-- Options ------------------------------------------------------------
48
49 OPTIONS_DEFINE= OPENSSL IPV6 ZIPLINKS SHARED_MODULES ASSERT SMALL_NET SERVICES DOCS
50 OPTIONS_DEFAULT=        OPENSSL ZIPLINKS SHARED_MODULES
51 ZIPLINKS_DESC=          ziplinks support
52 SHARED_MODULES_DESC=    shared modules support
53 ASSERT_DESC=            Enable debugging code
54 SMALL_NET_DESC=         Tune server for small networks
55 SERVICES_DESC=          ratbox-services compatibility code
56
57 OPENSSL_USES=                   ssl
58 OPENSSL_CONFIGURE_ENABLE=       openssl
59 OPENSSL_LDFLAGS=                -L${OPENSSLLIB}
60 OPENSSL_CFLAGS=                 -I${OPENSSLINC}
61 IPV6_CONFIGURE_ENABLE=          ipv6
62 ZIPLINKS_CONFIGURE_ENABLE=      zlib
63 SHARED_MODULES_CONFIGURE_ENABLE=shared-modules
64 ASSERT_CONFIGURE_ENABLE=        assert
65 SMALL_NET_CONFIGURE_ENABLE=     small-net
66 SERVICES_CONFIGURE_ENABLE=      services
67
68 #-- User Configuration -------------------------------------------------
69
70 .if defined(NICKLEN)
71 CONFIGURE_ARGS+=        --with-nicklen=${NICKLEN}
72 .endif
73
74 #-----------------------------------------------------------------------
75
76 pre-configure:
77         @${ECHO_MSG} ""
78         @${ECHO_MSG} "This port has additional options:"
79         @${ECHO_MSG} "    NICKLEN     [default 9, max 50]    - Max nick length on server"
80         @${ECHO_MSG} ""
81         @${ECHO_MSG} "    SERVER_NAME [default 'services.ircd-ratbox.org'] - Name of services"
82         @${ECHO_MSG} "    USER_SERV   [default 'USERSERV'] - Name of user registration service"
83         @${ECHO_MSG} "    CHAN_SERV   [default 'CHANSERV'] - Name of channel registration serv'"
84         @${ECHO_MSG} "    NICK_SERV   [default 'NICKSERV'] - Name of nickname registration serv'"
85         @${ECHO_MSG} "    ALIS_SERV   [default 'ALIS'] - Name of channel list service"
86         @${ECHO_MSG} "    OPER_BOT    [default 'OPERBOT'] - Name of operbot service"
87         @${ECHO_MSG} "    OPER_SERV   [default 'OPERSERV'] - Name of oper command service"
88         @${ECHO_MSG} "    JUPE_SERV   [default 'JUPESERV'] - Name of jupe service"
89         @${ECHO_MSG} "    GLOBAL_SERV [default 'GLOBAL'] - Name of global announce service"
90         @${ECHO_MSG} ""
91         @${ECHO_MSG} "Press CTRL+C now if you wish to set them."
92         @${ECHO_MSG} ""
93
94 pre-build:
95         @${REINPLACE_CMD} -e "s#-O2##" ${WRKSRC}/configure
96         @${REINPLACE_CMD} -e "s#%%PREFIX%%#${PREFIX}#g"         \
97                           ${WRKSRC}/doc/example.conf            \
98                           ${WRKSRC}/doc/example.efnet.conf
99         @${REINPLACE_CMD} -e "s#%%LOGDIR%%#${LOGDIR}#g"         \
100                                 ${WRKSRC}/doc/example.conf      \
101                                 ${WRKSRC}/doc/example.efnet.conf
102         @${REINPLACE_CMD} -e "s#%%DBDIR%%#${DBDIR}#g"           \
103                                 ${WRKSRC}/doc/example.conf      \
104                                 ${WRKSRC}/doc/example.efnet.conf
105         @${REINPLACE_CMD} -e "s#%%RUNDIR%%#${RUNDIR}#g" ${WRKSRC}/include/config.h
106         @${REINPLACE_CMD} -e "s#%%DBDIR%%#${DBDIR}#g" ${WRKSRC}/include/config.h
107         @${REINPLACE_CMD} -e "s#%%WRKSRC%%#${WRKSRC}#g" ${WRKSRC}/contrib/ircd-shortcut.pl
108
109 #-- ircd-shortcut.pl ratbox-services commands --------------------------------------
110
111 .if defined(SERVER_NAME)
112         @${REINPLACE_CMD} -e "s#services.ircd-ratbox.org#${SERVER_NAME}#"       \
113         ${WRKSRC}/contrib/ircd-shortcut.pl
114 .endif
115 .if defined(USER_SERV)
116         @${REINPLACE_CMD} -e "s#USERSERV#${USER_SERV}#" \
117         ${WRKSRC}/contrib/ircd-shortcut.pl
118 .endif
119 .if defined(CHAN_SERV)
120         @${REINPLACE_CMD} -e "s#CHANSERV#${CHAN_SERV}#" \
121         ${WRKSRC}/contrib/ircd-shortcut.pl
122 .endif
123 .if defined(NICK_SERV)
124         @${REINPLACE_CMD} -e "s#NICKSERV#${NICK_SERV}#" \
125         ${WRKSRC}/contrib/ircd-shortcut.pl
126 .endif
127 .if defined(ALIS_SERV)
128         @${REINPLACE_CMD} -e "s#ALIS#${ALIS_SERV}#"     \
129         ${WRKSRC}/contrib/ircd-shortcut.pl
130 .endif
131 .if defined(OPER_BOT)
132         @${REINPLACE_CMD} -e "s#OPERBOT#${OPER_BOT}#"   \
133         ${WRKSRC}/contrib/ircd-shortcut.pl
134 .endif
135 .if defined(OPER_SERV)
136         @${REINPLACE_CMD} -e "s#OPERSERV#${OPER_SERV}#" \
137         ${WRKSRC}/contrib/ircd-shortcut.pl
138 .endif
139 .if defined(JUPE_SERV)
140         @${REINPLACE_CMD} -e "s#JUPESERV#${JUPE_SERV}#" \
141         ${WRKSRC}/contrib/ircd-shortcut.pl
142 .endif
143 .if defined(GLOBAL_SERV)
144         @${REINPLACE_CMD} -e "s#GLOBAL#${GLOBAL_SERV}#" \
145         ${WRKSRC}/contrib/ircd-shortcut.pl
146 .endif
147
148 #------ Execute ircd-shortcut perl script to generate the .c file. -----
149         @${ECHO_MSG} "Executing ircd-shortcut.pl for ircd-shortcuts generation."
150         ${PERL} ${WRKSRC}/contrib/ircd-shortcut.pl
151
152 post-build:
153         @cd ${INSTALL_WRKSRC}/contrib && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} \
154                 ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS}
155
156 # ----- Need to build the m_rsshortcut.so module for ircd-shortcut.pl ----
157         @${ECHO_MSG} "Building m_rsshortcut.la for ircd-shortcuts."
158         @cd ${INSTALL_WRKSRC}/contrib && ${SETENV} ${MAKE_ENV} ${MAKE} \
159                 ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} m_rsshortcut.la
160
161 pre-install:
162         ${MKDIR} ${STAGEDIR}${ETCDIR}
163         ${MKDIR} ${STAGEDIR}${DATADIR}/help
164         ${MKDIR} ${STAGEDIR}${PREFIX}/lib/${PORTNAME}/modules
165
166 post-install:
167         ${MKDIR} ${STAGEDIR}${RUNDIR}
168         ${MKDIR} ${STAGEDIR}${DBDIR}
169         ${MKDIR} ${STAGEDIR}${LOGDIR}
170         ${MKDIR} ${STAGEDIR}${DOCSDIR}
171         cd ${WRKSRC}/doc && ${INSTALL_DATA} ${PORTDOCS} ${STAGEDIR}${DOCSDIR}
172         @cd ${INSTALL_WRKSRC}/contrib && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} \
173                 ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${INSTALL_TARGET}
174         ${INSTALL_DATA} ${WRKSRC}/doc/ircd.motd ${STAGEDIR}${PREFIX}/etc/${PORTNAME}/ircd.motd.sample
175         ${INSTALL_DATA} ${WRKSRC}/doc/example.conf ${STAGEDIR}${PREFIX}/etc/${PORTNAME}/ircd.conf.sample
176         ${INSTALL_DATA} ${WRKSRC}/doc/example.efnet.conf ${STAGEDIR}${PREFIX}/etc/${PORTNAME}/ircd-efnet.conf.sample
177         ${INSTALL_DATA} ${WRKSRC}/doc/genssl.sh ${STAGEDIR}${PREFIX}/etc/${PORTNAME}/genssl.sh
178
179 # ----- We need to install the shortcut.pl module ----
180         @${ECHO_MSG} "Executing install-mod.sh for ircd-shortcuts module installation."
181         ${SH} ${WRKSRC}/install-mod.sh ${WRKSRC}/contrib/m_rsshortcut.la \
182                 ${STAGEDIR}${PREFIX}/lib/${PORTNAME}/modules/contrib
183
184 .include <bsd.port.mk>