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
82
83
84
85
|
################################################################################
#
# Makefile.PL -- generate Makefile
#
################################################################################
#
# $Revision: 13 $
# $Author: mhx $
# $Date: 2004/08/13 12:49:26 +0200 $
#
################################################################################
#
# Version 3.x, Copyright (C) 2004, Marcus Holland-Moritz.
# Version 2.x, Copyright (C) 2001, Paul Marquess.
# Version 1.x, Copyright (C) 1999, Kenneth Albanowski.
#
# This program is free software; you can redistribute it and/or
# modify it under the same terms as Perl itself.
#
################################################################################
use ExtUtils::MakeMaker;
require 5.003;
unless ($ENV{'PERL_CORE'}) {
$ENV{'PERL_CORE'} = 1 if grep { $_ eq 'PERL_CORE=1' } @ARGV;
}
if ($ENV{'PERL_CORE'}) {
# Pods will be built by installman.
@coreopts = ( MAN3PODS => {} );
}
else {
# Devel::PPPort is in the core since 5.7.3
@coreopts = ( INSTALLDIRS => ($] >= 5.007003 ? 'perl' : 'site') );
}
@ARGV = map { /^--with-(.*)/ && ++$opt{$1} ? () : $_ } @ARGV;
%PL_FILES = ( 'PPPort_pm.PL' => 'PPPort.pm',
'PPPort_xs.PL' => 'PPPort.xs',
'ppport_h.PL' => 'ppport.h' ),
@C_FILES = qw{ module2.c module3.c };
@clean = qw{ $(H_FILES) PPPort.c };
if ($opt{'apicheck'}) {
$PL_FILES{'apicheck_c.PL'} = 'apicheck.c';
push @C_FILES, qw{ apicheck.c };
push @clean, qw{ apicheck.c };
}
WriteMakefile(
NAME => 'Devel::PPPort',
VERSION_FROM => 'PPPort_pm.PL',
PL_FILES => \%PL_FILES,
PM => { 'PPPort.pm' => '$(INST_LIBDIR)/PPPort.pm' },
C => \@C_FILES,
H => [ qw(ppport.h) ],
OBJECT => '$(BASEEXT)$(OBJ_EXT) $(O_FILES)',
XSPROTOARG => '-noprototypes',
clean => { FILES => "@clean" },
depend => { '$(OBJECT)' => '$(H_FILES)' },
@coreopts,
);
sub MY::postamble {
package MY;
my $post = shift->SUPER::postamble(@_);
$post .= <<'POSTAMBLE';
purge_all: realclean
@$(RM_F) PPPort.pm PPPort.xs t/*.t
regen:
$(PERL) -I$(INST_ARCHLIB) -I$(INST_LIB) -I$(PERL_ARCHLIB) -I$(PERL_LIB) PPPort_pm.PL
$(PERL) -I$(INST_ARCHLIB) -I$(INST_LIB) -I$(PERL_ARCHLIB) -I$(PERL_LIB) PPPort_xs.PL
$(PERL) -I$(INST_ARCHLIB) -I$(INST_LIB) -I$(PERL_ARCHLIB) -I$(PERL_LIB) mktests.PL
$(PERL) -I$(INST_ARCHLIB) -I$(INST_LIB) -I$(PERL_ARCHLIB) -I$(PERL_LIB) ppport_h.PL
POSTAMBLE
return $post;
}
|