Add acinclude.m4, also needed for dbind
authorMike Gorse <mgorse@boston.site>
Mon, 23 Jun 2008 22:52:42 +0000 (18:52 -0400)
committerMike Gorse <mgorse@boston.site>
Mon, 23 Jun 2008 22:52:42 +0000 (18:52 -0400)
acinclude.m4 [new file with mode: 0644]

diff --git a/acinclude.m4 b/acinclude.m4
new file mode 100644 (file)
index 0000000..6eb7916
--- /dev/null
@@ -0,0 +1,43 @@
+#######################
+# type alignment test #
+#######################
+
+AC_DEFUN([DBIND_CHECK_ALIGNOF],
+       [changequote(<<, >>)dnl
+       dnl The name to #define.
+       define(<<AC_TYPE_NAME>>,
+               translit(dbind_alignof_$1, [a-z *], [A-Z_P]))dnl
+       dnl The cache variable name.
+       define(<<AC_CV_NAME>>,
+               translit(ac_cv_alignof_$1, [ *], [_p]))dnl
+       changequote([, ])dnl
+       AC_MSG_CHECKING(alignment of $1)
+       AC_CACHE_VAL(AC_CV_NAME,
+               [AC_TRY_RUN(
+                       [ #include <stdio.h>
+                          #include <stdlib.h>
+                          #define DBUS_API_SUBJECT_TO_CHANGE
+                         #include <dbus/dbus.h>
+                       typedef struct {char s1;} dbind_struct;
+                       typedef void *dbind_pointer;
+                       struct test {char s1; $1 s2;};
+                       main()
+                       {
+                       FILE *f=fopen("conftestval", "w");
+                       if (!f) exit(1);
+                       fprintf(f, "%d\n", &(((struct test*)0)->s2));
+                       exit(0);
+                       } ],
+                       AC_CV_NAME=`cat conftestval`,
+                       AC_CV_NAME=0, AC_CV_NAME=0)
+               ])dnl
+       AC_MSG_RESULT($AC_CV_NAME)
+       if test "$AC_CV_NAME" = "0" ; then
+               AC_MSG_ERROR([Failed to find alignment. Check config.log for details.])
+       fi
+       AC_TYPE_NAME=$AC_CV_NAME
+       AC_SUBST(AC_TYPE_NAME)
+       undefine([AC_TYPE_NAME])dnl
+       undefine([AC_CV_NAME])dnl
+])
+