blob: 7bb6d2cb1f81fd250e5539c405423d0d91ca3824 [file] [log] [blame]
dnl Configure-time switch with default
dnl
dnl Each switch defines an --enable-FOO and --disable-FOO option in
dnl the resulting configure script.
dnl
dnl Usage:
dnl smr_SWITCH(name, description, default, pos-def, neg-def)
dnl
dnl where:
dnl
dnl name name of switch; generates --enable-name & --disable-name
dnl options
dnl description help string is set to this prefixed by "enable" or
dnl "disable", whichever is the non-default value
dnl default either "on" or "off"; specifies default if neither
dnl --enable-name nor --disable-name is specified
dnl pos-def a symbol to AC_DEFINE if switch is on (optional)
dnl neg-def a symbol to AC_DEFINE if switch is off (optional)
dnl
AC_DEFUN(smr_SWITCH, [
AC_MSG_CHECKING(whether to enable $2)
AC_ARG_ENABLE(
$1,
ifelse($3, on,
[ --disable-[$1] disable [$2]],
[ --enable-[$1] enable [$2]]),
[ if test "$enableval" = yes; then
AC_MSG_RESULT(yes)
ifelse($4, , , AC_DEFINE($4))
else
AC_MSG_RESULT(no)
ifelse($5, , , AC_DEFINE($5))
fi ],
ifelse($3, on,
[ AC_MSG_RESULT(yes)
ifelse($4, , , AC_DEFINE($4)) ],
[ AC_MSG_RESULT(no)
ifelse($5, , , AC_DEFINE($5))]))])
dnl
dnl Examine size_t and define SIZE_T_IS_UINT, if size_t is an unsigned int
dnl
AC_DEFUN(OJ_SIZE_T_IS_UINT,[
AC_REQUIRE([AC_TYPE_SIZE_T])
AC_MSG_CHECKING(whether size_t is unsigned int)
ac_cv_size_t_is_uint=no
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
AC_TRY_COMPILE([#include <unistd.h>
template<class T> class foo { };
], [
foo<size_t> x;
foo<unsigned int> y;
x = y;
],ac_cv_size_t_is_uint=yes)
AC_LANG_RESTORE
AC_MSG_RESULT($ac_cv_size_t_is_uint)
test "$ac_cv_size_t_is_uint" = "yes" && AC_DEFINE(SIZE_T_IS_UINT)
])