blob: 67451f6e210a050941d75a0726c00420dbaaabe3 [file] [log] [blame]
#!/bin/bash
#
# This script generates the required files for supporting the debug
# channels used throught the code.
# The generated files are
# include/debugdefs.h
# include/debug.h
# The script must be run in the root directory of the project.
#
# Dimitrie O. Paun <dimi@cs.toronto.edu>
#
DEBUG_H="include/debug.h"
DEBUG_DEFS_H="include/debugdefs.h"
DEBUG_CHANNELS="$( tools/find_debug_channels )"
{
cat <<EOF
/* Do not modify this file -- it is automatically generated! */
#ifndef __DEBUGTOOLS_H
#include "debugtools.h"
#endif
EOF
i=0
for ch in $DEBUG_CHANNELS
do
echo "#define dbch_${ch} $i"
let i=$i+1
done
} > $DEBUG_H
# Now, on the last step, we proceed to construct
# the definitions to be used by the main function.
# These will be stored in include/debugdefs.h
{
cat <<EOF
/* Do not modify this file -- it is automatically generated! */
#ifndef __DEBUGTOOLS_H
#include "debugtools.h"
#endif
#define DEBUG_CHANNEL_COUNT $i
#ifdef DEBUG_RUNTIME
short debug_msg_enabled[][DEBUG_CLASS_COUNT] = {
EOF
for ch in $DEBUG_CHANNELS
do
echo "{1, 1, 0, 0},"
done
echo '};'
echo 'const char* debug_ch_name[] = {'
for ch in $DEBUG_CHANNELS
do
echo "\"${ch}\","
done
echo '};'
cat <<EOF
const char* debug_cl_name[] =
{ "fixme", "err", "warn", "info" };
#endif /*DEBUG_RUNTIME*/
/* end of automatically generated debug.h */
EOF
} > $DEBUG_DEFS_H