freebsd-ports/net-mgmt/netams/Makefile

251 lines
8.7 KiB
Makefile

# New ports collection makefile for: NetAMS
# Date created: 24 December 2003
# Whom: jura@netams.com
#
# $FreeBSD$
#
PORTNAME= netams
DISTVERSION= 3.4.1rc1
CATEGORIES= net-mgmt
MASTER_SITES= http://www.netams.com/files/
MAINTAINER= jura@netams.com
COMMENT= Network Traffic Accounting and Monitoring Software
USE_SUBMAKE= yes
USE_RC_SUBR= netams
MANCOMPRESSED= no
SUB_FILES= pkg-message
OPTIONS= DEBUG "Build with debug symbols" off \
BW "Build with bandwidth limitation functionality" on \
HASH "Build with HASH storage support" off \
MYSQL "Build with MySQL storage support" on \
POSTGRESQL "Build with PostgreSQL storage support" off \
FREERADIUS "Build with FreeRadius and rlm module" off \
CGI "Install admin/user CGI scripts" off
SCRIPTS_ENV= WRKDIRPREFIX="${WRKDIRPREFIX}" \
PREFIX="${PREFIX}" \
TOUCH="${TOUCH}" \
MKDIR="${MKDIR}" \
REALCURDIR="${.CURDIR}"
ADMINCGI= .htaccess access.cgi account.cgi billing_users_table.sql cardtool.cgi \
config.cgi graph.cgi index.cgi login.cgi monitor.cgi netams.cgi \
plan.cgi policy.cgi quota.cgi radius.cgi rrdgraph.cgi russian.res \
showusercard.cgi showusercard.tmpl statistic.cgi subplan.cgi unit.cgi \
user.cgi view.cgi
USERCGI= .htaccess activate.cgi activate.tmpl admintool.cgi config.cgi \
login.cgi netams_api.pl netams_example.cgi netams_graph.cgi \
netams_html.cgi russian.res statistic.pl usertool.cgi
IMAGES= admintool-logo.gif logo-small.gif logo.gif logo_sm.jpg rrdgraph-logo.gif \
showtable-logo.gif
MAN8= netams.8 flowprobe.8 netamsctl.8
.include <bsd.port.pre.mk>
.if ${ARCH} != "i386"
BROKEN= does not compile
.elif ${OSVERSION} >= 800000
BROKEN= does not compile
.endif
PLIST_FILES+= etc/netams.conf.sample \
libexec/netams \
sbin/flowprobe \
sbin/ipfw2netflow \
sbin/ascii2netflow \
bin/netamsctl \
%%DATADIR%%/ru-networks.txt.sample \
%%DATADIR%%/.netamsctl.rc \
%%DATADIR%%/netams-netgraphctl.sh \
%%DATADIR%%/netams-startup-failover.sh \
%%DATADIR%%/ua-networks-get.sh \
%%DATADIR%%/snmp2netams.pl \
%%DATADIR%%/subnet-sum.c \
%%DATADIR%%/TODO.txt
.if defined(WITH_MYSQL)
USE_MYSQL= yes
IGNORE_WITH_MYSQL= 323
PLIST_FILES+= %%DATADIR%%/cardtool_schema.sql \
%%DATADIR%%/mysql_rotate.pl
.endif
.if defined(WITH_POSTGRESQL)
USE_PGSQL= yes
PLIST_FILES+= %%DATADIR%%/cardtool_schema-Pg.sql \
%%DATADIR%%/postgresql_schema.sql
.endif
.if defined(WITH_FREERADIUS)
FREERADIUS_VERSION=`${CAT} ${PORTSDIR}/net/freeradius/Makefile|grep PORTVERSION?=|${SED} -n 's|PORTVERSION?=[^0-9]*\([0-9\.]*\)|\1|p'`
RUN_DEPENDS+= freeradius>=1.1.7:${PORTSDIR}/net/freeradius
PLIST_FILES+= lib/rlm_netams.a \
lib/rlm_netams.la \
lib/rlm_netams.so \
lib/rlm_netams-${FREERADIUS_VERSION}.la \
lib/rlm_netams-${FREERADIUS_VERSION}.so \
%%DATADIR%%/README.radius
.endif
.if defined(WITH_CGI)
USE_APACHE= 1.3+
USE_PERL5= yes
.for f in ${IMAGES}
PLIST_FILES+= %%WWWDIR%%/cgi-bin/images/${f}
.endfor
.for f in ${USERCGI}
PLIST_FILES+= %%WWWDIR%%/cgi-bin/${f}
.endfor
.for f in ${ADMINCGI}
PLIST_FILES+= %%WWWDIR%%/cgi-bin/admin/${f}
.endfor
PLIST_FILES+= %%WWWDIR%%/index.html \
%%DATADIR%%/httpd.conf
.endif
PLIST_FILES+= "@unexec ${RMDIR} %D/www/netams/cgi-bin/images 2>/dev/null || ${TRUE}" \
"@unexec ${RMDIR} %D/www/netams/cgi-bin/admin 2>/dev/null || ${TRUE}" \
"@unexec ${RMDIR} %D/www/netams/cgi-bin 2>/dev/null || ${TRUE}" \
"@unexec ${RMDIR} %D/www/netams 2>/dev/null || ${TRUE}" \
"@unexec ${RMDIR} %D/share/netams 2>/dev/null || ${TRUE}"
pre-patch:
.if defined(WITH_DEBUG)
@${REINPLACE_CMD} -e 's|#\(echo.*Memory_debug.*DEFINE += -DMEMORY_DEBUG.*\)|\1|' \
${WRKSRC}/configure.sh
@${REINPLACE_CMD} -e 's|#\(echo.*Mutex_debug.*DEFINE += -DMUTEX_DEBUG.*\)|\1|' \
${WRKSRC}/configure.sh
.else
@${REINPLACE_CMD} -e 's|.*sh configure.sh|& -nodebug|' \
${WRKSRC}/Makefile
.endif
.if defined(WITHOUT_BW)
@${REINPLACE_CMD} -e 's|.*BW_limit.*DEFINE += -DHAVE_BW.*|#&|' \
${WRKSRC}/configure.sh
.endif
.if defined(WITH_HASH)
@${REINPLACE_CMD} -e 's|#\(echo.*Hash_database.*DEFINE += -DUSE_HASH.*\)|\1|' \
${WRKSRC}/configure.sh
.endif
@${REINPLACE_CMD} -e 's|^CC.*|CC=${CXX}|; s|^CPP.*|CPP=${CXX}|' \
${WRKSRC}/src/Makefile
@${REINPLACE_CMD} -e 's|^CC.*|CC=${CC}|; s|^CPP.*|CPP=${CXX}|' \
${WRKSRC}/lib/Makefile \
${WRKSRC}/lib/libipulog/Makefile
.if defined(WITHOUT_MYSQL)
@${REINPLACE_CMD} -e 's|locate_file "libmysqlclient\.so".*|v1="" \&\& v2=""|' \
${WRKSRC}/configure.sh
.endif
.if defined(WITHOUT_POSTGRESQL)
@${REINPLACE_CMD} -e 's|locate_file "libpq\.so".*|v1="" \&\& v2=""|' \
${WRKSRC}/configure.sh
.endif
.if defined(WITHOUT_FREERADIUS)
@${REINPLACE_CMD} -e 's|locate_file "openssl\/md5\.h".*|v1=""|; s|echo "No RADIUS support.*|| ' \
${WRKSRC}/configure.sh
.endif
pre-install:
.if defined(WITH_FREERADIUS)
@cd ${PORTSDIR}/net/freeradius/ && make
@${FIND} ${PORTSDIR}/net/freeradius/ -type d -name "freeradius*" -exec ${CP} -R ${WRKSRC}/addon/rlm_netams '{}'/src/modules/ \;
@cd `${FIND} ${PORTSDIR}/net/freeradius/ -type d -name "freeradius*"`/src/modules/rlm_netams && ${GMAKE} && ${GMAKE} install
.endif
do-install:
${MKDIR} ${DATADIR}
${INSTALL_PROGRAM} ${WRKSRC}/src/netams ${PREFIX}/libexec/netams
${INSTALL_PROGRAM} ${WRKSRC}/src/flowprobe ${PREFIX}/sbin/flowprobe
${INSTALL_PROGRAM} ${WRKSRC}/src/ipfw2netflow ${PREFIX}/sbin/ipfw2netflow
${INSTALL_PROGRAM} ${WRKSRC}/src/ascii2netflow ${PREFIX}/sbin/ascii2netflow
${INSTALL_PROGRAM} ${WRKSRC}/src/netamsctl ${PREFIX}/bin/netamsctl
${INSTALL_DATA} ${WRKSRC}/addon/netams.conf ${PREFIX}/etc/netams.conf.sample
${INSTALL_DATA} ${WRKSRC}/addon/ru-networks.txt ${DATADIR}/ru-networks.txt.sample
${INSTALL_DATA} ${WRKSRC}/addon/.netamsctl.rc ${DATADIR}
${INSTALL_DATA} ${WRKSRC}/addon/netams-netgraphctl.sh ${DATADIR}
${CHMOD} 0755 ${DATADIR}/netams-netgraphctl.sh
${INSTALL_DATA} ${WRKSRC}/addon/netams-startup-failover.sh ${DATADIR}
${CHMOD} 0755 ${DATADIR}/netams-startup-failover.sh
${INSTALL_DATA} ${WRKSRC}/addon/ua-networks-get.sh ${DATADIR}
${CHMOD} 0755 ${DATADIR}/ua-networks-get.sh
@${REINPLACE_CMD} -e 's|^#!/usr/bin/perl|#!/usr/local/bin/perl|' ${WRKSRC}/addon/snmp2netams.pl
${INSTALL_DATA} ${WRKSRC}/addon/snmp2netams.pl ${DATADIR}
${CHMOD} 0755 ${DATADIR}/snmp2netams.pl
${INSTALL_DATA} ${WRKSRC}/addon/subnet-sum.c ${DATADIR}
${INSTALL_DATA} ${WRKSRC}/doc/TODO.txt ${DATADIR}
.if defined(WITH_MYSQL)
${INSTALL_DATA} ${WRKSRC}/addon/cardtool_schema.sql ${DATADIR}
@${REINPLACE_CMD} -e 's|^#!/usr/bin/perl|#!/usr/local/bin/perl|' ${WRKSRC}/addon/mysql_rotate.pl
${INSTALL_DATA} ${WRKSRC}/addon/mysql_rotate.pl ${DATADIR}
${CHMOD} 0755 ${DATADIR}/mysql_rotate.pl
.endif
.if defined(WITH_POSTGRESQL)
${INSTALL_DATA} ${WRKSRC}/addon/cardtool_schema-Pg.sql ${DATADIR}
${INSTALL_DATA} ${WRKSRC}/addon/postgresql_schema.sql ${DATADIR}
.endif
.if defined(WITH_CGI)
${INSTALL_DATA} ${WRKSRC}/addon/netams-apache ${DATADIR}/httpd.conf
${MKDIR} ${WWWDIR}/cgi-bin/admin ${WWWDIR}/cgi-bin/images
${INSTALL_DATA} ${WRKSRC}/addon/index.html ${WWWDIR}
.for f in ${IMAGES}
${INSTALL_DATA} ${WRKSRC}/cgi-bin/images/${f} ${WWWDIR}/cgi-bin/images
.endfor
.for f in ${USERCGI}
@${REINPLACE_CMD} -e 's|^#!/usr/bin/perl|#!/usr/local/bin/perl|' ${WRKSRC}/cgi-bin/${f}
${INSTALL_DATA} ${WRKSRC}/cgi-bin/${f} ${WWWDIR}/cgi-bin
.endfor
.for f in ${ADMINCGI}
@${REINPLACE_CMD} -e 's|^#!/usr/bin/perl|#!/usr/local/bin/perl|' ${WRKSRC}/cgi-bin/admin/${f}
${INSTALL_DATA} ${WRKSRC}/cgi-bin/admin/${f} ${WWWDIR}/cgi-bin/admin
.endfor
@${FIND} ${WWWDIR} -name *.cgi | ${XARGS} ${CHMOD} 755
@${FIND} ${WWWDIR} -name *.pl | ${XARGS} ${CHMOD} 755
.endif
.if defined(WITH_FREERADIUS)
${INSTALL_DATA} ${WRKSRC}/addon/rlm_netams/README ${DATADIR}/README.radius
.endif
.for f in ${MAN8}
${INSTALL_MAN} ${WRKSRC}/doc/${f} ${MAN8PREFIX}/man/man8
.endfor
post-install:
.if defined(WITH_FREERADIUS)
cd ${PORTSDIR}/net/freeradius/ && make clean
.endif
@${CAT} ${PKGMESSAGE}
.if defined(WITH_CGI)
@${ECHO_MSG} "By default, CGI scripts are installed to ${WWWDIR},"
@${ECHO_MSG} "but web server NOT configured!!! You should do it yourself according to"
@${ECHO_MSG} "example ${DATADIR}/httpd.conf."
@${ECHO_MSG} ""
.endif
.if defined(WITH_FREERADIUS)
@${ECHO_MSG} "Radius module has been installed. But you should configure it yourself"
@${ECHO_MSG} "according to example ${DATADIR}/README.radius."
@${ECHO_MSG} ""
.endif
@${ECHO_MSG} "And PLEASE READ THE DOCUMENTATION FIRST!"
@${ECHO_MSG} "http://www.netams.com"
@${ECHO_MSG} ""
@${ECHO_MSG} "----------------------------------------------------------------------------"
@${ECHO_MSG} "WARNING!"
@${ECHO_MSG} "From version 3.4.1 name of default netams configuration
@${ECHO_MSG} "file changed to netams.conf!"
@${ECHO_MSG} "----------------------------------------------------------------------------"
.include <bsd.port.post.mk>