On the one hand, libWINGs wasn't linking against -lX11 when it should
have been. And on the other, only libWINGs needs Xft, only wmaker needs
Xrandr, only wmaker and wmsetbg need Xinerama, only libwraster needs
Xmu, and -lpng may not need -lz.

Cleaning this up can help distributions get their dependencies correct,
and might even avoid loading the unused libraries at runtime, so we may
as well do it.

Signed-off-by: Brad Jorsch <[email protected]>
---
 WINGs/Makefile.am      |    2 +-
 WPrefs.app/Makefile.am |    1 -
 configure.ac           |   31 +++++++++++++++++++++++++------
 src/Makefile.am        |    3 ++-
 util/Makefile.am       |    4 ++--
 wrlib/Makefile.am      |    2 +-
 6 files changed, 31 insertions(+), 12 deletions(-)

diff --git a/WINGs/Makefile.am b/WINGs/Makefile.am
index b4b2966..75bfc0e 100644
--- a/WINGs/Makefile.am
+++ b/WINGs/Makefile.am
@@ -13,7 +13,7 @@ lib_LTLIBRARIES = libWUtil.la libWINGs.la
 
 
 LDADD= libWUtil.la libWINGs.la $(top_builddir)/wrlib/libwraster.la @INTLIBS@
-libWINGs_la_LIBADD = libWUtil.la $(top_builddir)/wrlib/libwraster.la @XFTLIBS@ 
@FCLIBS@ @LIBM@ @LIBBSD@
+libWINGs_la_LIBADD = libWUtil.la $(top_builddir)/wrlib/libwraster.la @XLIBS@ 
@XFTLIBS@ @FCLIBS@ @LIBM@
 libWUtil_la_LIBADD = @LIBBSD@
 
 EXTRA_DIST = BUGS make-rgb Examples Extras Tests
diff --git a/WPrefs.app/Makefile.am b/WPrefs.app/Makefile.am
index 62c9fb3..c93e305 100644
--- a/WPrefs.app/Makefile.am
+++ b/WPrefs.app/Makefile.am
@@ -54,6 +54,5 @@ WPrefs_LDADD = \
        $(top_builddir)/WINGs/libWUtil.la\
        $(top_builddir)/wrlib/libwraster.la \
        @XLFLAGS@ @XLIBS@ \
-       @XFTLIBS@ \
        @FCLIBS@ \
        @INTLIBS@
diff --git a/configure.ac b/configure.ac
index 073a95b..8d19b58 100644
--- a/configure.ac
+++ b/configure.ac
@@ -386,7 +386,9 @@ fi
 X_LIBRARY_PATH=$x_libraries
 XCFLAGS="$X_CFLAGS"
 XLFLAGS="$X_LIBS"
-XLIBS="-lX11 -lXmu $X_EXTRA_LIBS"
+XLIBS="-lX11 $X_EXTRA_LIBS"
+LIBXMU="-lXmu"
+AC_SUBST(LIBXMU)
 
 lib_search_path="$lib_search_path $XLFLAGS"
 inc_search_path="$inc_search_path $XCFLAGS"
