# $Id$ # -*- perl -*- use strict; use warnings; use ExtUtils::MakeMaker; WriteMakefile( NAME => "Test-AutoBuild", VERSION_FROM => 'lib/Test/AutoBuild.pm', AUTHOR => "Daniel Berrange (dan[at]berrange[dot]com)", EXE_FILES => ['bin/auto-build', 'bin/auto-build-make-root', 'bin/auto-build-clean-root'], NO_META => 1, PREREQ_PM => { 'BSD::Resource' => "1.10", 'Carp' => '0', 'Class::MethodMaker' => '0', 'Config' => '0', 'Cwd' => '0', 'Config::Record' => '1.1.0', 'Data::Dumper' => '0', 'Date::Manip' => '0', 'Digest::MD5' => '0', 'Fcntl' => '0', 'File::Copy' => '0', 'File::Find' => '0', 'File::Glob' => '0', 'File::Path' => '0', 'File::ReadBackwards' => '0', 'File::Spec' => '0', 'File::stat' => '0', 'IO::File' => '0', 'IO::Scalar' => '0', 'List::Util' => '0', 'Log::Log4perl' => "0", 'Net::SMTP' => "2.15", 'POSIX' => '0', 'Storable' => '0', 'Symbol' => '0', 'Sys::Hostname' => '0', 'Template' => '0', 'Test::More' => '0', 'XML::Simple' => '0', }, dist => { COMPRESS => 'gzip --force --best', }, clean => { FILES => '*.bak *~', }, depend => { Makefile => '$(VERSION_FROM)', #'perl-Test-AutoBuild.spec' => '$(VERSION_FROM)', dist => 'perl-Test-AutoBuild.spec META.yml', }, realclean => { FILES => 'Test-AutoBuild-*.tar.gz perl-Test-AutoBuild.spec', }, ); package MY; sub postamble { ' WITH_SELINUX = 0 # NB do not use prefix here SELINUXDEV = /usr/share/selinux/devel pure_all :: if [ -d "$(SELINUXDEV)" -a "$(WITH_SELINUX)" = "1" ] ; then make -C conf/selinux ; fi clean :: if [ -d "$(SELINUXDEV)" -a "$(WITH_SELINUX)" = "1" ] ; then make -C conf/selinux clean ; fi HTMLDIR = blib/html HTMLURLPREFIX = / HTMLPODS = $(MAN3PODS:lib/%.pm=$(HTMLDIR)/%.html) MAN5EXT = 5 INST_MAN5DIR = blib/man5 INST_SYSCONF = blib/sysconf INST_SELINUX = blib/selinux INSTALLSYSCONF = $(PERLPREFIX)/etc DESTINSTALLSYSCONF = $(DESTDIR)/$(INSTALLSYSCONF) INSTALLSELINUX = $(PERLPREFIX)/share/selinux DESTINSTALLSELINUX = $(DESTDIR)/$(INSTALLSELINUX) $(INST_MAN5DIR)/.exists :: $(INST_MAN3DIR)/.exists $(NOECHO) $(MKPATH) $(INST_MAN5DIR) $(NOECHO) $(EQUALIZE_TIMESTAMP) $(INST_MAN3DIR)/.exists $(INST_MAN5DIR)/.exists -$(NOECHO) $(CHMOD) $(PERM_RWX) $(INST_MAN5DIR) $(INST_SYSCONF)/.exists :: $(INST_MAN3DIR)/.exists $(NOECHO) $(MKPATH) $(INST_SYSCONF) $(NOECHO) $(MKPATH) $(INST_SYSCONF)/templates $(NOECHO) $(MKPATH) $(INST_SYSCONF)/cron $(NOECHO) $(MKPATH) $(INST_SYSCONF)/httpd $(NOECHO) $(MKPATH) $(INST_SYSCONF)/engine $(NOECHO) $(EQUALIZE_TIMESTAMP) $(INST_MAN3DIR)/.exists $(INST_SYSCONF)/.exists -$(NOECHO) $(CHMOD) $(PERM_RWX) $(INST_SYSCONF) $(INST_SELINUX)/.exists :: $(INST_MAN3DIR)/.exists $(NOECHO) $(MKPATH) $(INST_SELINUX) $(NOECHO) $(EQUALIZE_TIMESTAMP) $(INST_MAN3DIR)/.exists $(INST_SELINUX)/.exists -$(NOECHO) $(CHMOD) $(PERM_RWX) $(INST_SELINUX) all:: manify5pods prepconf prepscripts prepselinux manify5pods: $(INST_MAN5DIR)/.exists conf/auto-build.conf.pod $(NOECHO) $(POD2MAN_EXE) --section=5 --perm_rw=$(PERM_RW)\ conf/auto-build.conf.pod $(INST_MAN5DIR)/auto-build.conf.$(MAN5EXT) prepconf: $(INST_SYSCONF)/.exists $(NOECHO) for i in conf/*.conf conf/engine/*.conf conf/cron/*.conf conf/httpd/*.conf; do \ conf=`echo $$i | sed -e \'s/conf\///\'`; \ $(RM_F) $(INST_SYSCONF)/$$conf; \ $(CP) $$i $(INST_SYSCONF)/$$conf; \ $(FIXIN) $(INST_SYSCONF)/$$conf; \ $(CHMOD) $(PERM_RW) $(INST_SYSCONF)/$$conf; \ done $(NOECHO) for i in templates/*.txt templates/*.html templates/*.tt templates/*.css templates/*.rss templates/*.png ; do \ $(RM_F) $(INST_SYSCONF)/$$i; \ $(CP) $$i $(INST_SYSCONF)/$$i; \ $(FIXIN) $(INST_SYSCONF)/$$i; \ $(CHMOD) $(PERM_RW) $(INST_SYSCONF)/$$i; \ done prepscripts: $(INST_SCRIPT)/.exists if [ -d "$(SELINUXDEV)" -a "$(WITH_SELINUX)" = "1" ]; then \ $(RM_F) $(INST_SCRIPT)/auto-build-secure; \ $(CP) bin/auto-build $(INST_SCRIPT)/auto-build-secure; \ $(FIXIN) $(INST_SCRIPT)/auto-build-secure; \ $(CHMOD) $(PERM_RWX) $(INST_SCRIPT)/auto-build-secure; \ fi prepselinux: $(INST_SELINUX)/.exists if [ -d "$(SELINUXDEV)" -a "$(WITH_SELINUX)" = "1" ]; then \ $(RM_F) $(INST_SELINUX)/auto-build.pp; \ $(CP) conf/selinux/auto-build.pp $(INST_SELINUX)/auto-build.pp; \ $(FIXIN) $(INST_SELINUX)/auto-build.pp; \ $(CHMOD) $(PERM_RW) $(INST_SELINUX)/auto-build.pp; \ fi INSTALLMAN5 = $(PERLPREFIX)/share/man/man5 DESTINSTALLMAN5 = $(DESTDIR)$(INSTALLMAN5) INSTALLSITEMAN5 = $(SITEPREFIX)/share/man/man5 DESTINSTALLSITEMAN5 = $(DESTDIR)$(INSTALLSITEMAN5) INSTALLVENDORMAN5 = $(VENDORPREFIX)/share/man/man5 DESTINSTALLVENDORMAN5 = $(DESTDIR)$(INSTALLVENDORMAN5) pure_perl_install :: $(MOD_INSTALL) $(INST_MAN5DIR) $(DESTINSTALLMAN5) $(MOD_INSTALL) $(INST_SYSCONF) $(DESTINSTALLSYSCONF)/auto-build.d $(MOD_INSTALL) $(INST_SELINUX) $(DESTINSTALLSELINUX)/packages pure_site_install :: $(MOD_INSTALL) $(INST_MAN5DIR) $(DESTINSTALLSITEMAN5) $(MOD_INSTALL) $(INST_SYSCONF) $(DESTINSTALLSYSCONF)/auto-build.d $(MOD_INSTALL) $(INST_SELINUX) $(DESTINSTALLSELINUX)/packages pure_vendor_install :: $(MOD_INSTALL) $(INST_MAN5DIR) $(DESTINSTALLVENDORMAN5) $(MOD_INSTALL) $(INST_SYSCONF) $(DESTINSTALLSYSCONF)/auto-build.d $(MOD_INSTALL) $(INST_SELINUX) $(DESTINSTALLSELINUX)/packages htmlifypods: $(HTMLDIR) $(HTMLPODS) $(HTMLDIR): mkdir $@ $(HTMLDIR)/%.html: lib/%.pm mkdir -p `dirname $@` pod2html --htmlroot=$(HTMLURLPREFIX) --infile=$< --outfile=$@ --podpath=$(HTMLDIR) '; } sub test { my $self = shift; my $mm_test = $self->SUPER::test(@_); return ' test :: META.yml ' . $mm_test; } __END__