231 lines
		
	
	
	
		
			7.7 KiB
		
	
	
	
		
			Makefile
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			231 lines
		
	
	
	
		
			7.7 KiB
		
	
	
	
		
			Makefile
		
	
	
		
			Executable file
		
	
	
	
	
#!/usr/bin/make -f
 | 
						|
# -*- makefile -*-
 | 
						|
# Sample debian/rules that uses debhelper.
 | 
						|
# GNU copyright 1997 to 1999 by Joey Hess.
 | 
						|
 | 
						|
# Uncomment this to turn on verbose mode.
 | 
						|
#export DH_VERBOSE=1
 | 
						|
 | 
						|
# enable hardnening
 | 
						|
export DEB_BUILD_HARDENING=1
 | 
						|
 | 
						|
PACKAGE = monitoring-plugins
 | 
						|
 | 
						|
# These are used for cross-compiling and for saving the configure script
 | 
						|
# from having to guess our platform (since we know it already)
 | 
						|
DEB_HOST_GNU_TYPE   ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
 | 
						|
DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
 | 
						|
DEB_HOST_ARCH_OS    ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_OS)
 | 
						|
 | 
						|
CFLAGS = -Wall -g
 | 
						|
 | 
						|
DEBIANDIR=$(CURDIR)/debian
 | 
						|
NP_LIBEXEC:=/usr/lib/nagios/plugins
 | 
						|
NP_COMMON_DIR:=$(DEBIANDIR)/monitoring-plugins-common
 | 
						|
NP_BASIC_DIR:=$(DEBIANDIR)/monitoring-plugins-basic
 | 
						|
NP_BASIC_TEMPLATES:=$(NP_BASIC_DIR)/usr/share/monitoring-plugins/templates-basic
 | 
						|
NP_STD_DIR:=$(DEBIANDIR)/monitoring-plugins-standard
 | 
						|
NP_STD_TEMPLATES:=$(NP_STD_DIR)/usr/share/monitoring-plugins/templates-standard
 | 
						|
 | 
						|
std_plugins:=check_breeze check_ifoperstatus check_hpjd check_ifstatus \
 | 
						|
	check_rpc check_snmp check_wave check_fping check_game \
 | 
						|
	check_radius check_mysql check_mysql_query check_pgsql \
 | 
						|
	check_disk_smb check_ldap check_ldaps \
 | 
						|
	check_mailq \
 | 
						|
	check_dns check_dig check_flexlm check_oracle \
 | 
						|
	check_dbi
 | 
						|
 | 
						|
common_files:=negate urlize utils.pm utils.sh
 | 
						|
 | 
						|
basic_plugin_cfgs:=apt dhcp disk dummy ftp http load mail news ntp ping procs \
 | 
						|
	real ssh tcp_udp telnet users
 | 
						|
std_plugin_cfgs:=breeze disk-smb dns flexlm fping games hppjd ifstatus ldap \
 | 
						|
	mailq mrtg mysql netware nt pgsql radius rpc-nfs snmp
 | 
						|
 | 
						|
PATH = /bin:/sbin:/usr/bin:/usr/sbin
 | 
						|
 | 
						|
 | 
						|
ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
 | 
						|
	CFLAGS += -O0
 | 
						|
else
 | 
						|
	CFLAGS += -O2
 | 
						|
endif
 | 
						|
ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
 | 
						|
	INSTALL_PROGRAM += -s
 | 
						|
endif
 | 
						|
 | 
						|
ifeq ($(DEB_HOST_ARCH_OS),linux)
 | 
						|
PING_CONFIGURE_ARGS = --with-ping-command="/bin/ping -n -U -w %d -c %d %s" \
 | 
						|
                      --with-ping6-command="/bin/ping6 -n -U -w %d -c %d %s"
 | 
						|
else
 | 
						|
PING_CONFIGURE_ARGS = --with-ping-command="/bin/ping -n -w %d -c %d %s" \
 | 
						|
                      --with-ping6-command="/bin/ping6 -n -w %d -c %d %s"
 | 
						|
endif
 | 
						|
 | 
						|
 | 
						|
