Commit | Line | Data |
bdb7fd9f |
1 | #! perl -w |
2 | |
3 | use strict ; |
4 | require 5.004 ; |
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 | ( |
bdb7fd9f |
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 | |
dc82791d |
50 | INSTALLDIRS => ($] > 5.010 ? 'perl' : 'site'), |
51 | |
bdb7fd9f |
52 | ((ExtUtils::MakeMaker->VERSION() gt '6.30') ? |
53 | ('LICENSE' => 'perl') : ()), |
54 | |
55 | ) ; |
56 | |
57 | my @names = qw( |
58 | BZ_RUN |
59 | BZ_FLUSH |
60 | BZ_FINISH |
61 | |
62 | BZ_OK |
63 | BZ_RUN_OK |
64 | BZ_FLUSH_OK |
65 | BZ_FINISH_OK |
66 | BZ_STREAM_END |
67 | BZ_SEQUENCE_ERROR |
68 | BZ_PARAM_ERROR |
69 | BZ_MEM_ERROR |
70 | BZ_DATA_ERROR |
71 | BZ_DATA_ERROR_MAGIC |
72 | BZ_IO_ERROR |
73 | BZ_UNEXPECTED_EOF |
74 | BZ_OUTBUFF_FULL |
75 | BZ_CONFIG_ERROR |
76 | ); |
77 | |
78 | if (eval {require ExtUtils::Constant; 1}) { |
79 | # Check the constants above all appear in @EXPORT in Bzip2.pm |
80 | my %names = map { $_, 1} @names ; #, 'BZ_VERSION'; |
81 | open F, "<lib/Compress/Raw/Bzip2.pm" or die "Cannot open Bzip2.pm: $!\n"; |
82 | while (<F>) |
83 | { |
84 | last if /^\s*\@EXPORT\s+=\s+qw\(/ ; |
85 | } |
86 | |
87 | while (<F>) |
88 | { |
89 | last if /^\s*\)/ ; |
90 | /(\S+)/ ; |
91 | delete $names{$1} if defined $1 ; |
92 | } |
93 | close F ; |
94 | |
95 | if ( keys %names ) |
96 | { |
97 | my $missing = join ("\n\t", sort keys %names) ; |
98 | die "The following names are missing from \@EXPORT in Bzip2.pm\n" . |
99 | "\t$missing\n" ; |
100 | } |
101 | |
102 | #push @names, {name => 'BZ_VERSION', type => 'PV' }; |
103 | |
104 | ExtUtils::Constant::WriteConstants( |
105 | NAME => 'Bzip2', |
106 | NAMES => \@names, |
107 | C_FILE => 'constants.h', |
108 | XS_FILE => 'constants.xs', |
109 | |
110 | ); |
111 | } |
112 | else { |
113 | foreach my $name (qw( constants.h constants.xs )) |
114 | { |
115 | my $from = catfile('fallback', $name); |
116 | copy ($from, $name) |
117 | or die "Can't copy $from to $name: $!"; |
118 | } |
119 | } |
120 | |
121 | |
122 | sub bzip2_files |
123 | { |
124 | my $dir = shift ; |
125 | |
126 | my @c_files = qw( |
127 | blocksort.c |
128 | huffman.c |
129 | crctable.c |
130 | randtable.c |
131 | compress.c |
132 | decompress.c |
133 | bzlib.c |
134 | ); |
135 | |
136 | my @h_files = qw( bzlib.h bzlib_private.h ); |
137 | |
138 | foreach my $file (@c_files, @h_files) |
139 | { copy(catfile($dir, $file), '.') } |
140 | |
141 | |
142 | @h_files = map { catfile($dir, $_) } @h_files ; |
143 | my @o_files = map { "$_\$(OBJ_EXT)" } 'Bzip2', @c_files; |
144 | push @c_files, 'Bzip2.c' ; |
145 | |
146 | return ( |
147 | #'H' => [ @h_files ], |
148 | 'C' => [ @c_files ] , |
149 | #'OBJECT' => qq[ @o_files ], |
150 | 'OBJECT' => q[ $(O_FILES) ], |
151 | |
152 | |
153 | ) ; |
154 | } |
155 | |
156 | |
157 | |