| |
| # Copyright (C) Igor Sysoev |
| |
| |
| CORE_INCS="$UNIX_INCS" |
| CORE_DEPS="$UNIX_DEPS $LINUX_DEPS" |
| CORE_SRCS="$UNIX_SRCS $LINUX_SRCS" |
| EVENT_MODULES="$EVENT_MODULES" |
| |
| PIPE="-pipe" |
| |
| |
| CC_TEST_FLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE" |
| |
| # Linux kernel version |
| |
| version=`grep "#define LINUX_VERSION_CODE" /usr/include/linux/version.h \ |
| | sed -e 's/^.* \(.*\)$/\1/'` |
| |
| |
| # enable the rt signals on Linux 2.2.19 and onward |
| |
| if [ $version -ge 131609 -o $EVENT_RTSIG = YES ]; then |
| echo " + using rt signals" |
| have=HAVE_RTSIG . auto/have |
| EVENT_MODULES="$EVENT_MODULES $RTSIG_MODULE" |
| CORE_SRCS="$CORE_SRCS $RTSIG_SRCS" |
| EVENT_FOUND=YES |
| fi |
| |
| |
| # epoll, EPOLLET version |
| |
| ngx_func="epoll"; |
| ngx_func_inc="#include <sys/epoll.h>" |
| ngx_func_test="int efd = 0, fd = 1, n; |
| struct epoll_event ee; |
| ee.events = EPOLLIN|EPOLLOUT|EPOLLET; |
| ee.data.ptr = NULL; |
| n = epoll_ctl(efd, EPOLL_CTL_ADD, fd, &ee)" |
| . auto/func |
| |
| if [ $ngx_found = yes ]; then |
| have=HAVE_EPOLL . auto/have |
| have=HAVE_CLEAR_EVENT . auto/have |
| CORE_SRCS="$CORE_SRCS $EPOLL_SRCS" |
| EVENT_MODULES="$EVENT_MODULES $EPOLL_MODULE" |
| EVENT_FOUND=YES |
| fi |
| |
| |
| # sendfile() |
| |
| CC_TEST_FLAGS="-D_GNU_SOURCE" |
| ngx_func="sendfile()"; |
| ngx_func_inc="#include <sys/sendfile.h>" |
| ngx_func_test="int s = 0, fd = 1; |
| ssize_t n; off_t off = 0; |
| n = sendfile(s, fd, &off, 1)" |
| . auto/func |
| |
| if [ $ngx_found = yes ]; then |
| CORE_SRCS="$CORE_SRCS $LINUX_SENDFILE_SRCS" |
| fi |
| |
| |
| # sendfile64() |
| |
| CC_TEST_FLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE" |
| ngx_func="sendfile64()"; . auto/func |
| |
| |
| # prctl(PR_SET_DUMPABLE) |
| |
| ngx_func="prctl()"; |
| ngx_func_inc="#include <sys/prctl.h>" |
| ngx_func_test="prctl(PR_SET_DUMPABLE, 1, 0, 0, 0)" |
| . auto/func |
| |
| if [ $ngx_found = yes ]; then |
| have=HAVE_PR_SET_DUMPABLE . auto/have |
| fi |