source: devel/pb-modules/Makefile.PL @ 2241

Last change on this file since 2241 was 2241, checked in by bruno, 2 years ago

revert last commit as this is not ready yet for integration in that tree !

File size: 3.3 KB
Line 
1# (c) B.Cornec 2007-2016
2# Eric Anderson's changes are (c) Copyright 2012 Hewlett Packard
3# Provided under the GPL v2
4use 5.006001;
5use ExtUtils::MakeMaker;
6use strict;
7
8# See lib/ExtUtils/MakeMaker.pm for details of how to influence
9# the contents of the Makefile that is written.
10WriteMakefile(
11    NAME         => 'PBPKG',
12    DISTNAME     => 'PBPKG',
13    VERSION      => 'PBVER',
14    INST_SCRIPT  => 'blib/bin',
15    INSTALLDIRS  => 'perl',
16    PREREQ_PM    => {
17            #HTTP::Headers                    => 1.59,
18            #Template                         => 0,
19    },    # e.g., Module::Name => 1.1
20    #ABSTRACT_FROM => 'bin/pb',   # retrieve abstract from module
21    AUTHOR        => 'Bruno Cornec <bruno#project-builder.org>',
22    EXE_FILES     => [ qw(bin/pbdistrocheck bin/pbgetparam) ],
23    MAN1PODS      => { 
24                'bin/pbdistrocheck' => '$(INST_MAN1DIR)/pbdistrocheck.$(MAN1EXT)', 
25                'bin/pbgetparam' => '$(INST_MAN1DIR)/pbgetparam.$(MAN1EXT)', 
26                    },
27#   MAN3PODS      => {  'lib/ProjectBuilder/Distribution.pm' => '$(INST_MAN3DIR)/ProjectBuilder::Distribution.$(MAN3EXT)',
28                        #'lib/ProjectBuilder/Conf.pm' => '$(INST_MAN3DIR)/ProjectBuilder::Conf.$(MAN3EXT)',
29                        #'lib/ProjectBuilder/Display.pm' => '$(INST_MAN3DIR)/ProjectBuilder::Display.$(MAN3EXT)',
30                        #'lib/ProjectBuilder/Log.pm' => '$(INST_MAN3DIR)/ProjectBuilder::Log.$(MAN3EXT)',
31                        #'lib/ProjectBuilder/Log/Item.pm' => '$(INST_MAN3DIR)/ProjectBuilder::Log::Item.$(MAN3EXT)',
32                        #'lib/ProjectBuilder/Base.pm' => '$(INST_MAN3DIR)/ProjectBuilder::Base.$(MAN3EXT)', },
33);
34
35package MY;
36
37sub postamble {
38
39    # Determine location of conf files
40    my $text ="";
41
42    # Grab out any SYSCONFDIR, CONFDIR or MANDIR param
43    my $sharedir = undef;
44    my $mandir = undef;
45    my $sysconfdir = undef;
46    my $prefix = undef;
47
48    while (my $arg = shift @ARGV) {
49        my ($key, $value) = split /=/, $arg;
50        if ($key =~ /^CONFDIR$/) {
51            $sharedir = $value;
52        } elsif ($key =~ /^SYSCONFDIR$/) {
53            $sysconfdir = $value;
54        } elsif ($key =~ /^MANDIR$/) {
55            $mandir = $value;
56        } elsif ($key =~ /^PREFIX$/) {
57            $prefix = $value;
58        }
59    }
60
61    $sharedir ||= "$prefix/share/pb" if (defined $prefix);
62    $mandir ||= "$prefix/share/man" if (defined $prefix);
63    $sysconfdir ||= "$prefix/etc/pb" if (defined $prefix);
64    $sharedir ||= "/usr/local/share/pb";
65    $mandir ||= "/usr/local/share/man";
66    $sysconfdir ||= "/etc/pb";
67
68    # Use that conf dir info to modify Distribution.pm
69    system("perl -pi -e \"s~CCCC~$sharedir~\" lib/ProjectBuilder/Distribution.pm");
70    system("perl -pi -e \"s~SSSS~$sysconfdir~\" lib/ProjectBuilder/Distribution.pm");
71
72    $text .= "install ::\n";
73    $text .= "\t".'mkdir -p $(DESTDIR)'."$sharedir\n";
74    $text .= "\t".'chmod 755 $(DESTDIR)'."$sharedir\n";
75    $text .= "\t".'cp etc/pb.conf $(DESTDIR)'."$sharedir\n";
76
77    # Also create a fake version in /etc/pb for sysadmin to modify
78    $text .= "\t".'mkdir -p $(DESTDIR)'."$sysconfdir\n";
79    $text .= "\t".'chmod 755 $(DESTDIR)'."$sysconfdir\n";
80    $text .= "\t".'perl -p -e \'s|^|#|\' etc/pb.conf > $(DESTDIR)/'."$sysconfdir/pb.conf\n";
81    # Doesn't seem to work in the makefile generated for now :-(
82    #$text .= "\t".'perl -p -e \'s|^([^#])|#$1|\' etc/pb.conf > $(DESTDIR)/'."$sysconfdir/pb.conf\n";
83
84    # Produce the man page for pb.conf
85    $text .= "\t".'mkdir -p $(DESTDIR)'."$mandir/man5\n";
86    $text .= "\t".'pod2man --section=5 etc/pb.conf.pod > $(DESTDIR)'."$mandir/man5/pb.conf.5\n";
87    return($text);
88}
Note: See TracBrowser for help on using the repository browser.