## Portability defines that help interoperate with classic and modern autoconfs ifdef([AC_TR_SH],[ define([GLIB_TR_SH],[AC_TR_SH([$1])]) define([GLIB_TR_CPP],[AC_TR_CPP([$1])]) ], [ define([GLIB_TR_SH], [patsubst(translit([[$1]], [*+], [pp]), [[^a-zA-Z0-9_]], [_])]) define([GLIB_TR_CPP], [patsubst(translit([[$1]], [*abcdefghijklmnopqrstuvwxyz], [PABCDEFGHIJKLMNOPQRSTUVWXYZ]), [[^A-Z0-9_]], [_])]) ]) # GLIB_AC_DIVERT_BEFORE_HELP(STUFF) # --------------------------------- # Put STUFF early enough so that they are available for $ac_help expansion. # Handle both classic (<= v2.13) and modern autoconf AC_DEFUN([GLIB_AC_DIVERT_BEFORE_HELP], [ifdef([m4_divert_text], [m4_divert_text([NOTICE],[$1])], [ifdef([AC_DIVERT], [AC_DIVERT([NOTICE],[$1])], [AC_DIVERT_PUSH(AC_DIVERSION_NOTICE)dnl $1 AC_DIVERT_POP()])])]) dnl GLIB_IF_VAR_EQ (ENV_VAR, VALUE [, EQUALS_ACTION] [, ELSE_ACTION]) AC_DEFUN([GLIB_IF_VAR_EQ],[ case "$[$1]" in "[$2]"[)] [$3] ;; *[)] [$4] ;; esac ]) dnl GLIB_STR_CONTAINS (SRC_STRING, SUB_STRING [, CONTAINS_ACTION] [, ELSE_ACTION]) AC_DEFUN([GLIB_STR_CONTAINS],[ case "[$1]" in *"[$2]"*[)] [$3] ;; *[)] [$4] ;; esac ]) dnl GLIB_ADD_TO_VAR (ENV_VARIABLE, CHECK_STRING, ADD_STRING) AC_DEFUN([GLIB_ADD_TO_VAR],[ GLIB_STR_CONTAINS($[$1], [$2], [$1]="$[$1]", [$1]="$[$1] [$3]") ]) # GLIB_SIZEOF (INCLUDES, TYPE, ALIAS) # --------------------------------------------------------------- # The definition here is based of that of AC_CHECK_SIZEOF AC_DEFUN([GLIB_SIZEOF], [AS_LITERAL_IF([$3], [], [AC_FATAL([$0: requires literal arguments])])dnl AC_CACHE_CHECK([size of $2], AS_TR_SH([glib_cv_sizeof_$3]), [ # The cast to unsigned long works around a bug in the HP C Compiler # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. # This bug is HP SR number 8606223364. _AC_COMPUTE_INT([(long) (sizeof ($2))], [AS_TR_SH([glib_cv_sizeof_$3])], [AC_INCLUDES_DEFAULT([$1])], [AC_MSG_ERROR([cannot compute sizeof ($2), 77])]) ])dnl AC_DEFINE_UNQUOTED(GLIB_TR_CPP(glib_sizeof_$3), $AS_TR_SH([glib_cv_sizeof_$3]), [The size of $3, as computed by sizeof.]) ])# GLIB_SIZEOF dnl GLIB_BYTE_CONTENTS (INCLUDES, TYPE, ALIAS, N_BYTES, INITIALIZER) AC_DEFUN([GLIB_BYTE_CONTENTS], [pushdef([glib_ByteContents], GLIB_TR_SH([glib_cv_byte_contents_$3]))dnl AC_CACHE_CHECK([byte contents of $5], glib_ByteContents, [AC_TRY_RUN([#include $1 main() { static $2 tv = $5; char *p = (char*) &tv; int i; FILE *f=fopen("conftestval", "w"); if (!f) exit(1); for (i = 0; i < $4; i++) fprintf(f, "%s%d", i?",":"", *(p++)); fprintf(f, "\n"); exit(0); }], [glib_ByteContents=`cat conftestval` dnl'' ], [glib_ByteContents=no], [glib_ByteContents=no])]) AC_DEFINE_UNQUOTED(GLIB_TR_CPP(glib_byte_contents_$3), [$[]glib_ByteContents], [Byte contents of $3]) popdef([glib_ByteContents])dnl ]) # GLIB_CHECK_VALUE(SYMBOL, INCLUDES, ACTION-IF-FAIL) # --------------------------------------------------------------- AC_DEFUN([GLIB_CHECK_VALUE], [AC_CACHE_CHECK([value of $1], AS_TR_SH([glib_cv_value_$1]), [_AC_COMPUTE_INT([$1], AS_TR_SH([glib_cv_value_$1]), [$2], [$3])]) ])dnl # GLIB_CHECK_COMPILE_WARNINGS(PROGRAM, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) # --------------------------------------------------------------------- # Try to compile PROGRAM, check for warnings m4_define([GLIB_CHECK_COMPILE_WARNINGS], [m4_ifvaln([$1], [AC_LANG_CONFTEST([$1])])dnl rm -f conftest.$ac_objext glib_ac_compile_save="$ac_compile" ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext' AS_IF([_AC_EVAL_STDERR($ac_compile) && AC_TRY_COMMAND([(if test -s conftest.err; then false ; else true; fi)])], [$2], [echo "$as_me: failed program was:" >&AS_MESSAGE_LOG_FD cat conftest.$ac_ext >&AS_MESSAGE_LOG_FD m4_ifvaln([$3],[$3])dnl]) ac_compile="$glib_ac_compile_save" rm -f conftest.$ac_objext conftest.err m4_ifval([$1], [conftest.$ac_ext])[]dnl ])# GLIB_CHECK_COMPILE_WARNINGS # GLIB_ASSERT_SET(VARIABLE) # ------------------------- AC_DEFUN([GLIB_ASSERT_SET], [if test "x${$1+set}" != "xset" ; then AC_MSG_ERROR($1 [must be set in cache file when cross-compiling.]) fi ])dnl