svn commit: samba r18067 - in branches/SAMBA_4_0/source/lib/replace: .

tridge at samba.org tridge at samba.org
Tue Sep 5 07:58:27 GMT 2006


Author: tridge
Date: 2006-09-05 07:58:26 +0000 (Tue, 05 Sep 2006)
New Revision: 18067

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=18067

Log:

some tweaks for irix and hpux

this checks for -AC99 or -c99 to get C99 structure init to work. It's
based on a similar macro metze did for Samba4.

the double sinclude() is weird, but I can't see any other way to use a
common config.m4 between libreplace and all the projects that use it

Added:
   branches/SAMBA_4_0/source/lib/replace/cc_features.m4
Modified:
   branches/SAMBA_4_0/source/lib/replace/config.m4
   branches/SAMBA_4_0/source/lib/replace/replace.h


Changeset:
Added: branches/SAMBA_4_0/source/lib/replace/cc_features.m4
===================================================================
--- branches/SAMBA_4_0/source/lib/replace/cc_features.m4	2006-09-05 07:43:49 UTC (rev 18066)
+++ branches/SAMBA_4_0/source/lib/replace/cc_features.m4	2006-09-05 07:58:26 UTC (rev 18067)
@@ -0,0 +1,42 @@
+dnl C99 compiler check
+dnl -------------------------------------------------------
+dnl  Copyright (C) Stefan (metze) Metzmacher 2004,2005
+dnl  Released under the GNU GPL
+dnl -------------------------------------------------------
+dnl
+dnl adapted for libreplace by Andrew Tridgell
+
+############################################
+# Check if the compiler handles c99 struct initialization, and if not try -AC99 and -c99 flags
+# Usage: LIBREPLACE_CC_SUPPORTS_C99_STRUCT_INIT(success-action,failure-action)
+# changes CFLAGS to add -AC99 or -c99 if needed
+
+AC_DEFUN([LIBREPLACE_C99_STRUCT_INIT],
+[
+AC_MSG_CHECKING(for C99 designated initializers)
+saved_CFLAGS="$CFLAGS";
+AC_TRY_COMPILE([#include <stdio.h>],
+    [ struct foo {int x;char y;};
+      struct foo bar = { .y = 'X', .x = 1 };	 
+    ],
+    [AC_MSG_RESULT(yes); c99_init=yes; $1], [c99_init=no; AC_MSG_RESULT(no)])
+if test x"$c99_init" = x"no"; then
+    AC_MSG_CHECKING(for C99 designated initializers with -AC99)
+    CFLAGS="$saved_CFLAGS -AC99";
+    AC_TRY_COMPILE([#include <stdio.h>],
+     [ struct foo {int x;char y;};
+       struct foo bar = { .y = 'X', .x = 1 };	 
+     ],
+     [AC_MSG_RESULT(yes); c99_init=yes; $1],[AC_MSG_RESULT(no)])
+fi
+if test x"$c99_init" = x"no"; then
+    AC_MSG_CHECKING(for C99 designated initializers with -c99)
+    CFLAGS="$saved_CFLAGS -c99"
+    AC_TRY_COMPILE([#include <stdio.h>],
+     [ struct foo {int x;char y;};
+       struct foo bar = { .y = 'X', .x = 1 };	 
+     ],
+     [AC_MSG_RESULT(yes); $1],[AC_MSG_RESULT(no);CFLAGS="$saved_CFLAGS"; $2])
+fi
+])
+

Modified: branches/SAMBA_4_0/source/lib/replace/config.m4
===================================================================
--- branches/SAMBA_4_0/source/lib/replace/config.m4	2006-09-05 07:43:49 UTC (rev 18066)
+++ branches/SAMBA_4_0/source/lib/replace/config.m4	2006-09-05 07:58:26 UTC (rev 18067)
@@ -142,7 +142,13 @@
 			   [AC_MSG_ERROR([Required function not found])])
 
 sinclude(lib/replace/getpass.m4)
+sinclude(getpass.m4)
+sinclude(lib/replace/cc_features.m4)
+sinclude(cc_features.m4)
 
+LIBREPLACE_C99_STRUCT_INIT(c99_struct_initialization=yes,
+			c99_struct_initialization=no)
+
 dnl VA_COPY
 AC_CACHE_CHECK([for va_copy],samba_cv_HAVE_VA_COPY,[
 AC_TRY_LINK([#include <stdarg.h>

Modified: branches/SAMBA_4_0/source/lib/replace/replace.h
===================================================================
--- branches/SAMBA_4_0/source/lib/replace/replace.h	2006-09-05 07:43:49 UTC (rev 18066)
+++ branches/SAMBA_4_0/source/lib/replace/replace.h	2006-09-05 07:58:26 UTC (rev 18067)
@@ -51,9 +51,7 @@
 
 #ifdef HAVE_STDINT_H
 #include <stdint.h>
-#endif
-
-#ifdef HAVE_INTTYPES_H
+#elif HAVE_INTTYPES_H
 #include <inttypes.h>
 #endif
 
@@ -257,9 +255,7 @@
 
 #ifdef HAVE_STDBOOL_H
 #include <stdbool.h>
-#endif
-
-#ifndef HAVE_BOOL
+#elif !defined(HAVE_BOOL)
 #define __bool_true_false_are_defined
 typedef int bool;
 #define false (0)



More information about the samba-cvs mailing list