#ifndef _TRACE_H_
#define _TRACE_H_
#include <stdio.h>
#include <errno.h>

#ifdef DEBUG
#define TRACE ERROR
#else
#define TRACE(fmt,arg...) ((void) 0)
#endif

#define ERROR(fmt,arg...) \
  fprintf(stderr, "%s:%s:%d: "fmt, program_invocation_short_name, __func__, __LINE__, ##arg)

#define FATAL(fmt,arg...) do { \
    ERROR(fmt, ##arg);         \
    exit(1);                   \
  } while (0)

#endif

#ifndef _TRACE_H_
#define _TRACE_H_
#include <stdio.h>
#include <errno.h>

#ifdef DEBUG
#define TRACE ERROR
#else
#define TRACE(fmt,arg...) ((void) 0)
#endif

#ifdef DEBUG
#define ERROR(fmt,arg...) \
  fprintf(stderr, "%s:%d: "fmt, __func__, __LINE__, ##arg)
#else
#define ERROR(fmt,arg...) \
  fprintf(stderr, "%s: "fmt, program_invocation_short_name, ##arg)
#endif

#define FATAL(fmt,arg...) do { \
    ERROR(fmt, ##arg);         \
    exit(1);                   \
  } while (0)

#endif

Add __func__, __LINE__ to TRACE if DEBUG, otherwise add progname.
Add __func__, __LINE__ to TRACE if DEBUG, otherwise add progname.
