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

# User Rev Content
1 root 1.4 use 5.006;
2    
3 root 1.7 use Config;
4 root 1.1 use ExtUtils::MakeMaker;
5    
6 root 1.10
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 root 1.11 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 root 1.14 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 root 1.11
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 root 1.1 WriteMakefile(
107     dist => {
108 root 1.2 PREOP => 'pod2text EV.pm | tee README >$(DISTVNAME)/README; chmod -R u=rwX,go=rX . ;',
109 root 1.1 COMPRESS => 'gzip -9v',
110     SUFFIX => '.gz',
111     },
112 root 1.10 depend => {
113 root 1.13 "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 root 1.10 },
117 root 1.8 INC => "-Ilibev",
118 root 1.11 DEFINE => "$DEFINE",
119 root 1.2 NAME => "EV",
120 root 1.11 LIBS => [$LIBS],
121 root 1.2 VERSION_FROM => "EV.pm",
122 root 1.5 PM => {
123     'EV.pm' => '$(INST_LIBDIR)/EV.pm',
124     'EV/AnyEvent.pm' => '$(INST_LIBDIR)/EV/AnyEvent.pm',
125 root 1.12 'EV/DNS.pm' => '$(INST_LIBDIR)/EV/DNS.pm',
126 root 1.5 'EV/EVAPI.h' => '$(INST_LIBDIR)/EV/EVAPI.h',
127     'EV/MakeMaker.pm' => '$(INST_LIBDIR)/EV/MakeMaker.pm',
128 root 1.8 'libev/ev.h' => '$(INST_LIBDIR)/EV/ev.h',
129 root 1.5 },
130 root 1.1 );
131    
132 root 1.6