Annotation of embedaddon/nginx/auto/os/darwin, revision 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>