@@ -444,12 +446,14 @@ AC_ARG_ENABLE(XRandR, AS_HELP_STRING([--disable-xrandr], 
[disable XRandR window
                xrandr=$enableval, xrandr=yes)
 added_xext=no
 
+LIBXRANDR=
 if test "$xrandr" = yes; then
-       AC_CHECK_LIB(Xrandr, XRRQueryExtension, [XLIBS="-lXrandr $XLIBS"
+       AC_CHECK_LIB(Xrandr, XRRQueryExtension, [LIBXRANDR=-lXrandr
                added_xext=yes
                AC_DEFINE(HAVE_XRANDR, 1, [define if you want support for 
XRandR (set by configure)])],
                xrandr=no, $XLFLAGS $XLIBS)
 fi
+AC_SUBST(LIBXRANDR)
 
 dnl
 dnl libWINGS uses math functions, check whether usage requires linking
@@ -530,9 +534,10 @@ xinerama=no
 AC_ARG_ENABLE(xinerama, AS_HELP_STRING([--enable-xinerama], [enable Xinerama 
extension support]),
                xinerama=$enableval, xinerama=no)
 
+LIBXINERAMA=
 if test "$xinerama" = yes; then
        AC_CHECK_LIB(Xinerama, XineramaQueryScreens, 
-                [XLIBS="-lXinerama $XLIBS"
+                [LIBXINERAMA=-lXinerama
                 xfxine=yes],
                xfxine=no, $XLFLAGS $XLIBS)
 
@@ -555,7 +560,7 @@ if test "$xinerama" = yes; then
                [define if you want support for the XINERAMA extension (set by 
configure)])
        fi
 fi
-
+AC_SUBST(LIBXINERAMA)
 
 
 dnl MIT-SHM support
@@ -630,12 +635,26 @@ AC_ARG_ENABLE(png, AS_HELP_STRING([--disable-png], 
[disable PNG support through
        png=$enableval, png=yes, png=no)
 
 if test "$png" = yes ; then
-    WM_CHECK_LIB(png, png_get_valid, [-lz -lm])
+    my_libname=""
+    WM_CHECK_LIB(png, png_get_valid, [-lm])
+    if test "x$ac_cv_lib_png_png_get_valid" = xyes; then
+       my_libname="-lpng"
+    fi
+dnl
+dnl Retry with zlib
+dnl
+    if test "x$my_libname" = x; then
+        unset ac_cv_lib_png_png_get_valid
+        WM_CHECK_LIB(png, png_get_valid, [-lz -lm])
+       if test "x$ac_cv_lib_png_png_get_valid" = xyes; then
+           my_libname="-lpng -lz"
+       fi
+    fi
 
     if test "x$ac_cv_lib_png_png_get_valid" = xyes; then
        WM_CHECK_HEADER(png.h)
        if test "x$ac_cv_header_png_h" = xyes; then
-           GFXLIBS="$GFXLIBS -lpng -lz" 
+           GFXLIBS="$GFXLIBS $my_libname" 
            supported_gfx="$supported_gfx PNG"
             AC_DEFINE(USE_PNG, 1, [define if PNG libraries are available (set 
by configure)])
        fi
diff --git a/src/Makefile.am b/src/Makefile.am
index 1fb54d4..eb025e9 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -116,7 +116,8 @@ wmaker_LDADD = \
        $(top_builddir)/WINGs/libWUtil.la\
        $(top_builddir)/wrlib/libwraster.la\
        @XLFLAGS@ \
-       @XFTLIBS@ \
+       @LIBXRANDR@ \
+       @LIBXINERAMA@ \
        @XLIBS@ \
        @LIBM@ \
        @INTLIBS@
diff --git a/util/Makefile.am b/util/Makefile.am
index daba0fa..9e32021 100644
--- a/util/Makefile.am
+++ b/util/Makefile.am
@@ -49,13 +49,13 @@ wmagnify_LDADD = \
        $(top_builddir)/WINGs/libWINGs.la \
        $(top_builddir)/WINGs/libWUtil.la \
        $(top_builddir)/wrlib/libwraster.la \
-       @XLFLAGS@ @XLIBS@ @XFTLIBS@ @INTLIBS@
+       @XLFLAGS@ @XLIBS@ @INTLIBS@
 
 wmsetbg_LDADD = \
        $(top_builddir)/WINGs/libWINGs.la \
        $(top_builddir)/WINGs/libWUtil.la \
        $(top_builddir)/wrlib/libwraster.la \
-       @XLFLAGS@ @XLIBS@ @XFTLIBS@ @INTLIBS@
+       @XLFLAGS@ @LIBXINERAMA@ @XLIBS@ @INTLIBS@
 
 wmgenmenu_LDADD = \
        $(top_builddir)/WINGs/libWUtil.la \
diff --git a/wrlib/Makefile.am b/wrlib/Makefile.am
index 3cd7001..476b967 100644
--- a/wrlib/Makefile.am
+++ b/wrlib/Makefile.am
@@ -48,7 +48,7 @@ COMPILE2=`echo $(COMPILE) | sed -e s/-fomit-frame-pointer//`
 
 INCLUDES = $(DFLAGS) @HEADER_SEARCH_PATH@
 
-libwraster_la_LIBADD = @LIBRARY_SEARCH_PATH@ @GFXLIBS@ @XLIBS@ -lm
+libwraster_la_LIBADD = @LIBRARY_SEARCH_PATH@ @GFXLIBS@ @XLIBS@ @LIBXMU@ -lm
 
 DISTCLEANFILES = wrlib.pc
 
-- 
1.7.1


-- 
To unsubscribe, send mail to [email protected].

Reply via email to