/* Logging for debug builds; enabled by setting NBPDEBUG;
   may be included multiple times with different values of NBPDEBUG
 */

#include "Core.h"

#ifndef LOG_H
#define LOG_H

/* details determines whether to log time, file and line */
#ifdef __VA_ARGS__
void log_printf(BOOL details, const char *file, int line,
                const char *format, ...);
#else
void log_printf(const char *format, ...);
#endif

#endif /* LOG_H */

#undef LOG
#undef LOGQ

/* If NSTALL_DEBUG isn't set expect lots of warnings,
 * depending on compiler version and CFLAGS */
#ifdef NSTALL_DEBUG

#ifdef __VA_ARGS__
#define LOG(...) log_printf(TRUE, __FILE__, __LINE__, __VA_ARGS__)
#define LOGQ(...) log_printf(FALSE, __FILE__, __LINE__, __VA_ARGS__)
#else
#define LOG log_printf
#define LOGQ log_printf
#endif

#else /* ifndef NSTALL_DEBUG */

#ifdef __VA_ARGS__
#define LOG(...) (void) (__VA_ARGS__)
#define LOGQ(...) (void) (__VA_ARGS__)
#else
#define LOG (void)
#define LOGQ (void)
#endif

#endif /* NSTALL_DEBUG */

