ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/EV/Makefile.PL
Revision: 1.14
Committed: Fri Nov 2 11:11:05 2007 UTC (16 years, 6 months ago) by root
Content type: text/plain
Branch: MAIN
Changes since 1.13: +6 -8 lines
Log Message:
*** empty log message ***

File Contents

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