config.status: configure
 | 
						|
	export PATH=$(PATH)
 | 
						|
	dh_testdir
 | 
						|
	
 | 
						|
	# if /proc is not mounted, check_nagios and check_procs are
 | 
						|
	# silently omitted from build.
 | 
						|
	@if ! [ -d /proc/$$$$ ]; then \
 | 
						|
	  echo "monitoring-plugins needs a mounted /proc to correctly build"; \
 | 
						|
	  exit 1; \
 | 
						|
	fi
 | 
						|
	
 | 
						|
	ln -sf /usr/share/misc/config.sub build-aux
 | 
						|
	ln -sf /usr/share/misc/config.guess build-aux
 | 
						|
	rm -f config.cache
 | 
						|
	
 | 
						|
	# Add here commands to configure the package.
 | 
						|
	PGINCLUDE="-I`pg_config --includedir`" PGLIBS="-lpq -lcrypt" \
 | 
						|
	CFLAGS="$(CFLAGS)" \
 | 
						|
	./configure \
 | 
						|
		--disable-maintainer-mode \
 | 
						|
		--host=$(DEB_HOST_GNU_TYPE) \
 | 
						|
		--build=$(DEB_BUILD_GNU_TYPE) \
 | 
						|
		--prefix=/usr \
 | 
						|
		--mandir=/usr/share/man \
 | 
						|
		--infodir=/usr/share/info \
 | 
						|
		--libexecdir=${NP_LIBEXEC} \
 | 
						|
		--with-perl=/usr/bin/perl \
 | 
						|
		--with-openssl=/usr \
 | 
						|
		--with-pgsql=/usr \
 | 
						|
		--with-mysql=/usr \
 | 
						|
		--with-proc-loadavg=/proc/loadavg \
 | 
						|
		--with-ps-command="/bin/ps axwwo 'stat uid pid ppid vsz rss pcpu etime comm args'" \
 | 
						|
		--with-ps-format="%s %d %d %d %d %d %f %s %s %n" \
 | 
						|
		--with-ps-cols=10 \
 | 
						|
		--with-ps-varlist="procstat,&procuid,&procpid,&procppid,&procvsz,&procrss,&procpcpu,procetime,procprog,&pos" \
 | 
						|
		$(PING_CONFIGURE_ARGS) \
 | 
						|
		--with-nslookup-command="/usr/bin/nslookup -sil" \
 | 
						|
		--with-uptime-command="/usr/bin/uptime" \
 | 
						|
		--with-rpcinfo-command="/usr/sbin/rpcinfo" \
 | 
						|
		--with-smbclient-command="/usr/bin/smbclient" \
 | 
						|
		--with-snmpget-command="/usr/bin/snmpget" \
 | 
						|
		--with-snmpgetnext-command="/usr/bin/snmpgetnext" \
 | 
						|
		--with-qstat-command="/usr/bin/quakestat" \
 | 
						|
		--with-fping-command="/usr/bin/fping" \
 | 
						|
		--with-fping6-command="/usr/bin/fping6" \
 | 
						|
		--with-ssh-command="/usr/bin/ssh" \
 | 
						|
		--with-mailq-command="/usr/bin/mailq" \
 | 
						|
		--with-proc-meminfo="/proc/meminfo" \
 | 
						|
		--with-dig-command="/usr/bin/dig" \
 | 
						|
		--with-apt-get-command="/usr/bin/apt-get" \
 | 
						|
		--enable-extra-opts \
 | 
						|
		--disable-rpath
 | 
						|
 | 
						|
 | 
						|
build: build-arch build-indep
 | 
						|
build-arch: build-stamp
 | 
						|
build-indep: build-stamp
 | 
						|
 | 
						|
build-stamp:  config.status
 | 
						|
	dh_testdir
 | 
						|
	$(MAKE)
 | 
						|
	touch build-stamp
 | 
						|
 | 
						|
clean: really-clean
 | 
						|
 | 
						|
really-clean:
 | 
						|
	dh_testdir
 | 
						|
	dh_testroot
 | 
						|
	rm -f build-stamp debian/README.Debian.plugins debian/monitoring-plugins-standard.substvars.in
 | 
						|
 | 
						|
	# Add here commands to clean up after the build process.
 | 
						|
	[ ! -f Makefile ] || $(MAKE) distclean
 | 
						|
	find -type d -name autom4te.cache -print0 | xargs -0 -r rm -rf \;
 | 
						|
	-rm -f platform.h auto-include.h
 | 
						|
	find -type d -name build -print0 | xargs -0 -r rm -rf \;
 | 
						|
	find \( -name config.sub -o -name config.guess \) -print0 | xargs -0 -r rm -f \;
 | 
						|
	-rm -f $(DEBIANDIR)/monitoring-plugins-basic.postrm $(DEBIANDIR)/monitoring-plugins-standard.postrm
 | 
						|
	dh_clean
 | 
						|
 | 
						|
