Base code merged to SPIN 2.4
[platform/upstream/curl.git] / lib / Makefile.b32
index 04d3d29..b9531fd 100644 (file)
@@ -7,7 +7,7 @@
 #  'BCCDIR' has to be set up to point to the base directory
 #  of the compiler, i.e. SET BCCDIR = c:\Borland\BCC55
 #
-#  Written by Jaepil Kim, pit@paradise.net.nz
+#  Initially written by Jaepil Kim, pit@paradise.net.nz
 ############################################################
 
 !if "$(__MAKE__)" == ""
 
 # Borland's $(MAKEDIR) expands to the path where make.exe is located,
 # use this feature to define BCCDIR when user has not defined BCCDIR.
-!if "$(BCCDIR)" == ""
+!ifndef BCCDIR
 BCCDIR = $(MAKEDIR)\..
 !endif
 
 # Edit the path below to point to the base of your Zlib sources.
 !ifndef ZLIB_PATH
-ZLIB_PATH = ..\..\zlib-1.2.5
+ZLIB_PATH = ..\..\zlib-1.2.8
 !endif
 
 # Edit the path below to point to the base of your OpenSSL package.
 !ifndef OPENSSL_PATH
-OPENSSL_PATH = ..\..\openssl-0.9.8q
+OPENSSL_PATH = ..\..\openssl-0.9.8zc
 !endif
 
 # Set libcurl static lib, dll and import lib
@@ -39,20 +39,20 @@ LIBCURL_IMPLIB = libcurl_imp.lib
 PP_CMD   = cpp32 -q -P-
 CC_CMD   = bcc32 -q -c
 LD       = bcc32
-RM       = del
-MKDIR    = mkdir
-RMDIR    = rmdir /s /q
+RM       = del 2>NUL
+MKDIR    = md
+RMDIR    = rd /q
 LIB      = tlib
 IMPLIB   = implib
 
-CC_FLAGS = -5 -O2 -tWM -w -w-aus -w-ccc -w-dup -w-prc -w-pro -w-rch -w-sig -w-spa -Dinline=__inline
+CC_FLAGS = -5 -O2 -tWM -w -w-aus -w-ccc -w-dup -w-prc -w-pro -w-rch -w-sig -w-spa -w-inl -w-pia -w-pin -Dinline=__inline
 LIBFLAGS = /C /P32
 LDFLAGS  = -q -lq -laa -tWD
 
-SRCDIR   = .
-OBJDIR   = .\objs
-INCDIRS  = -I.;..\include
-LINKLIB  = $(BCCDIR)\lib\cw32mt.lib
+SRCDIR   = .;.\vtls
+OBJDIR   = .\BCC_objs
+INCDIRS  = -I.;.\lib;..\include
+LINKLIB  = $(BCCDIR)\lib\cw32mt.lib $(BCCDIR)\lib\ws2_32.lib
 DEFINES  = -DNDEBUG -DWIN32 -DBUILDING_LIBCURL
 
 # By default SSPI support is enabled for BCC
@@ -83,40 +83,81 @@ LINKLIB  = $(LINKLIB) $(OPENSSL_PATH)\out32\ssleay32.lib $(OPENSSL_PATH)\out32\l
 
 .path.c   = $(SRCDIR)
 .path.obj = $(OBJDIR)
+.path.int = $(OBJDIR)
 
 # Makefile.inc provides the CSOURCES and HHEADERS defines
 !include Makefile.inc
 
