use ExtUtils::MakeMaker;
use Config;
use vars qw/$os $osmakefile $osmaketarget $osobjext @winobjs $windllcmd $winsys/;
require File::Spec;
$Verbose = 1;
my $exe = $Config::Config{_exe};
my $o = $Config::Config{obj_ext};
my $unzipdir = "unzip-5.52";
my $toptargettext;
if ( $^O =~ /^MSWin/i ) {
my $cleanfiles;
for(@winobjs) {
$cleanfiles .= qq($unzipdir/$_$o );
}
if( $winsys eq 'vc' ) {
$cleanfiles .= qq($unzipdir/windll.res $unzipdir/unzip32.lib $unzipdir/unzip32.exp $unzipdir/unzip32.dll);
} else {
$cleanfiles .= qq($unzipdir/windllrc.o $unzipdir/windll.o $unzipdir/unzip32.dll);
}
$toptargettext = "all :: dll
pure_all :: dll
dll :
\tcd $unzipdir && $windllcmd
";
WriteMakefile(
NAME => 'Archive::Unzip::Burst',
clean => {'FILES' => $cleanfiles },
test => { 'TESTS' => '' },
);
} # end if win32
else {
if (not defined $os) {
die "The Makefile.PL in res/ is designed to be included by the main Makefile.PL!";
}
my $objects;
if ($os eq 'unix' or $os eq 'win32') {
$objects = join(' ', map {File::Spec->catfile($unzipdir, "$_$osobjext$o")} qw|unzip crc32 crctab crypt envargs explode extract fileio globals inflate list match process ttyio unreduce unshrink zipinfo api|, "$os");
}
else {
die "Funny OS. Don't know what to link.";
}
$toptargettext = "all :: static
pure_all :: static
static :: libmyunzip\$(LIB_EXT)
libmyunzip\$(LIB_EXT): \$(O_FILES)
\$(AR) cr libmyunzip\$(LIB_EXT) $objects
\$(RANLIB) libmyunzip\$(LIB_EXT)
";
WriteMakefile(
NAME => 'Archive::Unzip::Burst',
#SKIP => [qw(all static static_lib dynamic dynamic_lib)],
DEFINE => '-fPIC -DDLL -O3', # e.g., '-DHAVE_SOMETHING'
INC => "-I. -Iunzip-5.52 -Iunzip-5.52/$os", # e.g., '-I. -I/usr/include/other'
clean => {
'FILES' => "libmyunzip\$(LIB_EXT) $objects $unzipdir/unzipstb.o $unzipdir/*.so $unzipdir/*.dll $unzipdir/*.so.* $unzipdir/unzip_shlib$exe $unzipdir/Makefile $unzipdir/*.o"
},
OBJECT => $objects,
);
} # end if not win32
sub MY::top_targets {
"
$toptargettext
";
}