summaryrefslogtreecommitdiffstats
path: root/acinclude.m4
blob: c14986fa899f61f3e69da6c922626b84497d01c8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
dnl CHECK_ENUM and GET_DEFINE autoconf macros are
dnl Copyright 2004,2006 Bernhard R. Link
dnl and hereby in the public domain
# Check for an enum, which seem to be forgotten in autoconf,
# as this can neighter be checked with cpp, nor is it a symbol
m4_define([CHECK_ENUM],
[AS_VAR_PUSHDEF([check_Enum], [rr_cv_check_enum_$1])dnl
AC_CACHE_CHECK([for $1 in $2], check_Enum,
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT([$5])
@%:@include <$2>],
[ if( $1 == 0 ) 
	return 0;
])],
		[AS_VAR_SET(check_Enum, yes)],
		[AS_VAR_SET(check_Enum, no)])])
AS_IF([test AS_VAR_GET(check_Enum) = yes], [$3], [$4])[]dnl
AS_VAR_POPDEF([check_Enum])dnl
])dnl
# extract the value of a #define from a header
m4_define([GET_DEFINE],
[AC_LANG_PREPROC_REQUIRE()dnl
AS_VAR_PUSHDEF(get_Define, [rr_cv_get_define_$1])dnl
AC_CACHE_CHECK([for $1], get_Define,
[dnl
	m4_ifvaln([$2],[dnl
		echo "#include <$2>" > conftest.$ac_ext
		echo "$1" >> conftest.$ac_ext
	],[dnl
		echo "$1" > conftest.$ac_ext
	])
	if _AC_EVAL_STDERR([$ac_cpp conftest.$ac_ext >conftest.out]) >/dev/null; then
		if test -s conftest.err; then
			AS_VAR_SET(get_Define, $1)
		else
			AS_VAR_SET(get_Define, "$(tail -1 conftest.out)")
		fi
	else
		AS_VAR_SET(get_Define, $1)
	fi
	rm -f conftest.err conftest.out conftest.$ac_ext
])
TMP_GET_DEFINE=AS_VAR_GET(get_Define)
TMP_GET_DEFINE=${TMP_GET_DEFINE% }
TMP_GET_DEFINE=${TMP_GET_DEFINE% }
AS_IF([test "$TMP_GET_DEFINE" = $1], [$3], [$1="$TMP_GET_DEFINE"])[]dnl
AS_VAR_POPDEF([get_Define])dnl
])dnl GET_DEFINE