-# MARC8 conversion is generated from charconv.sgm
-marc8.c: charconv.sgm charconv.tcl
- cd $(srcdir); ./charconv.tcl -p marc8 -s 50 charconv.sgm -o marc8.c
+# MARC8->UTF8 conversion is generated from codetables.xml
+marc8.c: charconv.tcl codetables.xml
+ $(TCLSH) $(srcdir)/charconv.tcl -p marc8 $(srcdir)/codetables.xml -o marc8.c
+
+# UTF-8->MARC8 conversion is generated from codetables.xml
+marc8r.c: charconv.tcl codetables.xml
+ $(TCLSH) $(srcdir)/charconv.tcl -r -p marc8r $(srcdir)/codetables.xml -o marc8r.c
+
+# Generate diagnostics from CSVs
+diagbib1.c $(top_srcdir)/include/yaz/diagbib1.h: csvtobib1.tcl bib1.csv
+ $(TCLSH) $(srcdir)/csvtobib1.tcl $(srcdir)
+
+diagsrw.c $(top_srcdir)/include/yaz/diagsrw.h: csvtosrw.tcl srw.csv
+ $(TCLSH) $(srcdir)/csvtosrw.tcl $(srcdir)
+
+diagsru_update.c $(top_srcdir)/include/yaz/diagsru_update.h: csvtosru_update.tcl sru_update.csv
+ $(TCLSH) $(srcdir)/csvtosru_update.tcl $(srcdir)