aboutsummaryrefslogtreecommitdiffstats
path: root/sysutils/apcupsd/Makefile
blob: ddf30da426032183daf243aff5e8dbec90440d77 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
# New ports collection makefile for:    apcupsd
# Date created:     1.12.2001
# Whom:         Lars Köller <Lars.Koeller@Uni-Bielefeld.DE>
#
# $FreeBSD$
#

PORTNAME=   apcupsd
PORTVERSION=    3.10.11
PORTREVISION=   1
CATEGORIES= sysutils
MASTER_SITES=   ${MASTER_SITE_SOURCEFORGE}
MASTER_SITE_SUBDIR= ${PORTNAME}

MAINTAINER= Lars.Koeller@Uni-Bielefeld.de
COMMENT=    A daemon for controlling APC UPS

USE_GETTEXT=    yes
USE_REINPLACE=  yes

STARTUP_SCRIPT= apcupsd.sh.sample
PLIST_SUB=  STARTUP_SCRIPT=${STARTUP_SCRIPT}

HAS_CONFIGURE=  yes
CONFIGURE_ARGS= --prefix=${PREFIX} --sbindir=${PREFIX}/sbin \
        --with-nologin=/var/run \
        --disable-install-distdir --enable-usb \
        --sysconfdir=${PREFIX}/etc/apcupsd \
        --with-serial-dev=/dev/usv

OPTIONS=    CLIENT_ONLY "Build apcupsd client only (no network server)" off
OPTIONS+=       CGI "Compile with CGI programms to show status" off

.include <bsd.port.pre.mk>

# We need this below
CONF_FILES=apcupsd.conf

.if defined(WITH_CGI)
CONFIGURE_ARGS+=--enable-cgi --with-cgi-bin=${PREFIX}/etc/apcupsd/cgi
LIB_DEPENDS+=   gd.4:${PORTSDIR}/graphics/gd
PLIST_SUB+= CGI=""
CONF_FILES+=    multimon.conf hosts.conf
.else
PLIST_SUB+= CGI="@comment "
.endif

.if defined(WITH_CLIENT_ONLY)
CONFIGURE_ARGS+=--enable-net
.else
CONFIGURE_ARGS+=--enable-master-slave
.endif

CONFIGURE_ENV=  CPPFLAGS="-I${LOCALBASE}/include -L${LOCALBASE}/lib" \
        CFLAGS="-I${LOCALBASE}/include -L${LOCALBASE}/lib"   \
        LDFLAGS="-L${LOCALBASE}/lib"

# Cause FreeBSD 3.X misses libmenu, libforms and libpanel (curses)
.if ${OSVERSION} > 400000
CONFIGURE_ARGS+=--enable-powerflute --with-libwrap=yes
PLIST_SUB+= POWERFL=""
.else
PLIST_SUB+= POWERFL="@comment "
.endif

MAN8=       "apcupsd.8"

PORTDOCS=   apcupsd.pdf manual.html manual.css \
        apcupsd.png back.png charging.png home.png main_configs.png \
        multimon.png next.png onbatt.png online.png status.png thanks.png \
        wininstall1.png wininstall2.png wininstall3.png wininstall4.png \
        wininstall5.png wininstall6.png wininstall7.png

pre-everything::
    @${ECHO_MSG} ""
    @${ECHO_MSG} "You may use the following build options:"
    @${ECHO_MSG} ""
    @${ECHO_MSG} "  WITH_CGI=yes        if you want to build CGI support."
    @${ECHO_MSG} "  WITH_CLIENT_ONLY=yes    if you only want a network client."
    @${ECHO_MSG} ""
.if defined(WITH_CGI)
    @${ECHO_MSG} "===> Building with CGI support."
.endif
.if defined(WITH_CLIENT_ONLY)
    @${ECHO_MSG} "===> Building network client."
.endif

post-configure:
    ${REINPLACE_CMD} -e "s|%PREFIX%|${PREFIX}|g" ${WRKSRC}/doc/apcupsd.man

post-install:
    # Check if the install presaves the configuration files
    for na in ${CONF_FILES}; do \
        if [ -f ${PREFIX}/etc/apcupsd/$$na.new ]; then \
            ${ECHO_CMD} "etc/apcupsd/$$na.new" >> ${TMPPLIST}; \
            if cmp -s ${PREFIX}/etc/apcupsd/$$na.new ${PREFIX}/etc/apcupsd/$$na; then \
                ${ECHO_CMD} "etc/apcupsd/$$na" >> ${TMPPLIST}; \
            fi \
        else \
            ${ECHO_CMD} "etc/apcupsd/$$na" >> ${TMPPLIST}; \
        fi; \
    done
    # If the files presaved are identical with the new one, include then in
    # the package list. So the port could be removed without problems
    for na in apccontrol commfailure mainsback mastertimeout \
          changeme commok masterconnect onbattery; do \
        if [ -f ${PREFIX}/etc/apcupsd/$$na.orig ]; then \
            if cmp -s ${PREFIX}/etc/apcupsd/$$na ${PREFIX}/etc/apcupsd/$$na.orig; then \
                ${ECHO_CMD} "etc/apcupsd/$$na.orig" >> ${TMPPLIST}; \
            fi \
        fi; \
    done
    ${ECHO_CMD} "@dirrm etc/apcupsd" >> ${TMPPLIST}
    ${ECHO_CMD} "@unexec if [ -d %D/etc/apcupsd ]; then echo \"If you are permanently removing this port, you should do a ``rm -rf ${PREFIX}/etc/apcupsd`` to remove config files left.\" | fmt ; fi" >> ${TMPPLIST}
    # Install sample startup script
    ${INSTALL_SCRIPT} ${FILESDIR}/${STARTUP_SCRIPT} ${PREFIX}/etc/rc.d/${STARTUP_SCRIPT}
    ${INSTALL_DATA} ${FILESDIR}/apcupsd.conf.net-master.sample ${PREFIX}/etc/apcupsd/
    ${INSTALL_DATA} ${FILESDIR}/apcupsd.conf.net-slave.sample ${PREFIX}/etc/apcupsd/

.if !defined(NOPORTDOCS)
    @${MKDIR} ${DOCSDIR}
.for filen in ${PORTDOCS}
    ${INSTALL_DATA} ${WRKSRC}/doc/docbook/${filen} ${DOCSDIR}
.endfor
.endif

.include <bsd.port.post.mk>