libcody: fix --enable-checking=... [PR 98311]
authorNathan Sidwell <nathan@acm.org>
Wed, 16 Dec 2020 14:20:20 +0000 (06:20 -0800)
committerNathan Sidwell <nathan@acm.org>
Wed, 16 Dec 2020 14:20:20 +0000 (06:20 -0800)
The -enable-checking configure code in libcody didn't play well with
us.  This just uses libcpp's configurey for that piece.

libcody/
* configure.ac: Use libcpp's enable-checking code.
* configure: Rebuilt.

libcody/configure
libcody/configure.ac

index 4cc03dcaa3aa03f72f406a634b416794e6a6fd7e..76ff932d61b964f66fbcb89adb5fad1b8342e6c1 100755 (executable)
@@ -1285,7 +1285,11 @@ Optional Features:
   --enable-maintainer-mode
                           enable maintainer mode. Add rules to rebuild
                           configurey bits
-  --enable-checking       enable run-time checking
+  --enable-checking[=LIST]
+                          enable expensive run-time checks. With LIST, enable
+                          only specific categories of checks. Categories are:
+                          yes,no,all,none,release. Flags are: misc,valgrind or
+                          other strings
   --enable-exceptions     enable exceptions & rtti
 
 Optional Packages:
@@ -2708,30 +2712,45 @@ _ACEOF
 
 # Check whether --enable-checking was given.
 if test "${enable_checking+set}" = set; then :
-  enableval=$enable_checking;
+  enableval=$enable_checking; ac_checking_flags="${enableval}"
 else
-  enable_checking="yes"
+
+# Determine the default checks.
+if test x$is_release = x ; then
+  ac_checking_flags=yes
+else
+  ac_checking_flags=release
+fi
 fi
 
-case $enable_checking in #(
-  yes|all|yes,*) :
-    nms_checking=yes ;; #(
-  no|none|release) :
-    nms_checking= ;; #(
-  *) :
-    as_fn_error $? "unknown check \"$enable_checking\"" "$LINENO" 5 ;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking checking" >&5
-$as_echo_n "checking checking... " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ${nms_checking:-no}" >&5
-$as_echo "${nms_checking:-no}" >&6; }
-if test "$nms_checking" = yes ; then
+IFS="${IFS=    }"; ac_save_IFS="$IFS"; IFS="$IFS,"
+for check in release $ac_checking_flags
+do
+       case $check in
+       # these set all the flags to specific states
+       yes|all) ac_checking=1 ; ac_assert_checking=1 ; ac_valgrind_checking= ;;
+       no|none) ac_checking= ; ac_assert_checking= ; ac_valgrind_checking= ;;
+       release) ac_checking= ; ac_assert_checking=1 ; ac_valgrind_checking= ;;
+       # these enable particular checks
+       assert) ac_assert_checking=1 ;;
+       misc) ac_checking=1 ;;
+       valgrind) ac_valgrind_checking=1 ;;
+       # accept
+       *) ;;
+       esac
+done
+IFS="$ac_save_IFS"
 
-cat >>confdefs.h <<_ACEOF
-#define NMS_CHECKING 0${nms_checking:+1}
-_ACEOF
+if test x$ac_checking != x ; then
+
+$as_echo "#define NMS_CHECKING 1" >>confdefs.h
+
+else
+  $as_echo "#define NMS_CHECKING 0" >>confdefs.h
 
 fi
+
+
 # Check whether --enable-exceptions was given.
 if test "${enable_exceptions+set}" = set; then :
   enableval=$enable_exceptions;
index 31f041e6679fabfd3752c8c55c275660a643a858..c3db5534f1f1aa35938989d302386cfe0631a3aa 100644 (file)
@@ -24,7 +24,47 @@ NMS_LINK_OPT([-Wl,--no-undefined])
 NMS_CONFIG_FILES([gdbinit dox.cfg])
 
 NMS_BUGURL
-NMS_ENABLE_CHECKING
+dnl NMS_ENABLE_CHECKING
+dnl cloned from ../libcpp/configure.ac
+AC_ARG_ENABLE(checking,
+[AS_HELP_STRING([[--enable-checking[=LIST]]],
+               [enable expensive run-time checks.  With LIST,
+                enable only specific categories of checks.
+                Categories are: yes,no,all,none,release.
+                Flags are: misc,valgrind or other strings])],
+[ac_checking_flags="${enableval}"],[
+# Determine the default checks.
+if test x$is_release = x ; then
+  ac_checking_flags=yes
+else
+  ac_checking_flags=release
+fi])
+IFS="${IFS=    }"; ac_save_IFS="$IFS"; IFS="$IFS,"
+for check in release $ac_checking_flags
+do
+       case $check in
+       # these set all the flags to specific states
+       yes|all) ac_checking=1 ; ac_assert_checking=1 ; ac_valgrind_checking= ;;
+       no|none) ac_checking= ; ac_assert_checking= ; ac_valgrind_checking= ;;
+       release) ac_checking= ; ac_assert_checking=1 ; ac_valgrind_checking= ;;
+       # these enable particular checks
+       assert) ac_assert_checking=1 ;;
+       misc) ac_checking=1 ;;
+       valgrind) ac_valgrind_checking=1 ;;
+       # accept
+       *) ;;
+       esac
+done
+IFS="$ac_save_IFS"
+                
+if test x$ac_checking != x ; then
+  AC_DEFINE(NMS_CHECKING, 1,
+[Define to 1 if you want more run-time sanity checks.])
+else
+  AC_DEFINE(NMS_CHECKING, 0)
+fi
+
+
 NMS_ENABLE_EXCEPTIONS
 
 AC_CONFIG_HEADERS([config.h])