
CC_WARN=$CC
ngx_fmt_collect=yes

# C types

ngx_type="int"; . auto/types/sizeof
ngx_formats="%d"; . auto/fmt/fmt

ngx_type="long"; . auto/types/sizeof
ngx_formats="%ld"; . auto/fmt/fmt

ngx_type="long long"; . auto/types/sizeof
ngx_formats="%lld %qd"; . auto/fmt/fmt

ngx_type="void *"; . auto/types/sizeof; ngx_ptr_bytes=$ngx_bytes
ngx_fmt_name=PTR_FMT;
eval ngx_formats=\${ngx_${ngx_bytes}_fmt}; . auto/fmt/ptrfmt


# POSIX types

NGX_AUTO_CONFIG="#include \"../$NGX_AUTO_CONFIG_H\""

ngx_type="uint64_t"
ngx_types="u_int64_t"; . auto/types/typedef

ngx_type="sig_atomic_t"
ngx_types="int"; . auto/types/typedef

ngx_type="socklen_t"
ngx_types="uint32_t"; . auto/types/typedef

ngx_type="in_addr_t"
ngx_types="uint32_t"; . auto/types/typedef

ngx_type="rlim_t"
ngx_types="int"; . auto/types/typedef

. auto/types/uintptr_t


# printf() formats

CC_WARN=$CC_STRONG
ngx_fmt_collect=no

ngx_fmt_name=OFF_T_FMT; ngx_type="off_t"; . auto/types/sizeof
ngx_type_max_value=OFF_T_MAX_VALUE; . auto/types/maxvalue
eval ngx_formats=\${ngx_${ngx_bytes}_fmt}; . auto/fmt/fmt

ngx_fmt_name=TIME_T_FMT; ngx_type="time_t"; . auto/types/sizeof
eval ngx_formats=\${ngx_${ngx_bytes}_fmt}; . auto/fmt/fmt

ngx_fmt_name=SIZE_T_FMT; ngx_type="size_t"; . auto/types/sizeof
eval ngx_formats=\${ngx_${ngx_bytes}_fmt}; . auto/fmt/fmt

ngx_fmt_name=SIZE_T_X_FMT; . auto/fmt/xfmt

ngx_fmt_name=PID_T_FMT; ngx_type="pid_t"; . auto/types/sizeof
eval ngx_formats=\${ngx_${ngx_bytes}_fmt}; . auto/fmt/fmt

ngx_fmt_name=RLIM_T_FMT; ngx_type="rlim_t"; . auto/types/sizeof
eval ngx_formats=\${ngx_${ngx_bytes}_fmt}; . auto/fmt/fmt


# syscalls, libc calls and some features

ngx_feature_libs=
ngx_func_libs=


ngx_func="pread()"
ngx_func_inc=
ngx_func_test="char buf[1]; ssize_t n; n = pread(0, buf, 1, 0)"
. auto/func


ngx_func="pwrite()"
ngx_func_inc=
ngx_func_test="char buf[1]; ssize_t n; n = pwrite(1, buf, 1, 0)"
. auto/func


#ngx_func="strsignal()"
#ngx_func_inc="#include <string.h>"
#ngx_func_test="char *s = strsignal(1)"
#. auto/func


ngx_func="strerror_r()"
ngx_func_inc="#include <string.h>"
ngx_func_test="char buf[20]; int n; n = strerror_r(1, buf, 20)"
. auto/func


ngx_func="gnu_strerror_r()"
ngx_func_inc="#include <string.h>"
ngx_func_test="char buf[20], *str; str = strerror_r(1, buf, 20)"
. auto/func


ngx_func="localtime_r()"
ngx_func_inc="#include <time.h>"
ngx_func_test="struct tm t; time_t c=0; localtime_r(&c, &t)"
. auto/func


ngx_func="posix_memalign()"
ngx_func_inc="#include <stdlib.h>"
ngx_func_test="void *p; int n; n = posix_memalign(&p, 4096, 4096)"
. auto/func


ngx_func="memalign()"
ngx_func_inc="#include <stdlib.h>"
ngx_func_test="void *p; p = memalign(4096, 4096)"
. auto/func



ngx_feature="mmap(MAP_ANON|MAP_SHARED)"
ngx_feature_name="MAP_ANON"
ngx_feature_inc="#include <sys/mman.h>"
ngx_feature_test="void *p;
                  p = mmap(NULL, 4096, PROT_READ|PROT_WRITE,
                           MAP_ANON|MAP_SHARED, -1, 0);
                  if (p == MAP_FAILED) return 1;"
ngx_feature_run=yes
. auto/feature


ngx_feature='mmap("/dev/zero", MAP_SHARED)'
ngx_feature_name="MAP_DEVZERO"
ngx_feature_inc="#include <sys/mman.h>
#include <sys/stat.h>
#include <fcntl.h>"
ngx_feature_test='void *p; int  fd;
                  fd = open("/dev/zero", O_RDWR);
                  p = mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
                  if (p == MAP_FAILED) return 1;'
. auto/feature


ngx_feature="System V shared memory"
ngx_feature_name="SYSVSHM"
ngx_feature_inc="#include <sys/ipc.h>
#include <sys/shm.h>"
ngx_feature_test="int  id;
                  id = shmget(IPC_PRIVATE, 4096, (SHM_R|SHM_W|IPC_CREAT));
                  if (id == -1) return 1;
                  shmctl(id, IPC_RMID, NULL);"
. auto/feature



ngx_feature="struct sockaddr_in.sin_len"
ngx_feature_name="sin_len"
ngx_feature_inc="#include <sys/socket.h>
#include <netinet/in.h>"
ngx_feature_test="struct sockaddr_in sa; sa.sin_len = 5"
ngx_feature_run=no
. auto/feature


ngx_feature="struct msghdr.msg_control"
ngx_feature_name="msghdr_msg_control"
ngx_feature_inc="#include <sys/socket.h>"
ngx_feature_test="struct msghdr  msg; msg.msg_control = NULL"
. auto/feature


case $PLATFORM in
    Linux:*)
        ngx_feature_inc="#include <sys/ioctl.h>"
    ;;

    *)
        ngx_feature_inc="#include <sys/filio.h>"
    ;;
esac

ngx_feature="ioctl(FIONBIO)"
ngx_feature_name="FIONBIO"
ngx_feature_test="int i; i = FIONBIO"
. auto/feature


ngx_feature="struct tm.tm_gmtoff"
ngx_feature_name="gmtoff"
ngx_feature_inc="#include <time.h>"
ngx_feature_test="struct tm  tm; tm.tm_gmtoff = 0"
. auto/feature
