{ if(begin != 1) { if($1 != "") flags[$1] = "on" if($2 != "") flags[$2] = "on" if($3 != "") flags[$3] = "on" if($4 != "") flags[$4] = "on" if($5 != "") flags[$5] = "on" skip = 0 begin = 1 next } } /#ifdef/||/#elseif/ { if (flags[$2] != "") skip = -1; else skip = 1 print $0 next } /#ifndef/ { if (flags[$2] != "") skip = 1; else skip = -1 print $0 next } /#else/ { skip = -skip; print $0; next} /#endif/ { skip = 0 ; print $0; next} { if(skip > 0) { if(substr($0,1,1) != "#") print "#" $0; else print $0; next }} { if(skip < 0) { if(substr($0,1,1) == "#") print substr($0,2,length($0)-1) else print $0 next }} { print $0 }