Newer bison includes the defines file in the parser so the name must match.

Index: src/xmllang/Makefile
--- src/xmllang/Makefile.orig
+++ src/xmllang/Makefile
@@ -15,12 +15,8 @@ all: xmllang$(LIBEXT)
 xmllang$(LIBEXT): $(OBJ)
 	$(LINKLIB)
 
-xml_y.tab.cpp: parser.y
-	$(YACC) $(YFLAGS) $$flags -pyyxml -d parser.y -o $@
-
-xml_y.tab.h: xml_y.tab.cpp
-	if [ -e xml_y.tab.hpp ] ; then mv xml_y.tab.hpp $@ ; else \
-        mv xml_y.tab.cpp.h $@ ; fi
+xml_y.tab.cpp xml_y.tab.h: parser.y
+	$(YACC) $(YFLAGS) $$flags -pyyxml --defines=xml_y.tab.h parser.y -o $@
 
 xml_lex.yy.cpp: scanner.l
 	$(LEX) -Pyyxml -o$@ scanner.l
