Annotation of embedaddon/nginx/auto/os/darwin, revision 1.1.1.1
1.1 misho 1:
2: # Copyright (C) Igor Sysoev
3: # Copyright (C) Nginx, Inc.
4:
5:
6: have=NGX_DARWIN . auto/have_headers
7:
8: CORE_INCS="$UNIX_INCS"
9: CORE_DEPS="$UNIX_DEPS $DARWIN_DEPS"
10: CORE_SRCS="$UNIX_SRCS $DARWIN_SRCS"
11:
12:
13:
14: ngx_spacer='
15: '
16:
17: # kqueue
18:
19: echo " + kqueue found"
20: have=NGX_HAVE_KQUEUE . auto/have
21: have=NGX_HAVE_CLEAR_EVENT . auto/have
22: EVENT_MODULES="$EVENT_MODULES $KQUEUE_MODULE"
23: CORE_SRCS="$CORE_SRCS $KQUEUE_SRCS"
24: EVENT_FOUND=YES
25: NGX_KQUEUE_CHECKED=YES
26:
27: ngx_feature="kqueue's EVFILT_TIMER"
28: ngx_feature_name="NGX_HAVE_TIMER_EVENT"
29: ngx_feature_run=yes
30: ngx_feature_incs="#include <sys/event.h>
31: #include <sys/time.h>"
32: ngx_feature_path=
33: ngx_feature_libs=
34: ngx_feature_test="int kq;
35: struct kevent kev;
36: struct timespec ts;
37:
38: if ((kq = kqueue()) == -1) return 1;
39:
40: kev.ident = 0;
41: kev.filter = EVFILT_TIMER;
42: kev.flags = EV_ADD|EV_ENABLE;
43: kev.fflags = 0;
44: kev.data = 1000;
45: kev.udata = 0;
46:
47: ts.tv_sec = 0;
48: ts.tv_nsec = 0;
49:
50: if (kevent(kq, &kev, 1, &kev, 1, &ts) == -1) return 1;
51:
52: if (kev.flags & EV_ERROR) return 1;"
53:
54: . auto/feature
55:
56:
57: ngx_feature="Darwin 64-bit kqueue millisecond timeout bug"
58: ngx_feature_name=NGX_DARWIN_KEVENT_BUG
59: ngx_feature_run=bug
60: ngx_feature_incs="#include <sys/event.h>
61: #include <sys/time.h>"
62: ngx_feature_path=
63: ngx_feature_libs=
64: ngx_feature_test="int kq;
65: struct kevent kev;
66: struct timespec ts;
67: struct timeval tv, tv0;
68:
69: kq = kqueue();
70:
71: ts.tv_sec = 0;
72: ts.tv_nsec = 999000000;
73:
74: gettimeofday(&tv, 0);
75: kevent(kq, NULL, 0, &kev, 1, &ts);
76: gettimeofday(&tv0, 0);
77: timersub(&tv0, &tv, &tv);
78:
79: if (tv.tv_sec * 1000000 + tv.tv_usec < 900000) return 1;"
80:
81: . auto/feature
82:
83:
84: # sendfile()
85:
86: CC_AUX_FLAGS="$CC_AUX_FLAGS"
87: ngx_feature="sendfile()"
88: ngx_feature_name="NGX_HAVE_SENDFILE"
89: ngx_feature_run=yes
90: ngx_feature_incs="#include <sys/types.h>
91: #include <sys/socket.h>
92: #include <sys/uio.h>
93: #include <sys/errno.h>"
94: ngx_feature_path=
95: ngx_feature_libs=
96: ngx_feature_test="int s = 0, fd = 1;
97: off_t n; off_t off = 0;
98: n = sendfile(s, fd, off, &n, NULL, 0);
99: if (n == -1 && errno == ENOSYS) return 1"
100: . auto/feature
101:
102: if [ $ngx_found = yes ]; then
103: have=NGX_HAVE_SENDFILE . auto/have
104: CORE_SRCS="$CORE_SRCS $DARWIN_SENDFILE_SRCS"
105: fi
106:
107:
108: ngx_feature="atomic(3)"
109: ngx_feature_name=NGX_DARWIN_ATOMIC
110: ngx_feature_run=no
111: ngx_feature_incs="#include <libkern/OSAtomic.h>"
112: ngx_feature_path=
113: ngx_feature_libs=
114: ngx_feature_test="int32_t lock, n;
115: n = OSAtomicCompareAndSwap32Barrier(0, 1, lock)"
116: . auto/feature
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>