New debug scheme with explicit debug channels declaration.
[wine] / tools / make_debug
1 #!/bin/sh
2 #
3 # This script generates the required file for supporting the debug
4 # channels used throught the code.
5 # The generated file is
6 #   include/debugdefs.h
7 # The script must be run in the root directory of the project.
8 #
9 # Dimitrie O. Paun <dimi@cs.toronto.edu>
10 # Patrik Stridvall <ps@leissner.se>
11 #
12
13 DEBUG_CHANNELS=`tools/find_debug_channels`
14
15 exec > include/debugdefs.h
16
17 cat <<EOF
18 /* Do not modify this file -- it is automatically generated! */
19
20 #include "debugtools.h"
21
22 #define DEBUG_CLASS_COUNT __DBCL_COUNT
23
24 #ifdef DEBUG_RUNTIME
25
26 const char * const debug_cl_name[] = { "fixme", "err", "warn", "trace" };
27
28 EOF
29
30 chno=0
31 for ch in $DEBUG_CHANNELS
32 do
33     echo "int dbch_$ch = $chno;"
34     chno=`expr $chno + 1`
35 done
36 echo
37 echo "#define DEBUG_CHANNEL_COUNT $chno"
38
39 count=1
40 echo
41 echo 'char debug_msg_enabled[DEBUG_CHANNEL_COUNT][DEBUG_CLASS_COUNT] = {'
42 for ch in $DEBUG_CHANNELS
43 do
44     if [ "${count}" != "${chno}" ]; then
45         echo "{1, 1, 0, 0},"
46     else
47         echo "{1, 1, 0, 0}"
48     fi
49     count=`expr $count + 1`
50 done
51 echo '};'
52
53 count=1
54 echo
55 echo 'const char * const debug_ch_name[DEBUG_CHANNEL_COUNT] = {'
56 for ch in $DEBUG_CHANNELS
57 do
58     if [ "${count}" != "${chno}" ]; then
59         echo "\"${ch}\",";
60     else
61     echo "\"${ch}\"";
62     fi
63     count=`expr $count + 1`
64 done
65 echo '};'
66
67 cat <<EOF
68
69 #endif /*DEBUG_RUNTIME*/
70
71 /* end of automatically generated debug.h */
72 EOF