updates by Eric Zurcher
diff --git a/win32/Makefile.bcb b/win32/Makefile.bcb
index eab9996..80383aa 100644
--- a/win32/Makefile.bcb
+++ b/win32/Makefile.bcb
@@ -10,12 +10,17 @@
 #                 a 'nmake clean' and then a 'nmake all'.
 # make install   to install the library and its header files.
 #
-# June 2003, Eric Zurcher <Eric.Zurcher@csiro.au>
+# August 2003, Eric Zurcher <Eric.Zurcher@csiro.au>
 # based on the MSVC version of
 # March 2002, Igor Zlatkovic <igor@zlatkovic.com>
+#
 
 AUTOCONF = .\config.bcb
 
+# Extra setting to control whether to use dynamic or static Borland runtime. 
+# Set to "1" to use static RTL, anything else to use dynamic RTL
+STATIC_RTL = 0
+
 # If you cannot run the configuration script, which would take the burden of
 # editing this file from your back, then remove the following line...
 !include $(AUTOCONF)
@@ -59,14 +64,16 @@
 !if !$d(BCB)
 BCB = $(MAKEDIR)\..
 !endif
+.autodepend
 
 # Names of various input and output components.
 XML_NAME = xml2
-XML_BASENAME = Lib$(XML_NAME)
+XML_BASENAME = lib$(XML_NAME)
 XML_SO = $(XML_BASENAME).dll
 XML_IMP = $(XML_BASENAME).lib
 XML_DEF = $(XML_BASENAME).def
 XML_A = $(XML_BASENAME)_a.lib
+DUMMY = dir.exists
 
 # Place where we let the compiler put its intermediate trash.
 XML_INTDIR = $(XML_BASENAME).int
@@ -103,19 +110,23 @@
 LDFLAGS = -q -U$(LIBXML_MAJOR_VERSION).$(LIBXML_MINOR_VERSION)
 LDFLAGS = $(LDFLAGS) -L$(BINDIR);$(LIBPREFIX);$(LIB);$(BCB)\lib\PSdk
 LIBS = import32.lib
-!if "$(WITH_THREADS)" != "no"
+!if "$(WITH_THREADS)" != "no" && "$(STATIC_RTL)" == "1"
+LIBS = $(LIBS) cw32mt.lib
+!elif "$(WITH_THREADS)" != "no"
 LIBS = $(LIBS) cw32mti.lib
-!else
+!elif "$(STATIC_RTL)" == "1"
+LIBS = $(LIBS) cw32.lib
+else
 LIBS = $(LIBS) cw32i.lib
 !endif
 !if "$(WITH_FTP)" == "1" || "$(WITH_HTTP)" == "1"
 LIBS = $(LIBS) wsock32.lib
 !endif 
 !if "$(WITH_ICONV)" == "1"
-LIBS = $(LIBS) iconv-omf.lib
+LIBS = $(LIBS) iconvomf.lib
 !endif 
 !if "$(WITH_ZLIB)" == "1"
-LIBS = $(LIBS) zlib-omf.lib
+LIBS = $(LIBS) zlibomf.lib
 !endif
 !if "$(WITH_THREADS)" == "posix"
 LIBS = $(LIBS) pthreadVC.lib
@@ -272,16 +283,19 @@
 
 
 # Makes the output directory.
-$(BINDIR) :
+$(BINDIR)\$(DUMMY) :
 	if not exist $(BINDIR) mkdir $(BINDIR)
+	touch $(BINDIR)\$(DUMMY)
 
 # Makes the libxml intermediate directory.
-$(XML_INTDIR) :
+$(XML_INTDIR)\$(DUMMY) :
 	if not exist $(XML_INTDIR) mkdir $(XML_INTDIR)
+	touch $(XML_INTDIR)\$(DUMMY)
 
 # Makes the static libxml intermediate directory.
-$(XML_INTDIR_A) :
+$(XML_INTDIR_A)\$(DUMMY) :
 	if not exist $(XML_INTDIR_A) mkdir $(XML_INTDIR_A)
