File: Build.PL

package info (click to toggle)
libsocket-multicast6-perl 0.04-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 120 kB
  • ctags: 4
  • sloc: perl: 64; makefile: 2
file content (81 lines) | stat: -rw-r--r-- 2,319 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
use Module::Build;

my $class = Module::Build->subclass(
  code => q{
    use Devel::PPPort;
    use ExtUtils::Constant;

    sub ACTION_build {
        my $self = shift;
        $self->depends_on('ppport_h','constants');
        $self->SUPER::ACTION_build;
    }

    sub ACTION_ppport_h {
        my $self = shift;
        my $filepath = 'lib/Socket/ppport.h';
        unless (-e $filepath) {
            print "Writing $filepath\n";
            Devel::PPPort::WriteFile($filepath);
        }
        $self->add_to_cleanup($filepath);
    }

    sub ACTION_constants {
        my $self = shift;
        my $c_file_path = 'lib/Socket/const-c.inc';
        my $xs_file_path = 'lib/Socket/const-xs.inc';
        unless (-e $c_file_path && -e $xs_file_path) {
            print "Writing $c_file_path and $xs_file_path\n";
            ExtUtils::Constant::WriteConstants(
                NAME => 'Socket::Multicast6',
                NAMES => [qw(
                    IP_MULTICAST_IF
                    IP_MULTICAST_TTL
                    IP_MULTICAST_LOOP
                    IP_ADD_MEMBERSHIP
                    IP_DROP_MEMBERSHIP
                    IP_ADD_SOURCE_MEMBERSHIP
                    IP_DROP_SOURCE_MEMBERSHIP
                    IPV6_MULTICAST_IF
                    IPV6_MULTICAST_HOPS
                    IPV6_MULTICAST_LOOP
                    IPV6_JOIN_GROUP
                    IPV6_LEAVE_GROUP
                    MCAST_JOIN_GROUP
                    MCAST_BLOCK_SOURCE
                    MCAST_UNBLOCK_SOURCE
                    MCAST_LEAVE_GROUP
                    MCAST_JOIN_SOURCE_GROUP
                    MCAST_LEAVE_SOURCE_GROUP
                )],
                C_FILE => $c_file_path,
                XS_FILE => $xs_file_path
            );
        }
        $self->add_to_cleanup($c_file_path);
        $self->add_to_cleanup($xs_file_path);
    }
  },
);

my $build = $class->new
(
    module_name => 'Socket::Multicast6',
    license => 'perl',
    build_requires => {
      'Module::Build' 	=> '0.20',
      'ExtUtils::Constant' => 0,
      'ExtUtils::CBuilder' => 0,
      'Devel::PPPort' => 0,
    },
    requires => {
      'perl'			=> '5.6.1',
      'Socket'		=> 0,
      'Test::More'		=> 0,
      'Socket'		=> 0,
      'Socket6'		=> 0.19,
    }
);

$build->create_build_script;