mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-11-14 13:26:16 +01:00
c24f6e5527
Quoting its NEWS file: "The m4sh macros AS_IF and AS_CASE can now be used in shell lists. The responsibility for supplying a trailing newline now belongs to the call site, but since most users did not add dnl, this generally results in fewer empty lines in configure." http://bugzilla.gnome.org/show_bug.cgi?id=591840
132 lines
4.4 KiB
Plaintext
132 lines
4.4 KiB
Plaintext
## 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 <stdio.h>
|
|
$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
|