Makefile.PL (1191B)
1 #!/usr/bin/perl 2 3 use strict; 4 use warnings; 5 use Cwd; 6 use File::Spec; 7 use ExtUtils::MakeMaker; 8 9 WriteMakefile( 10 NAME => 'File::Extract', 11 ABSTRACT_FROM => 'pm/Extract.pm', 12 VERSION_FROM => 'pm/Extract.pm', 13 XSPROTOARG => '-noprototypes', 14 MAN3PODS => { 15 'pm/Extract.pm' => '$(INST_MAN3DIR)/File::Extract.$(MAN3EXT)' 16 }, 17 PM => { 18 'pm/Extract.pm' => '$(INST_LIBDIR)/Extract.pm' 19 }, 20 INC => '-Wall -I'.cwd(), 21 LIBS => '-lextractor', 22 do { 23 my @clean = (); 24 my @OBJECT = (); 25 my %XS = (); 26 for my $xs (<xs/*.xs>) { 27 (my $c = $xs) =~ s/\.xs$/\.c/i; 28 (my $o = $xs) =~ s/\.xs$/\$(OBJ_EXT)/i; 29 $XS{$xs} = $c; 30 push @OBJECT, $o; 31 push @clean, $o; 32 } 33 34 for my $c (<*.c>) { 35 (my $o = $c) =~ s/\.c$/\$(OBJ_EXT)/i; 36 push @OBJECT, $o; 37 push @clean, $o; 38 } 39 40 clean => { FILES => join(" ", @clean) }, OBJECT => join(" ", @OBJECT), XS => \%XS 41 }, 42 ); 43 44 package MY; 45 46 sub const_cccmd { 47 my $inherited = shift->SUPER::const_cccmd(@_); 48 return '' unless $inherited; 49 use Config; 50 if ($Config{cc} eq 'cl') { 51 warn "you are using MSVC... my condolences."; 52 $inherited .= ' /Fo$@'; 53 } else { 54 $inherited .= ' -o $@'; 55 } 56 57 return $inherited; 58 } 59 60 1;