fix bashisms in configure
[m6w6/ext-psi] / m4 / psi_macro.m4
1 # psi_add_macro(macro)
2 # Add a pre-defined macro function to $PSI_MACROS.
3 psi_add_macro() {
4 cat >>$PSI_MACROS <<EOF
5 $1
6 EOF
7 }
8
9 dnl PSI_MACRO(macro, decl args, action-if-true)
10 AC_DEFUN(PSI_MACRO, [
11 AC_CHECK_DECL(PSI_VAR_NAME($1)$2, [
12 $3
13 macro_type="PSI_VAR_TYPE($1)"
14 macro_name="PSI_VAR_NAME($1)"
15 m4_case([$2],
16 [(void)], [
17 macro_decl="(void)"
18 macro_call="()"
19 ],
20 [()], [
21 macro_decl="()"
22 macro_call="()"
23 ],
24 [], [
25 macro_decl="()"
26 macro_call=""
27 ],
28 [
29 macro_decl="$2"
30 macro_call="(m4_map_args_sep([PSI_VAR_NAME(], [)], [, ], m4_bregexp($2, [(\(.*\))], [\1])))"
31 ]
32 )
33 ifelse(PSI_VAR_TYPE($1), [void], [
34 macro_body="$macro_name$macro_call;"
35 ], [
36 macro_body="return $macro_name$macro_call;"
37 ])
38 psi_add_macro "$macro_type _psi_redir_$macro_name$macro_decl { $macro_body }"
39 PSI_REDIR($macro_name, _psi_redir_$macro_name)
40 ], [], PSI_INCLUDES)
41 ])
42
43 dnl PSI_EXTVAR(type var)
44 AC_DEFUN(PSI_EXTVAR, [PSI_MACRO($1)])