X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=util-vserver%2Fm4%2Fensc_dietlibc.m4;h=88e8e64303d889694c8298ab7b56103fecb2806b;hb=1171042cfba2870d05f6dcc771f6331fb5c9ad78;hp=071a741955c5c1341af0c571a2a455c772a3ba3c;hpb=ca9752da7535c52bc0d85553541c11f7bf1c9765;p=util-vserver.git diff --git a/util-vserver/m4/ensc_dietlibc.m4 b/util-vserver/m4/ensc_dietlibc.m4 index 071a741..88e8e64 100644 --- a/util-vserver/m4/ensc_dietlibc.m4 +++ b/util-vserver/m4/ensc_dietlibc.m4 @@ -15,32 +15,71 @@ dnl You should have received a copy of the GNU General Public License dnl along with this program; if not, write to the Free Software dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +AC_DEFUN([_ENSC_DIETLIBC_C99], +[ + AH_TEMPLATE([ENSC_DIETLIBC_C99], [Define to 1 if dietlibc supports C99]) + + AC_CACHE_CHECK([whether dietlibc supports C99], [ensc_cv_c_dietlibc_c99], + [ + old_CFLAGS=$CFLAGS + old_CC=$CC + + CFLAGS="-std=c99" + CC="${DIET:-diet} $CC" + + AC_LANG_PUSH(C) + AC_COMPILE_IFELSE([/* */],[ + AC_COMPILE_IFELSE([ + #include + #include + #if defined(inline) + # error 'inline' badly defined + #endif + volatile uint64_t a; + ], + [ensc_cv_c_dietlibc_c99=yes], + [ensc_cv_c_dietlibc_c99=no])], + [ensc_cv_c_dietlibc_c99='skipped (compiler does not support C99)']) + AC_LANG_POP + + CC=$old_CC + CFLAGS=$old_CFLAGS + ]) + + if test x"$ensc_cv_c_dietlibc_c99" = xyes; then + AC_DEFINE(ENSC_DIETLIBC_C99,1) + fi +]) + dnl Usage: ENSC_ENABLE_DIETLIBC() dnl ... automake-conditional which will be set when dnl dietlibc shall be enabled -AC_DEFUN(ENSC_ENABLE_DIETLIBC, +AC_DEFUN([ENSC_ENABLE_DIETLIBC], [ AC_MSG_CHECKING([whether to enable dietlibc]) AC_ARG_ENABLE([dietlibc], [AC_HELP_STRING([--disable-dietlibc], [do not use dietlibc (default: use dietlibc)])], - [case "$withval" in + [case "$enableval" in yes) use_dietlibc=forced;; no) use_dietlibc=forced_no;; - *) AC_MSG_ERROR(['$withval' is not a valid value for --enable-dietlibc]);; + *) AC_MSG_ERROR(['$enableval' is not a valid value for --enable-dietlibc]);; esac], [: ${DIET:=diet} which "$DIET" >/dev/null 2>/dev/null && use_dietlibc=detected || use_dietlibc=detected_no]) + ensc_have_dietlibc=no case x"$use_dietlibc" in xdetected) AM_CONDITIONAL($1, true) AC_MSG_RESULT([yes (autodetected)]) + ensc_have_dietlibc=yes ;; xforced) AM_CONDITIONAL($1, true) AC_MSG_RESULT([yes (forced)]) + ensc_have_dietlibc=yes ;; xdetected_no) AM_CONDITIONAL($1, false) @@ -54,4 +93,8 @@ AC_DEFUN(ENSC_ENABLE_DIETLIBC, AC_MSG_ERROR([internal error, use_dietlibc was "$use_dietlibc"]) ;; esac + + if test x"$ensc_have_dietlibc" != xno; then + _ENSC_DIETLIBC_C99 + fi ])