Return to linux CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / nginx / auto / os |
1.1 ! misho 1: ! 2: # Copyright (C) Igor Sysoev ! 3: # Copyright (C) Nginx, Inc. ! 4: ! 5: ! 6: have=NGX_LINUX . auto/have_headers ! 7: ! 8: CORE_INCS="$UNIX_INCS" ! 9: CORE_DEPS="$UNIX_DEPS $LINUX_DEPS" ! 10: CORE_SRCS="$UNIX_SRCS $LINUX_SRCS" ! 11: ! 12: ngx_spacer=' ! 13: ' ! 14: ! 15: cc_aux_flags="$CC_AUX_FLAGS" ! 16: CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64" ! 17: ! 18: ! 19: # Linux kernel version ! 20: ! 21: version=$((`uname -r \ ! 22: | sed -n -e 's/^\([0-9][0-9]*\)\.\([0-9][0-9]*\)\.\([0-9][0-9]*\).*/ \ ! 23: \1*256*256+\2*256+\3/p' \ ! 24: -e 's/^\([0-9][0-9]*\)\.\([0-9][0-9]*\).*/\1*256*256+\2*256/p'`)) ! 25: ! 26: version=${version:-0} ! 27: ! 28: ! 29: # enable the rt signals on Linux between 2.2.19 and 2.6.17 ! 30: ! 31: if [ \( $version -ge 131603 -a $version -lt 132626 \) -o $EVENT_RTSIG = YES ] ! 32: then ! 33: echo " + rt signals found" ! 34: have=NGX_HAVE_RTSIG . auto/have ! 35: EVENT_MODULES="$EVENT_MODULES $RTSIG_MODULE" ! 36: CORE_SRCS="$CORE_SRCS $RTSIG_SRCS" ! 37: EVENT_FOUND=YES ! 38: fi ! 39: ! 40: ! 41: # posix_fadvise64() had been implemented in 2.5.60 ! 42: ! 43: if [ $version -lt 132412 ]; then ! 44: have=NGX_HAVE_POSIX_FADVISE . auto/nohave ! 45: fi ! 46: ! 47: # epoll, EPOLLET version ! 48: ! 49: ngx_feature="epoll" ! 50: ngx_feature_name="NGX_HAVE_EPOLL" ! 51: ngx_feature_run=yes ! 52: ngx_feature_incs="#include <sys/epoll.h>" ! 53: ngx_feature_path= ! 54: ngx_feature_libs= ! 55: ngx_feature_test="int efd = 0; ! 56: struct epoll_event ee; ! 57: ee.events = EPOLLIN|EPOLLOUT|EPOLLET; ! 58: ee.data.ptr = NULL; ! 59: efd = epoll_create(100); ! 60: if (efd == -1) return 1;" ! 61: . auto/feature ! 62: ! 63: if [ $ngx_found = yes ]; then ! 64: have=NGX_HAVE_CLEAR_EVENT . auto/have ! 65: CORE_SRCS="$CORE_SRCS $EPOLL_SRCS" ! 66: EVENT_MODULES="$EVENT_MODULES $EPOLL_MODULE" ! 67: EVENT_FOUND=YES ! 68: fi ! 69: ! 70: ! 71: # sendfile() ! 72: ! 73: CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE" ! 74: ngx_feature="sendfile()" ! 75: ngx_feature_name="NGX_HAVE_SENDFILE" ! 76: ngx_feature_run=yes ! 77: ngx_feature_incs="#include <sys/sendfile.h> ! 78: #include <errno.h>" ! 79: ngx_feature_path= ! 80: ngx_feature_libs= ! 81: ngx_feature_test="int s = 0, fd = 1; ! 82: ssize_t n; off_t off = 0; ! 83: n = sendfile(s, fd, &off, 1); ! 84: if (n == -1 && errno == ENOSYS) return 1" ! 85: . auto/feature ! 86: ! 87: if [ $ngx_found = yes ]; then ! 88: CORE_SRCS="$CORE_SRCS $LINUX_SENDFILE_SRCS" ! 89: fi ! 90: ! 91: ! 92: # sendfile64() ! 93: ! 94: CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64" ! 95: ngx_feature="sendfile64()" ! 96: ngx_feature_name="NGX_HAVE_SENDFILE64" ! 97: ngx_feature_run=yes ! 98: ngx_feature_incs="#include <sys/sendfile.h> ! 99: #include <errno.h>" ! 100: ngx_feature_path= ! 101: ngx_feature_libs= ! 102: ngx_feature_test="int s = 0, fd = 1; ! 103: ssize_t n; off_t off = 0; ! 104: n = sendfile(s, fd, &off, 1); ! 105: if (n == -1 && errno == ENOSYS) return 1" ! 106: . auto/feature ! 107: ! 108: ! 109: ngx_include="sys/prctl.h"; . auto/include ! 110: ! 111: # prctl(PR_SET_DUMPABLE) ! 112: ! 113: ngx_feature="prctl(PR_SET_DUMPABLE)" ! 114: ngx_feature_name="NGX_HAVE_PR_SET_DUMPABLE" ! 115: ngx_feature_run=yes ! 116: ngx_feature_incs="#include <sys/prctl.h>" ! 117: ngx_feature_path= ! 118: ngx_feature_libs= ! 119: ngx_feature_test="if (prctl(PR_SET_DUMPABLE, 1, 0, 0, 0) == -1) return 1" ! 120: . auto/feature ! 121: ! 122: ! 123: # sched_setaffinity() ! 124: ! 125: ngx_feature="sched_setaffinity()" ! 126: ngx_feature_name="NGX_HAVE_SCHED_SETAFFINITY" ! 127: ngx_feature_run=no ! 128: ngx_feature_incs="#include <sched.h>" ! 129: ngx_feature_path= ! 130: ngx_feature_libs= ! 131: ngx_feature_test="cpu_set_t mask; ! 132: CPU_ZERO(&mask); ! 133: sched_setaffinity(0, sizeof(cpu_set_t), &mask)" ! 134: . auto/feature ! 135: ! 136: ! 137: # crypt_r() ! 138: ! 139: ngx_feature="crypt_r()" ! 140: ngx_feature_name="NGX_HAVE_GNU_CRYPT_R" ! 141: ngx_feature_run=no ! 142: ngx_feature_incs="#include <crypt.h>" ! 143: ngx_feature_path= ! 144: ngx_feature_libs=-lcrypt ! 145: ngx_feature_test="struct crypt_data cd; ! 146: crypt_r(\"key\", \"salt\", &cd);" ! 147: . auto/feature ! 148: ! 149: ! 150: ngx_include="sys/vfs.h"; . auto/include ! 151: ! 152: ! 153: CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64"