wafsamba/CHECK_LIB: replace dots in library names

Ralph Böhme rb at sernet.de
Thu Mar 27 11:30:44 MDT 2014


just ran across an issue where in CHECK_LIB a library containing a
version number including a dot in the library name resulted in a
macro defintion including the dot, eg


resulting macro:


Compiler diagnostic:

  default/include/config.h:945:33: warning: missing whitespace after
  the macro name [enabled by default]


   "An identifier is the same as an identifier in C: any sequence of
   letters, digits, or underscores, which begins with a letter or

I've crafted a small patch which fixes the issue by substituting the
dot with an underscore. Review appreciated!


SerNet GmbH, Bahnhofsallee 1b, 37081 Göttingen
phone: +49-551-370000-0, fax: +49-551-370000-9
AG Göttingen, HRB 2816, GF: Dr. Johannes Loxen
-------------- next part --------------
>From edaa1f5224cbdb56ae693cd41c3c7fc842bd3045 Mon Sep 17 00:00:00 2001
From: Ralph Boehme <rb at sernet.de>
Date: Thu, 27 Mar 2014 16:37:18 +0100
Subject: [PATCH 1/2] wafsamba: replace dots in library names

Certain libraries use a version number with a dot in the library name,
eg libtracker-sparql-0.16. The dot is passed to the HAVE_LIBXXX macro
but dots aren't allowed in C macros, compiler diagnostic:

  warning: missing whitespace after the macro name

Signed-off-by: Ralph Boehme <rb at sernet.de>
 buildtools/wafsamba/samba_autoconf.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/buildtools/wafsamba/samba_autoconf.py b/buildtools/wafsamba/samba_autoconf.py
index e14f9cd..4da2c25 100644
--- a/buildtools/wafsamba/samba_autoconf.py
+++ b/buildtools/wafsamba/samba_autoconf.py
@@ -559,7 +559,7 @@ int foo()
                 if set_target:
                     SET_TARGET_TYPE(conf, lib, 'EMPTY')
-            conf.define('HAVE_LIB%s' % lib.upper().replace('-','_'), 1)
+            conf.define('HAVE_LIB%s' % lib.upper().replace('-','_').replace('.','_'), 1)
             conf.env['LIB_' + lib.upper()] = lib
             if set_target:
                 conf.SET_TARGET_TYPE(lib, 'SYSLIB')

More information about the samba-technical mailing list