use ExtUtils::MakeMaker; use 5.006; use Config; $DEFINE = ""; $DEFINE .= " -DHAVE_MMAP" if $Config{d_mmap} eq "define" && $Config{d_munmap} eq "define"; if ($^O =~ /windows/) { $DEFINE = " -DCORO_LOOSE"; } elsif ($^O =~ /linux/) { $iface = "l"; } elsif (-e "/usr/include/ucontext.h") { $iface = "u"; } else { $iface = "s"; } if ($iface) { print <; $iface = lc $1 if $r =~ /(\S)/; if ($iface eq "u") { $DEFINE .= " -DCORO_UCONTEXT"; print "\nUsing ucontext implementation\n\n"; } elsif ($iface eq "s") { $DEFINE .= " -DCORO_SJLJ"; print "\nUsing setjmp/longjmp/sigaltstack implementation\n\n"; } elsif ($iface eq "l") { $DEFINE .= " -DCORO_LINUX"; print "\nUsing linux-specific implementation\n\n"; } else { print "\nUnknown implementation \"$iface\"\n"; goto retry; } } else { print "\nUsing microsoft coroutine implementation\n\n"; } WriteMakefile( NAME => "Coro::State", VERSION_FROM => "State.pm", DEFINE => $DEFINE, DIR => [], );