AC_CACHE_CHECK([whether dietlibc supports C99], [ensc_cv_c_dietlibc_c99],
[
- old_CFLAGS=$CFLAGS
- old_CC=$CC
+ _ensc_dietlibc_c99_old_CFLAGS=$CFLAGS
+ _ensc_dietlibc_c99_old_CC=$CC
CFLAGS="-std=c99"
CC="${DIET:-diet} $CC"
[ensc_cv_c_dietlibc_c99='skipped (compiler does not support C99)'])
AC_LANG_POP
- CC=$old_CC
- CFLAGS=$old_CFLAGS
+ CC=$_ensc_dietlibc_c99_old_CC
+ CFLAGS=$_ensc_dietlibc_c99_old_CFLAGS
])
if test x"$ensc_cv_c_dietlibc_c99" = xyes; then
fi
])
-dnl Usage: ENSC_ENABLE_DIETLIBC(<conditional>)
+dnl Usage: ENSC_ENABLE_DIETLIBC(<conditional>[,<min-version>])
dnl <conditional> ... automake-conditional which will be set when
dnl dietlibc shall be enabled
[: ${DIET:=diet}
which "$DIET" >/dev/null 2>/dev/null && use_dietlibc=detected || use_dietlibc=detected_no])
+ if test "$use_dietlibc" = detected -a '$2'; then
+ _dietlibc_ver=$(${DIET:-diet} -v 2>&1 | sed '1p;d')
+ _dietlibc_ver=${_dietlibc_ver##*dietlibc-}
+ _dietlibc_ver_maj=${_dietlibc_ver%%.*}
+ _dietlibc_ver_min=${_dietlibc_ver##*.}
+ _dietlibc_cmp=$2
+ _dietlibc_cmp_maj=${_dietlibc_cmp%%.*}
+ _dietlibc_cmp_min=${_dietlibc_cmp%%.*}
+
+ let _dietlibc_ver=_dietlibc_ver_maj*1000+_dietlibc_ver_min 2>/dev/null || _dietlibc_ver=0
+ let _dietlibc_cmp=_dietlibc_cmp_maj*1000+_dietlibc_cmp_min
+
+ test $_dietlibc_ver -ge $_dietlibc_cmp || use_dietlibc=detected_old
+ fi
+
ensc_have_dietlibc=no
case x"$use_dietlibc" in
xdetected)
AM_CONDITIONAL($1, true)
AC_MSG_RESULT([yes (autodetected)])
- ensc_have_dietlibc=1
+ ensc_have_dietlibc=yes
;;
xforced)
AM_CONDITIONAL($1, true)
AC_MSG_RESULT([yes (forced)])
- ensc_have_dietlibc=1
+ ensc_have_dietlibc=yes
;;
xdetected_no)
AM_CONDITIONAL($1, false)
AC_MSG_RESULT([no (detected)])
;;
+ xdetected_old)
+ AM_CONDITIONAL($1, false)
+ AC_MSG_RESULT([no (too old; $2 required)])
+ ;;
xforced_no)
AM_CONDITIONAL($1, false)
AC_MSG_RESULT([no (forced)])