diff options
| author | Yang Tse <yangsita@gmail.com> | 2013-07-19 12:05:22 +0200 | 
|---|---|---|
| committer | Yang Tse <yangsita@gmail.com> | 2013-07-19 12:33:11 +0200 | 
| commit | 2e5b3168d69b6b0156508102f72d455f5b3b6636 (patch) | |
| tree | 48928312274e363542e2b5438826f5d75ae79d73 | |
| parent | 6bcacff1a52df5818c2a12807de6e7ca896da508 (diff) | |
Makefile.b32: Borland makefile adjustments. Tested with BCC 5.5.1
| -rw-r--r-- | lib/Makefile.b32 | 42 | ||||
| -rw-r--r-- | src/Makefile.b32 | 27 | 
2 files changed, 60 insertions, 9 deletions
diff --git a/lib/Makefile.b32 b/lib/Makefile.b32 index 86251ba0b..7dbb37fcb 100644 --- a/lib/Makefile.b32 +++ b/lib/Makefile.b32 @@ -52,7 +52,7 @@ LDFLAGS  = -q -lq -laa -tWD  SRCDIR   = .  OBJDIR   = .\BCC_objs  INCDIRS  = -I.;..\include -LINKLIB  = $(BCCDIR)\lib\cw32mt.lib +LINKLIB  = $(BCCDIR)\lib\cw32mt.lib $(BCCDIR)\lib\ws2_32.lib  DEFINES  = -DNDEBUG -DWIN32 -DBUILDING_LIBCURL  # By default SSPI support is enabled for BCC @@ -88,8 +88,24 @@ LINKLIB  = $(LINKLIB) $(OPENSSL_PATH)\out32\ssleay32.lib $(OPENSSL_PATH)\out32\l  # Makefile.inc provides the CSOURCES and HHEADERS defines  !include Makefile.inc -OBJECTS = $(CSOURCES:.c=.obj) -PREPROCESSED = $(CSOURCES:.c=.int) +# 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. + +NOHYPHEN = $(CSOURCES:-=_) + +OBJECTS = $(NOHYPHEN:.c=.obj) +PREPROCESSED = $(NOHYPHEN:.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 @@ -98,6 +114,21 @@ PREPROCESSED = $(CSOURCES:.c=.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:  	cd $(OBJDIR)  	@-$(RM) $(OBJECTS) @@ -122,7 +153,10 @@ $(LIBCURL_LIB): $(OBJECTS)  $(LIBCURL_DLL) $(LIBCURL_IMPLIB): $(OBJECTS) $(LINKLIB)  	@-$(RM) $(LIBCURL_DLL)  	@-$(RM) $(LIBCURL_IMPLIB) -	$(LD) $(LDFLAGS) -e$(LIBCURL_DLL) $** +	$(LD) $(LDFLAGS) -e$(LIBCURL_DLL) @&&! +$(**: = ^ +) +!  	$(IMPLIB) $(LIBCURL_IMPLIB) $(LIBCURL_DLL) diff --git a/src/Makefile.b32 b/src/Makefile.b32 index 092c35ad9..b0ee5b610 100644 --- a/src/Makefile.b32 +++ b/src/Makefile.b32 @@ -34,11 +34,12 @@ OPENSSL_PATH = ..\..\openssl-0.9.8y  PROGNAME = curl.exe  # Setup environment +PP_CMD   = cpp32 -q -P-  CC_CMD   = bcc32 -q -c  LD       = bcc32  RM       = del 2>NUL  MKDIR    = md -RMDIR    = rd /q 2>nul +RMDIR    = rd /q 2>NUL  COPY     = $(COMSPEC) /c copy /y  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 @@ -47,7 +48,7 @@ LDFLAGS  = -q -lq -lap  SRCDIRS  = .;..\lib  OBJDIR   = .\BCC_objs  INCDIRS  = -I.;..\include;..\lib -LINKLIB  = $(BCCDIR)\lib\cw32mt.lib +LINKLIB  = $(BCCDIR)\lib\cw32mt.lib $(BCCDIR)\lib\ws2_32.lib  DEFINES  = -DNDEBUG -DWIN32  !ifdef DYNAMIC @@ -75,21 +76,34 @@ LINKLIB  = $(LINKLIB) $(OPENSSL_PATH)\out32\ssleay32.lib $(OPENSSL_PATH)\out32\l  .path.c   = $(SRCDIRS)  .path.obj = $(OBJDIR) +.path.int = $(OBJDIR)  # Makefile.inc provides the CSOURCES and HHEADERS defines  !include Makefile.inc  CSOURCES = $(CURL_CFILES) $(CURLX_ONES:../lib/=)  OBJECTS  = $(CSOURCES:.c=.obj) +PREPROCESSED = $(CSOURCES:.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: -	$(CC_CMD) $(CC_FLAGS) $(INCDIRS) $(DEFINES) -o$@ $< +	@-$(RM) $(@R).int +	$(PP_CMD) $(CC_FLAGS) $(INCDIRS) $(DEFINES) -o$(@R).int $(<) +	$(CC_CMD) $(CC_FLAGS) -o$(@) $(@R).int  all:	$(OBJDIR) tool_hugehelp $(PROGNAME)  clean:  	cd $(OBJDIR)  	@-$(RM) $(OBJECTS) +	@-$(RM) $(PREPROCESSED)  	cd ..  	@-$(RMDIR) $(OBJDIR)  	@-$(RM) $(PROGNAME) @@ -106,12 +120,15 @@ tool_hugehelp: ..\docs\MANUAL ..\docs\curl.1 mkhelp.pl  	@-$(RM) tool_hugehelp.tmp  !else  tool_hugehelp: -	$(COPY) tool_hugehelp.c.cvs tool_hugehelp.c +	if exist ..\GIT-INFO $(COPY) tool_hugehelp.c.cvs tool_hugehelp.c  !endif  $(PROGNAME): $(OBJECTS) $(LIBCURL_LIB) $(LINKLIB)  	@-$(RM) $(PROGNAME) -	$(LD) $(LDFLAGS) -e$@ $** +	$(LD) $(LDFLAGS) -e$@ @&&! +$(**: = ^ +) +!  # End of Makefile.b32  | 
