mirror of
https://github.com/gryf/wmaker.git
synced 2026-01-09 15:24:12 +01:00
wrlib: Moved configure's detection of PNG support to a dedicated macro
The original check was not compliant with autoconf's syntax, did not have a very good behaviour for user and was not easy to make evolve. The new macro: - uses as much as possible autoconf macros for portability and code consistency; - provides a consistent behaviour on yes/no/auto (if user explicitly enables support, do not silently disable if not found; if library is found but not the header, complain to let user install it or explicitly disable support); - makes uses of shell functions to keep generated configure smaller by sharing reusable stuff; - uses an automake conditional to avoid compiling the file is support is not enabled It includes a typo fixed by Amadeusz S-B³awiñski.-A Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
This commit is contained in:
committed by
Carlos R. Mafra
parent
777bf28ab3
commit
1c21d946ec
@@ -136,6 +136,58 @@ AM_CONDITIONAL([USE_JPEG], [test "x$enable_jpeg" != "xno"])dnl
|
||||
]) dnl AC_DEFUN
|
||||
|
||||
|
||||
# WM_IMGFMT_CHECK_PNG
|
||||
# -------------------
|
||||
#
|
||||
# Check for PNG file support through 'libpng'
|
||||
# The check depends on variable 'enable_png' being either:
|
||||
# yes - detect, fail if not found
|
||||
# no - do not detect, disable support
|
||||
# auto - detect, disable if not found
|
||||
#
|
||||
# When found, append appropriate stuff in GFXLIBS, and append info to
|
||||
# the variable 'supported_gfx'
|
||||
# When not found, append info to variable 'unsupported'
|
||||
AC_DEFUN_ONCE([WM_IMGFMT_CHECK_PNG],
|
||||
[AC_REQUIRE([_WM_IMGFMT_CHECK_FUNCTS])
|
||||
AS_IF([test "x$enable_png" = "xno"],
|
||||
[unsupported="$unsupported PNG"],
|
||||
[AC_CACHE_CHECK([for PNG support library], [wm_cv_imgfmt_png],
|
||||
[wm_cv_imgfmt_png=no
|
||||
dnl
|
||||
dnl We check first if one of the known libraries is available
|
||||
wm_save_LIBS="$LIBS"
|
||||
for wm_arg in "-lpng" "-lpng -lz" "-lpng -lz -lm" ; do
|
||||
AS_IF([wm_fn_imgfmt_try_link "png_get_valid" "$XLFLAGS $XLIBS $wm_arg"],
|
||||
[wm_cv_imgfmt_png="$wm_arg" ; break])
|
||||
done
|
||||
LIBS="$wm_save_LIBS"
|
||||
AS_IF([test "x$enable_png$wm_cv_imgfmt_png" = "xyesno"],
|
||||
[AC_MSG_ERROR([explicit PNG support requested but no library found])])
|
||||
AS_IF([test "x$wm_cv_imgfmt_png" != "xno"],
|
||||
[dnl
|
||||
dnl A library was found, now check for the appropriate header
|
||||
wm_save_CFLAGS="$CFLAGS"
|
||||
AS_IF([wm_fn_imgfmt_try_compile "png.h" "return 0" ""],
|
||||
[],
|
||||
[AC_MSG_ERROR([found $wm_cv_imgfmt_png but could not find appropriate header - are you missing libpng-dev package?])])
|
||||
AS_IF([wm_fn_imgfmt_try_compile "png.h" "png_get_valid(NULL, NULL, PNG_INFO_tRNS)" ""],
|
||||
[],
|
||||
[AC_MSG_ERROR([found $wm_cv_imgfmt_png and header, but cannot compile - unsupported version?])])
|
||||
CFLAGS="$wm_save_CFLAGS"])
|
||||
])
|
||||
AS_IF([test "x$wm_cv_imgfmt_png" = "xno"],
|
||||
[unsupported="$unsupported PNG"
|
||||
enable_png="no"],
|
||||
[supported_gfx="$supported_gfx PNG"
|
||||
GFXLIBS="$GFXLIBS $wm_cv_imgfmt_png"
|
||||
AC_DEFINE([USE_PNG], [1],
|
||||
[defined when valid PNG library with header was found])])
|
||||
])
|
||||
AM_CONDITIONAL([USE_PNG], [test "x$enable_png" != "xno"])dnl
|
||||
]) dnl AC_DEFUN
|
||||
|
||||
|
||||
# _WM_IMGFMT_CHECK_FUNCTS
|
||||
# -----------------------
|
||||
# (internal shell functions)
|
||||
|
||||
Reference in New Issue
Block a user