From 83f8f595695c0669b632b8b5d45306a6f63b3fa5 Mon Sep 17 00:00:00 2001
From: Mathias Gumz <akira at fluxbox dot org>
Date: Tue, 25 Jan 2011 12:23:24 +0100
Subject: build fix: revert e38994ae727a3bc7fa77f45d5bdbb97dffcbd1e5

'xft-config' is deprecated (http://lists.freedesktop.org/archives/xorg-devel/2010-March/006750.html)
and does not exist anymore on 'bleeding edge' versions (gentoo). 'pkg-config'
is the new way of doing things. 'pkg-config --libs xft' does only report
the libs needed and the linker finds out other dependencies on its own. currently,
'pkg-config' (version 0.25) reports only '-lXft'.

if the user wants for example LDFLAGS="-fuse-ld=gold --no-add-needed" then
all the needed libs must be produced, otherwise linkage fails. at the moment
it seems that fluxbox calls 'XftMatrixRotate()' and 'XftPatternAddMatrix()'
which both seems to trigger the need for 'fontconfig':

   undefined reference to 'FcMatrixRotate'
   undefined reference to 'FcPatternAddMatrix'

is 'pkg-config --libs xft' reporting to few libs? in comparison to
'xft-config --libs' for sure. bug? feature? i am not sure. there are
several ways to address this issue:

* append the needed libs manually via LIBS or LDFLAGS

  env LIBS="-lfontconfig" ./configure

* change build-system of fluxbox to do something like

   pkg-config --print-requires-private 'xft' 2> /dev/null || echo xft)`

(pkg-config version < 0.2x does not have --print-requires-private, which
 then leads to not print out all libs needed, which would then require
 a fallback to xft-config since an older system anyways, evidence is
 old pkg-config)

* changing build-system of fluxbox to use something like:

  pkg-config --static --libs xft

(which reports really all libs, even more than actually needed, check out
  http://osdir.com/ml/debian-bugs-closed/2011-01/msg01112.html)

* fix 'pkg-config' (or the related xft.pc) to report '-lXft -lfontconfig'
(not our code, but preferable)

* use 'pkg-config --libs xft fontconfig' since we know that calling the
xft functions requires linking against 'fontconfig' as well:

  pkg-config --libs xft fontconfig

which is what we use to get rid of the build-errors
---
 acinclude.m4 | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/acinclude.m4 b/acinclude.m4
index aad7dc8..ca5a789 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -170,24 +170,24 @@ AC_DEFUN([AM_PATH_XFT2],
 [
     if test x$pkg_exec_prefix != x ; then
         xft_args="$xft_args --exec-prefix=$pkg_exec_prefix"
-        if test x${XFT_CONFIG+set} != xset ; then
-            XFT_CONFIG=$pkg_exec_prefix/bin/xft-config
+        if test x${PKG_CONFIG+set} != xset ; then
+            PKG_CONFIG=$pkg_exec_prefix/bin/pkg-config
         fi
     fi
 
     if test x$xft_prefix != x ; then
-       xft_args="$xft_args --prefix=$xft_prefix"
-       if test x${XFT_CONFIG+set} != xset ; then
-          XFT_CONFIG=$xft_prefix/bin/xft-config
-       fi
+        xft_args="$xft_args --prefix=$xft_prefix"
+        if test x${PKG_CONFIG+set} != xset ; then
+            PKG_CONFIG=$xft_prefix/bin/pkg-config
+        fi
     fi
 
-    AC_PATH_PROG(XFT_CONFIG, xft-config, no)
-    if test "x$XFT_CONFIG" = "xno" ; then
+    AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
+    if test "x$PKG_CONFIG" = "xno" ; then
         ifelse([$2], , :, [$2])
-    else
-        XFT_CFLAGS=`$XFT_CONFIG $xftconf_args --cflags`
-        XFT_LIBS=`$XFT_CONFIG $xftconf_args --libs`
+    else 
+        XFT_CFLAGS=`$PKG_CONFIG $xftconf_args --cflags xft fontconfig`
+        XFT_LIBS=`$PKG_CONFIG $xftconf_args --libs xft fontconfig`
         ifelse([$1], , :, [$1])
     fi
 ])
-- 
cgit v0.11.2