1#!/usr/bin/perl -w
2
3use strict;
4use ExtUtils::MakeMaker;
5
6eval { require 'syscall.ph'; 1 } || eval { require 'sys/syscall.ph'; 1 };
7
8my $SYS_kqueue = eval { &::SYS_kqueue } || 362;
9
10my $kq = eval { syscall($SYS_kqueue) };
11
12if ($@) {
13    print <<EOT;
14No kqueue() available on this platform.
15
16EOT
17    exit;
18}
19
20WriteMakefile(
21    VERSION_FROM   => 'KQueue.pm',
22    NAME           => 'IO::KQueue',
23    PREREQ_PM      => {  },
24    ABSTRACT_FROM  => 'KQueue.pm',
25    AUTHOR         => 'Matt Sergeant <matt@sergeant.org>',
26    clean          => {FILES => "tv.log"}
27);
28
29eval { require ExtUtils::Constant; 1 };
30if (!$@) {
31    ExtUtils::Constant::WriteConstants(
32        NAME           => 'IO::KQueue',
33        NAMES          => [qw(
34                                EV_ADD
35                                EV_DELETE
36                                EV_ENABLE
37                                EV_DISABLE
38                                EV_ONESHOT
39                                EV_CLEAR
40                                EV_EOF
41                                EV_ERROR
42                                EVFILT_READ
43                                EVFILT_WRITE
44                                EVFILT_VNODE
45                                EVFILT_PROC
46                                EVFILT_SIGNAL
47                                EVFILT_TIMER
48                                EVFILT_FS
49                                NOTE_LOWAT
50                                NOTE_DELETE
51                                NOTE_WRITE
52                                NOTE_EXTEND
53                                NOTE_ATTRIB
54                                NOTE_LINK
55                                NOTE_RENAME
56                                NOTE_REVOKE
57                                NOTE_EXIT
58                                NOTE_FORK
59                                NOTE_EXEC
60                                NOTE_PCTRLMASK
61                                NOTE_PDATAMASK
62                                NOTE_TRACK
63                                NOTE_TRACKERR
64                                NOTE_CHILD
65                             )],
66    );
67}
68