# $Id: Makefile.PL,v 1.5 2002/05/11 06:34:14 itz Exp $ use ExtUtils::MakeMaker; use File::Basename; use FileHandle; use Config; # this is here because otherwise Perl includes Emacs backup files (ie. *~) our %pm_hash = (); foreach my $pm (glob "lib/Debian/Debarnacle/*.pm") { my $base = basename $pm; $pm_hash{$pm} = '$(INST_LIBDIR)/Debian/Debarnacle/' . $base; } WriteMakefile( NAME => 'Debarnacle', VERSION_FROM => 'debarnacle', PREREQ_PM => { 'DB_File' => '1.75', 'Fcntl' => '1.03', 'FileHandle' => '2.00', 'Cwd' => '2.04', 'Getopt::Std' => '1.02', 'File::Glob' => '0.991', }, PM => \%pm_hash, EXE_FILES => ['debarnacle'], MAN1PODS => {'debarnacle.pod' => '$(INST_MAN1DIR)/debarnacle.1'}, MAN3PODS => {}, realclean => {FILES => '$(shell find . -name "*~")' }, ); # omit the stupid Makefile -> Makefile.old rule our $fh_mm = FileHandle->new("new(">Makefile.tmp"); defined $fh_mm_tmp or die "can't write to Makefile.tmp: $!"; our $mm_line = $fh_mm->getline(); while ($mm_line !~ /MakeMaker makefile section/ ) { $fh_mm_tmp->print($mm_line); $mm_line = $fh_mm->getline(); } while ($mm_line !~ /^\tfalse\s*$/ ) { $mm_line = $fh_mm->getline(); } $mm_line = $fh_mm->getline(); while ($mm_line) { $fh_mm_tmp->print($mm_line); $mm_line = $fh_mm->getline(); } our $sysconfdir = $ENV{'sysconfdir'} || '/etc'; our $new_rulez = <<"EOF"; # This portion copied verbatim from Makefile.PL Makefile : Makefile.PL \$(CONFIGDEP) \$(PERL) \"-I\$(PERL_ARCHLIB)\" \"-I\$(PERL_LIB)\" Makefile.PL sysconfdir=$sysconfdir pkgconfdir=\$(sysconfdir)/debarnacle plugindir=\$(pkgconfdir)/plugin.d pure_site_install pure_vendor_install :: $Config::Config{mkdir} -p \$(sysconfdir) $Config::Config{mkdir} -p \$(pkgconfdir) $Config::Config{mkdir} -p \$(plugindir) $Config::Config{cp} etc/prune \$(pkgconfdir) $Config::Config{cp} etc/globs \$(pkgconfdir) pure_all :: $Config::Config{sed} -e 's://etc//:\$(sysconfdir):' \$(INST_SCRIPT)/debarnacle >\$(INST_SCRIPT)/debarnacle.tmp $Config::Config{cp} \$(INST_SCRIPT)/debarnacle.tmp \$(INST_SCRIPT)/debarnacle $Config::Config{rm} \$(INST_SCRIPT)/debarnacle.tmp EOF $fh_mm_tmp->print($new_rulez); $fh_mm->close(); $fh_mm_tmp->close(); rename("Makefile.tmp", "Makefile") or die "Can't rename Makefile.tmp to Makefile: $!";