acglib.m4 revision 90f6cc9bf2453e5da385b2d547704091dd8afbb8
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 $5) 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=no, AC_CV_NAME=no)])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]) 128