-OBJECTS = $(CSOURCES:.c=.obj)
+# Borland's command line librarian program TLIB version 4.5 is not capable
+# of building a library when any of its objects contains an hypen in its
+# name, due to a command line parsing bug. In order to workaround this, we
+# build source files with hyphens in their name as objects with underscores
+# using explicit compilation build rules instead of implicit ones.
+
+NOHYPHEN1 = $(CSOURCES:-=_)
+NOHYPHEN2 = $(NOHYPHEN1:vtls/=)
+
+OBJECTS = $(NOHYPHEN2:.c=.obj)
+PREPROCESSED = $(NOHYPHEN2:.c=.int)
+
+# Borland's command line compiler (BCC32) version 5.5.1 integrated
+# preprocessor has a bug which results in silently generating wrong
+# definitions for libcurl macros such as CURL_OFF_T_C, on the other
+# hand Borland's command line preprocessor (CPP32) version 5.5.1 does
+# not have the bug and achieves proper results. In order to avoid the
+# silent bug we first preprocess source files and later compile the
+# preprocessed result.
 
 .c.obj:
-       @-$(RM) $(@R).int >NUL 2>&1
+       @-$(RM) $(@R).int
        $(PP_CMD) $(CC_FLAGS) $(INCDIRS) $(DEFINES) -o$(@R).int $(<)
        $(CC_CMD) $(CC_FLAGS) -o$(@) $(@R).int
 
 all:   $(OBJDIR) $(LIBCURL_LIB) $(LIBCURL_DLL)
 
+asyn_ares.obj: asyn-ares.c
+       @-$(RM) $(@R).int
+       $(PP_CMD) $(CC_FLAGS) $(INCDIRS) $(DEFINES) -o$(@R).int $(?)
+       $(CC_CMD) $(CC_FLAGS) -o$(@) $(@R).int
+
+asyn_thread.obj: asyn-thread.c
+       @-$(RM) $(@R).int
+       $(PP_CMD) $(CC_FLAGS) $(INCDIRS) $(DEFINES) -o$(@R).int $(?)
+       $(CC_CMD) $(CC_FLAGS) -o$(@) $(@R).int
+
+non_ascii.obj: non-ascii.c
+       @-$(RM) $(@R).int
+       $(PP_CMD) $(CC_FLAGS) $(INCDIRS) $(DEFINES) -o$(@R).int $(?)
+       $(CC_CMD) $(CC_FLAGS) -o$(@) $(@R).int
+
 clean:
-       @-$(RMDIR) $(OBJDIR) >NUL 2>&1
-       @-$(RM) $(LIBCURL_LIB) >NUL 2>&1
-       @-$(RM) $(LIBCURL_IMPLIB) >NUL 2>&1
-       @-$(RM) libcurl.tds >NUL 2>&1
+       cd $(OBJDIR)
+       @-$(RM) $(OBJECTS)
+       @-$(RM) $(PREPROCESSED)
+       cd ..
+       @-$(RMDIR) $(OBJDIR)
+       @-$(RM) $(LIBCURL_LIB)
+       @-$(RM) $(LIBCURL_IMPLIB)
+       @-$(RM) libcurl.tds
 
 $(OBJDIR):
-       @-$(RMDIR) $(OBJDIR) >NUL 2>&1
+       @-$(RMDIR) $(OBJDIR)
        @-$(MKDIR) $(OBJDIR)
 
 $(LIBCURL_LIB): $(OBJECTS)
-       @-$(RM) $(LIBCURL_LIB) >NUL 2>&1
+       @-$(RM) $(LIBCURL_LIB)
        $(LIB) $(LIBFLAGS) $@ @&&!
 +$(**: = &^
 +)
 !
 
 $(LIBCURL_DLL) $(LIBCURL_IMPLIB): $(OBJECTS) $(LINKLIB)
-       @-$(RM) $(LIBCURL_DLL) >NUL 2>&1
-       @-$(RM) $(LIBCURL_IMPLIB) >NUL 2>&1
-       $(LD) $(LDFLAGS) -e$(LIBCURL_DLL) $**
+       @-$(RM) $(LIBCURL_DLL)
+       @-$(RM) $(LIBCURL_IMPLIB)
+       $(LD) $(LDFLAGS) -e$(LIBCURL_DLL) @&&!
+$(**: = ^
+)
+!
        $(IMPLIB) $(LIBCURL_IMPLIB) $(LIBCURL_DLL)