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