xref: /unit/auto/time (revision 2228:f403dc1e3ec1)
10Sigor@sysoev.ru
20Sigor@sysoev.ru# Copyright (C) Igor Sysoev
30Sigor@sysoev.ru# Copyright (C) NGINX, Inc.
40Sigor@sysoev.ru
50Sigor@sysoev.ru
60Sigor@sysoev.ru# Linux 2.6.32 CLOCK_REALTIME_COARSE.
70Sigor@sysoev.ru# Linux clock_gettime() is in librt.
80Sigor@sysoev.ru
90Sigor@sysoev.runxt_feature="Linux clock_gettime(CLOCK_REALTIME_COARSE)"
100Sigor@sysoev.runxt_feature_name=NXT_HAVE_CLOCK_REALTIME_COARSE
110Sigor@sysoev.runxt_feature_run=yes
120Sigor@sysoev.runxt_feature_incs=
130Sigor@sysoev.runxt_feature_libs="-lrt"
140Sigor@sysoev.runxt_feature_test="#include <time.h>
150Sigor@sysoev.ru
16*2228Sa.clayton@nginx.com                  int main(void) {
170Sigor@sysoev.ru                      struct timespec  ts;
180Sigor@sysoev.ru
190Sigor@sysoev.ru                      if (clock_gettime(CLOCK_REALTIME_COARSE, &ts) == -1)
200Sigor@sysoev.ru                          return 1;
210Sigor@sysoev.ru                      return 0;
220Sigor@sysoev.ru                  }"
230Sigor@sysoev.ru. auto/feature
240Sigor@sysoev.ru
250Sigor@sysoev.ruif [ $nxt_found = yes ]; then
260Sigor@sysoev.ru    NXT_LIBRT=$nxt_feature_libs
270Sigor@sysoev.rufi
280Sigor@sysoev.ru
290Sigor@sysoev.ru
300Sigor@sysoev.ru# FreeBSD 7.0 CLOCK_REALTIME_FAST
310Sigor@sysoev.ru
320Sigor@sysoev.runxt_feature="FreeBSD clock_gettime(CLOCK_REALTIME_FAST)"
330Sigor@sysoev.runxt_feature_name=NXT_HAVE_CLOCK_REALTIME_FAST
340Sigor@sysoev.runxt_feature_run=yes
350Sigor@sysoev.runxt_feature_incs=
360Sigor@sysoev.runxt_feature_libs=
370Sigor@sysoev.runxt_feature_test="#include <time.h>
380Sigor@sysoev.ru
39*2228Sa.clayton@nginx.com                  int main(void) {
400Sigor@sysoev.ru                      struct timespec  ts;
410Sigor@sysoev.ru
420Sigor@sysoev.ru                      if (clock_gettime(CLOCK_REALTIME_FAST, &ts) == -1)
430Sigor@sysoev.ru                          return 1;
440Sigor@sysoev.ru                      return 0;
450Sigor@sysoev.ru                  }"
460Sigor@sysoev.ru. auto/feature
470Sigor@sysoev.ru
480Sigor@sysoev.ru
490Sigor@sysoev.runxt_feature="clock_gettime(CLOCK_REALTIME)"
500Sigor@sysoev.runxt_feature_name=NXT_HAVE_CLOCK_REALTIME
510Sigor@sysoev.runxt_feature_run=yes
520Sigor@sysoev.runxt_feature_incs=
530Sigor@sysoev.runxt_feature_libs=
540Sigor@sysoev.runxt_feature_test="#include <time.h>
550Sigor@sysoev.ru
56*2228Sa.clayton@nginx.com                  int main(void) {
570Sigor@sysoev.ru                      struct timespec  ts;
580Sigor@sysoev.ru
590Sigor@sysoev.ru                      if (clock_gettime(CLOCK_REALTIME, &ts) == -1)
600Sigor@sysoev.ru                          return 1;
610Sigor@sysoev.ru                      return 0;
620Sigor@sysoev.ru                  }"
630Sigor@sysoev.ru. auto/feature
640Sigor@sysoev.ru
650Sigor@sysoev.ru
660Sigor@sysoev.ruif [ $nxt_found = no ]; then
670Sigor@sysoev.ru
680Sigor@sysoev.ru    # Linux and Solaris 10 clock_gettime() are in librt.
690Sigor@sysoev.ru
700Sigor@sysoev.ru    nxt_feature="clock_gettime(CLOCK_REALTIME) in librt"
710Sigor@sysoev.ru    nxt_feature_libs="-lrt"
720Sigor@sysoev.ru    . auto/feature
730Sigor@sysoev.ru
740Sigor@sysoev.ru    if [ $nxt_found = yes ]; then
750Sigor@sysoev.ru        NXT_LIBRT=$nxt_feature_libs
760Sigor@sysoev.ru    fi
770Sigor@sysoev.rufi
780Sigor@sysoev.ru
790Sigor@sysoev.ru
800Sigor@sysoev.ru# Linux 2.6.32 CLOCK_MONOTONIC_COARSE.
810Sigor@sysoev.ru# Linux clock_gettime() is in librt.
820Sigor@sysoev.ru
830Sigor@sysoev.runxt_feature="Linux clock_gettime(CLOCK_MONOTONIC_COARSE)"
840Sigor@sysoev.runxt_feature_name=NXT_HAVE_CLOCK_MONOTONIC_COARSE
850Sigor@sysoev.runxt_feature_run=yes
860Sigor@sysoev.runxt_feature_incs=
870Sigor@sysoev.runxt_feature_libs="-lrt"
880Sigor@sysoev.runxt_feature_test="#include <time.h>
890Sigor@sysoev.ru
90*2228Sa.clayton@nginx.com                  int main(void) {
910Sigor@sysoev.ru                      struct timespec  ts;
920Sigor@sysoev.ru
930Sigor@sysoev.ru                      if (clock_gettime(CLOCK_MONOTONIC_COARSE, &ts) == -1)
940Sigor@sysoev.ru                          return 1;
950Sigor@sysoev.ru                      return 0;
960Sigor@sysoev.ru                  }"
970Sigor@sysoev.ru. auto/feature
980Sigor@sysoev.ru
990Sigor@sysoev.ruif [ $nxt_found = yes ]; then
1000Sigor@sysoev.ru    NXT_LIBRT=$nxt_feature_libs
1010Sigor@sysoev.rufi
1020Sigor@sysoev.ru
1030Sigor@sysoev.ru
1040Sigor@sysoev.ru# FreeBSD 7.0 CLOCK_MONOTONIC_FAST
1050Sigor@sysoev.ru
1060Sigor@sysoev.runxt_feature="FreeBSD clock_gettime(CLOCK_MONOTONIC_FAST)"
1070Sigor@sysoev.runxt_feature_name=NXT_HAVE_CLOCK_MONOTONIC_FAST
1080Sigor@sysoev.runxt_feature_run=yes
1090Sigor@sysoev.runxt_feature_incs=
1100Sigor@sysoev.runxt_feature_libs=
1110Sigor@sysoev.runxt_feature_test="#include <time.h>
1120Sigor@sysoev.ru
113*2228Sa.clayton@nginx.com                  int main(void) {
1140Sigor@sysoev.ru                      struct timespec  ts;
1150Sigor@sysoev.ru
1160Sigor@sysoev.ru                      if (clock_gettime(CLOCK_MONOTONIC_FAST, &ts) == -1)
1170Sigor@sysoev.ru                          return 1;
1180Sigor@sysoev.ru                      return 0;
1190Sigor@sysoev.ru                  }"
1200Sigor@sysoev.ru. auto/feature
1210Sigor@sysoev.ru
1220Sigor@sysoev.ru
1230Sigor@sysoev.runxt_feature="clock_gettime(CLOCK_MONOTONIC)"
1240Sigor@sysoev.runxt_feature_name=NXT_HAVE_CLOCK_MONOTONIC
1250Sigor@sysoev.runxt_feature_run=yes
1260Sigor@sysoev.runxt_feature_incs=
1270Sigor@sysoev.runxt_feature_libs=
1280Sigor@sysoev.runxt_feature_test="#include <time.h>
1290Sigor@sysoev.ru
130*2228Sa.clayton@nginx.com                  int main(void) {
1310Sigor@sysoev.ru                      struct timespec  ts;
1320Sigor@sysoev.ru
1330Sigor@sysoev.ru                      if (clock_gettime(CLOCK_MONOTONIC, &ts) == -1)
1340Sigor@sysoev.ru                          return 1;
1350Sigor@sysoev.ru                      return 0;
1360Sigor@sysoev.ru                  }"
1370Sigor@sysoev.ru. auto/feature
1380Sigor@sysoev.ru
1390Sigor@sysoev.ru
1400Sigor@sysoev.ruif [ $nxt_found = no ]; then
1410Sigor@sysoev.ru
1420Sigor@sysoev.ru    # Linux and Solaris 10 clock_gettime() are in librt.
1430Sigor@sysoev.ru
1440Sigor@sysoev.ru    nxt_feature="clock_gettime(CLOCK_MONOTONIC) in librt"
1450Sigor@sysoev.ru    nxt_feature_libs="-lrt"
1460Sigor@sysoev.ru    . auto/feature
1470Sigor@sysoev.ru
1480Sigor@sysoev.ru    if [ $nxt_found = yes ]; then
1490Sigor@sysoev.ru        NXT_LIBRT=$nxt_feature_libs
1500Sigor@sysoev.ru    fi
1510Sigor@sysoev.rufi
1520Sigor@sysoev.ru
1530Sigor@sysoev.ru
1540Sigor@sysoev.ru# HP-UX Mercury Library hg_gethrtime().
1550Sigor@sysoev.ru
1560Sigor@sysoev.ruNXT_LIBHG=
1570Sigor@sysoev.ru
1580Sigor@sysoev.runxt_feature="HP-UX hg_gethrtime()"
1590Sigor@sysoev.runxt_feature_name=NXT_HAVE_HG_GETHRTIME
1600Sigor@sysoev.runxt_feature_run=yes
1610Sigor@sysoev.runxt_feature_incs=
1620Sigor@sysoev.runxt_feature_libs="-lhg"
1630Sigor@sysoev.runxt_feature_test="#include <stdlib.h>
1640Sigor@sysoev.ru                  #include <sys/mercury.h>
1650Sigor@sysoev.ru
166*2228Sa.clayton@nginx.com                  int main(void) {
1670Sigor@sysoev.ru                      hg_gethrtime();
1680Sigor@sysoev.ru                      return 0;
1690Sigor@sysoev.ru                  }"
1700Sigor@sysoev.ru. auto/feature
1710Sigor@sysoev.ru
1720Sigor@sysoev.ruif [ $nxt_found = yes ]; then
1730Sigor@sysoev.ru    NXT_LIBHG=$nxt_feature_libs
1740Sigor@sysoev.rufi
1750Sigor@sysoev.ru
1760Sigor@sysoev.ru
1770Sigor@sysoev.runxt_feature="struct tm.tm_gmtoff"
1780Sigor@sysoev.runxt_feature_name=NXT_HAVE_TM_GMTOFF
1790Sigor@sysoev.runxt_feature_run=
1800Sigor@sysoev.runxt_feature_incs=
1810Sigor@sysoev.runxt_feature_libs=
1820Sigor@sysoev.runxt_feature_test="#include <time.h>
1830Sigor@sysoev.ru
184*2228Sa.clayton@nginx.com                  int main(void) {
1850Sigor@sysoev.ru                      time_t     t;
1860Sigor@sysoev.ru                      struct tm  tm;
1870Sigor@sysoev.ru
1880Sigor@sysoev.ru                      t = 0;
1890Sigor@sysoev.ru                      localtime_r(&t, &tm);
1900Sigor@sysoev.ru                      return tm.tm_gmtoff;
1910Sigor@sysoev.ru                  }"
1920Sigor@sysoev.ru. auto/feature
1930Sigor@sysoev.ru
1940Sigor@sysoev.ru
1950Sigor@sysoev.runxt_feature="altzone"
1960Sigor@sysoev.runxt_feature_name=NXT_HAVE_ALTZONE
1970Sigor@sysoev.runxt_feature_run=
1980Sigor@sysoev.runxt_feature_incs=
1990Sigor@sysoev.runxt_feature_libs=
2000Sigor@sysoev.runxt_feature_test="#include <time.h>
2010Sigor@sysoev.ru
202*2228Sa.clayton@nginx.com                  int main(void) {
2030Sigor@sysoev.ru                      altzone = 0;
2040Sigor@sysoev.ru                      return 0;
2050Sigor@sysoev.ru                  }"
2060Sigor@sysoev.ru. auto/feature
2070Sigor@sysoev.ru
2080Sigor@sysoev.ru
2090Sigor@sysoev.runxt_feature="localtime_r()"
2100Sigor@sysoev.runxt_feature_name=NXT_HAVE_LOCALTIME_R
2110Sigor@sysoev.runxt_feature_run=
2120Sigor@sysoev.runxt_feature_incs=
2130Sigor@sysoev.runxt_feature_libs=
2140Sigor@sysoev.runxt_feature_test="#include <time.h>
2150Sigor@sysoev.ru
216*2228Sa.clayton@nginx.com                  int main(void) {
2170Sigor@sysoev.ru                      time_t     t;
2180Sigor@sysoev.ru                      struct tm  tm;
2190Sigor@sysoev.ru
2200Sigor@sysoev.ru                      t = 0;
2210Sigor@sysoev.ru                      localtime_r(&t, &tm);
2220Sigor@sysoev.ru                      return 0;
2230Sigor@sysoev.ru                  }"
2240Sigor@sysoev.ru. auto/feature
225