1############################
2# Makefile for Nagios
3#
4############################
5
6
7# Source code directories
8SRC_COMMON=../common
9SRC_INCLUDE=../include
10SRC_XDATA=../xdata
11SRC_LIB=../lib
12
13CC=@CC@
14CFLAGS=-Wall -I.. @CFLAGS@ @DEFS@ -DNSCORE
15
16# Compiler flags for use with gprof
17#CFLAGS=-pg -I.. -DHAVE_CONFIG_H -DNSCORE
18
19# Compiler flags for use with Valgrind
20#CFLAGS=-O0 -I.. -g -DHAVE_CONFIG_H -DNSCORE
21
22# Compiler flags for optimization (overrides default)
23#CFLAGS=-O3 -Wall -I.. -fno-strict-aliasing -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs -DHAVE_CONFIG_H -DNSCORE
24
25# Compiler flags for optimization (complements default)
26#CFLAGS_WARN=-Wall -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wnested-externs
27#CFLAGS_DEBUG=-ggdb3 -g3
28#CFLAGS_GPROF=-pg
29#CFLAGS+=$(CFLAGS_WARN) $(CFLAGS_DEBUG) $(CFLAGS_GPROF)
30
31LDFLAGS=@LDFLAGS@
32LIBS=@LIBS@
33
34prefix=@prefix@
35exec_prefix=@exec_prefix@
36LOGDIR=@localstatedir@
37CFGDIR=@sysconfdir@
38BINDIR=@bindir@
39CGIDIR=@cgibindir@
40HTMLDIR=@webdir@
41INSTALL=@INSTALL@
42INSTALL_OPTS=@INSTALL_OPTS@
43COMMAND_OPTS=@COMMAND_OPTS@
44STRIP=@STRIP@
45
46CGIURL=@cgiurl@
47HTMURL=@htmurl@
48
49MATHLIBS=-lm
50SOCKETLIBS=@SOCKETLIBS@
51BROKERLIBS=@BROKERLIBS@
52
53BROKER_LDFLAGS=@BROKER_LDFLAGS@
54
55CP=@CP@
56
57# Extra base code
58BASEEXTRALIBS=@BASEEXTRALIBS@
59
60# Generated automatically from configure script
61BROKER_O=@BROKER_O@
62BROKER_H=@BROKER_H@
63
64# Object data
65ODATALIBS=objects-base.o xobjects-base.o
66ODATAHDRS=
67ODATADEPS=$(ODATALIBS)
68
69# Retention data
70RDATALIBS=retention-base.o xretention-base.o
71RDATAHDRS=
72RDATADEPS=$(RDATALIBS)
73
74# Comment data
75CDATALIBS=comments-base.o xcomments-base.o
76CDATAHDRS=
77CDATADEPS=$(CDATALIBS)
78
79# Status data
80SDATALIBS=statusdata-base.o xstatusdata-base.o
81SDATAHDRS=
82SDATADEPS=$(SDATALIBS)
83
84# Performance data
85PDATALIBS=perfdata-base.o xperfdata-base.o
86PDATAHDRS=
87PDATADEPS=$(PDATALIBS)
88
89# Downtime data
90DDATALIBS=downtime-base.o
91DDATAHDRS=
92DDATADEPS=$(DDATALIBS)
93
94
95OBJS=$(BROKER_O) $(SRC_COMMON)/shared.o @NERD_O@ query-handler.o workers.o checks.o config.o commands.o events.o flapping.o logging.o macros-base.o netutils.o notifications.o sehandlers.o utils.o $(RDATALIBS) $(CDATALIBS) $(ODATALIBS) $(SDATALIBS) $(PDATALIBS) $(DDATALIBS) $(BASEEXTRALIBS)
96OBJDEPS=$(ODATADEPS) $(ODATADEPS) $(RDATADEPS) $(CDATADEPS) $(SDATADEPS) $(PDATADEPS) $(DDATADEPS) $(BROKER_H)
97
98all: nagios nagiostats
99
100
101######## REQUIRED FILES ##########
102
103macros-base.o: $(SRC_COMMON)/macros.c $(SRC_INCLUDE)/macros.h
104	$(CC) $(CFLAGS) -c -o $@ $(SRC_COMMON)/macros.c
105
106objects-base.o: $(SRC_COMMON)/objects.c $(SRC_INCLUDE)/objects.h
107	$(CC) $(CFLAGS) -c -o $@ $(SRC_COMMON)/objects.c
108
109xobjects-base.o: $(SRC_XDATA)/xodtemplate.c $(SRC_XDATA)/xodtemplate.h
110	$(CC) $(CFLAGS) -c -o $@ $(SRC_XDATA)/xodtemplate.c
111
112statusdata-base.o: $(SRC_COMMON)/statusdata.c $(SRC_INCLUDE)/statusdata.h
113	$(CC) $(CFLAGS) -c -o $@ $(SRC_COMMON)/statusdata.c
114
115xstatusdata-base.o: $(SRC_XDATA)/xsddefault.c $(SRC_XDATA)/xsddefault.h
116	$(CC) $(CFLAGS) -c -o $@ $(SRC_XDATA)/xsddefault.c
117
118comments-base.o: $(SRC_COMMON)/comments.c $(SRC_INCLUDE)/comments.h
119	$(CC) $(CFLAGS) -c -o $@ $(SRC_COMMON)/comments.c
120
121xcomments-base.o: $(SRC_XDATA)/xcddefault.c $(SRC_XDATA)/xcddefault.h
122	$(CC) $(CFLAGS) -c -o $@ $(SRC_XDATA)/xcddefault.c
123
124downtime-base.o: $(SRC_COMMON)/downtime.c $(SRC_INCLUDE)/downtime.h
125	$(CC) $(CFLAGS) -c -o $@ $(SRC_COMMON)/downtime.c
126
127perfdata-base.o: perfdata.c $(SRC_INCLUDE)/perfdata.h
128	$(CC) $(CFLAGS) -c -o $@ perfdata.c
129
130xperfdata-base.o: $(SRC_XDATA)/xpddefault.c $(SRC_XDATA)/xpddefault.h
131	$(CC) $(CFLAGS) -c -o $@ $(SRC_XDATA)/xpddefault.c
132
133retention-base.o: sretention.c $(SRC_INCLUDE)/sretention.h
134	$(CC) $(CFLAGS) -c -o $@ sretention.c
135
136xretention-base.o: $(SRC_XDATA)/xrddefault.c $(SRC_XDATA)/xrddefault.h
137	$(CC) $(CFLAGS) -c -o $@ $(SRC_XDATA)/xrddefault.c
138
139$(SRC_COMMON)/shared.o: $(SRC_COMMON)/shared.c
140	$(CC) $(CFLAGS) -c -o $@ $<
141
142workers.o: workers.c wpres-phash.h
143	$(CC) $(CFLAGS) -c -o $@ $<
144
145wpres-phash.h: wpres.gperf
146	gperf -S 1 -t -H wpres_key_phash -N wpres_get_key $< > $@
147
148########## NAGIOS ##########
149
150libnagios:
151	$(MAKE) -C $(SRC_LIB)
152
153nagios.o: nagios.c $(SRC_INCLUDE)/nagios.h $(SRC_INCLUDE)/locations.h
154	$(CC) $(CFLAGS) -c -o $@ nagios.c
155
156nagios: nagios.o $(OBJS) $(OBJDEPS) libnagios
157	$(CC) $(CFLAGS) -o $@ $< $(OBJS) $(BROKER_LDFLAGS) $(LDFLAGS) $(MATHLIBS) $(SOCKETLIBS) $(BROKERLIBS) $(LIBS) $(SRC_LIB)/libnagios.a
158
159nagiostats: nagiostats.c $(SRC_INCLUDE)/locations.h libnagios
160	$(CC) $(CFLAGS) -o $@ nagiostats.c $(LDFLAGS) $(MATHLIBS) $(LIBS) $(SRC_LIB)/libnagios.a
161
162$(OBJS): $(SRC_INCLUDE)/locations.h
163
164clean:
165	rm -f nagios nagiostats core *.o gmon.out
166	rm -f *~ *.*~
167
168distclean: clean
169	rm -f perlxsi.c
170	rm -f Makefile
171
172devclean: distclean
173	rm -f wpres-phash.h
174
175install:
176	$(INSTALL) -m 775 $(INSTALL_OPTS) -d $(DESTDIR)$(BINDIR)
177	$(INSTALL) -s -m 774 $(INSTALL_OPTS) @nagios_name@ $(DESTDIR)$(BINDIR)
178	$(INSTALL) -s -m 774 $(INSTALL_OPTS) @nagiostats_name@ $(DESTDIR)$(BINDIR)
179
180install-unstripped:
181	$(INSTALL) -m 775 $(INSTALL_OPTS) -d $(DESTDIR)$(BINDIR)
182	$(INSTALL) -m 774 $(INSTALL_OPTS) nagios $(DESTDIR)$(BINDIR)
183	$(INSTALL) -m 774 $(INSTALL_OPTS) nagiostats $(DESTDIR)$(BINDIR)
184
185.PHONY: libnagios
186