+ $(CPP) $(COPT) $<
+
+{$(TESTDIR)}.c{$(OBJDIR)}.obj:
+ $(CPP) $(COPT) $<
+
+# ASN-generated files
+
+!if $(HAVE_TCL)
+
+$(Z3950V3_FILES): $(SRCDIR)\z3950v3.asn
+ @cd $(SRCDIR)
+ $(TCL) $(TCLOPT) -d z.tcl z3950v3.asn
+ @cd $(WINDIR)
+
+$(DATETIME_FILES): $(SRCDIR)\datetime.asn
+ @cd $(SRCDIR)
+ $(TCL) $(TCLOPT) -d z.tcl datetime.asn
+ @cd $(WINDIR)
+
+$(UNIVRES_FILES): $(SRCDIR)\univres.asn
+ @cd $(SRCDIR)
+ $(TCL) $(TCLOPT) -d z.tcl univres.asn
+ @cd $(WINDIR)
+
+$(ESUPDATE_FILES): $(SRCDIR)\esupdate.asn
+ @cd $(SRCDIR)
+ $(TCL) $(TCLOPT) -d z.tcl esupdate.asn
+ @cd $(WINDIR)
+
+$(ESADMIN_FILES): $(SRCDIR)\esadmin.asn
+ @cd $(SRCDIR)
+ $(TCL) $(TCLOPT) -d z.tcl esadmin.asn
+ @cd $(WINDIR)
+
+$(CHARNEG_FILES): $(SRCDIR)\charneg-3.asn
+ @cd $(SRCDIR)
+ $(TCL) $(TCLOPT) -d z.tcl charneg-3.asn
+ @cd $(WINDIR)
+
+$(MTERM2_FILES): $(SRCDIR)\mterm2.asn
+ @cd $(SRCDIR)
+ $(TCL) $(TCLOPT) -d z.tcl mterm2.asn
+ @cd $(WINDIR)
+
+$(OCLCUI_FILES): $(SRCDIR)\oclcui.asn
+ @cd $(SRCDIR)
+ $(TCL) $(TCLOPT) -d z.tcl oclcui.asn
+ @cd $(WINDIR)
+
+$(ILL_CORE_FILES): $(SRCDIR)\ill9702.asn
+ @cd $(SRCDIR)
+ $(TCL) $(TCLOPT) -d ill.tcl ill9702.asn
+ @cd $(WINDIR)
+
+$(ITEM_REQ_FILES): $(SRCDIR)\item-req.asn
+ @cd $(SRCDIR)
+ $(TCL) $(TCLOPT) -d ill.tcl item-req.asn
+ @cd $(WINDIR)
+
+$(SRCDIR)\marc8.c: $(SRCDIR)\codetables.xml $(SRCDIR)\charconv.tcl
+ @cd $(SRCDIR)
+ $(TCL) charconv.tcl -p marc8 codetables.xml -o marc8.c
+
+$(SRCDIR)\marc8r.c: $(SRCDIR)\codetables.xml $(SRCDIR)\charconv.tcl
+ @cd $(SRCDIR)
+ $(TCL) charconv.tcl -r -p marc8r codetables.xml -o marc8r.c
+
+$(SRCDIR)\iso5426.c: $(SRCDIR)\codetables-iso5426.xml $(SRCDIR)\charconv.tcl
+ @cd $(SRCDIR)
+ $(TCL) charconv.tcl -r -p iso5426 codetables-iso5426.xml -o iso5426.c
+
+$(SRCDIR)\oid_std.c: $(SRCDIR)\oid.csv
+ @cd $(SRCDIR)
+ $(TCL) oidtoc.tcl $(SRCDIR) oid.csv oid_std.c oid_std.h
+
+$(SRCDIR)\diagbib1.c: $(SRCDIR)\bib1.csv
+ @cd $(SRCDIR)
+ $(TCL) csvtobib1.tcl $(SRCDIR)
+
+$(SRCDIR)\diagsrw.c: $(SRCDIR)\srw.csv
+ @cd $(SRCDIR)
+ $(TCL) csvtosrw.tcl $(SRCDIR)
+
+$(SRCDIR)\diagsru_update.c: $(SRCDIR)\sru_update.csv
+ @cd $(SRCDIR)
+ $(TCL) csvtosru_update.tcl $(SRCDIR)
+
+$(INCLDIR)\yaz\yaz-version.h: $(ROOTDIR)/configure.ac
+ @cd $(SRCDIR)
+ $(TCL) mk_version.tcl $(ROOTDIR)/configure.ac $(INCLDIR)\yaz\yaz-version.h
+
+
+!endif
+
+!if $(HAVE_BISON)
+$(SRCDIR)\cql.c: $(SRCDIR)\cql.y
+ @cd $(SRCDIR)
+ $(BISON) -y -p cql_ -o cql.c cql.y
+
+!endif
+
+# Resources
+# The RC compiler (resource files)
+RSC=rc.exe
+
+YAZ_RC=$(WINDIR)\yaz.rc
+YAZ_RES=$(OBJDIR)\yaz.res
+YAZ_ICU_RES=$(OBJDIR)\yaz_icu.res
+
+!if $(DEBUG)
+RSOPT=/d_DEBUG
+!else
+RSOPT=/d_NDEBUG
+!endif
+
+$(YAZ_RES): $(YAZ_RC)
+ $(RSC) $(RSOPT) /I"../include" /fo"$(YAZ_RES)" $(YAZ_RC)
+
+$(YAZ_ICU_RES): $(YAZ_RC)
+ $(RSC) $(RSOPT) /DICU=1 /I"../include" /fo"$(YAZ_ICU_RES)" $(YAZ_RC)
+
+# Linking
+
+$(YAZ_DLL) $(YAZ_IMPLIB): "$(BINDIR)" $(DLL_OBJS) $(YAZ_RES)
+ $(LINK_DLL) \
+ $(DLL_OBJS) \
+ $(YAZ_RES) \
+ /out:$@ \
+ /implib:"$(YAZ_IMPLIB)"
+ $(MT) -manifest $@.manifest -outputresource:$@;2
+
+$(YAZ_ICU_DLL) $(YAZ_ICU_IMPLIB): "$(BINDIR)" $(ICU_DLL_OBJS) $(YAZ_ICU_RES)
+ $(LINK_DLL) $(ICU_LIB) $(YAZ_IMPLIB)\
+ $(ICU_DLL_OBJS) \
+ $(YAZ_ICU_RES) \
+ /out:$@ \
+ /implib:"$(YAZ_ICU_IMPLIB)"
+ $(MT) -manifest $@.manifest -outputresource:$@;2
+
+$(YAZ_COND_DLL) $(YAZ_COND_IMPLIB): "$(BINDIR)" $(COND_DLL_OBJS) $(YAZ_COND_RES)
+ $(LINK_DLL) $(COND_LIB) $(YAZ_IMPLIB)\
+ $(COND_DLL_OBJS) \
+ $(YAZ_COND_RES) \
+ /out:$@ \
+ /implib:"$(YAZ_COND_IMPLIB)"
+ $(MT) -manifest $@.manifest -outputresource:$@;2
+
+$(CLIENT) : "$(BINDIR)" $(YAZ_CLIENT_OBJS) $(YAZ_DLL)
+ $(LINK_PROGRAM) $(YAZ_CLIENT_OBJS) /out:$@
+ $(MT) -manifest $@.manifest -outputresource:$@;1
+
+$(YAZ_ICU) : "$(BINDIR)" $(YAZ_ICU_OBJS) $(YAZ_ICU_DLL)
+ $(LINK_PROGRAM) $(ICU_LIB) $(YAZ_ICU_IMPLIB) $(YAZ_ICU_OBJS) /out:$@
+ $(MT) -manifest $@.manifest -outputresource:$@;1
+
+
+$(SC_TEST) : "$(BINDIR)" $(SC_TEST_OBJS) $(YAZ_DLL)
+ $(LINK_PROGRAM) $(SC_TEST_OBJS) /out:$@
+ $(MT) -manifest $@.manifest -outputresource:$@;1
+
+$(ZOOMSH) : "$(BINDIR)" $(YAZ_ZOOMSH_OBJS) $(YAZ_DLL)
+ $(LINK_PROGRAM) $(YAZ_ZOOMSH_OBJS) /out:$@
+ $(MT) -manifest $@.manifest -outputresource:$@;1
+
+$(ZOOMTST1) : "$(BINDIR)" $(YAZ_ZOOMTST1_OBJS) $(YAZ_DLL)
+ $(LINK_PROGRAM) $(YAZ_ZOOMTST1_OBJS) /out:$@
+ $(MT) -manifest $@.manifest -outputresource:$@;1
+
+$(ZOOMTST2) : "$(BINDIR)" $(YAZ_ZOOMTST2_OBJS) $(YAZ_DLL)
+ $(LINK_PROGRAM) $(YAZ_ZOOMTST2_OBJS) /out:$@
+ $(MT) -manifest $@.manifest -outputresource:$@;1
+
+$(ZOOMTST3) : "$(BINDIR)" $(YAZ_ZOOMTST3_OBJS) $(YAZ_DLL)
+ $(LINK_PROGRAM) $(YAZ_ZOOMTST3_OBJS) /out:$@
+ $(MT) -manifest $@.manifest -outputresource:$@;1
+
+$(ZOOMTST4) : "$(BINDIR)" $(YAZ_ZOOMTST4_OBJS) $(YAZ_DLL)
+ $(LINK_PROGRAM) $(YAZ_ZOOMTST4_OBJS) /out:$@
+ $(MT) -manifest $@.manifest -outputresource:$@;1
+
+$(ZOOMTST5) : "$(BINDIR)" $(YAZ_ZOOMTST5_OBJS) $(YAZ_DLL)
+ $(LINK_PROGRAM) $(YAZ_ZOOMTST5_OBJS) /out:$@
+ $(MT) -manifest $@.manifest -outputresource:$@;1
+
+$(ZOOMTST6) : "$(BINDIR)" $(YAZ_ZOOMTST6_OBJS) $(YAZ_DLL)
+ $(LINK_PROGRAM) $(YAZ_ZOOMTST6_OBJS) /out:$@
+ $(MT) -manifest $@.manifest -outputresource:$@;1
+
+$(ZOOMTST7) : "$(BINDIR)" $(YAZ_ZOOMTST7_OBJS) $(YAZ_DLL)
+ $(LINK_PROGRAM) $(YAZ_ZOOMTST7_OBJS) /out:$@
+ $(MT) -manifest $@.manifest -outputresource:$@;1
+
+$(ZOOMTST8) : "$(BINDIR)" $(YAZ_ZOOMTST8_OBJS) $(YAZ_DLL)
+ $(LINK_PROGRAM) $(YAZ_ZOOMTST8_OBJS) /out:$@
+ $(MT) -manifest $@.manifest -outputresource:$@;1
+
+$(ZOOMTST9) : "$(BINDIR)" $(YAZ_ZOOMTST9_OBJS) $(YAZ_DLL)
+ $(LINK_PROGRAM) $(YAZ_ZOOMTST9_OBJS) /out:$@
+ $(MT) -manifest $@.manifest -outputresource:$@;1
+
+$(ZOOMTST10) : "$(BINDIR)" $(YAZ_ZOOMTST10_OBJS) $(YAZ_DLL)
+ $(LINK_PROGRAM) $(YAZ_ZOOMTST10_OBJS) /out:$@
+ $(MT) -manifest $@.manifest -outputresource:$@;1
+
+$(CQL2PQF) : "$(BINDIR)" $(YAZ_CQL2PQF_OBJS) $(YAZ_DLL)
+ $(LINK_PROGRAM) $(YAZ_CQL2PQF_OBJS) /out:$@
+ $(MT) -manifest $@.manifest -outputresource:$@;1
+
+$(CQL2XCQL) : "$(BINDIR)" $(YAZ_CQL2XCQL_OBJS) $(YAZ_DLL)
+ $(LINK_PROGRAM) $(YAZ_CQL2XCQL_OBJS) /out:$@
+ $(MT) -manifest $@.manifest -outputresource:$@;1
+
+$(ZTEST) : "$(BINDIR)" $(ZTEST_OBJS) $(YAZ_DLL)
+ $(LINK_PROGRAM) $(ZTEST_OBJS) /out:$@
+ $(MT) -manifest $@.manifest -outputresource:$@;1
+
+$(YAZ_MARCDUMP) : "$(BINDIR)" $(YAZ_MARCDUMP_OBJS) $(YAZ_DLL)
+ $(LINK_PROGRAM) $(YAZ_MARCDUMP_OBJS) /out:$@
+ $(MT) -manifest $@.manifest -outputresource:$@;1
+
+
+$(TSTLOG) : "$(BINDIR)" $(TSTLOG_OBJS) $(YAZ_DLL)
+ $(LINK_PROGRAM) $(TSTLOG_OBJS) /out:$@
+ $(MT) -manifest $@.manifest -outputresource:$@;1
+
+$(TST_TIMING) : "$(BINDIR)" $(TST_TIMING_OBJS) $(YAZ_DLL)
+ $(LINK_PROGRAM) $(TST_TIMING_OBJS) /out:$@
+ $(MT) -manifest $@.manifest -outputresource:$@;1
+
+$(TEST_MUTEX) : "$(BINDIR)" $(TEST_MUTEX_OBJS) $(YAZ_COND_DLL)
+ $(LINK_PROGRAM) $(YAZ_COND_IMPLIB) $(TEST_MUTEX_OBJS) /out:$@
+ $(MT) -manifest $@.manifest -outputresource:$@;1
+
+# Other rules
+
+$(DOCDIR)\htmlhelp.chm: $(DOCDIR)\htmlhelp.hhp
+ @cd $(DOCDIR)
+ -$(HHC) htmlhelp.hhp
+ @cd $(WINDIR)
+