From: Jaroslav Kysela Date: Wed, 24 Apr 2002 14:41:55 +0000 (+0000) Subject: Added HAVE_SOFT_FLOAT (--with-softfloat) X-Git-Tag: v1.0.3~439 X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=f23813b7e98bc6e0db7413ecb330db7e5f1b2aa9;p=alsa-lib.git Added HAVE_SOFT_FLOAT (--with-softfloat) --- diff --git a/INSTALL b/INSTALL index 2a9991d0..4939cb29 100644 --- a/INSTALL +++ b/INSTALL @@ -111,3 +111,11 @@ For platform names in the form cpu-vendor-os (or aliases for this) you should look in 'config.guess' script. Target and all paths used here are only examples and should not be directly applicable to your system. + +Configuration for machines without FPU +-------------------------------------- + +If your machine does not have FP unit, you should use '--with-softfloat' +option. This option disables usage of float numbers in PCM route plugin. +ALSA could then leave much more CPU cycles for your applications, but you +could still need some floating point emulator. diff --git a/acconfig.h b/acconfig.h index 535d16ff..8200eb50 100644 --- a/acconfig.h +++ b/acconfig.h @@ -12,3 +12,6 @@ /* NDEBUG */ #undef NDEBUG + +/* Do we have FPU on this machine? */ +#undef HAVE_SOFT_FLOAT diff --git a/configure.in b/configure.in index 8e82a804..40badb5e 100644 --- a/configure.in +++ b/configure.in @@ -85,6 +85,7 @@ AC_HEADER_STDC AM_CONFIG_HEADER(include/config.h) AC_CHECK_HEADERS(sound/asound.h) + dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_C_INLINE @@ -120,6 +121,10 @@ else AC_MSG_RESULT(no) fi +AC_ARG_WITH(softfloat, + [ --with-softfloat do you have floating point unit on this machine? (optional)], + [ AC_DEFINE(HAVE_SOFT_FLOAT, "1")],) + dnl Check for architecture AC_MSG_CHECKING(for architecture) case "$target" in diff --git a/include/pcm_plugin.h b/include/pcm_plugin.h index 6cd8acd8..e675f15f 100644 --- a/include/pcm_plugin.h +++ b/include/pcm_plugin.h @@ -31,6 +31,8 @@ #ifndef __ALSA_PCM_PLUGIN_H +#include "config.h" + /** * \defgroup PCM_Plugins PCM Plugins * \ingroup PCM @@ -41,7 +43,13 @@ #define SND_PCM_PLUGIN_RATE_MIN 4000 /**< minimal rate for the rate plugin */ #define SND_PCM_PLUGIN_RATE_MAX 192000 /**< maximal rate for the rate plugin */ +/* ROUTE_FLOAT should be set to 0 for machines without FP unit - like iPAQ */ +#ifdef HAVE_SOFT_FLOAT +#define SND_PCM_PLUGIN_ROUTE_FLOAT 0 /**< use integers for route plugin */ +#else #define SND_PCM_PLUGIN_ROUTE_FLOAT 1 /**< use floats for route plugin */ +#endif + #define SND_PCM_PLUGIN_ROUTE_RESOLUTION 16 /**< integer resolution for route plugin */ #if SND_PCM_PLUGIN_ROUTE_FLOAT