[18158] | 1 | ## Portability defines that help interoperate with classic and modern autoconfs |
---|
| 2 | ifdef([AC_TR_SH],[ |
---|
| 3 | define([GLIB_TR_SH],[AC_TR_SH([$1])]) |
---|
| 4 | define([GLIB_TR_CPP],[AC_TR_CPP([$1])]) |
---|
| 5 | ], [ |
---|
| 6 | define([GLIB_TR_SH], |
---|
| 7 | [patsubst(translit([[$1]], [*+], [pp]), [[^a-zA-Z0-9_]], [_])]) |
---|
| 8 | define([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 |
---|
| 19 | AC_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 |
---|
| 24 | AC_DIVERT_POP()])])]) |
---|
| 25 | |
---|
| 26 | dnl GLIB_IF_VAR_EQ (ENV_VAR, VALUE [, EQUALS_ACTION] [, ELSE_ACTION]) |
---|
[20720] | 27 | AC_DEFUN([GLIB_IF_VAR_EQ],[ |
---|
[18158] | 28 | case "$[$1]" in |
---|
| 29 | "[$2]"[)] |
---|
| 30 | [$3] |
---|
| 31 | ;; |
---|
| 32 | *[)] |
---|
| 33 | [$4] |
---|
| 34 | ;; |
---|
| 35 | esac |
---|
| 36 | ]) |
---|
| 37 | dnl GLIB_STR_CONTAINS (SRC_STRING, SUB_STRING [, CONTAINS_ACTION] [, ELSE_ACTION]) |
---|
[20720] | 38 | AC_DEFUN([GLIB_STR_CONTAINS],[ |
---|
[18158] | 39 | case "[$1]" in |
---|
| 40 | *"[$2]"*[)] |
---|
| 41 | [$3] |
---|
| 42 | ;; |
---|
| 43 | *[)] |
---|
| 44 | [$4] |
---|
| 45 | ;; |
---|
| 46 | esac |
---|
| 47 | ]) |
---|
| 48 | dnl GLIB_ADD_TO_VAR (ENV_VARIABLE, CHECK_STRING, ADD_STRING) |
---|
[20720] | 49 | AC_DEFUN([GLIB_ADD_TO_VAR],[ |
---|
[18158] | 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 |
---|
| 56 | AC_DEFUN([GLIB_SIZEOF], |
---|
| 57 | [AS_LITERAL_IF([$3], [], |
---|
| 58 | [AC_FATAL([$0: requires literal arguments])])dnl |
---|
| 59 | AC_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 |
---|
| 69 | AC_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 | |
---|
| 73 | dnl GLIB_BYTE_CONTENTS (INCLUDES, TYPE, ALIAS, N_BYTES, INITIALIZER) |
---|
[20720] | 74 | AC_DEFUN([GLIB_BYTE_CONTENTS], |
---|
[18158] | 75 | [pushdef([glib_ByteContents], GLIB_TR_SH([glib_cv_byte_contents_$3]))dnl |
---|
| 76 | AC_CACHE_CHECK([byte contents of $5], glib_ByteContents, |
---|
| 77 | [AC_TRY_RUN([#include <stdio.h> |
---|
| 78 | $1 |
---|
| 79 | main() |
---|
| 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])]) |
---|
| 95 | AC_DEFINE_UNQUOTED(GLIB_TR_CPP(glib_byte_contents_$3), [$[]glib_ByteContents], |
---|
| 96 | [Byte contents of $3]) |
---|
| 97 | popdef([glib_ByteContents])dnl |
---|
| 98 | ]) |
---|
| 99 | |
---|
| 100 | # GLIB_CHECK_VALUE(SYMBOL, INCLUDES, ACTION-IF-FAIL) |
---|
| 101 | # --------------------------------------------------------------- |
---|
| 102 | AC_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 |
---|
| 110 | m4_define([GLIB_CHECK_COMPILE_WARNINGS], |
---|
| 111 | [m4_ifvaln([$1], [AC_LANG_CONFTEST([$1])])dnl |
---|
| 112 | rm -f conftest.$ac_objext |
---|
| 113 | glib_ac_compile_save="$ac_compile" |
---|
| 114 | ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext' |
---|
| 115 | AS_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 |
---|
| 119 | cat conftest.$ac_ext >&AS_MESSAGE_LOG_FD |
---|
| 120 | m4_ifvaln([$3],[$3])dnl])dnl |
---|
| 121 | ac_compile="$glib_ac_compile_save" |
---|
| 122 | rm -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 | # ------------------------- |
---|
| 127 | AC_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.]) |
---|
| 130 | fi |
---|
[20720] | 131 | ])dnl |
---|