]> git.ipfire.org Git - thirdparty/autoconf.git/commitdiff
Add AT_CHECK_MACRO_CROSS.
authorStepan Kasal <kasal@ucw.cz>
Fri, 17 Mar 2006 18:03:01 +0000 (18:03 +0000)
committerStepan Kasal <kasal@ucw.cz>
Fri, 17 Mar 2006 18:03:01 +0000 (18:03 +0000)
ChangeLog
tests/local.at
tests/semantics.at

index c6883e57754f279e7ed399bfe835b532353d5c22..c9cbbe687600bc0fb7dcfcfd466f9fd06da9ce25 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2006-03-17  Stepan Kasal  <kasal@ucw.cz>
+
+       * tests/local.at (AT_CHECK_MACRO_CROSS): New macro, creates two tests:
+         the first one is usual AT_CHECK_MACRO test, the second one checks
+         that the same works when cross-compiling.
+       * tests/semantics.at (AC_CHECK_ALIGNOF, AC_CHECK_ALIGNOF struct):
+       (AC_CHECK_SIZEOF, AC_CHECK_SIZEOF struct): Use it.
+
 2006-03-17  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
        * lib/m4sugar/m4sh.m4 (_AS_DETECT_BETTER_SHELL): Prepend
index 188edba88368b337fd11a9c7d9bf68cd1f9015e4..0a0701596fb94b9c46d74adf9db5c7f8aaca54b4 100644 (file)
@@ -425,6 +425,22 @@ AT_CLEANUP()dnl
 ])# AT_CHECK_MACRO
 
 
+# AT_CHECK_MACRO_CROSS(MACRO, [MACRO-USE], [ADDITIONAL-CMDS],
+#                      [AUTOCONF-FLAGS = -W obsolete])
+# -----------------------------------------------------------
+# Like the previous one, but creates two checks: for native
+# compile and for cross-compile.
+m4_define([AT_CHECK_MACRO_CROSS],
+[AT_CHECK_MACRO($@)
+AT_CHECK_MACRO([$1 (cross compile)],
+  [AT_KEYWORDS([cross])
+  # Exercise the code used when cross-compiling
+  cross_compiling=yes
+  m4_default([$2], [$1])],
+  [$3], [$4])
+])
+
+
 # AT_CHECK_AU_MACRO(MACRO)
 # ------------------------
 # Create a minimalist configure.ac running the macro named
