source: trunk/third/glib/acglib.m4 @ 14479

Revision 14479, 3.8 KB checked in by ghudson, 25 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r14478, which included commits to RCS files with non-trunk default branches.
Line 
1dnl GLIB_IF_VAR_EQ (ENV_VAR, VALUE [, EQUALS_ACTION] [, ELSE_ACTION])
2AC_DEFUN(GLIB_IF_VAR_EQ,[
3        case "$[$1]" in
4        "[$2]"[)]
5                [$3]
6                ;;
7        *[)]
8                [$4]
9                ;;
10        esac
11])
12dnl GLIB_STR_CONTAINS (SRC_STRING, SUB_STRING [, CONTAINS_ACTION] [, ELSE_ACTION])
13AC_DEFUN(GLIB_STR_CONTAINS,[
14        case "[$1]" in
15        *"[$2]"*[)]
16                [$3]
17                ;;
18        *[)]
19                [$4]
20                ;;
21        esac
22])
23dnl GLIB_ADD_TO_VAR (ENV_VARIABLE, CHECK_STRING, ADD_STRING)
24AC_DEFUN(GLIB_ADD_TO_VAR,[
25        GLIB_STR_CONTAINS($[$1], [$2], [$1]="$[$1]", [$1]="$[$1] [$3]")
26])
27
28dnl GLIB_SIZEOF (INCLUDES, TYPE, ALIAS [, CROSS-SIZE])
29AC_DEFUN(GLIB_SIZEOF,
30[changequote(<<, >>)dnl
31dnl The name to #define.
32define(<<AC_TYPE_NAME>>, translit(glib_sizeof_$3, [a-z *], [A-Z_P]))dnl
33dnl The cache variable name.
34define(<<AC_CV_NAME>>, translit(glib_cv_sizeof_$3, [ *], [_p]))dnl
35changequote([, ])dnl
36AC_MSG_CHECKING(size of $2)
37AC_CACHE_VAL(AC_CV_NAME,
38[AC_TRY_RUN([#include <stdio.h>
39$1
40main()
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
47AC_MSG_RESULT($AC_CV_NAME)
48AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME)
49undefine([AC_TYPE_NAME])dnl
50undefine([AC_CV_NAME])dnl
51])
52
53dnl GLIB_BYTE_CONTENTS (INCLUDES, TYPE, ALIAS, N_BYTES, INITIALIZER)
54AC_DEFUN(GLIB_BYTE_CONTENTS,
55[changequote(<<, >>)dnl
56dnl The name to #define.
57define(<<AC_TYPE_NAME>>, translit(glib_byte_contents_$3, [a-z *], [A-Z_P]))dnl
58dnl The cache variable name.
59define(<<AC_CV_NAME>>, translit(glib_cv_byte_contents_$3, [ *], [_p]))dnl
60changequote([, ])dnl
61AC_MSG_CHECKING(byte contents of $2)
62AC_CACHE_VAL(AC_CV_NAME,
63[AC_TRY_RUN([#include <stdio.h>
64$1
65main()
66{
67  static $2 tv = $5;
68  char *p = (char*) &tv;
69  int i;
70  FILE *f=fopen("conftestval", "w");
71  if (!f) exit(1);
72  for (i = 0; i < $4; i++)
73    fprintf(f, "%s%d", i?",":"", *(p++));
74  fprintf(f, "\n");
75  exit(0);
76}], AC_CV_NAME=`cat conftestval`, AC_CV_NAME=0, AC_CV_NAME=0)])dnl
77AC_MSG_RESULT($AC_CV_NAME)
78AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME)
79undefine([AC_TYPE_NAME])dnl
80undefine([AC_CV_NAME])dnl
81])
82
83dnl GLIB_SYSDEFS (INCLUDES, DEFS_LIST, OFILE [, PREFIX])
84AC_DEFUN(GLIB_SYSDEFS,
85[glib_sysdefso="translit($3, [-_a-zA-Z0-9 *], [-_a-zA-Z0-9])"
86glib_sysdef_msg=`echo $2 | sed 's/:[[^  ]]*//g'`
87if test "x`(echo '\n') 2>/dev/null`" != 'x\n'; then
88  glib_nl='\\n'
89else
90  glib_nl='\n'
91fi
92AC_MSG_CHECKING(system definitions for $glib_sysdef_msg)
93cat >confrun.c <<_______EOF
94#include <stdio.h>
95$1
96int main (int c, char **v) {
97  FILE *f = fopen ("$glib_sysdefso", "a");
98  if (!f) return 1;
99_______EOF
100for glib_sysdef_input in $2 ; do
101        glib_sysdef=`echo $glib_sysdef_input | sed 's/^\([[^:]]*\):.*$/\1/'`
102        glib_default=`echo $glib_sysdef_input | sed 's/^[[^:]]*:\(.*\)$/\1/'`
103        echo "#ifdef $glib_sysdef" >>confrun.c
104        echo "  fprintf (f, \"#define GLIB_SYSDEF_%s %s%d${glib_nl}\", \"$glib_sysdef\", \"$4\", $glib_sysdef);" >>confrun.c
105        echo "#else" >>confrun.c
106        if test $glib_sysdef != $glib_default; then
107                echo "  fprintf (f, \"#define GLIB_SYSDEF_%s %s%d${glib_nl}\", \"$glib_sysdef\", \"$4\", $glib_default);" >>confrun.c
108        else
109                echo "  fprintf (f, \"#define GLIB_SYSDEF_%s${glib_nl}\", \"$glib_sysdef\");" >>confrun.c
110        fi
111        echo "#endif" >>confrun.c
112done
113echo "return 0; }" >>confrun.c
114AC_TRY_RUN(`cat confrun.c`, AC_MSG_RESULT(done),
115[       for glib_sysdef_input in $2 ; do
116                glib_sysdef=`echo $glib_sysdef_input | sed 's/^\([[^:]]*\):.*$/\1/'`
117                glib_default=`echo $glib_sysdef_input | sed 's/^[[^:]]*:\(.*\)$/\1/'`
118                if test $glib_sysdef != $glib_default; then
119                        glib_default=" $4$glib_default"
120                else
121                        glib_default=
122                fi
123                echo "#define GLIB_SYSDEF_$glib_sysdef$glib_default" >>$glib_sysdefso
124        done
125        AC_MSG_RESULT(failed)])
126rm -f confrun.c
127])
Note: See TracBrowser for help on using the repository browser.