Improve clock_gettime detection

Also use the monotonic clock, if available,
in the samplerate speed test function.
pull/2/head
Stelios Bounanos 2008-07-24 00:28:20 +01:00
rodzic 6e7ea86d91
commit e3fe8af6d5
4 zmienionych plików z 19 dodań i 6 usunięć

Wyświetl plik

@ -81,9 +81,18 @@ AC_FUNC_STRFTIME
AC_FUNC_STRTOD
AC_CHECK_FUNCS([getaddrinfo gethostbyname localtime_r memmove memset mkdir select snprintf socket strcasecmp strchr strdup strerror strncasecmp strcasestr strrchr strstr strtol uname vsnprintf])
# Check for clock_gettime
LIBS_save="$LIBS"; LIBS=""
AC_SEARCH_LIBS([clock_gettime], [rt], [ac_cv_clock_gettime=1; EXTRA_LIBS="$EXTRA_LIBS $LIBS"],
[ac_cv_clock_gettime=0])
AC_DEFINE_UNQUOTED(HAVE_CLOCK_GETTIME, $ac_cv_clock_gettime, [Define to 1 if we have clock_gettime])
LIBS="$LIBS_save"
# Check for dlopen
AC_SEARCH_LIBS([dlopen], [dl], [ac_cv_dlopen=1], [ac_cv_dlopen=0])
LIBS_save="$LIBS"; LIBS=""
AC_SEARCH_LIBS([dlopen], [dl], [ac_cv_dlopen=1; EXTRA_LIBS="$EXTRA_LIBS $LIBS"], [ac_cv_dlopen=0])
AC_DEFINE_UNQUOTED(HAVE_DLOPEN, $ac_cv_dlopen, [Define to 1 if we have dlopen])
LIBS="$LIBS_save"
AC_SUBST([EXTRA_LIBS])
AC_PRESERVE_HELP_ORDER

Wyświetl plik

@ -6,8 +6,4 @@ AC_DEFUN([AC_FLDIGI_STATIC], [
*) AC_MSG_ERROR([bad value ${enableval} for --enable-static]) ;;
esac],
[ac_cv_static=no])
if test "x$ac_cv_static" = "xyes"; then
AC_CHECK_LIB([rt], [clock_gettime], [RTLIB=-lrt])
fi
AC_SUBST([RTLIB])
])

Wyświetl plik

@ -15,7 +15,7 @@ AM_CFLAGS = $(AM_CXXFLAGS)
AM_LDFLAGS = @MAC_UNIVERSAL_LDFLAGS@
LDADD = @PORTAUDIO_LIBS@ @BOOST_LDFLAGS@ @FLTK_LIBS@ @SNDFILE_LIBS@ \
@SAMPLERATE_LIBS@ @PULSEAUDIO_LIBS@ @HAMLIB_LIBS@ @IMAGE_LIBS@ @XMLRPC_LIBS@ @RTLIB@
@SAMPLERATE_LIBS@ @PULSEAUDIO_LIBS@ @HAMLIB_LIBS@ @IMAGE_LIBS@ @XMLRPC_LIBS@ @EXTRA_LIBS@
HAMLIB_SRC = include/hamlib.h rigcontrol/hamlib.cxx include/rigclass.h rigcontrol/rigclass.cxx

Wyświetl plik

@ -765,10 +765,18 @@ double speed_test(int converter, unsigned repeat)
src_simple(&src, SRC_SINC_FASTEST, 1);
struct timespec t0, t1;
#ifdef _POSIX_MONOTONIC_CLOCK
clock_gettime(CLOCK_MONOTONIC, &t0);
#else
clock_gettime(CLOCK_REALTIME, &t0);
#endif
for (unsigned i = 0; i < repeat; i++)
src_simple(&src, SRC_SINC_FASTEST, 1);
#ifdef _POSIX_MONOTONIC_CLOCK
clock_gettime(CLOCK_MONOTONIC, &t1);
#else
clock_gettime(CLOCK_REALTIME, &t1);
#endif
delete [] src.data_in;
delete [] src.data_out;