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; >