#ifdef WITH_LIBCORE
+#ifdef DEBUG_libfirm
+
#define DBG(x) _LC_DBG(x)
#define DB(x) _LC_DB(x)
+
#include <libcore/lc_debug.h>
/* use the newer debug implementation in libcore */
#define SET_LEVEL_5 LC_SET_LEVEL_5
#define SET_LEVEL_ALL LC_SET_LEVEL_ALL
-#else
+#else /* DEBUG_libfirm */
+
+#define DBG(x)
+#define DB(x)
+
+#define firm_dbg_set_mask(module, mask)
+#define firm_dbg_get_mask(module)
+#define firm_dbg_set_file(module, file)
+
+#endif /* DEBUG_libfirm */
+
+
+#else /* WITH_LIBCORE */
/* use the builtin debug implementation */
#include <stdio.h>
#define DB_RETAIL(args) _DB(args)
#ifdef DEBUG_libfirm
-
/**
* Issue a debug message.
* @param args The arguments.
#endif /* WITH_LIBCORE */
+/* some more macros to handle often used cases */
#ifdef DEBUG_libfirm
/** create a debug handle in debug mode */
#define FIRM_DBG_REGISTER(handle, name) handle = firm_dbg_register(name)
+#define DEBUG_ONLY(code) code
+#define RELEASE_ONLY(code)
#else
/** create a debug handle in release mode */
#define FIRM_DBG_REGISTER(handle, name)
+#define DEBUG_ONLY(code)
+#define RELEASE_ONLY(code) code
#endif /* DEBUG_libfirm */