summaryrefslogtreecommitdiffstats
path: root/c/src/aclocal/bspopts.m4
blob: 5526ae9077dba34bce8b61e596f1f96a69201f52 (plain) (blame)
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
dnl $Id$
dnl

dnl RTEMS_BSPOPTS_* - some autoconf voodoo to handle default values and
dnl help-strings for per-BSP-environment variables.

dnl To be used in bsp-configure scripts


dnl Example:
dnl
dnl RTEMS_BSPOPTS_SET([foo],[bar],[0])
dnl RTEMS_BSPOPTS_SET([foo],[baz*],[hello])
dnl RTEMS_BSPOPTS_SET([foo],[*],[])
dnl RTEMS_BSPOPTS_HELP([foo],[env. variable foo])
dnl -> Add "0" as default value of variable "foo" for BSP "bar"
dnl -> Add "hello" as default value of variable "foo" for all BSPs starting
dnl with "baz" in their name.
dnl -> Undefine foo as default clause for all BSP's.
dnl
dnl All this basically expands to a /bin/shell "case"-statement with
dnl accompanying autoconf magic to propagate VAR to bspopts.h.


dnl RTEMS_BSPOPTS_HELP(VAR,HELP-STRING)
dnl Set up printing the HELP-STRING for bspopts.h's variable VAR and add
dnl appropriate /bin/sh-magic to "configure" to have VAR set up.

AC_DEFUN([RTEMS_BSPOPTS_HELP],[
RTEMS_ARG_VAR([$1],[$2])
m4_ifdef([_$1],[
case "${RTEMS_BSP}" in
_$1[]dnl
esac],[])
if test -n "[$]{$1}"; then[]dnl
AC_DEFINE_UNQUOTED([$1],
  [[$]$1],
  [$2])dnl
fi
])

dnl RTEMS_BSPOPTS_SET(VAR,BSP,DEFAULT)
dnl Set up a value DEFAULT to be used as default value for variable VAR for
dnl BSP in RTEMS_BSPOPTS_HELP.

dnl MUST be used in front of exactly _one_ corresponding RTEMS_BSPOPTS_HELP

AC_DEFUN([RTEMS_BSPOPTS_SET],[dnl
m4_append([_$1],
[$2 )
  $1=[$]{$1-$3} ;;
])
])


dnl RTEMS_ARG_VAR(VAR,HELP-STRING)
dnl An internal macros to have RTEMS_BSPOPTS_HELP's help string pretty
dnl printed with configure --help.
dnl Stripped down version of autoconf-2.52's AC_ARG_VAR.

AC_DEFUN([RTEMS_ARG_VAR],
[
m4_expand_once([m4_divert_once([HELP_VAR],
[AS_HELP_STRING([$1],[$2],              )])],
      [$0($1)])dnl
])

AC_DEFUN(
[RTEMS_BSPOPTS_SET_DATA_CACHE_ENABLED],
[RTEMS_BSPOPTS_SET([BSP_DATA_CACHE_ENABLED],[$1],[$2])])

AC_DEFUN(
[RTEMS_BSPOPTS_HELP_DATA_CACHE_ENABLED],
[RTEMS_BSPOPTS_HELP([BSP_DATA_CACHE_ENABLED],
[enables the data cache, if defined to a value other than zero])])

AC_DEFUN(
[RTEMS_BSPOPTS_SET_INSTRUCTION_CACHE_ENABLED],
[RTEMS_BSPOPTS_SET([BSP_INSTRUCTION_CACHE_ENABLED],[$1],[$2])])

AC_DEFUN(
[RTEMS_BSPOPTS_HELP_INSTRUCTION_CACHE_ENABLED],
[RTEMS_BSPOPTS_HELP([BSP_INSTRUCTION_CACHE_ENABLED],
[enables the instruction cache, if defined to a value other than zero])])