
# Copyright (C) Igor Sysoev
# Copyright (C) NGINX, Inc.


# Linux 2.6.32 CLOCK_REALTIME_COARSE.
# Linux clock_gettime() is in librt.

nxt_feature="Linux clock_gettime(CLOCK_REALTIME_COARSE)"
nxt_feature_name=NXT_HAVE_CLOCK_REALTIME_COARSE
nxt_feature_run=yes
nxt_feature_incs=
nxt_feature_libs="-lrt"
nxt_feature_test="#include <time.h>

                  int main() {
                      struct timespec  ts;

                      if (clock_gettime(CLOCK_REALTIME_COARSE, &ts) == -1)
                          return 1;
                      return 0;
                  }"
. auto/feature

if [ $nxt_found = yes ]; then
    NXT_LIBRT=$nxt_feature_libs
fi


# FreeBSD 7.0 CLOCK_REALTIME_FAST

nxt_feature="FreeBSD clock_gettime(CLOCK_REALTIME_FAST)"
nxt_feature_name=NXT_HAVE_CLOCK_REALTIME_FAST
nxt_feature_run=yes
nxt_feature_incs=
nxt_feature_libs=
nxt_feature_test="#include <time.h>

                  int main() {
                      struct timespec  ts;

                      if (clock_gettime(CLOCK_REALTIME_FAST, &ts) == -1)
                          return 1;
                      return 0;
                  }"
. auto/feature


nxt_feature="clock_gettime(CLOCK_REALTIME)"
nxt_feature_name=NXT_HAVE_CLOCK_REALTIME
nxt_feature_run=yes
nxt_feature_incs=
nxt_feature_libs=
nxt_feature_test="#include <time.h>

                  int main() {
                      struct timespec  ts;

                      if (clock_gettime(CLOCK_REALTIME, &ts) == -1)
                          return 1;
                      return 0;
                  }"
. auto/feature


if [ $nxt_found = no ]; then

    # Linux and Solaris 10 clock_gettime() are in librt.

    nxt_feature="clock_gettime(CLOCK_REALTIME) in librt"
    nxt_feature_libs="-lrt"
    . auto/feature

    if [ $nxt_found = yes ]; then
        NXT_LIBRT=$nxt_feature_libs
    fi
fi


# Linux 2.6.32 CLOCK_MONOTONIC_COARSE.
# Linux clock_gettime() is in librt.

nxt_feature="Linux clock_gettime(CLOCK_MONOTONIC_COARSE)"
nxt_feature_name=NXT_HAVE_CLOCK_MONOTONIC_COARSE
nxt_feature_run=yes
nxt_feature_incs=
nxt_feature_libs="-lrt"
nxt_feature_test="#include <time.h>

                  int main() {
                      struct timespec  ts;

                      if (clock_gettime(CLOCK_MONOTONIC_COARSE, &ts) == -1)
                          return 1;
                      return 0;
                  }"
. auto/feature

if [ $nxt_found = yes ]; then
    NXT_LIBRT=$nxt_feature_libs
fi


# FreeBSD 7.0 CLOCK_MONOTONIC_FAST

nxt_feature="FreeBSD clock_gettime(CLOCK_MONOTONIC_FAST)"
nxt_feature_name=NXT_HAVE_CLOCK_MONOTONIC_FAST
nxt_feature_run=yes
nxt_feature_incs=
nxt_feature_libs=
nxt_feature_test="#include <time.h>

                  int main() {
                      struct timespec  ts;

                      if (clock_gettime(CLOCK_MONOTONIC_FAST, &ts) == -1)
                          return 1;
                      return 0;
                  }"
. auto/feature


nxt_feature="clock_gettime(CLOCK_MONOTONIC)"
nxt_feature_name=NXT_HAVE_CLOCK_MONOTONIC
nxt_feature_run=yes
nxt_feature_incs=
nxt_feature_libs=
nxt_feature_test="#include <time.h>

                  int main() {
                      struct timespec  ts;

                      if (clock_gettime(CLOCK_MONOTONIC, &ts) == -1)
                          return 1;
                      return 0;
                  }"
. auto/feature


if [ $nxt_found = no ]; then

    # Linux and Solaris 10 clock_gettime() are in librt.

    nxt_feature="clock_gettime(CLOCK_MONOTONIC) in librt"
    nxt_feature_libs="-lrt"
    . auto/feature

    if [ $nxt_found = yes ]; then
        NXT_LIBRT=$nxt_feature_libs
    fi
fi


# HP-UX Mercury Library hg_gethrtime().

NXT_LIBHG=

nxt_feature="HP-UX hg_gethrtime()"
nxt_feature_name=NXT_HAVE_HG_GETHRTIME
nxt_feature_run=yes
nxt_feature_incs=
nxt_feature_libs="-lhg"
nxt_feature_test="#include <stdlib.h>
                  #include <sys/mercury.h>

                  int main() {
                      hg_gethrtime();
                      return 0;
                  }"
. auto/feature

if [ $nxt_found = yes ]; then
    NXT_LIBHG=$nxt_feature_libs
fi


nxt_feature="struct tm.tm_gmtoff"
nxt_feature_name=NXT_HAVE_TM_GMTOFF
nxt_feature_run=
nxt_feature_incs=
nxt_feature_libs=
nxt_feature_test="#include <time.h>

                  int main() {
                      time_t     t;
                      struct tm  tm;

                      t = 0;
                      localtime_r(&t, &tm);
                      return tm.tm_gmtoff;
                  }"
. auto/feature


nxt_feature="altzone"
nxt_feature_name=NXT_HAVE_ALTZONE
nxt_feature_run=
nxt_feature_incs=
nxt_feature_libs=
nxt_feature_test="#include <time.h>

                  int main() {
                      altzone = 0;
                      return 0;
                  }"
. auto/feature


nxt_feature="localtime_r()"
nxt_feature_name=NXT_HAVE_LOCALTIME_R
nxt_feature_run=
nxt_feature_incs=
nxt_feature_libs=
nxt_feature_test="#include <time.h>

                  int main() {
                      time_t     t;
                      struct tm  tm;

                      t = 0;
                      localtime_r(&t, &tm);
                      return 0;
                  }"
. auto/feature
