Macro LUAI_ASSERT eases turning assertions on
diff --git a/llimits.h b/llimits.h
index b86d345..48c97f9 100644
--- a/llimits.h
+++ b/llimits.h
@@ -84,7 +84,15 @@
typedef LUAI_UACINT l_uacInt;
-/* internal assertions for in-house debugging */
+/*
+** Internal assertions for in-house debugging
+*/
+#if defined LUAI_ASSERT
+#undef NDEBUG
+#include <assert.h>
+#define lua_assert(c) assert(c)
+#endif
+
#if defined(lua_assert)
#define check_exp(c,e) (lua_assert(c), (e))
/* to avoid problems with conditions too long */
diff --git a/ltests.h b/ltests.h
index 02331eb..2b4498c 100644
--- a/ltests.h
+++ b/ltests.h
@@ -20,9 +20,7 @@
/* turn on assertions */
-#undef NDEBUG
-#include <assert.h>
-#define lua_assert(c) assert(c)
+#define LUAI_ASSERT
diff --git a/makefile b/makefile
index ecc4291..7af5533 100644
--- a/makefile
+++ b/makefile
@@ -38,6 +38,7 @@
CWARNS= $(CWARNSCPP) $(CWARNSC)
# Some useful compiler options for internal tests:
+# -DLUAI_ASSERT turns on all assertions inside Lua.
# -DHARDSTACKTESTS forces a reallocation of the stack at every point where
# the stack can be reallocated.
# -DHARDMEMTESTS forces a full collection at all points where the collector