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