1XYMONLIB = ../lib/libxymon.a
2XYMONLIBS = $(XYMONLIB)
3XYMONCOMMLIB = ../lib/libxymoncomm.a
4XYMONCOMMLIBS = $(XYMONCOMMLIB) $(SSLLIBS) $(NETLIBS) $(LIBRTDEF)
5XYMONTIMELIB = ../lib/libxymontime.a
6XYMONTIMELIBS = $(XYMONTIMELIB) $(LIBRTDEF)
7
8PROGRAMS = history.cgi eventlog.cgi report.cgi reportlog.cgi snapshot.cgi findhost.cgi csvinfo.cgi acknowledge.cgi xymonpage datepage.cgi svcstatus.cgi enadis.cgi confreport.cgi criticalview.cgi criticaleditor.cgi ackinfo.cgi statusreport.cgi boilerplate.cgi hostgraphs.cgi ghostlist.cgi notifications.cgi acknowledgements.cgi hostlist.cgi useradm.cgi chpasswd.cgi appfeed.cgi cgiwrap
9CGISCRIPTS = history.sh eventlog.sh report.sh reportlog.sh snapshot.sh findhost.sh csvinfo.sh columndoc.sh datepage.sh svcstatus.sh historylog.sh confreport.sh confreport-critical.sh criticalview.sh certreport.sh nongreen.sh hostgraphs.sh ghostlist.sh notifications.sh acknowledgements.sh hostlist.sh topchanges.sh appfeed.sh appfeed-critical.sh
10SECCGISCRIPTS = acknowledge.sh enadis.sh criticaleditor.sh ackinfo.sh useradm.sh chpasswd.sh
11
12ifeq ($(DORRD),yes)
13	PROGRAMS += showgraph.cgi perfdata.cgi
14	CGISCRIPTS += showgraph.sh perfdata.sh
15endif
16
17CGIWRAPOBJS     = cgiwrap.o
18HISTOBJS        = history.o
19EVENTLOGOBJS    = eventlog.o
20REPOBJS         = report.o
21REPLOGOBJS      = reportlog.o
22SNAPOBJS        = snapshot.o
23FINDHOSTOBJS    = findhost.o
24CSVINFOOBJS     = csvinfo.o
25ACKCGIOBJS      = acknowledge.o
26WEBPAGEOBJS     = xymonpage.o
27DATEPAGEOBJS    = datepage.o
28APPFEEDOBJS	= appfeed.o
29
30SHOWGRAPHOBJS   = showgraph.o
31SVCSTATUSOBJS   = svcstatus.o svcstatus-info.o svcstatus-trends.o
32ENADISOBJS      = enadis.o
33CRITVIEWOBJS    = criticalview.o
34CRITEDITOBJS    = criticaleditor.o
35ACKINFOOBJS     = ackinfo.o
36CONFREPOBJS     = confreport.o
37STATUSREPOBJS   = statusreport.o
38MAILACKOBJS     = xymon-mailack.o
39GHOSTOBJS       = ghostlist.o
40NOTIFYOBJS      = notifications.o
41ACKNOWLEDGEOBJS = acknowledgements.o
42HOSTLISTOBJS    = hostlist.o
43PERFDATAOBJS	= perfdata.o
44USERADMOBJS	= useradm.o
45CHPASSWDOBJS	= chpasswd.o
46
47HOSTGRAPHSOBJS  = hostgraphs.o
48BOILERPLATEOBJS = boilerplate.o
49
50
51IDTOOL := $(shell if test `uname -s` = "SunOS"; then echo /usr/xpg4/bin/id; else echo id; fi)
52
53
54all: $(PROGRAMS)
55
56cgiwrap.o: cgiwrap.c
57	$(CC) $(CFLAGS) -DXYMONHOME=\"$(XYMONHOME)\" -c -o $@ $<
58
59cgiwrap: $(CGIWRAPOBJS) $(XYMONCOMMLIB)
60	$(CC) $(CFLAGS) -o $@ $(CGIWRAPOBJS) $(XYMONCOMMLIBS) $(PCRELIBS)
61
62history.cgi: $(HISTOBJS) $(XYMONCOMMLIB)
63	$(CC) $(CFLAGS) -o $@ $(HISTOBJS) $(XYMONCOMMLIBS) $(PCRELIBS)
64
65eventlog.cgi: $(EVENTLOGOBJS) $(XYMONCOMMLIB)
66	$(CC) $(CFLAGS) -o $@ $(EVENTLOGOBJS) $(XYMONCOMMLIBS) $(PCRELIBS)
67
68report.cgi: $(REPOBJS) $(XYMONCOMMLIB)
69	$(CC) $(CFLAGS) -o $@ $(REPOBJS) $(XYMONCOMMLIBS) $(PCRELIBS)
70
71reportlog.cgi: $(REPLOGOBJS) $(XYMONCOMMLIB)
72	$(CC) $(CFLAGS) -o $@ $(REPLOGOBJS) $(XYMONCOMMLIBS) $(PCRELIBS)
73
74snapshot.cgi: $(SNAPOBJS) $(XYMONCOMMLIB)
75	$(CC) $(CFLAGS) -o $@ $(SNAPOBJS) $(XYMONCOMMLIBS) $(PCRELIBS)
76
77findhost.cgi: $(FINDHOSTOBJS) $(XYMONCOMMLIB)
78	$(CC) $(CFLAGS) -o $@ $(FINDHOSTOBJS) $(XYMONCOMMLIBS) $(PCRELIBS)
79
80csvinfo.cgi: $(CSVINFOOBJS) $(XYMONCOMMLIB)
81	$(CC) $(CFLAGS) -o $@ $(CSVINFOOBJS) $(XYMONCOMMLIBS) $(PCRELIBS)
82
83acknowledge.cgi: $(ACKCGIOBJS) $(XYMONCOMMLIB)
84	$(CC) $(CFLAGS) -o $@ $(ACKCGIOBJS) $(XYMONCOMMLIBS) $(PCRELIBS)
85
86xymonpage: $(WEBPAGEOBJS) $(XYMONCOMMLIB)
87	$(CC) $(CFLAGS) -o $@ $(WEBPAGEOBJS) $(XYMONCOMMLIBS) $(PCRELIBS)
88
89datepage.cgi: $(DATEPAGEOBJS) $(XYMONCOMMLIB)
90	$(CC) $(CFLAGS) -o $@ $(DATEPAGEOBJS) $(XYMONCOMMLIBS) $(PCRELIBS)
91
92showgraph.o: showgraph.c
93	$(CC) $(CFLAGS) $(PCREINCDIR) $(RRDDEF) $(RRDINCDIR) -c -o $@ $<
94
95# Need NETLIBS on Solaris for getservbyname(), called by parse_url()
96showgraph.cgi: $(SHOWGRAPHOBJS) $(XYMONCOMMLIB)
97	$(CC) $(CFLAGS) -o $@ $(RPATHOPT) $(SHOWGRAPHOBJS) $(XYMONCOMMLIBS) $(PCRELIBS) $(RRDLIBS)
98
99svcstatus.cgi: $(SVCSTATUSOBJS) $(XYMONCOMMLIB)
100	$(CC) $(CFLAGS) -o $@ $(SVCSTATUSOBJS) $(XYMONCOMMLIBS) $(PCRELIBS)
101
102enadis.cgi: $(ENADISOBJS) $(XYMONCOMMLIB)
103	$(CC) $(CFLAGS) -o $@ $(ENADISOBJS) $(XYMONCOMMLIBS) $(PCRELIBS)
104
105statusreport.cgi: $(STATUSREPOBJS) $(XYMONCOMMLIB)
106	$(CC) $(CFLAGS) -o $@ $(STATUSREPOBJS) $(XYMONCOMMLIBS) $(PCRELIBS)
107
108confreport.cgi: $(CONFREPOBJS) $(XYMONCOMMLIB)
109	$(CC) $(CFLAGS) -o $@ $(CONFREPOBJS) $(XYMONCOMMLIBS) $(PCRELIBS)
110
111criticalview.cgi: $(CRITVIEWOBJS) $(XYMONCOMMLIB)
112	$(CC) $(CFLAGS) -o $@ $(RPATHOPT) $(CRITVIEWOBJS) $(XYMONCOMMLIBS) $(PCRELIBS)
113
114criticalview.o: criticalview.c
115	$(CC) $(CFLAGS) $(PCREINCDIR) -c -o $@ $<
116
117criticaleditor.cgi: $(CRITEDITOBJS) $(XYMONCOMMLIB)
118	$(CC) $(CFLAGS) -o $@ $(RPATHOPT) $(CRITEDITOBJS) $(XYMONCOMMLIBS) $(PCRELIBS)
119
120ackinfo.cgi: $(ACKINFOOBJS) $(XYMONCOMMLIB)
121	$(CC) $(CFLAGS) -o $@ $(RPATHOPT) $(ACKINFOOBJS) $(XYMONCOMMLIBS)
122
123boilerplate.cgi: $(BOILERPLATEOBJS) $(XYMONCOMMLIB)
124	$(CC) $(CFLAGS) -o $@ $(RPATHOPT) $(BOILERPLATEOBJS) $(XYMONCOMMLIBS) $(PCRELIBS)
125
126hostgraphs.cgi: $(HOSTGRAPHSOBJS) $(XYMONCOMMLIB)
127	$(CC) $(CFLAGS) -o $@ $(RPATHOPT) $(HOSTGRAPHSOBJS) $(XYMONCOMMLIBS) $(PCRELIBS)
128
129ghostlist.cgi: $(GHOSTOBJS) $(XYMONCOMMLIB)
130	$(CC) $(CFLAGS) -o $@ $(RPATHOPT) $(GHOSTOBJS) $(XYMONCOMMLIBS) $(PCRELIBS)
131
132notifications.cgi: $(NOTIFYOBJS) $(XYMONCOMMLIB)
133	$(CC) $(CFLAGS) -o $@ $(RPATHOPT) $(NOTIFYOBJS) $(XYMONCOMMLIBS) $(PCRELIBS)
134
135acknowledgements.cgi: $(ACKNOWLEDGEOBJS) $(XYMONCOMMLIB)
136	$(CC) $(CFLAGS) -o $@ $(RPATHOPT) $(ACKNOWLEDGEOBJS) $(XYMONCOMMLIBS) $(PCRELIBS)
137
138hostlist.cgi: $(HOSTLISTOBJS) $(XYMONCOMMLIB)
139	$(CC) $(CFLAGS) -o $@ $(RPATHOPT) $(HOSTLISTOBJS) $(XYMONCOMMLIBS) $(PCRELIBS)
140
141perfdata.o: perfdata.c
142	$(CC) $(CFLAGS) $(PCREINCDIR) $(RRDDEF) $(RRDINCDIR) -c -o $@ $<
143
144# Need -lm on perfdata because it refers to isnan()
145perfdata.cgi: $(PERFDATAOBJS) $(XYMONCOMMLIB)
146	$(CC) $(CFLAGS) -o $@ $(RPATHOPT) $(PERFDATAOBJS) $(XYMONCOMMLIBS) $(PCRELIBS) $(RRDLIBS) -lm
147
148useradm.cgi: $(USERADMOBJS) $(XYMONCOMMLIB)
149	$(CC) $(CFLAGS) -o $@ $(RPATHOPT) $(USERADMOBJS) $(XYMONCOMMLIBS) $(PCRELIBS)
150
151chpasswd.cgi: $(CHPASSWDOBJS) $(XYMONCOMMLIB)
152	$(CC) $(CFLAGS) -o $@ $(RPATHOPT) $(CHPASSWDOBJS) $(XYMONCOMMLIBS) $(PCRELIBS)
153
154appfeed.cgi: $(APPFEEDOBJS) $(XYMONLIB)
155	$(CC) $(CFLAGS) -o $@ $(RPATHOPT) $(APPFEEDOBJS) $(XYMONCOMMLIBS) $(XYMONLIBS) $(PCRELIBS)
156
157
158%.o: %.c
159	$(CC) $(CFLAGS) -c -o $@ $<
160
161
162clean:
163	rm -f $(PROGRAMS) *.o *~
164
165install: install-bin install-cgi install-man
166
167install-bin:
168ifndef PKGBUILD
169	chown $(XYMONUSER) $(PROGRAMS)
170	chgrp `$(IDTOOL) -g $(XYMONUSER)` $(PROGRAMS)
171	chmod 755 $(PROGRAMS)
172endif
173	cp -fp $(PROGRAMS) $(INSTALLROOT)$(INSTALLBINDIR)/
174
175install-cgi:
176	mkdir -p $(INSTALLROOT)$(CGIDIR)
177	mkdir -p $(INSTALLROOT)$(SECURECGIDIR)
178ifndef PKGBUILD
179	for F in $(CGISCRIPTS); do ln -f $(INSTALLROOT)$(INSTALLBINDIR)/cgiwrap $(INSTALLROOT)$(CGIDIR)/$$F; done
180	for F in $(SECCGISCRIPTS); do ln -f $(INSTALLROOT)$(INSTALLBINDIR)/cgiwrap $(INSTALLROOT)$(SECURECGIDIR)/$$F; done
181else
182	for F in $(CGISCRIPTS); do ln -f $(INSTALLROOT)$(INSTALLBINDIR)/cgiwrap $(INSTALLROOT)$(CGIDIR)/$$F; done
183	for F in $(SECCGISCRIPTS); do ln -f $(INSTALLROOT)$(INSTALLBINDIR)/cgiwrap $(INSTALLROOT)$(SECURECGIDIR)/$$F; done
184endif
185
186install-man:
187ifndef PKGBUILD
188	chown $(XYMONUSER) *.1 *.5 *.8
189	chgrp `$(IDTOOL) -g $(XYMONUSER)` *.1 *.5 *.8
190	chmod 644 *.1 *.5 *.8
191endif
192	mkdir -p $(INSTALLROOT)$(MANROOT)/man1 $(INSTALLROOT)$(MANROOT)/man5 $(INSTALLROOT)$(MANROOT)/man8
193ifndef PKGBUILD
194	chown $(XYMONUSER) $(INSTALLROOT)$(MANROOT)/man1 $(INSTALLROOT)$(MANROOT)/man5 $(INSTALLROOT)$(MANROOT)/man8
195	chgrp `$(IDTOOL) -g $(XYMONUSER)` $(INSTALLROOT)$(MANROOT)/man1 $(INSTALLROOT)$(MANROOT)/man5 $(INSTALLROOT)$(MANROOT)/man8
196	chmod 755 $(INSTALLROOT)$(MANROOT)/man1 $(INSTALLROOT)$(MANROOT)/man5 $(INSTALLROOT)$(MANROOT)/man8
197endif
198	cp -fp *.1 $(INSTALLROOT)$(MANROOT)/man1/
199	cp -fp *.5 $(INSTALLROOT)$(MANROOT)/man5/
200	cp -fp *.8 $(INSTALLROOT)$(MANROOT)/man8/
201
202