diff --git a/libs/speex/acinclude.m4 b/libs/speex/acinclude.m4 index 0e1f1abf59..536a0d45ae 100644 --- a/libs/speex/acinclude.m4 +++ b/libs/speex/acinclude.m4 @@ -100,3 +100,20 @@ int main () AC_SUBST(OGG_LIBS) rm -f conf.oggtest ]) + + +AC_DEFUN([AX_COMPILER_VENDOR], +[ +AC_CACHE_CHECK([for _AC_LANG compiler vendor], ax_cv_[]_AC_LANG_ABBREV[]_compiler_vendor, + [ax_cv_[]_AC_LANG_ABBREV[]_compiler_vendor=unknown + # note: don't check for gcc first since some other compilers define __GNUC__ + for ventest in intel:__ICC,__ECC,__INTEL_COMPILER ibm:__xlc__,__xlC__,__IBMC__,__IBMCPP__ gnu:__GNUC__ sun:__SUNPRO_C,__SUNPRO_CC hp:__HP_cc,__HP_aCC dec:__DECC,__DECCXX,__DECC_VER,__DECCXX_VER borland:__BORLANDC__,__TURBOC__ comeau:__COMO__ cray:_CRAYC kai:__KCC lcc:__LCC__ metrowerks:__MWERKS__ sgi:__sgi,sgi microsoft:_MSC_VER watcom:__WATCOMC__ portland:__PGI; do + vencpp="defined("`echo $ventest | cut -d: -f2 | sed 's/,/) || defined(/g'`")" + AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[ +#if !($vencpp) + thisisanerror; +#endif +])], [ax_cv_]_AC_LANG_ABBREV[_compiler_vendor=`echo $ventest | cut -d: -f1`; break]) + done + ]) +]) diff --git a/libs/speex/configure.ac b/libs/speex/configure.ac index 5eae4953ac..4b88fbe6e9 100644 --- a/libs/speex/configure.ac +++ b/libs/speex/configure.ac @@ -38,6 +38,7 @@ AC_C_CONST AC_C_INLINE AC_C_RESTRICT +AX_COMPILER_VENDOR AC_MSG_CHECKING(for C99 variable-size arrays) AC_TRY_COMPILE( , [ @@ -89,25 +90,52 @@ has_sse=no ) AC_MSG_RESULT($has_sse) -SAVE_CFLAGS="$CFLAGS" -CFLAGS="$CFLAGS -fvisibility=hidden" AC_MSG_CHECKING(for ELF visibility) -AC_COMPILE_IFELSE([ -AC_LANG_PROGRAM([[ -#pragma GCC visibility push(hidden) -__attribute__((visibility("default"))) -int var=10; -]])], -[ -has_visibility=yes -AC_DEFINE([EXPORT], [__attribute__((visibility("default")))], [Symbol visibility prefix]) -], -[ -has_visibility=no -AC_DEFINE([EXPORT], [], [Symbol visibility prefix]) -CFLAGS="$SAVE_CFLAGS" -] -) +case "$ax_cv_c_compiler_vendor" in +gnu) + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -fvisibility=hidden" + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + #pragma GCC visibility push(hidden) + __attribute__((visibility("default"))) + int var=10; + ]])], + [ + has_visibility=yes + AC_DEFINE([EXPORT], [__attribute__((visibility("default")))], [Symbol visibility prefix]) + ], + [ + has_visibility=no + AC_DEFINE([EXPORT], [], [Symbol visibility prefix]) + CFLAGS="$SAVE_CFLAGS" + ] + ) + ;; +sun) + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -xldscope=hidden" + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + __attribute__((visibility("default"))) + int var=10; + ]])], + [ + has_visibility=yes + AC_DEFINE([EXPORT], [__attribute__((visibility("default")))], [Symbol visibility prefix]) + ], + [ + has_visibility=no + AC_DEFINE([EXPORT], [], [Symbol visibility prefix]) + CFLAGS="$SAVE_CFLAGS" + ] + ) + ;; +*) + has_visibility=no + AC_DEFINE([EXPORT], [], [Symbol visibility prefix]) + ;; +esac AC_MSG_RESULT($has_visibility) AC_CHECK_HEADERS(sys/soundcard.h sys/audioio.h)