install: build
 | 
						|
	dh_testdir
 | 
						|
	dh_testroot
 | 
						|
	dh_clean -k
 | 
						|
	dh_installdirs
 | 
						|
 | 
						|
	# Add here commands to install the package into debian/monitoring-plugins.
 | 
						|
	$(MAKE) install DESTDIR=${NP_BASIC_DIR}
 | 
						|
	$(MAKE) install-root DESTDIR=${NP_BASIC_DIR}
 | 
						|
	chmod 644 ${NP_BASIC_DIR}/usr/lib/nagios/plugins/utils.pm
 | 
						|
	# split up basic vs. standard plugins
 | 
						|
	for p in ${std_plugins}; do \
 | 
						|
		mv ${NP_BASIC_DIR}/${NP_LIBEXEC}/$$p ${NP_STD_DIR}/${NP_LIBEXEC}; \
 | 
						|
	done
 | 
						|
	# slit out common files
 | 
						|
	for p in ${common_files}; do \
 | 
						|
		mv ${NP_BASIC_DIR}/${NP_LIBEXEC}/$$p ${NP_COMMON_DIR}/${NP_LIBEXEC}; \
 | 
						|
	done
 | 
						|
	# now do the same for their configs, copying them into seperate
 | 
						|
	# "template" directories outside of /usr/share/doc for ucf to use.
 | 
						|
	for c in ${basic_plugin_cfgs}; do \
 | 
						|
		cp $(DEBIANDIR)/pluginconfig/$${c}.cfg ${NP_BASIC_TEMPLATES}; \
 | 
						|
	done
 | 
						|
	for c in ${std_plugin_cfgs}; do \
 | 
						|
		cp $(DEBIANDIR)/pluginconfig/$${c}.cfg ${NP_STD_TEMPLATES}; \
 | 
						|
	done
 | 
						|
	# dynamically create the postrm scripts using a template, so that we
 | 
						|
	# don't have to define the same list of plugin configs over and over.
 | 
						|
	sed -e 's/@BASIC_PLUGINS@/${basic_plugin_cfgs}/' \
 | 
						|
		< $(DEBIANDIR)/monitoring-plugins-basic.postrm.in \
 | 
						|
		> $(DEBIANDIR)/monitoring-plugins-basic.postrm
 | 
						|
	sed -e 's/@STD_PLUGINS@/${std_plugin_cfgs}/' \
 | 
						|
		< $(DEBIANDIR)/monitoring-plugins-standard.postrm.in \
 | 
						|
		> $(DEBIANDIR)/monitoring-plugins-standard.postrm
 | 
						|
	# copy our dpkg-sourced functions etc into place
 | 
						|
	mkdir -p ${NP_COMMON_DIR}/usr/share/monitoring-plugins/dpkg
 | 
						|
	install -t ${NP_COMMON_DIR}/usr/share/monitoring-plugins/dpkg \
 | 
						|
		$(DEBIANDIR)/functions
 | 
						|
	# remove /usr/include from monitoring-plugins-basic (in case its empty and exists)
 | 
						|
	[ ! -d ${NP_BASIC_DIR}/usr/include ] || rmdir ${NP_BASIC_DIR}/usr/include
 | 
						|
	# generate debian/README.Debian.plugins
 | 
						|
	perl ./debian/bin/gen_plugin_deps.pl
 | 
						|
 | 
						|
# Build architecture-independent files here.
 | 
						|
binary-indep: build install
 | 
						|
	dh_testdir -i
 | 
						|
	dh_testroot -i
 | 
						|
	dh_installchangelogs -i
 | 
						|
	dh_installdocs -i
 | 
						|
	dh_link -i
 | 
						|
	dh_installexamples -i
 | 
						|
	dh_installman -i
 | 
						|
	dh_compress -i
 | 
						|
	dh_fixperms -i
 | 
						|
	dh_installdeb -i
 | 
						|
	dh_gencontrol -i
 | 
						|
	dh_md5sums -i
 | 
						|
	dh_builddeb -i
 | 
						|
 | 
						|
# Build architecture-dependent files here.
 | 
						|
binary-arch: build install
 | 
						|
	dh_testdir -s
 | 
						|
	dh_testroot -s
 | 
						|
	dh_installchangelogs -p monitoring-plugins-basic -s ChangeLog
 | 
						|
	dh_installchangelogs -Nmonitoring-plugins-basic
 | 
						|
	dh_installdocs -s
 | 
						|
	dh_link -s
 | 
						|
	dh_installexamples -s
 | 
						|
	dh_installman -s
 | 
						|
	dh_strip -s
 | 
						|
	dh_compress -s
 | 
						|
	dh_fixperms -s -X utils.pm
 | 
						|
	dh_installdeb -s
 | 
						|
	dh_shlibdeps -s -Nmonitoring-plugins-standard
 | 
						|
	dpkg-shlibdeps -Tdebian/monitoring-plugins-standard.substvars \
 | 
						|
		${NP_STD_DIR}/${NP_LIBEXEC}/check_dns
 | 
						|
	dpkg-shlibdeps -Tdebian/monitoring-plugins-standard.substvars.in \
 | 
						|
		-dSuggests ${NP_STD_DIR}/${NP_LIBEXEC}/check_*
 | 
						|
	grep shlibs:Suggests debian/monitoring-plugins-standard.substvars.in \
 | 
						|
		| sed -e 's/shlibs:Suggests/shlibs:Recommends/' \
 | 
						|
		>> debian/monitoring-plugins-standard.substvars
 | 
						|
	dh_gencontrol -s
 | 
						|
	dh_md5sums -s
 | 
						|
	dh_builddeb -s
 | 
						|
 | 
						|
binary: binary-indep binary-arch
 | 
						|
.PHONY: build clean binary-indep binary-arch binary install
 |