Makefile 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. PORTNAME= ircd-ratbox
  2. PORTVERSION= 3.0.10
  3. PORTREVISION= 8
  4. CATEGORIES= irc
  5. MASTER_SITES= http://www.ratbox.org/download/ \
  6. http://www.ratbox.org/download/old/
  7. MAINTAINER= moggie@elasticmind.net
  8. COMMENT= Advanced, stable IRC daemon, used widely on EFnet
  9. WWW= https://www.ratbox.org/
  10. LICENSE= GPLv2
  11. CONFLICTS= ircd-hybrid ircd-ratbox-devel
  12. USES= cpe libtool sqlite tar:bzip2
  13. CPE_VENDOR= ratbox
  14. USE_RC_SUBR= ircd-ratbox
  15. USE_LDCONFIG= ${PREFIX}/lib/ircd-ratbox
  16. MAKE_JOBS_UNSAFE= yes
  17. USERS= ircd
  18. GROUPS= ${USERS}
  19. LOGDIR?= /var/log/${PORTNAME}
  20. RUNDIR?= /var/run/${PORTNAME}
  21. DBDIR?= /var/db/${PORTNAME}
  22. SUB_FILES= pkg-message
  23. PLIST_SUB= LOGDIR=${LOGDIR} RUNDIR=${RUNDIR} DBDIR=${DBDIR}
  24. SUB_LIST= LOGDIR=${LOGDIR} RUNDIR=${RUNDIR} DBDIR=${DBDIR}
  25. GNU_CONFIGURE= yes
  26. CONFIGURE_ARGS= --with-confdir=${PREFIX}/etc/${PORTNAME} \
  27. --with-logdir=/var/log/${PORTNAME} \
  28. --with-moduledir=${PREFIX}/lib/${PORTNAME}/modules \
  29. --libexecdir=${PREFIX}/libexec \
  30. --with-helpdir=${DATADIR}/help \
  31. --libdir=${PREFIX}/lib/${PORTNAME} \
  32. --with-sqlite3=${LOCALBASE} \
  33. --disable-backups
  34. INSTALL_TARGET= install-strip
  35. PORTDOCS= [^i]*.txt README.* technical/[^i]*.txt Tao-of-IRC.*
  36. #-- Options ------------------------------------------------------------
  37. OPTIONS_DEFINE= OPENSSL IPV6 ZIPLINKS SHARED_MODS ASSERT SMALL_NET \
  38. SERVICES SHORTCUTS DOCS
  39. ZIPLINKS_DESC= Support compressed server links
  40. SHARED_MODS_DESC= Support shared modules
  41. ASSERT_DESC= Enable debugging code
  42. SMALL_NET_DESC= Tune server internals for small networks
  43. SERVICES_DESC= Enable ratbox-services compatibility code
  44. SHORTCUTS_DESC= Build with ircd-shortcut commands
  45. OPTIONS_DEFAULT= OPENSSL ZIPLINKS SHARED_MODS
  46. OPTIONS_EXCLUDE= NLS EXAMPLES
  47. OPTIONS_SUB= yes
  48. ASSERT_CONFIGURE_ENABLE= assert
  49. IPV6_CONFIGURE_ENABLE= ipv6
  50. OPENSSL_USES= ssl
  51. OPENSSL_CONFIGURE_ON= --enable-openssl=${OPENSSLBASE}
  52. OPENSSL_CONFIGURE_OFF= --disable-openssl
  53. SERVICES_CONFIGURE_ENABLE= services
  54. SHARED_MODS_CONFIGURE_ON= --disable-static
  55. SHARED_MODS_CONFIGURE_OFF= --enable-static
  56. SHORTCUTS_USES= perl5
  57. SHORTCUTS_USE= perl5=build
  58. SMALL_NET_CONFIGURE_ENABLE= small-net
  59. ZIPLINKS_CONFIGURE_ENABLE= zlib
  60. #-- User Configuration -------------------------------------------------
  61. .if !empty(NICKLEN)
  62. CONFIGURE_ARGS+= --with-nicklen=${NICKLEN}
  63. .endif
  64. #-----------------------------------------------------------------------
  65. .include <bsd.port.options.mk>
  66. .if ${ARCH} == "i386"
  67. USE_GCC= yes
  68. .endif
  69. post-patch:
  70. .if !defined(WITH_DEBUG)
  71. ${REINPLACE_CMD} 's|@INSTALL@|@INSTALL@ -s|' ${WRKSRC}/install-mod.sh.in
  72. .endif
  73. pre-configure:
  74. @${ECHO_MSG} ""
  75. @${ECHO_MSG} "This port has additional options:"
  76. @${ECHO_MSG} " NICKLEN [default 9, max 50] - Max nick length on server"
  77. @${ECHO_MSG} ""
  78. @${ECHO_MSG} " SERVER_NAME [default 'services.ircd-ratbox.org'] - Name of services"
  79. @${ECHO_MSG} " USER_SERV [default 'USERSERV'] - Name of user registration service"
  80. @${ECHO_MSG} " CHAN_SERV [default 'CHANSERV'] - Name of channel registration serv'"
  81. @${ECHO_MSG} " NICK_SERV [default 'NICKSERV'] - Name of nickname registration serv'"
  82. @${ECHO_MSG} " ALIS_SERV [default 'ALIS'] - Name of channel list service"
  83. @${ECHO_MSG} " OPER_BOT [default 'OPERBOT'] - Name of operbot service"
  84. @${ECHO_MSG} " OPER_SERV [default 'OPERSERV'] - Name of oper command service"
  85. @${ECHO_MSG} " JUPE_SERV [default 'JUPESERV'] - Name of jupe service"
  86. @${ECHO_MSG} " GLOBAL_SERV [default 'GLOBAL'] - Name of global announce service"
  87. @${ECHO_MSG} ""
  88. @${ECHO_MSG} "Press CTRL+C now if you wish to set them."
  89. @${ECHO_MSG} ""
  90. pre-build:
  91. @${REINPLACE_CMD} -e "s#-O2##" ${WRKSRC}/configure
  92. @${REINPLACE_CMD} -e "s#%%PREFIX%%#${PREFIX}#g" \
  93. ${WRKSRC}/doc/example.conf \
  94. ${WRKSRC}/doc/example.efnet.conf
  95. @${REINPLACE_CMD} -e "s#%%LOGDIR%%#${LOGDIR}#g" \
  96. ${WRKSRC}/doc/example.conf \
  97. ${WRKSRC}/doc/example.efnet.conf
  98. @${REINPLACE_CMD} -e "s#%%DBDIR%%#${DBDIR}#g" \
  99. ${WRKSRC}/doc/example.conf \
  100. ${WRKSRC}/doc/example.efnet.conf
  101. @${REINPLACE_CMD} -e "s#%%RUNDIR%%#${RUNDIR}#g" ${WRKSRC}/include/config.h
  102. @${REINPLACE_CMD} -e "s#%%DBDIR%%#${DBDIR}#g" ${WRKSRC}/include/config.h
  103. #-- ircd-shortcut.pl ratbox-services commands --------------------------------------
  104. @${REINPLACE_CMD} -e "s#ALIS#${ALIS_SERV:UALIS}#" \
  105. -e "s#CHANSERV#${CHAN_SERV:UCHANSERV}#" -e "s#GLOBAL#${GLOBAL_SERV:UGLOBAL}#" \
  106. -e "s#JUPESERV#${JUPE_SERV:UJUPESERV}#" -e "s#NICKSERV#${NICK_SERV:UNICKSERV}#" \
  107. -e "s#OPERBOT#${OPER_BOT:UOPERBOT}#" -e "s#USERSERV#${USER_SERV:UUSERSERV}#" \
  108. -e "s#services.ircd-ratbox.org#${SERVER_NAME:Uservices.ircd-ratbox.org}#" \
  109. -e "s#%%WRKSRC%%#${WRKSRC}#g" ${WRKSRC}/contrib/ircd-shortcut.pl
  110. # ----- Execute ircd-shortcut perl script to generate the .c file. -----
  111. .if ${PORT_OPTIONS:MSHORTCUTS}
  112. @${ECHO_MSG} "Executing ircd-shortcut.pl for ircd-shortcuts generation."
  113. ${PERL} ${WRKSRC}/contrib/ircd-shortcut.pl
  114. .endif
  115. post-build:
  116. @cd ${INSTALL_WRKSRC}/contrib && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} \
  117. ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS}
  118. # ----- Need to build the m_rsshortcut.so module for ircd-shortcut.pl ----
  119. .if ${PORT_OPTIONS:MSHORTCUTS}
  120. @${ECHO_MSG} "Building m_rsshortcut.la for ircd-shortcuts."
  121. @cd ${INSTALL_WRKSRC}/contrib && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} \
  122. ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} m_rsshortcut.la
  123. .endif
  124. pre-install:
  125. ${MKDIR} ${STAGEDIR}${ETCDIR}
  126. ${MKDIR} ${STAGEDIR}${DATADIR}/help
  127. ${MKDIR} ${STAGEDIR}${PREFIX}/lib/${PORTNAME}/modules
  128. post-install:
  129. ${MKDIR} ${STAGEDIR}${DOCSDIR}
  130. ${MKDIR} ${STAGEDIR}${RUNDIR}
  131. ${MKDIR} ${STAGEDIR}${DBDIR}
  132. ${MKDIR} ${STAGEDIR}${LOGDIR}
  133. cd ${WRKSRC}/doc && ${INSTALL_DATA} ${PORTDOCS} ${STAGEDIR}${DOCSDIR}
  134. cd ${INSTALL_WRKSRC}/contrib && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} \
  135. ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} ${INSTALL_TARGET}
  136. ${INSTALL_DATA} ${WRKSRC}/doc/ircd.motd ${STAGEDIR}${PREFIX}/etc/${PORTNAME}/ircd.motd.sample
  137. ${INSTALL_DATA} ${WRKSRC}/doc/example.conf ${STAGEDIR}${PREFIX}/etc/${PORTNAME}/ircd.conf.sample
  138. ${INSTALL_DATA} ${WRKSRC}/doc/example.efnet.conf ${STAGEDIR}${PREFIX}/etc/${PORTNAME}/ircd-efnet.conf.sample
  139. ${INSTALL_DATA} ${WRKSRC}/doc/genssl.sh ${STAGEDIR}${PREFIX}/etc/${PORTNAME}/genssl.sh
  140. .if !defined(WITH_DEBUG)
  141. ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/ircd-ratbox/libcore.so
  142. ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/ircd-ratbox/libratbox.so
  143. .endif
  144. # ----- We need to install the shortcut.pl module ----
  145. .if ${PORT_OPTIONS:MSHORTCUTS}
  146. @${ECHO_MSG} "Executing install-mod.sh for ircd-shortcuts module installation."
  147. ${SH} ${WRKSRC}/install-mod.sh ${WRKSRC}/contrib/m_rsshortcut.la \
  148. ${STAGEDIR}${PREFIX}/lib/${PORTNAME}/modules/contrib
  149. .endif
  150. .include <bsd.port.mk>