blob: 2c1d5c6bf88cba0d3c73b7049abed3ce31e6418b [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 )"
DEBUG_CLASSES="fixme err warn trace"
{
cat <<EOF
/* Do not modify this file -- it is automatically generated! */
#ifndef __WINE_DEBUGTOOLS_H
#include "debugtools.h"
#endif
EOF
echo "/* Definitions for channels identifiers */"
chno=0
for ch in $DEBUG_CHANNELS
do
echo "#define dbch_${ch} $chno"
let chno=$chno+1
done
echo "/* Definitions for classes identifiers */"
clno=0
for cl in $DEBUG_CLASSES
do
echo "#define dbcl_${cl} $clno"
let clno=$clno+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 __WINE_DEBUGTOOLS_H
#include "debugtools.h"
#endif
#define DEBUG_CHANNEL_COUNT $chno
#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 '};'
echo 'const char* debug_cl_name[] = {'
for ch in $DEBUG_CLASSES
do
echo "\"${ch}\","
done
echo '};'
cat <<EOF
#endif /*DEBUG_RUNTIME*/
/* end of automatically generated debug.h */
EOF
} > $DEBUG_DEFS_H