use Config; use ExtUtils::MakeMaker; $Verbose = 1; $lddl=$Config{"lddlflags"}; @plugins= qw(dyntest dt2 mandelbrot flines); $libstr=join(' ',map { $_.'.$(SO)' } @plugins); #print $libstr,"\n"; #print $objstr,"\n"; #print MY::top_targets(); WriteMakefile( NAME => 'Imager::plugins', SKIP => [qw(all dynamic static )], clean => {'FILES' => $libstr}, ); sub lddl_magic { my $t; $t=$lddl; $t=~s/-bI:\$\(PERL_INC\)\/perl.exp//; $t=~s/\$\(BASEEXT\)/$_[0]/; return $t; } sub MY::top_targets { use Config; if ($^O eq 'aix') { ' all :: dynamic dynamic :: '.$libstr.(join("\n",map { qq{ $_.\$(SO): $_\$(OBJ_EXT) LD_RUN_PATH="\$(LD_RUN_PATH)" \$(LD) -o \$\@ }.lddl_magic($_).qq{ \$(OTHERLDFLAGS) $_\$(OBJ_EXT) } } @plugins)).' pure_all :: \$(NOOP) '; } elsif ($^O =~ /win32/i && $Config{cc} =~ /cl/) { my @libpth = grep /\S/, split /("[^"]*"|\S+)/,$Config{libpth}; ' all :: dynamic dynamic :: '.$libstr.(join("\n",map { qq{ $_.\$(SO): $_\$(OBJ_EXT) \$(LD) /OUT:\$\@ }.lddl_magic($_).qq{ \$(OTHERLDFLAGS) $_\$(OBJ_EXT) $Config{libs} }.join(' ', map "/libpath:$_", @libpth).qq{ } } @plugins)).' pure_all :: \$(NOOP) '; } else { ' all :: dynamic dynamic :: '.$libstr.(join("\n",map { qq{ $_.\$(SO): $_\$(OBJ_EXT) LD_RUN_PATH="\$(LD_RUN_PATH)" \$(LD) -o \$\@ \$(LDDLFLAGS) \$(OTHERLDFLAGS) $_\$(OBJ_EXT) } } @plugins)).' pure_all :: \$(NOOP) '; } }