1## Portability defines that help interoperate with classic and modern autoconfs 2ifdef([AC_TR_SH],[ 3define([GLIB_TR_SH],[AC_TR_SH([$1])]) 4define([GLIB_TR_CPP],[AC_TR_CPP([$1])]) 5], [ 6define([GLIB_TR_SH], 7 [patsubst(translit([[$1]], [*+], [pp]), [[^a-zA-Z0-9_]], [_])]) 8define([GLIB_TR_CPP], 9 [patsubst(translit([[$1]], 10 [*abcdefghijklmnopqrstuvwxyz], 11 [PABCDEFGHIJKLMNOPQRSTUVWXYZ]), 12 [[^A-Z0-9_]], [_])]) 13]) 14 15# GLIB_AC_DIVERT_BEFORE_HELP(STUFF) 16# --------------------------------- 17# Put STUFF early enough so that they are available for $ac_help expansion. 18# Handle both classic (<= v2.13) and modern autoconf 19AC_DEFUN([GLIB_AC_DIVERT_BEFORE_HELP], 20[ifdef([m4_divert_text], [m4_divert_text([NOTICE],[$1])], 21 [ifdef([AC_DIVERT], [AC_DIVERT([NOTICE],[$1])], 22 [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl 23$1 24AC_DIVERT_POP()])])]) 25 26dnl GLIB_IF_VAR_EQ (ENV_VAR, VALUE [, EQUALS_ACTION] [, ELSE_ACTION]) 27AC_DEFUN([GLIB_IF_VAR_EQ],[ 28 case "$[$1]" in 29 "[$2]"[)] 30 [$3] 31 ;; 32 *[)] 33 [$4] 34 ;; 35 esac 36]) 37dnl GLIB_STR_CONTAINS (SRC_STRING, SUB_STRING [, CONTAINS_ACTION] [, ELSE_ACTION]) 38AC_DEFUN([GLIB_STR_CONTAINS],[ 39 case "[$1]" in 40 *"[$2]"*[)] 41 [$3] 42 ;; 43 *[)] 44 [$4] 45 ;; 46 esac 47]) 48dnl GLIB_ADD_TO_VAR (ENV_VARIABLE, CHECK_STRING, ADD_STRING) 49AC_DEFUN([GLIB_ADD_TO_VAR],[ 50 GLIB_STR_CONTAINS($[$1], [$2], [$1]="$[$1]", [$1]="$[$1] [$3]") 51]) 52 53# GLIB_SIZEOF (INCLUDES, TYPE, ALIAS) 54# --------------------------------------------------------------- 55# The definition here is based of that of AC_CHECK_SIZEOF 56AC_DEFUN([GLIB_SIZEOF], 57[AS_LITERAL_IF([$3], [], 58 [AC_FATAL([$0: requires literal arguments])])dnl 59AC_CACHE_CHECK([size of $2], AS_TR_SH([glib_cv_sizeof_$3]), 60[ # The cast to unsigned long works around a bug in the HP C Compiler 61 # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects 62 # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. 63 # This bug is HP SR number 8606223364. 64 _AC_COMPUTE_INT([(long) (sizeof ($2))], 65 [AS_TR_SH([glib_cv_sizeof_$3])], 66 [AC_INCLUDES_DEFAULT([$1])], 67 [AC_MSG_ERROR([cannot compute sizeof ($2), 77])]) 68])dnl 69AC_DEFINE_UNQUOTED(GLIB_TR_CPP(glib_sizeof_$3), $AS_TR_SH([glib_cv_sizeof_$3]), 70 [The size of $3, as computed by sizeof.]) 71])# GLIB_SIZEOF 72 73dnl GLIB_BYTE_CONTENTS (INCLUDES, TYPE, ALIAS, N_BYTES, INITIALIZER) 74AC_DEFUN([GLIB_BYTE_CONTENTS], 75[pushdef([glib_ByteContents], GLIB_TR_SH([glib_cv_byte_contents_$3]))dnl 76AC_CACHE_CHECK([byte contents of $5], glib_ByteContents, 77[AC_TRY_RUN([#include <stdio.h> 78$1 79main() 80{ 81 static $2 tv = $5; 82 char *p = (char*) &tv; 83 int i; 84 FILE *f=fopen("conftestval", "w"); 85 if (!f) exit(1); 86 for (i = 0; i < $4; i++) 87 fprintf(f, "%s%d", i?",":"", *(p++)); 88 fprintf(f, "\n"); 89 exit(0); 90}], 91 [glib_ByteContents=`cat conftestval` dnl'' 92], 93 [glib_ByteContents=no], 94 [glib_ByteContents=no])]) 95AC_DEFINE_UNQUOTED(GLIB_TR_CPP(glib_byte_contents_$3), [$[]glib_ByteContents], 96 [Byte contents of $3]) 97popdef([glib_ByteContents])dnl 98]) 99 100# GLIB_CHECK_VALUE(SYMBOL, INCLUDES, ACTION-IF-FAIL) 101# --------------------------------------------------------------- 102AC_DEFUN([GLIB_CHECK_VALUE], 103[AC_CACHE_CHECK([value of $1], AS_TR_SH([glib_cv_value_$1]), 104 [_AC_COMPUTE_INT([$1], AS_TR_SH([glib_cv_value_$1]), [$2], [$3])]) 105])dnl 106 107# GLIB_CHECK_COMPILE_WARNINGS(PROGRAM, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) 108# --------------------------------------------------------------------- 109# Try to compile PROGRAM, check for warnings 110m4_define([GLIB_CHECK_COMPILE_WARNINGS], 111[m4_ifvaln([$1], [AC_LANG_CONFTEST([$1])])dnl 112rm -f conftest.$ac_objext 113glib_ac_compile_save="$ac_compile" 114ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext' 115AS_IF([_AC_EVAL_STDERR($ac_compile) && 116 AC_TRY_COMMAND([(if test -s conftest.err; then false ; else true; fi)])], 117 [$2], 118 [echo "$as_me: failed program was:" >&AS_MESSAGE_LOG_FD 119cat conftest.$ac_ext >&AS_MESSAGE_LOG_FD 120m4_ifvaln([$3],[$3])dnl])dnl 121ac_compile="$glib_ac_compile_save" 122rm -f conftest.$ac_objext conftest.err m4_ifval([$1], [conftest.$ac_ext])[]dnl 123])# GLIB_CHECK_COMPILE_WARNINGS 124 125# GLIB_ASSERT_SET(VARIABLE) 126# ------------------------- 127AC_DEFUN([GLIB_ASSERT_SET], 128[if test "x${$1+set}" != "xset" ; then 129 AC_MSG_ERROR($1 [must be set in cache file when cross-compiling.]) 130fi 131])dnl 132