| #!/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 | |