Enabling assert in default is better for development. This patch adds
options for configure script: --enable-assert and --disable-assert. If
a user want to disable assert, passing --disable-assert is required.

Signed-off-by: Hitoshi Mitake <mitake.hito...@lab.ntt.co.jp>
---
 configure.ac   | 11 +++++++++++
 include/util.h |  4 ++--
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/configure.ac b/configure.ac
index 6a9e552..f78aa3b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -206,6 +206,10 @@ AC_ARG_ENABLE([debug],
        [  --enable-debug          : enable debug build. ],
        [ default="no" ])
 
+AC_ARG_ENABLE([assert],
+       [  --enable-assert          : enable assert. ],,
+       [ enable_assert="yes" ],)
+
 AC_ARG_ENABLE([unittest],
        [  --enable-unittest       : enable unittest. ],
        [ default="no" ])
@@ -295,6 +299,13 @@ else
        OPT_CFLAGS="-DNDEBUG"
 fi
 
+if test "x${enable_assert}" = xyes; then
+       AC_DEFINE_UNQUOTED([ASSERT], [1], [Enabling assert])
+       PACKAGE_FEATURES="$PACKAGE_FEATURES assert"
+else
+       OPT_CFLAGS="-DNASSERT"
+fi
+
 # gdb flags
 if test "x${GCC}" = xyes; then
        GDB_FLAGS="-ggdb3"
diff --git a/include/util.h b/include/util.h
index d230f7f..9da872d 100644
--- a/include/util.h
+++ b/include/util.h
@@ -215,7 +215,7 @@ double get_time_interval(const struct timespec *start,
 #error "Don't include assert.h, use util.h for assert()"
 #endif
 
-#ifndef NDEBUG
+#ifndef NASSERT
 #define assert(expr)                                           \
 ({                                                             \
        if (!(expr)) {                                          \
@@ -225,7 +225,7 @@ double get_time_interval(const struct timespec *start,
 })
 #else
 #define assert(expr) ((void)0)
-#endif /* NDEBUG */
+#endif /* NASSERT */
 
 #define SWAP(a, b) { typeof(a) tmp; tmp = a; a = b; b = tmp; }
 
-- 
1.8.3.2

-- 
sheepdog mailing list
sheepdog@lists.wpkg.org
http://lists.wpkg.org/mailman/listinfo/sheepdog

Reply via email to