165 lines
2.5 KiB
Bash
Executable File
165 lines
2.5 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# This script scans the whole source code for symbols of the form dprintf_xxx,
|
|
# generates the necessary macro definitions and puts them into the files
|
|
# include/stddebug.h and include/debug.h . This script must be started with
|
|
# cwd = rootdir of the Wine-distribution.
|
|
#
|
|
# Michael Patra <micky@marie.physik.tu-berlin.de>
|
|
#
|
|
DEBUG_H=include/debug.h
|
|
STDDEBUG_H=include/stddebug.h
|
|
|
|
mv $DEBUG_H $DEBUG_H.old
|
|
mv $STDDEBUG_H $STDDEBUG_H.old
|
|
|
|
# Build the list of debug identifiers
|
|
grep -h dprintf_ */*.c | sed 's/.*dprintf_\([A-Za-z0-9_]*\).*/\1/g' | \
|
|
sort | uniq > temp.$$
|
|
|
|
# Build debug.h
|
|
|
|
sed '/^\/\* Do not remove this line or change anything below this line \*\//q'\
|
|
<$DEBUG_H.old >$DEBUG_H
|
|
cat <<++EOF++ >> $DEBUG_H
|
|
|
|
#ifdef DEBUG_NONE_EXT
|
|
++EOF++
|
|
|
|
cat temp.$$ | tr a-z A-Z |
|
|
{
|
|
while read x
|
|
do
|
|
echo "#undef DEBUG_$x" >> $DEBUG_H
|
|
done
|
|
}
|
|
|
|
cat <<++EOF++ >>$DEBUG_H
|
|
#endif
|
|
|
|
#ifdef DEBUG_ALL_EXT
|
|
++EOF++
|
|
|
|
cat temp.$$ | tr a-z A-Z |
|
|
{
|
|
while read x
|
|
do
|
|
echo "#define DEBUG_$x" >> $DEBUG_H
|
|
done
|
|
}
|
|
|
|
cat <<++EOF++ >>$DEBUG_H
|
|
#endif
|
|
|
|
#ifdef DEBUG_RUNTIME
|
|
#ifdef DEBUG_DEFINE_VARIABLES
|
|
short debug_msg_enabled[]={
|
|
++EOF++
|
|
|
|
cat temp.$$ | tr a-z A-Z |
|
|
{
|
|
while read x
|
|
do
|
|
cat <<++EOF++ >>$DEBUG_H
|
|
#ifdef DEBUG_$x
|
|
1,
|
|
#else
|
|
0,
|
|
#endif
|
|
++EOF++
|
|
|
|
done
|
|
}
|
|
|
|
cat <<++EOF++ >>$DEBUG_H
|
|
0
|
|
};
|
|
#else
|
|
extern short debug_msg_enabled[];
|
|
#endif
|
|
#endif
|
|
|
|
++EOF++
|
|
|
|
i=0
|
|
cat temp.$$ |
|
|
{
|
|
while read x
|
|
do
|
|
y=`echo $x | tr a-z A-Z`
|
|
cat <<++EOF++ >>$DEBUG_H
|
|
#ifdef DEBUG_RUNTIME
|
|
#define dprintf_$x if(!debug_msg_enabled[$i]) ; else fprintf
|
|
#define debugging_$x debug_msg_enabled[$i]
|
|
#else
|
|
#ifdef DEBUG_$y
|
|
#define dprintf_$x fprintf
|
|
#define debugging_$x 1
|
|
#else
|
|
#define dprintf_$x while(0) fprintf
|
|
#define debugging_$x 0
|
|
#endif
|
|
#endif
|
|
|
|
++EOF++
|
|
let i=$i+1
|
|
done
|
|
}
|
|
|
|
cat <<++EOF++ >>$DEBUG_H
|
|
|
|
#ifdef DEBUG_RUNTIME
|
|
#ifdef DEBUG_DEFINE_VARIABLES
|
|
static char *debug_msg_name[] = {
|
|
++EOF++
|
|
|
|
cat temp.$$ |
|
|
{
|
|
while read x
|
|
do
|
|
echo " \"$x\"," >> $DEBUG_H
|
|
done
|
|
}
|
|
|
|
cat <<++EOF++ >>$DEBUG_H
|
|
""
|
|
};
|
|
#endif
|
|
#endif
|
|
++EOF++
|
|
|
|
# Build stddebug.h
|
|
|
|
sed '/^\/\* Do not remove this line or change anything below this line \*\//q'\
|
|
<$STDDEBUG_H.old >$STDDEBUG_H
|
|
|
|
cat <<++EOF++ >>$STDDEBUG_H
|
|
|
|
#ifdef DEBUG_NONE
|
|
++EOF++
|
|
|
|
cat temp.$$ | tr a-z A-Z |
|
|
{
|
|
while read x
|
|
do
|
|
echo "#undef DEBUG_$x" >> $STDDEBUG_H
|
|
done
|
|
}
|
|
|
|
cat <<++EOF++ >>$STDDEBUG_H
|
|
#endif
|
|
|
|
#ifdef DEBUG_ALL
|
|
++EOF++
|
|
|
|
cat temp.$$ | tr a-z A-Z |
|
|
{
|
|
while read x
|
|
do
|
|
echo "#define DEBUG_$x" >> $STDDEBUG_H
|
|
done
|
|
}
|
|
echo "#endif" >> $STDDEBUG_H
|
|
|
|
rm temp.$$ $DEBUG_H.old $STDDEBUG_H.old
|