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

Comparing EV/Makefile.PL (file contents):
Revision 1.5 by root, Mon Oct 29 08:48:07 2007 UTC vs.
Revision 1.14 by root, Fri Nov 2 11:11:05 2007 UTC

1use 5.006; 1use 5.006;
2 2
3use Config;
3use ExtUtils::MakeMaker; 4use ExtUtils::MakeMaker;
5
6
7unless (-e "libev/ev_epoll.c") {
8 print <<EOF;
9
10***
11*** ERROR: libev is missing or damaged. If you used a CVS check-out of EV,
12*** you also have to check-out the "libev" module from the same CVS
13*** repository into the EV dir (i.e. EV/libev from outside).
14***
15
16EOF
17 exit 1;
18}
4 19
5print <<EOF; 20print <<EOF;
6 21
7*** 22
8*** You need to install libevent (http://monkey.org/~provos/libevent/) separately 23*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
9*** first in a way so that the Makefile.PL can find both -levent and the event.h 24
10*** and evdns.h include files. 25Welcome to EV configuration. If you are in a hurry, just press return here
11*** 26and hope for the best. The defaults should usually do.
12*** Version 1.3e or higher is recommended, but older 1.3 versions likely work too. 27
13*** 28EOF
29
30if (prompt ("Skip further questions and use defaults (y/n)?", "y") =~ /[yY]/) {
31 $ENV{PERL_MM_USE_DEFAULT} = 1;
32}
33
34print <<EOF;
35
36
37*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
38
39POSIX optionally offers support for a monotonic clock source. EV
40can take advantage of this clock source to detect time jumps
41reliably. Unfortunately, some systems are bound to be broken, so you can
42disable this here: you can completely disable the detection and use of
43the monotonic clock by answering 'n' here. Support for this clock type
44will otherwise be autodetected at both compile- and runtime.
45
46EOF
47
48if (prompt ("Enable optional support for CLOCK_MONOTONIC (y/n)?", "y") =~ /[yY]/) {
49 $DEFINE .= " -DEV_USE_MONOTONIC";
50}
51
52print <<EOF;
53
54
55*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
56
57POSIX optionally offers support for a (potentially) high-resolution
58realtime clock interface. In a good implementation, using it is faster
59than the normal method of using gettimeofday. Unfortunately, this option
60is also bound to be broken on some systems, so you can disable use and
61probing of this feature altogether here. Otherwise support for this clock
62type will be autodetected at compiletime.
63
64EOF
65
66if (prompt ("Prefer clock_gettime (CLOCK_REALTIME) over gettimeofday (y/n)?", "y") !~ /[yY]/) {
67 $DEFINE .= " -DEV_USE_REALTIME=0";
68}
69
70print <<EOF;
71
72
73*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
74
75EV needs the functions pthread_atfork and clock_gettime. On most systems
76you need some special libraries for this (such as -lrt and -lpthread). You can
77specify additional libraries to provide these calls now, or accept the default.
78
79EOF
80
81$LIBS = prompt "Extra libraries for pthread_atfork and clock_gettime?", "-lpthread -lrt";
82
83
84print <<EOF;
85
86
87*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
88
89EV needs the functions pthread_atfork and clock_gettime. On most systems
90you need some special libraries for this (such as -lrt and -lpthread). You can
91specify additional libraries to provide these calls now, or accept the default.
92
93EOF
94
95if (prompt ("Enable epoll backend (y/n)?", (-e "/usr/include/sys/epoll.h") ? "y" : "n") =~ /[yY]/) {
96 $DEFINE .= " -DEV_USE_EPOLL";
97}
98
99print <<EOF;
100
101
102*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
14 103
15EOF 104EOF
16 105
17WriteMakefile( 106WriteMakefile(
18 dist => { 107 dist => {
19 PREOP => 'pod2text EV.pm | tee README >$(DISTVNAME)/README; chmod -R u=rwX,go=rX . ;', 108 PREOP => 'pod2text EV.pm | tee README >$(DISTVNAME)/README; chmod -R u=rwX,go=rX . ;',
20 COMPRESS => 'gzip -9v', 109 COMPRESS => 'gzip -9v',
21 SUFFIX => '.gz', 110 SUFFIX => '.gz',
22 }, 111 },
23 LIBS => ["-levent"], 112 depend => {
113 "EV.c" => "EV/EVAPI.h "
114 . "libev/ev.c libev/ev.h libev/ev_epoll.c libev/ev_select.c "
115 . "libev/event.h libev/event.c libev/evdns.h libev/evdns.c",
116 },
117 INC => "-Ilibev",
118 DEFINE => "$DEFINE",
24 NAME => "EV", 119 NAME => "EV",
120 LIBS => [$LIBS],
25 VERSION_FROM => "EV.pm", 121 VERSION_FROM => "EV.pm",
26 PM => { 122 PM => {
27 'EV.pm' => '$(INST_LIBDIR)/EV.pm', 123 'EV.pm' => '$(INST_LIBDIR)/EV.pm',
28 'EV/AnyEvent.pm' => '$(INST_LIBDIR)/EV/AnyEvent.pm', 124 'EV/AnyEvent.pm' => '$(INST_LIBDIR)/EV/AnyEvent.pm',
29 'EV/DNS.pm' => '$(INST_LIBDIR)/EV/DNS.pm', 125 'EV/DNS.pm' => '$(INST_LIBDIR)/EV/DNS.pm',
30 'EV/EVAPI.h' => '$(INST_LIBDIR)/EV/EVAPI.h', 126 'EV/EVAPI.h' => '$(INST_LIBDIR)/EV/EVAPI.h',
31 'EV/MakeMaker.pm' => '$(INST_LIBDIR)/EV/MakeMaker.pm', 127 'EV/MakeMaker.pm' => '$(INST_LIBDIR)/EV/MakeMaker.pm',
128 'libev/ev.h' => '$(INST_LIBDIR)/EV/ev.h',
32 }, 129 },
33); 130);
34 131
132

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines