From f38aa69e40cdb872fa01073df6472cc72af1fe32 Mon Sep 17 00:00:00 2001 From: Brad Jorsch Date: Fri, 24 Sep 2010 16:08:12 -0400 Subject: [PATCH] Clean up library linking 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 --- 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 b4b2966c..75bfc0e1 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 62c9fb3a..c93e3056 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 a37f545e..7cd56a97 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([--enable-xrandr], [enable XRandR window ex xrandr=$enableval, xrandr=no) 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 1fb54d4e..eb025e98 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 daba0faf..9e32021d 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 3cd70017..476b9677 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 -- 2.11.4.GIT