ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/EV/Makefile.PL
(Generate patch)

Comparing EV/Makefile.PL (file contents):
Revision 1.12 by root, Thu Nov 1 15:46:43 2007 UTC vs.
Revision 1.17 by root, Thu Nov 8 00:44:17 2007 UTC

34print <<EOF; 34print <<EOF;
35 35
36 36
37*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 37*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
38 38
39POSIX optionally offers support for a monotonic clock source. EV can 39POSIX optionally offers support for a monotonic clock source. EV
40take advantage of this clock source to detect time jumps reliably. This 40can take advantage of this clock source to detect time jumps
41will usually slow down EV a tiny amount, but this is usually
42well-invested. Unfortunately, some systems are bound to be broken, so 41reliably. Unfortunately, some systems are bound to be broken, so you can
43you can disable this here. Whatever your reasons, you can completely 42disable this here: you can completely disable the detection and use of
44disable the detection and use of this monotonic clock by answering 'n' 43the monotonic clock by answering 'n' here. Support for this clock type
45here. Support for this clock type will otherwise be autodetected at both 44will otherwise be autodetected at both compile- and runtime.
46compile- and runtime.
47 45
48EOF 46EOF
49 47
50if (prompt ("Enable optional support for CLOCK_MONOTONIC (y/n)?", "y") =~ /[yY]/) { 48if (prompt ("Enable optional support for CLOCK_MONOTONIC (y/n)?", "y") =~ /[yY]/) {
51 $DEFINE .= " -DEV_USE_MONOTONIC"; 49 $DEFINE .= " -DEV_USE_MONOTONIC";
72print <<EOF; 70print <<EOF;
73 71
74 72
75*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 73*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
76 74
77EV needs the functions pthread_atfork and clock_gettime. On most systems 75EV by default uses select, which makes it hard to write efficient servers,
78you need some special libraries for this (such as -lrt and -lpthread). You can 76especially if the number of active conencitons is much lower than the open
79specify additional libraries to provide these calls now, or accept the default. 77ones. GNU/Linux systems have a more scalable method called "epoll", which
80 78EV can use. For this to work, both your kernel and glibc have to support
81EOF 79epoll, but if you can compile it, the detection will be done at runtime,
82 80and EV will safely fall back to using select when epoll isn't available.
83$LIBS = prompt "Extra libraries for pthread_atfork and clock_gettime?", "-lpthread -lrt"; 81If unsure, accept the default.
84
85
86print <<EOF;
87
88
89*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
90
91EV needs the functions pthread_atfork and clock_gettime. On most systems
92you need some special libraries for this (such as -lrt and -lpthread). You can
93specify additional libraries to provide these calls now, or accept the default.
94 82
95EOF 83EOF
96 84
97if (prompt ("Enable epoll backend (y/n)?", (-e "/usr/include/sys/epoll.h") ? "y" : "n") =~ /[yY]/) { 85if (prompt ("Enable epoll backend (y/n)?", (-e "/usr/include/sys/epoll.h") ? "y" : "n") =~ /[yY]/) {
98 $DEFINE .= " -DEV_USE_EPOLL"; 86 $DEFINE .= " -DEV_USE_EPOLL";
101print <<EOF; 89print <<EOF;
102 90
103 91
104*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 92*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
105 93
94Similarly to the epoll backend above, EV can take advantage of kqueue on
95many BSD systems (it seems to be broken on Mac OS X though). The kqueue
96backend has not been tested, however, so it is disabled by default. Please
97test (and preferably fix) the kqueue backend when you have a machine
98supporting it. Support for kqueue will be detected at runtime, with a
99safe fallback to other methods when it cannot be used.
100
106EOF 101EOF
107 102
108#$ENV{CC} = $Config{cc}; 103if (prompt ("Enable kqueue backend (y/n)?", (-e "/usr/include/sys/event.h") ? "y" : "n") =~ /[yY]/) {
109#$ENV{CFLAGS} = join " ", map $Config{$_}, qw(inc optimize ccflags cccdlflags); 104 $DEFINE .= " -DEV_USE_KQUEUE";
110#system "cd libevent && ./configure --disable-shared --enable-static --disable-maintainer-mode" 105}
111# and die "configure failed.";
112 106
113#$LIBS = qx<cd libevent && make printlibs>; 107print <<EOF;
108
109
110*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
111
112EV needs the functions pthread_atfork and clock_gettime. On most systems
113you need some special libraries for this (such as -lrt and -lpthread). You
114can specify additional libraries to provide these calls now, or accept the
115default.
116
117EOF
118
119$LIBS = prompt "Extra libraries for pthread_atfork and clock_gettime?", "-lpthread -lrt";
120
121
122print <<EOF;
123
124
125*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
126
127EOF
114 128
115WriteMakefile( 129WriteMakefile(
116 dist => { 130 dist => {
117 PREOP => 'pod2text EV.pm | tee README >$(DISTVNAME)/README; chmod -R u=rwX,go=rX . ;', 131 PREOP => 'pod2text EV.pm | tee README >$(DISTVNAME)/README; chmod -R u=rwX,go=rX . ;',
118 COMPRESS => 'gzip -9v', 132 COMPRESS => 'gzip -9v',
119 SUFFIX => '.gz', 133 SUFFIX => '.gz',
120 }, 134 },
121 depend => { 135 depend => {
122 "EV.c" => "EV/EVAPI.h libev/ev.c libev/ev.h libev/ev_epoll.c libev/ev_select.c", 136 "EV.c" => "EV/EVAPI.h "
137 . "libev/ev.c libev/ev.h libev/ev_epoll.c libev/ev_select.c libev/ev_kqueue.c libev/ev_poll.c "
138 . "libev/event.h libev/event.c libev/evdns.h libev/evdns.c",
123 }, 139 },
124 INC => "-Ilibev", 140 INC => "-Ilibev",
125 DEFINE => "$DEFINE", 141 DEFINE => "$DEFINE",
126 NAME => "EV", 142 NAME => "EV",
127 LIBS => [$LIBS], 143 LIBS => [$LIBS],

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines