windowscodecs: Handle old libpng.so using distros (as SLE 10).

This commit is contained in:
Marcus Meissner 2010-02-27 23:13:21 +01:00 committed by Alexandre Julliard
parent 6c84c3f9ad
commit 615e0e64f9
4 changed files with 104 additions and 0 deletions

84
configure vendored
View File

@ -11060,6 +11060,49 @@ _ACEOF
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for png_set_expand_gray_1_2_4_to_8 in -lpng" >&5
$as_echo_n "checking for png_set_expand_gray_1_2_4_to_8 in -lpng... " >&6; }
if test "${ac_cv_lib_png_png_set_expand_gray_1_2_4_to_8+set}" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lpng -lm -lz $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char png_set_expand_gray_1_2_4_to_8 ();
int
main ()
{
return png_set_expand_gray_1_2_4_to_8 ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_png_png_set_expand_gray_1_2_4_to_8=yes
else
ac_cv_lib_png_png_set_expand_gray_1_2_4_to_8=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_png_png_set_expand_gray_1_2_4_to_8" >&5
$as_echo "$ac_cv_lib_png_png_set_expand_gray_1_2_4_to_8" >&6; }
if test "x$ac_cv_lib_png_png_set_expand_gray_1_2_4_to_8" = x""yes; then :
$as_echo "#define HAVE_PNG_SET_EXPAND_GRAY_1_2_4_TO_8 1" >>confdefs.h
fi
elif test -n "$X_CFLAGS" -a "x$with_png" != "xno"
then
ac_save_CPPFLAGS="$CPPFLAGS"
@ -11132,6 +11175,47 @@ _ACEOF
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for png_set_expand_gray_1_2_4_to_8 in -lpng" >&5
$as_echo_n "checking for png_set_expand_gray_1_2_4_to_8 in -lpng... " >&6; }
if test "${ac_cv_lib_png_png_set_expand_gray_1_2_4_to_8+set}" = set; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lpng $X_LIBS -lm -lz $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
builtin and then its argument prototype would still apply. */
#ifdef __cplusplus
extern "C"
#endif
char png_set_expand_gray_1_2_4_to_8 ();
int
main ()
{
return png_set_expand_gray_1_2_4_to_8 ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_png_png_set_expand_gray_1_2_4_to_8=yes
else
ac_cv_lib_png_png_set_expand_gray_1_2_4_to_8=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_png_png_set_expand_gray_1_2_4_to_8" >&5
$as_echo "$ac_cv_lib_png_png_set_expand_gray_1_2_4_to_8" >&6; }
if test "x$ac_cv_lib_png_png_set_expand_gray_1_2_4_to_8" = x""yes; then :
$as_echo "#define HAVE_PNG_SET_EXPAND_GRAY_1_2_4_TO_8 1" >>confdefs.h
fi
fi
fi
if test "x$ac_cv_lib_soname_png" = "x"; then :

View File

@ -1420,6 +1420,9 @@ dnl **** Check for libpng ****
if test "$ac_cv_header_png_h" = "yes"
then
WINE_CHECK_SONAME(png,png_create_read_struct,,,-lm -lz,[[libpng[[0-9]]*]])
AC_CHECK_LIB(png,png_set_expand_gray_1_2_4_to_8,
[AC_DEFINE(HAVE_PNG_SET_EXPAND_GRAY_1_2_4_TO_8,1,[Define to 1 if libpng has the png_set_expand_gray_1_2_4_to_8 function.])]
,,-lm -lz)
elif test -n "$X_CFLAGS" -a "x$with_png" != "xno"
then
dnl libpng is in the X directory on Mac OS X
@ -1432,6 +1435,8 @@ then
then
AC_SUBST(PNGINCL,"$X_CFLAGS")
WINE_CHECK_SONAME(png,png_create_read_struct,,,[$X_LIBS -lm -lz],[[libpng[[0-9]]*]])
AC_CHECK_LIB(png,png_set_expand_gray_1_2_4_to_8,
[AC_DEFINE(HAVE_PNG_SET_EXPAND_GRAY_1_2_4_TO_8,1)],,[$X_LIBS -lm -lz])
fi
fi
WINE_WARNING_WITH(png,[test "x$ac_cv_lib_soname_png" = "x"],

View File

@ -60,7 +60,11 @@ MAKE_FUNCPTR(png_get_PLTE);
MAKE_FUNCPTR(png_get_tRNS);
MAKE_FUNCPTR(png_set_bgr);
MAKE_FUNCPTR(png_set_error_fn);
#if HAVE_PNG_SET_EXPAND_GRAY_1_2_4_TO_8
MAKE_FUNCPTR(png_set_expand_gray_1_2_4_to_8);
#else
MAKE_FUNCPTR(png_set_gray_1_2_4_to_8);
#endif
MAKE_FUNCPTR(png_set_filler);
MAKE_FUNCPTR(png_set_gray_to_rgb);
MAKE_FUNCPTR(png_set_IHDR);
@ -103,7 +107,11 @@ static void *load_libpng(void)
LOAD_FUNCPTR(png_get_tRNS);
LOAD_FUNCPTR(png_set_bgr);
LOAD_FUNCPTR(png_set_error_fn);
#if HAVE_PNG_SET_EXPAND_GRAY_1_2_4_TO_8
LOAD_FUNCPTR(png_set_expand_gray_1_2_4_to_8);
#else
LOAD_FUNCPTR(png_set_gray_1_2_4_to_8);
#endif
LOAD_FUNCPTR(png_set_filler);
LOAD_FUNCPTR(png_set_gray_to_rgb);
LOAD_FUNCPTR(png_set_IHDR);
@ -306,7 +314,11 @@ static HRESULT WINAPI PngDecoder_Initialize(IWICBitmapDecoder *iface, IStream *p
{
if (bit_depth < 8)
{
#if HAVE_PNG_SET_EXPAND_GRAY_1_2_4_TO_8
ppng_set_expand_gray_1_2_4_to_8(This->png_ptr);
#else
ppng_set_gray_1_2_4_to_8(This->png_ptr);
#endif
bit_depth = 8;
}
ppng_set_gray_to_rgb(This->png_ptr);

View File

@ -582,6 +582,9 @@
/* Define to 1 if you have the <png.h> header file. */
#undef HAVE_PNG_H
/* Define to 1 if libpng has the png_set_expand_gray_1_2_4_to_8 function. */
#undef HAVE_PNG_SET_EXPAND_GRAY_1_2_4_TO_8
/* Define to 1 if you have the `poll' function. */
#undef HAVE_POLL