VERSION = 3.1.0 REVISION := $(shell svnversion . | sed -e 's/M//' -e 's/.*://') RELEASE=1 WORKDIR := $(shell pwd) ifneq ($(origin REVISION),undefined) BUILD := ${VERSION}.${REVISION} else BUILD := ${VERSION} endif PERLMODS = ./perlmods # NOTE: to install into different location use # 'make DESTDIR=/path/to/base' when running any of the options # If changing the destination ensure to run 'make clean' first prefix = /usr/local/nagios/perl USER = nagios GROUP = nagios INSTALL = tools/install-sh GENERATED = opsview-perl.spec perlmoduledir = $(exec_prefix)/perl all: version expand patching DESTDIR=$(DESTDIR) ./tools/build_perl_modules -d $(prefix) -m ${PERLMODS} expand: DESTDIR=$(DESTDIR) ./tools/build_perl_modules -d $(prefix) -e ${PERLMODS} touch expand reexpand: rm -f expand $(MAKE) expand patching: # Perform any required patching here, i.e. # cd perlmods/SQL_Abstract-[0-9]* && patch -p0 << ../../patches/sql_abstract.patch cd perlmods/Template-Toolkit-[0-9]*[0-9] && cp ../../patches/tt_defaults_file .defaults.cfg cd perlmods/XML-Parser-[0-9]*[0-9] && patch -N -p0 < ../../patches/XML-Parser_solaris.patch || true ##cd perlmods/Catalyst-Plugin-Session-Store-FastMmap-[0-9]*[0-9] && patch -p1 < ../../patches/Catalyst-Plugin-Session-Store-FastMmap_unlink_on_exit.patch cd perlmods/EasyTCP-[0-9]*[0-9] && patch -p0 < ../../patches/Net-EasyTCP_internaldata_before_normal_data_lost.patch cd perlmods/EasyTCP-[0-9]*[0-9] && patch -p0 < ../../patches/Net-EasyTCP_with_bind_address.patch #cd perlmods/Nagios-Object-[0-9]*[0-9] && patch -p1 < ../../patches/Nagios_Object_missing_properties.patch cd perlmods/Net-Dev-MIBLoadOrder-1.1.0 && patch -p0 < ../../patches/mibloadorder_emptydirs.patch cd perlmods/WWW-Mechanize-Timed-[0-9]*[0-9] && patch -p1 < ../../patches/WWW-Mechanize-Timed_compatibility.patch cd perlmods/Catalyst-Runtime-[0-9]*[0-9] && patch -p1 < ../../patches/catalyst_runtime_cgi_port_forwarding.patch cd perlmods/Catalyst-Runtime-[0-9]*[0-9] && patch -p1 < ../../patches/Catalyst-Runtime_immediate_fork.patch cd perlmods/Class-DBI-v[0-9]*[0-9] && patch -p1 < ../../patches/class_dbi_on_connect_do.patch cd perlmods/Catalyst-Engine-HTTP-Prefork-[0-9]*[0-9] && patch -p1 < ../../patches/catalyst_engine_http_prefork.patch # Change behaviour back to previous. t/800login.t fails if uses current behaviour # TODO: Understand if it is best as current behaviour with other checks around here to catch the exception cd perlmods/Catalyst-Plugin-Authentication-[0-9]* && patch -p1 < ../../patches/Catalyst-Plugin-Authentication_throw_exception_on_restoreable_failure.patch cd perlmods/Ima-DBI-[0-9]*[0-9] && patch -p1 < ../../patches/ima_dbi_on_connect_do.patch # cd perlmods/Catalyst-Model-HTML-FormFu-[0-9]*[0-9]/ && patch -p1 < ../../patches/Catalyst-Model-HTML-FormFu.patch # cd perlmods/HTML-FormFu-*[0-9] && patch -p1 < ../../patches/HTML-FormFu-Element-_Field.patch ##cd perlmods/Set-Object-*[0-9] && patch -p1 < ../../patches/Set-Object_bug_40356.patch # clean up any patch files to stop builds breaking find ${PERLMODS} -name "*.pm.orig" -exec rm -f {} \; -print touch patching dev: DESTDIR=$(DESTDIR) ./tools/build_perl_modules -s dev -d $(prefix) -e ${PERLMODS} # Perform any required patching here, i.e. # cd perlmods/SQL_Abstract-[0-9]* && patch -p0 << ../../patches/sql_abstract.patch DESTDIR=$(DESTDIR) ./tools/build_perl_modules -s dev -d $(prefix) -m ${PERLMODS} version: echo ${BUILD} > version opsview-perl.spec: opsview-perl.spec.in perl -pe 's/%VERSION%/${BUILD}/g' opsview-perl.spec.in > opsview-perl.spec opsview-perl: opsview-perl-${BUILD}.tar.gz opsview-perl-${BUILD}.tar.gz: $(MAKE) tar VERSION=${BUILD} tar: opsview-perl.spec version rm -f ../opsview-perl-${BUILD}.tar ../opsview-perl-${BUILD}.tar.gz cd .. && ln -s ${WORKDIR} opsview-perl-${BUILD} cd .. && tar --gzip -h -cf opsview-perl-${BUILD}.tar.gz --exclude=.svn --exclude=opsview-perl-[0-9\.].tar.gz opsview-perl-${BUILD} mv ../opsview-perl-${BUILD}.tar.gz . rm ../opsview-perl-${BUILD} debpkg: cp debian/changelog.in debian/changelog dch --newversion="${BUILD}-${RELEASE}`lsb_release -cs`1" "Auto generated" dpkg-buildpackage -I.svn -i.svn -rfakeroot -uc -us solpkg: mksolpkg # Don't run test-debug differently here yet test: true #DESTDIR=$(DESTDIR) ./tools/build_perl_modules -d $(prefix) -t ${PERLMODS} dev-test: DESTDIR=$(DESTDIR) ./tools/build_perl_modules -s dev -d $(prefix) -t ${PERLMODS} reinstall: rm perlmods/*/installed make install install: $(INSTALL) -d -o ${USER} -g ${GROUP} -m 0775 $(DESTDIR)$(prefix) DESTDIR=${DESTDIR} ./tools/build_perl_modules -d $(prefix) -i ${PERLMODS} dev-install: DESTDIR=$(DESTDIR) ./tools/build_perl_modules -s dev -d $(prefix) -i ${PERLMODS} post-install-test: PERL5LIB=$(prefix)/lib prove -t t/*.t update_all: ./tools/update_mods ${PERLMODS} update_dev: ./tools/update_mods -s dev ${PERLMODS} clean: rm -f expand patching ./tools/update_mods -x ${PERLMODS} rm -f opsview-perl.spec rm -f debian/build/build-* rm -f build-stamp configure-stamp rm -rf debian/opsview-perl rm -f ../opsview-perl-[0-9]*.tar ../opsview-perl-[0-9]*.tar.gz rm -f opsview-perl-[0-9]*.tar opsview-perl-[0-9]*.tar.gz ( cd .. && test -h opsview-perl-[0-9]* && rm opsview-perl-[0-9]* ) || true DESTDIR=$(DESTDIR) ./tools/build_perl_modules -d $(prefix) -c ${PERLMODS} DESTDIR=$(DESTDIR) ./tools/build_perl_modules -s dev -d $(prefix) -c ${PERLMODS} rm -rf ${PERLMODS}/*[0-9] # catch older version dirs too .PHONY: version