-###########################################################
-############### Linking
-###########################################################
-
-$(DLL) $(IMPLIB): "$(BINDIR)" $(DLL_OBJS)
- @echo Linking the dll $(DLL)
- $(LINK) @<<
- $(LNKOPT)
- $(LINK_LIBS)
- $(DLL_LINK_OPTIONS)
- $(DLL_OBJS)
- /out:$(DLL)
- /implib:"$(LIBDIR)\yaz.lib"
- /pdb:"$(LIBDIR)\yaz.pdb"
- /map:"$(LIBDIR)\yaz.map"
-<<
-
-$(CLIENT) : "$(BINDIR)" $(YAZ_CLIENT_OBJS)
- @echo Linking the client $(CLIENT)
- $(LINK) @<<
- $(LNKOPT)
- $(CLIENT_LINK_OPTIONS)
- $(LINK_LIBS)
- $(IMPLIB)
- $(YAZ_CLIENT_OBJS)
- /pdb:"$(LIBDIR)\yaz-client.pdb"
- /map:"$(LIBDIR)\yaz-client.map"
- /out:$(CLIENT)
-<<
-
-$(ZTEST) : "$(BINDIR)" $(ZTEST_OBJS) $(DLL)
- @echo Linking the ztest $(ZTEST)
- $(LINK) @<<
- $(LNKOPT)
- $(ZTEST_LINK_OPTIONS)
- $(LINK_LIBS)
- shell32.lib
- $(IMPLIB)
- $(ZTEST_OBJS)
- /implib:"$(LIBDIR)\yaz-ztest.lib"
- /pdb:"$(LIBDIR)\yaz-ztest.pdb"
- /map:"$(LIBDIR)\yaz-ztest.map"
- /out:$(ZTEST)
-<<
-
-
-# note that this links a lib, so it uses completely different options.
-
-###########################################################
-############### Special operations
-###########################################################
-
-
-############## clean
-clean:
- del $(DLL)
- del $(CLIENT)
- del $(ZTEST)
- del $(TMPDIR)\*.
+!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