index 59e337f956179e851669efc3675ded88e10c3b66..1aa382f6b938bc0a6de0420ad63b78c3095c2e48 100644 (file)
@@ -244,8 +244,7 @@ AT_CHECK_MACRO([AC_CHECK_MEMBERS],
 
 # AC_CHECK_ALIGNOF
 # ----------------
-# Not cross-compiling.
-AT_CHECK_MACRO([AC_CHECK_ALIGNOF],
+AT_CHECK_MACRO_CROSS([AC_CHECK_ALIGNOF],
 [[AC_CHECK_ALIGNOF(char)
 AC_CHECK_ALIGNOF(charchar,
 [[#include <stddef.h>
@@ -260,29 +259,9 @@ AC_CHECK_ALIGNOF(charcharchar)
 ])])
 
 
-# AC_CHECK_ALIGNOF
-# ----------------
-AT_CHECK_MACRO([AC_CHECK_ALIGNOF],
-[[# Exercise the code used when cross-compiling
-cross_compiling=yes
-AC_CHECK_ALIGNOF(char)
-AC_CHECK_ALIGNOF(charchar,
-[[#include <stddef.h>
-#include <stdio.h>
-typedef char charchar[2];]])
-AC_CHECK_ALIGNOF(charcharchar)
-]],
-[AT_CHECK_DEFINES(
-[#define ALIGNOF_CHAR 1
-#define ALIGNOF_CHARCHAR 1
-#define ALIGNOF_CHARCHARCHAR 0
-])])
-
-
 # AC_CHECK_ALIGNOF struct
 # -----------------------
-# Not cross-compiling.
-AT_CHECK_MACRO([AC_CHECK_ALIGNOF struct],
+AT_CHECK_MACRO_CROSS([AC_CHECK_ALIGNOF struct],
 [[AC_CHECK_ALIGNOF([struct { char c; }])
 AC_CHECK_ALIGNOF([struct nosuchstruct])
 ]],
@@ -292,26 +271,9 @@ AT_CHECK([[grep "#define ALIGNOF_STRUCT_NOSUCHSTRUCT 0" config.h]],
         0, ignore)
 ])
 
-
-# AC_CHECK_ALIGNOF struct
-# -----------------------
-AT_CHECK_MACRO([AC_CHECK_ALIGNOF struct],
-[[# Exercise the code used when cross-compiling
-cross_compiling=yes
-AC_CHECK_ALIGNOF([struct { char c; }])
-AC_CHECK_ALIGNOF([struct nosuchstruct])
-]],
-[AT_CHECK([[grep "#define ALIGNOF_STRUCT___CHAR_C___ [^0]" config.h]],
-        0, ignore)
-AT_CHECK([[grep "#define ALIGNOF_STRUCT_NOSUCHSTRUCT 0" config.h]],
-        0, ignore)
-])
-
-
 # AC_CHECK_SIZEOF
 # ---------------
-# Not cross-compiling.
-AT_CHECK_MACRO([AC_CHECK_SIZEOF],
+AT_CHECK_MACRO_CROSS([AC_CHECK_SIZEOF],
 [[AC_CHECK_SIZEOF(char)
 AC_CHECK_SIZEOF(charchar,,
 [[#include <stdio.h>
@@ -325,28 +287,9 @@ AC_CHECK_SIZEOF(charcharchar)
 ])])
 
 
-# AC_CHECK_SIZEOF
-# ---------------
-AT_CHECK_MACRO([AC_CHECK_SIZEOF],
-[[# Exercise the code used when cross-compiling
-cross_compiling=yes
-AC_CHECK_SIZEOF(char)
-AC_CHECK_SIZEOF(charchar,,
-[[#include <stdio.h>
-typedef char charchar[2];]])
-AC_CHECK_SIZEOF(charcharchar)
-]],
-[AT_CHECK_DEFINES(
-[#define SIZEOF_CHAR 1
-#define SIZEOF_CHARCHAR 2
-#define SIZEOF_CHARCHARCHAR 0
-])])
-
-
-# AC_CHECK_SIZEOF structs
-# -----------------------
-# Not cross-compiling.
-AT_CHECK_MACRO([AC_CHECK_SIZEOF struct],
+# AC_CHECK_SIZEOF struct
+# ----------------------
+AT_CHECK_MACRO_CROSS([AC_CHECK_SIZEOF struct],
 [[AC_C_CONST
 AC_CHECK_SIZEOF([struct { char c; int x; }])
 AC_CHECK_SIZEOF([const struct { const char *p; int x; }])
@@ -361,25 +304,6 @@ AT_CHECK([[grep "#define SIZEOF_STRUCT_NOSUCHSTRUCT 0" config.h]],
 ])
 
 
-# AC_CHECK_SIZEOF
-# ---------------
-AT_CHECK_MACRO([AC_CHECK_SIZEOF struct],
-[[# Exercise the code used when cross-compiling
-cross_compiling=yes
-AC_C_CONST
-AC_CHECK_SIZEOF([struct { char c; int x; }])
-AC_CHECK_SIZEOF([const struct { const char *p; int x; }])
-AC_CHECK_SIZEOF([struct nosuchstruct])
-]],
-[AT_CHECK([[grep "#define SIZEOF_STRUCT___CHAR_C__INT_X___ [^0]" config.h]],
-        0, ignore)
-AT_CHECK([[grep "#define SIZEOF_CONST_STRUCT___CONST_CHAR_PP__INT_X___ [^0]" config.h]],
-        0, ignore)
-AT_CHECK([[grep "#define SIZEOF_STRUCT_NOSUCHSTRUCT 0" config.h]],
-        0, ignore)
-])
-
-
 # AC_CHECK_TYPES
 # --------------
 # Check that it performs the correct actions.