mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-11-02 07:36:17 +01:00
306bd3a2bf
* configure.in (GLIB_MAJOR_VERSION): Use GLIB_DIVERT_BEFORE_HELP instead of AC_DIVERT_PUSH(),AC_DIVERT_POP. (AC_CHECK_HEADERS): Remove redundant AC_DEFINE(HAVE_...). (REALLOC_0_WORKS): Move AC_DEFINE outside AC_CACHE_VAL. (dlopen): Quote nested AC_CHECK_... calls. * acglib.m4 (GLIB_TR_SH, GLIB_TR_CPP): Utility macros copied from beta autoconf 2.50. (GLIB_DIVERT_BEFORE_HELP): New macro that works both with autoconf 2.13 and beta autoconf 2.50. (GLIB_SIZEOF, GLIB_BYTECONTENTS): Use GLIB_TR_*.
149 lines
4.3 KiB
Plaintext
149 lines
4.3 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_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
|
|
ifdef([AC_DIVERT],
|
|
[AC_DEFUN([GLIB_DIVERT_BEFORE_HELP],[AC_DIVERT([NOTICE],[$1])])],
|
|
[AC_DEFUN([GLIB_DIVERT_BEFORE_HELP],[dnl
|
|
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]")
|
|
])
|
|
|
|
dnl GLIB_SIZEOF (INCLUDES, TYPE, ALIAS [, CROSS-SIZE])
|
|
AC_DEFUN(GLIB_SIZEOF,
|
|
[pushdef([glib_Sizeof], GLIB_TR_SH([glib_cv_sizeof_$3]))dnl
|
|
AC_CACHE_CHECK([size of $2], glib_Sizeof,
|
|
[AC_TRY_RUN([#include <stdio.h>
|
|
#if STDC_HEADERS
|
|
#include <stdlib.h>
|
|
#include <stddef.h>
|
|
#endif
|
|
$1
|
|
main()
|
|
{
|
|
FILE *f=fopen("conftestval", "w");
|
|
if (!f) exit(1);
|
|
fprintf(f, "%d\n", sizeof($2));
|
|
exit(0);
|
|
}],
|
|
[glib_Sizeof=`cat conftestval` dnl''
|
|
],
|
|
[glib_Sizeof=0],
|
|
ifelse([$4], [], [], [glib_Sizeof=$4]))])
|
|
AC_DEFINE_UNQUOTED(GLIB_TR_CPP(glib_sizeof_$3), [$[]glib_Sizeof])
|
|
popdef([glib_Sizeof])dnl
|
|
])
|
|
|
|
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])
|
|
popdef([glib_ByteContents])dnl
|
|
])
|
|
|
|
dnl GLIB_SYSDEFS (INCLUDES, DEFS_LIST, OFILE [, PREFIX])
|
|
AC_DEFUN(GLIB_SYSDEFS,
|
|
[glib_sysdefso="translit($3, [-_a-zA-Z0-9 *], [-_a-zA-Z0-9])"
|
|
glib_sysdef_msg=`echo $2 | sed 's/:[[^ ]]*//g'`
|
|
if test "x`(echo '\n') 2>/dev/null`" != 'x\n'; then
|
|
glib_nl='\\n'
|
|
else
|
|
glib_nl='\n'
|
|
fi
|
|
AC_MSG_CHECKING(system definitions for $glib_sysdef_msg)
|
|
cat >confrun.c <<_______EOF
|
|
#include <stdio.h>
|
|
$1
|
|
int main (int c, char **v) {
|
|
FILE *f = fopen ("$glib_sysdefso", "a");
|
|
if (!f) return 1;
|
|
}
|
|
_______EOF
|
|
for glib_sysdef_input in $2 ; do
|
|
glib_sysdef=`echo $glib_sysdef_input | sed 's/^\([[^:]]*\):.*$/\1/'`
|
|
glib_default=`echo $glib_sysdef_input | sed 's/^[[^:]]*:\(.*\)$/\1/'`
|
|
echo "#ifdef $glib_sysdef" >>confrun.c
|
|
echo " fprintf (f, \"#define GLIB_SYSDEF_%s %s%d${glib_nl}\", \"$glib_sysdef\", \"$4\", $glib_sysdef);" >>confrun.c
|
|
echo "#else" >>confrun.c
|
|
if test $glib_sysdef != $glib_default; then
|
|
echo " fprintf (f, \"#define GLIB_SYSDEF_%s %s%d${glib_nl}\", \"$glib_sysdef\", \"$4\", $glib_default);" >>confrun.c
|
|
else
|
|
echo " fprintf (f, \"#define GLIB_SYSDEF_%s${glib_nl}\", \"$glib_sysdef\");" >>confrun.c
|
|
fi
|
|
echo "#endif" >>confrun.c
|
|
done
|
|
echo "return 0; }" >>confrun.c
|
|
AC_TRY_RUN(`cat confrun.c`, AC_MSG_RESULT(done),
|
|
[ for glib_sysdef_input in $2 ; do
|
|
glib_sysdef=`echo $glib_sysdef_input | sed 's/^\([[^:]]*\):.*$/\1/'`
|
|
glib_default=`echo $glib_sysdef_input | sed 's/^[[^:]]*:\(.*\)$/\1/'`
|
|
if test $glib_sysdef != $glib_default; then
|
|
glib_default=" $4$glib_default"
|
|
else
|
|
glib_default=
|
|
fi
|
|
echo "#define GLIB_SYSDEF_$glib_sysdef$glib_default" >>$glib_sysdefso
|
|
done
|
|
AC_MSG_RESULT(failed)])
|
|
rm -f confrun.c
|
|
])
|