Re: [PATCH speexdsp] Don't rely on HAVE_STDINT_H et al. being defined

Jean-Marc Valin <[email protected]> Mon, 6 Jul 2015 10:39:32 -0400
Newsgroups gmane.comp.audio.compression.speex.devel
Message-ID <[email protected]>
FTR, my main concern with this kind of approach is the case where your
platform has two compilers, only one of which has stdint.h

	Jean-Marc

On 07/05/2015 11:10 AM, Tanu Kaskinen wrote:
> From: Tanu Kaskinen <[email protected]>
> 
> Not everyone who includes speexdsp_config_types.h will have a test
> which defines those, and if we've chosen to use the stdint types at
> configure time then we know exactly which header(s) are available, so
> just choose the best one then and generate the header to use it.
> 
> This patch, including the above text, is copied from a commit in the
> speex repository[1]. The original commit for speex was made by Ron
> <[email protected]>.
> 
> [1] https://git.xiph.org/?p=speex.git;a=commitdiff;h=774c87d6cb7dd8dabdd17677fc6da753ecf4aa87
> 
> Signed-off-by: Tanu Kaskinen <[email protected]>
> ---
>  configure.ac                             | 6 ++++++
>  include/speex/speexdsp_config_types.h.in | 8 +-------
>  2 files changed, 7 insertions(+), 7 deletions(-)
> 
> diff --git a/configure.ac b/configure.ac
> index 2cd2d1e..1de0c23 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -334,6 +334,12 @@ AC_SUBST([USIZE16])
>  AC_SUBST([SIZE32])
>  AC_SUBST([USIZE32])
>  
> +AS_IF([test "$ac_cv_header_stdint_h" = "yes"],    [INCLUDE_STDINT="#include <stdint.h>"],
> +      [test "$ac_cv_header_inttypes_h" = "yes"],  [INCLUDE_STDINT="#include <inttypes.h>"],
> +      [test "$ac_cv_header_sys_types_h" = "yes"], [INCLUDE_STDINT="#include <sys/types.h>"])
> +
> +AC_SUBST([INCLUDE_STDINT])
> +
>  AC_CONFIG_FILES([
>             Makefile libspeexdsp/Makefile doc/Makefile SpeexDSP.spec
>             include/Makefile include/speex/Makefile speexdsp.pc
> diff --git a/include/speex/speexdsp_config_types.h.in b/include/speex/speexdsp_config_types.h.in
> index 02b82fd..5ea7b55 100644
> --- a/include/speex/speexdsp_config_types.h.in
> +++ b/include/speex/speexdsp_config_types.h.in
> @@ -1,13 +1,7 @@
>  #ifndef __SPEEX_TYPES_H__
>  #define __SPEEX_TYPES_H__
>  
> -#if defined HAVE_STDINT_H
> -#  include <stdint.h>
> -#elif defined HAVE_INTTYPES_H
> -#  include <inttypes.h>
> -#elif defined HAVE_SYS_TYPES_H
> -#  include <sys/types.h>
> -#endif
> +@INCLUDE_STDINT@
>  
>  typedef @SIZE16@ spx_int16_t;
>  typedef @USIZE16@ spx_uint16_t;
>