+	touch $(XML_INTDIR_A)\$(DUMMY)
 
 # An implicit rule for libxml compilation.
 {$(XML_SRCDIR)}.c{$(XML_INTDIR)}.obj:
@@ -292,29 +306,33 @@
 	$(CC) $(CFLAGS) -DLIBXML_STATIC -n$(XML_INTDIR_A)\ -c $<
 
 # Compiles libxml source. Uses the implicit rule for commands.
-$(XML_OBJS) : $(XML_INTDIR)
+$(XML_OBJS) : $(XML_INTDIR)\$(DUMMY)
 
 # Compiles static libxml source. Uses the implicit rule for commands.
-$(XML_OBJS_A) : $(XML_INTDIR_A) 
+$(XML_OBJS_A) : $(XML_INTDIR_A)\$(DUMMY) 
 
 #def4bcb.exe : def4bcb.c
 
 # Creates the export definition file (DEF) for libxml.
-$(XML_INTDIR)\$(XML_DEF) : $(XML_INTDIR) $(XML_DEF).src 
-	$(CPP) $(CPPFLAGS) -o $(XML_INTDIR)\$(XML_DEF).tmp $(XML_DEF).src
-	def4bcb -msnames < $(XML_INTDIR)\$(XML_DEF).tmp > $(XML_INTDIR)\$(XML_DEF)
+#$(XML_INTDIR)\$(XML_DEF) : $(XML_INTDIR)\$(DUMMY) $(XML_DEF).src def4bcb.exe
+#	$(CPP) $(CPPFLAGS) -o $(XML_INTDIR)\$(XML_DEF).tmp $(XML_DEF).src
+#	def4bcb -msnames < $(XML_INTDIR)\$(XML_DEF).tmp > $(XML_INTDIR)\$(XML_DEF)
 
 # Creates the libxml shared object.
-$(BINDIR)\$(XML_SO) : $(BINDIR) $(XML_OBJS)
-	$(LD) $(LDFLAGS) -Tpd -Gi c0d32.obj $(XML_OBJS),$(BINDIR)\$(XML_SO),,$(LIBS),,
+$(BINDIR)\$(XML_SO) : $(BINDIR)\$(DUMMY) $(XML_OBJS)
+	$(LD) $(LDFLAGS) -Tpd -Gi c0d32.obj $(XML_OBJS),$(BINDIR)\$(XML_SO),,$(LIBS)
+
+#$(BINDIR)\$(XML_SO) : $(BINDIR)\$(DUMMY) $(XML_OBJS) $(XML_INTDIR)\$(XML_DEF)
+#	$(LD) $(LDFLAGS) -Tpd -Gi c0d32.obj $(XML_OBJS),$(BINDIR)\$(XML_SO),,$(LIBS),$(XML_INTDIR)\$(XML_DEF)
 
 # Creates the libxml archive.
-$(BINDIR)\$(XML_A) : $(BINDIR) $(XML_OBJS_A)
+$(BINDIR)\$(XML_A) : $(BINDIR)\$(DUMMY) $(XML_OBJS_A)
 	$(AR) $(BINDIR)\$(XML_A) $(ARFLAGS) /u $(XML_OBJS_A)
 
 # Makes the utils intermediate directory.
-$(UTILS_INTDIR) :
+$(UTILS_INTDIR)\$(DUMMY) :
 	if not exist $(UTILS_INTDIR) mkdir $(UTILS_INTDIR)
+	touch $(UTILS_INTDIR)\$(DUMMY)
 
 # An implicit rule for xmllint and friends.
 !if "$(STATIC)" == "1"
@@ -328,7 +346,7 @@
 !endif
 
 # Builds xmllint and friends. Uses the implicit rule for commands.
-$(UTILS) : $(UTILS_INTDIR) $(BINDIR) libxml libxmla
+$(UTILS) : $(UTILS_INTDIR)\$(DUMMY) $(BINDIR)\$(DUMMY) $(BINDIR)\$(XML_SO) $(BINDIR)\$(XML_A)
 
 # Source dependences should be autogenerated somehow here, but how to
 # do it? I have no clue.