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>