dd1406466247c2e3526551654a2ea5b289afad25
[platform/upstream/glib.git] / acglib.m4
1 dnl GLIB_IF_VAR_EQ (ENV_VAR, VALUE [, EQUALS_ACTION] [, ELSE_ACTION])
2 AC_DEFUN(GLIB_IF_VAR_EQ,[
3         case "$[$1]" in
4         "[$2]"[)]
5                 [$3]
6                 ;;
7         *[)]
8                 [$4]
9                 ;;
10         esac
11 ])
12 dnl GLIB_STR_CONTAINS (SRC_STRING, SUB_STRING [, CONTAINS_ACTION] [, ELSE_ACTION])
13 AC_DEFUN(GLIB_STR_CONTAINS,[
14         case "[$1]" in
15         *"[$2]"*[)]
16                 [$3]
17                 ;;
18         *[)]
19                 [$4]
20                 ;;
21         esac
22 ])
23 dnl GLIB_ADD_TO_VAR (ENV_VARIABLE, CHECK_STRING, ADD_STRING)
24 AC_DEFUN(GLIB_ADD_TO_VAR,[
25         GLIB_STR_CONTAINS($[$1], [$2], [$1]="$[$1]", [$1]="$[$1] [$3]")
26 ])
27
28 dnl GLIB_SIZEOF (INCLUDES, TYPE, ALIAS [, CROSS-SIZE])
29 AC_DEFUN(GLIB_SIZEOF,
30 [changequote(<<, >>)dnl
31 dnl The name to #define.
32 define(<<AC_TYPE_NAME>>, translit(glib_sizeof_$3, [a-z *], [A-Z_P]))dnl
33 dnl The cache variable name.
34 define(<<AC_CV_NAME>>, translit(glib_cv_sizeof_$3, [ *], [_p]))dnl
35 changequote([, ])dnl
36 AC_MSG_CHECKING(size of $2)
37 AC_CACHE_VAL(AC_CV_NAME,
38 [AC_TRY_RUN([#include <stdio.h>
39 $1
40 main()
41 {
42   FILE *f=fopen("conftestval", "w");
43   if (!f) exit(1);
44   fprintf(f, "%d\n", sizeof($2));
45   exit(0);
46 }], AC_CV_NAME=`cat conftestval`, AC_CV_NAME=0, ifelse([$4], , , AC_CV_NAME=$4))])dnl
47 AC_MSG_RESULT($AC_CV_NAME)
48 AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME)
49 undefine([AC_TYPE_NAME])dnl
50 undefine([AC_CV_NAME])dnl
51 ])
52
53 dnl GLIB_BYTE_CONTENTS (INCLUDES, TYPE, ALIAS, N_BYTES, INITIALIZER)
54 AC_DEFUN(GLIB_BYTE_CONTENTS,
55 [changequote(<<, >>)dnl
56 dnl The name to #define.
57 define(<<AC_TYPE_NAME>>, translit(glib_byte_contents_$3, [a-z *], [A-Z_P]))dnl
58 dnl The cache variable name.
59 define(<<AC_CV_NAME>>, translit(glib_cv_byte_contents_$3, [ *], [_p]))dnl
60 changequote([, ])dnl
61 AC_MSG_CHECKING(byte contents of $2)
62 AC_CACHE_VAL(AC_CV_NAME,
63 [AC_TRY_RUN([#include <stdio.h>
64 $1
65 main()
66 {
67   static $2 tv = $5;
68   char *p = (char*) &tv;
69   int i;
70   FILE *f=fopen("conftestval", "w");
71   for (i = 0; i < $4; i++)
72     fprintf(f, "%s%d", i?",":"", *(p++));
73   fprintf(f, "\n");
74   exit(0);
75 }], AC_CV_NAME=`cat conftestval`, AC_CV_NAME=0, AC_CV_NAME=0)])dnl
76 AC_MSG_RESULT($AC_CV_NAME)
77 AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME)
78 undefine([AC_TYPE_NAME])dnl
79 undefine([AC_CV_NAME])dnl
80 ])