check_mathfunc should test the existence of a prototype, and not implementation. It also needs to be moved past the pkgconfig stage, in order to ensure that all cflags, cppflags have been defined.
This fixes detection of exp10, exp10f. Reviewed-by: Nicolas George <geo...@nsup.org> Signed-off-by: Ganesh Ajjanagadde <gajjanaga...@gmail.com> --- configure | 65 ++++++++++++++++++++++++++++++++++++--------------------------- 1 file changed, 37 insertions(+), 28 deletions(-) diff --git a/configure b/configure index ba77221..ffe827f 100755 --- a/configure +++ b/configure @@ -1072,29 +1072,36 @@ EOF check_complexfunc(){ log check_complexfunc "$@" func=$1 - narg=$2 - shift 2 - test $narg = 2 && args="f, g" || args="f * I" + shift 1 disable $func - check_ld "cc" "$@" <<EOF && enable $func + check_cc "$@" <<EOF && enable $func #include <complex.h> #include <math.h> -float foo(complex float f, complex float g) { return $func($args); } -int main(void){ return (int) foo; } +int main(void){ return (int) $func; } EOF } check_mathfunc(){ log check_mathfunc "$@" func=$1 - narg=$2 - shift 2 - test $narg = 2 && args="f, g" || args="f" + shift 1 disable $func - check_ld "cc" "$@" <<EOF && enable $func + check_cc "$@" <<EOF && enable $func #include <math.h> -float foo(float f, float g) { return $func($args); } -int main(void){ return (int) foo; } +int main(void){ return (int) $func; } +EOF +} + +check_mathmacro(){ + log check_mathfunc "$@" + macro=$1 + shift 1 + disable $macro + check_cc "$@" <<EOF && enable $macro +#include <math.h> +#if !defined($macro) +#error "macro not present: $macro" +#endif EOF } @@ -1807,6 +1814,11 @@ COMPLEX_FUNCS=" cexp " +MATH_MACROS=" + isinf + isnan +" + MATH_FUNCS=" atanf atan2f @@ -1821,8 +1833,6 @@ MATH_FUNCS=" exp2f expf hypot - isinf - isnan ldexpf llrint llrintf @@ -1950,6 +1960,7 @@ HAVE_LIST=" $HAVE_LIST_PUB $HEADERS_LIST $INTRINSICS_LIST + $MATH_MACROS $MATH_FUNCS $SYSTEM_FUNCS $THREADS_LIST @@ -5372,20 +5383,6 @@ disabled lzma || check_lib2 lzma.h lzma_version_number -llzma || disable lzma check_lib math.h sin -lm && LIBM="-lm" disabled crystalhd || check_lib libcrystalhd/libcrystalhd_if.h DtsCrystalHDVersion -lcrystalhd || disable crystalhd -atan2f_args=2 -copysign_args=2 -hypot_args=2 -ldexpf_args=2 -powf_args=2 - -for func in $MATH_FUNCS; do - eval check_mathfunc $func \${${func}_args:-1} -done - -for func in $COMPLEX_FUNCS; do - eval check_complexfunc $func \${${func}_args:-1} -done - # these are off by default, so fail if requested and not available enabled avfoundation_indev && { check_header_objcc AVFoundation/AVFoundation.h || disable avfoundation_indev; } enabled avfoundation_indev && { check_lib2 CoreGraphics/CoreGraphics.h CGGetActiveDisplayList -framework CoreGraphics || @@ -6021,6 +6018,18 @@ done enabled zlib && add_cppflags -DZLIB_CONST +for macro in $MATH_MACROS; do + eval check_mathmacro $macro +done + +for func in $MATH_FUNCS; do + eval check_mathfunc $func +done + +for func in $COMPLEX_FUNCS; do + eval check_complexfunc $func +done + # conditional library dependencies, in linking order enabled amovie_filter && prepend avfilter_deps "avformat avcodec" enabled aresample_filter && prepend avfilter_deps "swresample" -- 2.6.4 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel