This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update Archive-Tar to CPAN version 2.22
[perl5.git] / cpan / Compress-Raw-Bzip2 / Makefile.PL
1 #! perl -w
2
3 use strict ;
4 require 5.006 ;
5
6 use private::MakeUtil;
7 use ExtUtils::MakeMaker 5.16 ;
8
9 my $WALL= '';
10 $WALL = ' -Wall -Wno-comment ' if $Config{'cc'} =~ /gcc/ ;
11 my $USE_PPPORT_H = ($ENV{PERL_CORE}) ? '' : '-DUSE_PPPORT_H';
12
13
14 my $BUILD_BZIP2 = defined($ENV{BUILD_BZIP2}) ? $ENV{BUILD_BZIP2} : 1;
15 my $BZIP2_LIB = defined($ENV{BZIP2_LIB}) ? $ENV{BZIP2_LIB} : 'bzip2-src';
16 my $BZIP2_INCLUDE = defined($ENV{BZIP2_INCLUDE}) ? $ENV{BZIP2_INCLUDE} : '.';
17
18 #ParseCONFIG() ;
19
20 UpDowngrade(getPerlFiles('MANIFEST')) 
21     unless $ENV{PERL_CORE};
22
23 WriteMakefile( 
24     NAME         => 'Compress::Raw::Bzip2',
25     VERSION_FROM => 'lib/Compress/Raw/Bzip2.pm',
26     INC          => "-I$BZIP2_INCLUDE" ,
27     DEFINE       => "$WALL -DBZ_NO_STDIO $USE_PPPORT_H" ,
28     XS           => { 'Bzip2.xs' => 'Bzip2.c'},
29     'clean'      => { FILES      => '*.c bzip2.h bzlib.h bzlib_private.h constants.h constants.xs' },
30    #'depend'     => { 'Makefile'   => 'config.in' },
31     'dist'       => { COMPRESS     => 'gzip', 
32                       TARFLAGS     => '-chvf',
33                       SUFFIX       => 'gz',
34                       DIST_DEFAULT => 'MyTrebleCheck tardist',
35                     },
36
37     (
38       $BUILD_BZIP2
39         ? bzip2_files($BZIP2_LIB)
40         : (LIBS => [ "-L$BZIP2_LIB -lbz2 " ])
41     ),
42       
43     (
44       $] >= 5.005
45         ? (ABSTRACT_FROM => 'lib/Compress/Raw/Bzip2.pm',
46             AUTHOR       => 'Paul Marquess <pmqs@cpan.org>')
47         : ()
48     ),
49
50     INSTALLDIRS => ($] > 5.010  && $] < 5.011 ? 'perl' : 'site'),
51
52     META_MERGE => {
53         no_index => {
54             directory => [ 't', 'private' ],
55         },
56     },    
57
58     ((ExtUtils::MakeMaker->VERSION() gt '6.30') ?
59         ('LICENSE'  => 'perl')         : ()),    
60
61 ) ;
62
63 my @names = qw(
64                 BZ_RUN
65                 BZ_FLUSH
66                 BZ_FINISH
67
68                 BZ_OK
69                 BZ_RUN_OK
70                 BZ_FLUSH_OK
71                 BZ_FINISH_OK
72                 BZ_STREAM_END
73                 BZ_SEQUENCE_ERROR
74                 BZ_PARAM_ERROR
75                 BZ_MEM_ERROR
76                 BZ_DATA_ERROR
77                 BZ_DATA_ERROR_MAGIC
78                 BZ_IO_ERROR
79                 BZ_UNEXPECTED_EOF
80                 BZ_OUTBUFF_FULL
81                 BZ_CONFIG_ERROR
82         );
83
84 if (eval {require ExtUtils::Constant; 1}) {
85     # Check the constants above all appear in @EXPORT in Bzip2.pm
86     my %names = map { $_, 1} @names ; #, 'BZ_VERSION';
87     open F, "<lib/Compress/Raw/Bzip2.pm" or die "Cannot open Bzip2.pm: $!\n";
88     while (<F>)
89     {
90         last if /^\s*\@EXPORT\s+=\s+qw\(/ ;
91     }
92
93     while (<F>)
94     {
95         last if /^\s*\)/ ;
96         /(\S+)/ ;
97         delete $names{$1} if defined $1 ;
98     }
99     close F ;
100
101     if ( keys %names )
102     {
103         my $missing = join ("\n\t", sort keys %names) ;
104         die "The following names are missing from \@EXPORT in Bzip2.pm\n" .
105             "\t$missing\n" ;
106     }
107     
108     #push @names, {name => 'BZ_VERSION', type => 'PV' };
109
110     ExtUtils::Constant::WriteConstants(
111                                      NAME     => 'Bzip2',
112                                      NAMES    => \@names,
113                                      C_FILE   => 'constants.h',
114                                      XS_FILE  => 'constants.xs',
115                                                                        
116                                     );
117
118 else {
119     foreach my $name (qw( constants.h constants.xs ))
120     {
121         my $from = catfile('fallback', $name);
122         copy ($from, $name)
123           or die "Can't copy $from to $name: $!";
124     }
125 }
126
127
128 sub bzip2_files
129 {
130     my $dir = shift ;
131
132     my @c_files = qw(
133         blocksort.c
134         huffman.c
135         crctable.c
136         randtable.c
137         compress.c
138         decompress.c
139         bzlib.c
140     );
141
142     my @h_files = qw( bzlib.h  bzlib_private.h );
143
144     foreach my $file (@c_files, @h_files)
145       { copy(catfile($dir, $file), '.') }
146     
147     
148     @h_files = map { catfile($dir, $_)  } @h_files ;
149     my @o_files = map { "$_\$(OBJ_EXT)" } 'Bzip2', @c_files;
150     push @c_files, 'Bzip2.c' ;
151
152     return (
153         #'H'         =>  [ @h_files ],
154         'C'         =>  [ @c_files ] ,
155         #'OBJECT'    => qq[ @o_files ],
156         'OBJECT'    => q[ $(O_FILES) ],
157         
158
159            ) ;
160 }
161
162
163