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