2
# Copyright (C) Igor Sysoev
5
NGX_USER=${NGX_USER:-nobody}
7
if [ -z "$NGX_GROUP" ]; then
8
if [ $NGX_USER = nobody ]; then
9
if grep nobody /etc/group 2>&1 >/dev/null; then
10
echo "checking for nobody group ... found"
13
echo "checking for nobody group ... not found"
15
if grep nogroup /etc/group 2>&1 >/dev/null; then
16
echo "checking for nogroup group ... found"
19
echo "checking for nogroup group ... not found"
32
ngx_feature_incs="#include <poll.h>"
35
ngx_feature_test="int n, dp; struct pollfd pl;
43
if [ $ngx_found = no ]; then
48
ngx_feature="/dev/poll"
49
ngx_feature_name="NGX_HAVE_DEVPOLL"
51
ngx_feature_incs="#include <sys/devpoll.h>"
54
ngx_feature_test="int n, dp; struct dvpoll dvp;
59
n = ioctl(dp, DP_POLL, &dvp)"
62
if [ $ngx_found = yes ]; then
63
CORE_SRCS="$CORE_SRCS $DEVPOLL_SRCS"
64
EVENT_MODULES="$EVENT_MODULES $DEVPOLL_MODULE"
69
if test -z "$NGX_KQUEUE_CHECKED"; then
71
ngx_feature_name="NGX_HAVE_KQUEUE"
73
ngx_feature_incs="#include <sys/event.h>"
76
ngx_feature_test="int kq; kq = kqueue()"
79
if [ $ngx_found = yes ]; then
81
have=NGX_HAVE_CLEAR_EVENT . auto/have
82
EVENT_MODULES="$EVENT_MODULES $KQUEUE_MODULE"
83
CORE_SRCS="$CORE_SRCS $KQUEUE_SRCS"
86
ngx_feature="kqueue's NOTE_LOWAT"
87
ngx_feature_name="NGX_HAVE_LOWAT_EVENT"
89
ngx_feature_incs="#include <sys/event.h>"
92
ngx_feature_test="struct kevent kev;
93
kev.fflags = NOTE_LOWAT;"
97
ngx_feature="kqueue's EVFILT_TIMER"
98
ngx_feature_name="NGX_HAVE_TIMER_EVENT"
100
ngx_feature_incs="#include <sys/event.h>
101
#include <sys/time.h>"
104
ngx_feature_test="int kq;
108
if ((kq = kqueue()) == -1) return 1;
111
kev.filter = EVFILT_TIMER;
112
kev.flags = EV_ADD|EV_ENABLE;
120
if (kevent(kq, &kev, 1, &kev, 1, &ts) == -1) return 1;
122
if (kev.flags & EV_ERROR) return 1;"
127
if [ "$NGX_SYSTEM" = "Darwin" ]; then
129
ngx_feature="Darwin 64-bit kqueue millisecond timeout bug"
130
ngx_feature_name=NGX_DARWIN_KEVENT_BUG
132
ngx_feature_incs="#include <sys/event.h>
133
#include <sys/time.h>"
136
ngx_feature_test="int kq;
139
struct timeval tv, tv0;
144
ts.tv_nsec = 999000000;
146
gettimeofday(&tv, 0);
147
kevent(kq, NULL, 0, &kev, 1, &ts);
148
gettimeofday(&tv0, 0);
149
timersub(&tv0, &tv, &tv);
151
if (tv.tv_sec * 1000000 + tv.tv_usec < 900000) return 1;"
159
if [ "$NGX_SYSTEM" = "NetBSD" ]; then
161
# NetBSD 2.0 incompatibly defines kevent.udata as "intptr_t"
163
cat << END >> $NGX_AUTO_CONFIG_H
165
#define NGX_KQUEUE_UDATA_T
170
cat << END >> $NGX_AUTO_CONFIG_H
172
#define NGX_KQUEUE_UDATA_T (void *)
179
ngx_feature="crypt()"
185
ngx_feature_test="crypt(\"test\", \"salt\");"
189
if [ $ngx_found = no ]; then
191
ngx_feature="crypt() in libcrypt"
196
ngx_feature_libs=-lcrypt
199
if [ $ngx_found = yes ]; then