--- Coro/Makefile.PL 2001/12/31 20:46:53 1.11 +++ Coro/Makefile.PL 2008/05/31 12:10:55 1.52 @@ -1,22 +1,76 @@ use ExtUtils::MakeMaker; +unless (-e "Coro/libcoro/coro.c") { + print < +*** + +EOF +} + +if (eval { require Event }) { + if ($Event::VERSION < 0.86 or $Event::VERSION == 0.88) { + print < +*** This version of Event is broken. The only currently known non-broken +*** versions of Event are 0.87 and 0.89+. Please install one of those +*** versions. *** EOF + } else { + $EVENT = 1; + $DEFINE .= " -DHAVE_EVENT=1"; + print "\nEvent version $Event::VERSION found, building Event support.\n\n"; + } +} else { + print "\n*** Event not found, not build Event support.\n\n"; } -$EVENT = eval { require Event }; +if (eval { require EV }) { + if ($EV::VERSION < 3.3) { + print < { @@ -26,13 +80,70 @@ }, NAME => "Coro", VERSION_FROM => "Coro.pm", - DIR => ['Coro', ($EVENT ? 'Event' : ())], + DIR => ['Coro', ($EVENT ? 'Event' : ()), ($EV ? "EV" : ())], PREREQ_PM => { - Event => 0.83, # still, 0.83 and below have serious bugs(!) Scalar::Util => 0.00, + AnyEvent => 4.1, + Storable => 2.15, + Time::HiRes => 0, + + # for Coro::Event + #Event => 1.06, + + # for Coro::EV + #EV => 3.0, + + # for Coro::AIO + #IO::AIO => 2.3, + #AnyEvent::AIO => 1.0, + + # for Coro::BDB + #BDB => 1.5, + #AnyEvent::BDB => 1.0, + }, + # neither configure_requires nor recommends can be used + # for optional dependencies. whoever decided that a module needs + # to build properly without its dependencies installed + # needs his brian rearranged dramatically. + EXTRA_META => q{ +recommends: + Event: 1.08 + EV: 3.0 + IO::AIO: 0 + AnyEvent::AIO: 1.0 + BDB: 0 + AnyEvent::BDB: 1.0 }, PM => { 'Coro.pm' => '$(INST_LIBDIR)/Coro.pm', + + 'Coro/State.pm' => '$(INST_LIBDIR)/Coro/State.pm', + + 'Coro/MakeMaker.pm' => '$(INST_LIBDIR)/Coro/MakeMaker.pm', + 'Coro/CoroAPI.h' => '$(INST_LIBDIR)/Coro/CoroAPI.h', + +# 'Coro/Cont.pm' => '$(INST_LIBDIR)/Coro/Cont.pm', + + 'Coro/Specific.pm' => '$(INST_LIBDIR)/Coro/Specific.pm', + + 'Coro/Timer.pm' => '$(INST_LIBDIR)/Coro/Timer.pm', + 'Coro/Signal.pm' => '$(INST_LIBDIR)/Coro/Signal.pm', + 'Coro/Channel.pm' => '$(INST_LIBDIR)/Coro/Channel.pm', + 'Coro/Semaphore.pm' => '$(INST_LIBDIR)/Coro/Semaphore.pm', + 'Coro/SemaphoreSet.pm'=> '$(INST_LIBDIR)/Coro/SemaphoreSet.pm', + 'Coro/RWLock.pm' => '$(INST_LIBDIR)/Coro/RWLock.pm', + + 'Coro/Debug.pm' => '$(INST_LIBDIR)/Coro/Debug.pm', + 'Coro/Util.pm' => '$(INST_LIBDIR)/Coro/Util.pm', + 'Coro/Select.pm' => '$(INST_LIBDIR)/Coro/Select.pm', + 'Coro/Handle.pm' => '$(INST_LIBDIR)/Coro/Handle.pm', + 'Coro/Socket.pm' => '$(INST_LIBDIR)/Coro/Socket.pm', + + 'Coro/AIO.pm' => '$(INST_LIBDIR)/Coro/AIO.pm', + 'Coro/BDB.pm' => '$(INST_LIBDIR)/Coro/BDB.pm', + 'Coro/LWP.pm' => '$(INST_LIBDIR)/Coro/LWP.pm', + 'Coro/Storable.pm' => '$(INST_LIBDIR)/Coro/Storable.pm', + 'Coro/AnyEvent.pm' => '$(INST_LIBDIR)/Coro/AnyEvent.pm', }, ); @@ -41,7 +152,7 @@ # set \$VERSION in all modules setver: - \$(PERL) -pi -e 's/^(\\s*\\\$\$VERSION\\s*=\\s*).*\$\$/\$\${1}\$(VERSION);/' *.pm Coro/*.pm + \$(PERL) -pi -e 's/^(\\s*(our\\s*)?\\\$\$VERSION\\s*=\\s*).*\$\$/\$\${1}\$(VERSION);/' *.pm Coro/*.pm EV/*.pm Event/*.pm EOF }