needed include added
[libfirm] / ir / common / debug.h
index b63a261..f362f52 100644 (file)
@@ -2,26 +2,63 @@
  * Debug facility.
  * @author Michael Beck, Sebastian Hack
  * @date 15.12.2004
+ *
+ * $Id$
  */
 
 #ifndef _FIRM_DEBUG_H
 #define _FIRM_DEBUG_H
 
+#include "firm_config.h"
+
+#ifdef WITH_LIBCORE
+
+#define DBG(x) _LC_DBG(x)
+#include <libcore/lc_debug.h>
+
+/* use the newer debug implementation in libcore */
+typedef lc_dbg_module_t firm_dbg_module_t;
+
+extern firm_dbg_module_t *firm_dbg_register(const char *name);
+
+#define firm_dbg_set_mask(module, mask) lc_dbg_set_mask(module, mask)
+#define firm_dbg_get_mask(module)       lc_dbg_get_mask(module)
+#define firm_dbg_set_file(module, file) lc_dbg_set_file(module, file)
+
+#define LEVEL_DEFAULT    LC_LEVEL_DEFAULT
+#define LEVEL_1          LC_LEVEL_1
+#define LEVEL_2          LC_LEVEL_2
+#define LEVEL_3          LC_LEVEL_3
+#define LEVEL_4          LC_LEVEL_4
+#define LEVEL_5          LC_LEVEL_5
+#define SET_LEVEL_0      LC_SET_LEVEL_0
+#define SET_LEVEL_1      LC_SET_LEVEL_1
+#define SET_LEVEL_2      LC_SET_LEVEL_2
+#define SET_LEVEL_3      LC_SET_LEVEL_3
+#define SET_LEVEL_4      LC_SET_LEVEL_4
+#define SET_LEVEL_5      LC_SET_LEVEL_5
+#define SET_LEVEL_ALL    LC_SET_LEVEL_ALL
+
+#else
+/* use the builtin debug implementation */
+
 #include <stdio.h>
 
 enum firm_dbg_level_t {
-       LEVEL_DEFAULT = 0,              /**< Prints always. Use with DBG(). */
+       LEVEL_DEFAULT = 0, /**< Prints always. Use with DBG(). */
        LEVEL_1 = 1,
        LEVEL_2 = 2,
        LEVEL_3 = 4,
        LEVEL_4 = 8,
        LEVEL_5 = 16,
 
-       SET_LEVEL_1 = 1,                        /**< use with firm_dbg_set_mask(). */
+  SET_LEVEL_0 = 0,   /**< use with firm_dbg_set_mask(). */
+       SET_LEVEL_1 = 1,
        SET_LEVEL_2 = 3,
        SET_LEVEL_3 = 7,
        SET_LEVEL_4 = 15,
-       SET_LEVEL_5 = 31
+       SET_LEVEL_5 = 31,
+  SET_LEVEL_ALL = SET_LEVEL_5
 };
 
 typedef struct _firm_dbg_module_t firm_dbg_module_t;
@@ -119,5 +156,6 @@ void firm_dbg_set_file(firm_dbg_module_t *module, FILE *file);
 #define DBG(args)
 #endif
 
+#endif /* WITH_LIBCORE */
 
-#endif
+#endif /* _FIRM_DEBUG_H */