#!/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 # for hardening DPKG_EXPORT_BUILDFLAGS = 1 include /usr/share/dpkg/buildflags.mk 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) include /usr/share/dpkg/architecture.mk 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_curl \ 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 curl-http 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 -4 -n -U -w %d -c %d %s" \ --with-ping6-command="/bin/ping -6 -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. # Append 'All warnings', 'Immediate binding' and dpkg-buildflags flags CFLAGS="$$(DEB_CFLAGS_MAINT_APPEND='-Wall -Wl,-z,now' dpkg-buildflags --get CFLAGS)" \ PATH_TO_APTGET=/usr/bin/apt-get \ PGINCLUDE="-I`pg_config --includedir`" PGLIBS="-lpq -lcrypt" \ ./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-sudo-command="/usr/bin/sudo" \ --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_prep 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 # remove check_uptime for now (conflicting with check_uptime from n-p-c) rm ${NP_BASIC_DIR}/${NP_LIBEXEC}/check_uptime # 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