diff --git a/win32/Makefile.bcb b/win32/Makefile.bcb index eab9996a..80383aad 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 +# August 2003, Eric Zurcher # based on the MSVC version of # March 2002, Igor Zlatkovic +# 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 @@ AUTOCONF = .\config.bcb !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 @@ LD = ilink32.exe 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 @@ bindist : all # 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 @@ $(XML_INTDIR_A) : $(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 @@ $(UTILS_INTDIR) : !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.