2006-03-17 Stepan Kasal
* 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.
Index: tests/local.at
===================================================================
RCS file: /cvsroot/autoconf/autoconf/tests/local.at,v
retrieving revision 1.25
diff -u -r1.25 local.at
--- tests/local.at 6 Jan 2006 00:11:16 -0000 1.25
+++ tests/local.at 17 Mar 2006 17:51:05 -0000
@@ -425,6 +425,22 @@
])# 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: tests/semantics.at
===================================================================
RCS file: /cvsroot/autoconf/autoconf/tests/semantics.at,v
retrieving revision 1.54
diff -u -r1.54 semantics.at
--- tests/semantics.at 11 Mar 2006 13:22:42 -0000 1.54
+++ tests/semantics.at 17 Mar 2006 17:51:05 -0000
@@ -244,8 +244,7 @@
# 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
@@ -260,29 +259,9 @@
])])
-# 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
-#include
-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 @@
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
@@ -325,28 +287,9 @@
])])
-# 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
-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 @@
])
-# 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.