#!/usr/bin/perl -w use strict qw(vars); print <) { next unless m/\bDPRINTF1?\((\w+),(\w+),/; $count{$1}{$2}++; } foreach $ma (sort keys %count) { $mar= $count{$ma}; $decl= "unsigned long dflags_$ma"; $decls.= "extern $decl;\n"; our $ddf= "DEFDFLAGS_${ma}"; $defs .= ("\n". "#ifndef $ddf\n". "# define $ddf ~0UL\n". "#endif\n"); $defs .= "static const DebugSelectorKindInfo dsiks_${ma}[]= {\n"; $shift= 0; foreach $mk (sort { $mar->{$a} <=> $mar->{$b} or $a cmp $b } keys %$mar) { next unless length $mk; our $db= "DBIT_${ma}_${mk}"; our $v= 1<<$shift; $shift++; $defs.= sprintf " { %-20s %-25s },\n", "\"$mk\",", $db; printf "#define %-30s %0#10x /* %3d */\n", $db, $v, $mar->{$mk}; } $defs.= " { 0 }\n". "};\n"; $defs.= "$decl;\n"; $defs.= "static unsigned long dflags_userset_$ma;\n"; } $defs.= <