-# 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 $@
+
+# 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 $@
+
+# ISO5426->UTF8 conversion is generated from codetables-iso5426.xml
+iso5426.c: charconv.tcl codetables-iso5426.xml
+ $(TCLSH) $(srcdir)/charconv.tcl -p iso5426 $(srcdir)/codetables-iso5426.xml -o $@
+
+# Generate OID database from CSV
+oid_std.c $(top_srcdir)/include/yaz/oid_std.h: oidtoc.tcl oid.csv
+ $(TCLSH) $(srcdir)/oidtoc.tcl $(srcdir) $(srcdir)/oid.csv oid_std.c oid_std.h
+
+# 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)