summaryrefslogblamecommitdiffstats
path: root/aclocal/bspopts.m4
blob: e7ba131ae5b076b53f0d0ab08c1b86ad64b1fc42 (plain) (tree)

































































                                                                           
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 use 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],
[AC_HELP_STRING([$1], [$2], [              ])])],
      [$0($1)])dnl
])