aboutsummaryrefslogtreecommitdiff
path: root/src/Makefile.b32
blob: e5eea3ad4acdf2ccf9957b0889d4ad5660b47951 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
#***************************************************************************
#                                  _   _ ____  _
#  Project                     ___| | | |  _ \| |
#                             / __| | | | |_) | |
#                            | (__| |_| |  _ <| |___
#                             \___|\___/|_| \_\_____|
#
# Copyright (C) 2000, Jaepil Kim, <pit@paradise.net.nz>.
# Copyright (C) 2001 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
# are also available at http://curl.haxx.se/docs/copyright.html.
#
# You may opt to use, copy, modify, merge, publish, distribute and/or sell
# copies of the Software, and permit persons to whom the Software is
# furnished to do so, under the terms of the COPYING file.
#
# This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
# KIND, either express or implied.
#
#***************************************************************************

############################################################
#
#  Makefile.b32 - Borland's C++ Compiler 5.X
#
#  'BCCDIR' has to be set up to point to the base directory
#  of the compiler, i.e. SET BCCDIR = c:\Borland\BCC55
#
############################################################

!if "$(__MAKE__)" == ""
!error __MAKE__ not defined. Use Borlands's MAKE to process this makefile.
!endif

# Borland's $(MAKEDIR) expands to the path where make.exe is located,
# use this feature to define BCCDIR when user has not defined 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.8
!endif

# Edit the path below to point to the base of your OpenSSL package.
!ifndef OPENSSL_PATH
OPENSSL_PATH = ..\..\openssl-1.0.2a
!endif

# Set program's name
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
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
LDFLAGS  = -q -lq -lap

SRCDIRS  = .;..\lib
OBJDIR   = .\BCC_objs
INCDIRS  = -I.;..\include;..\lib
LINKLIB  = $(BCCDIR)\lib\cw32mt.lib $(BCCDIR)\lib\ws2_32.lib
DEFINES  = -DNDEBUG -DWIN32

!ifdef DYNAMIC
LIBCURL_LIB = ..\lib\libcurl_imp.lib
!else
LIBCURL_LIB = ..\lib\libcurl.lib
DEFINES = $(DEFINES) -DCURL_STATICLIB
!endif

# ZLIB support is enabled setting WITH_ZLIB=1
!ifdef WITH_ZLIB
DEFINES  = $(DEFINES) -DHAVE_LIBZ -DHAVE_ZLIB_H
INCDIRS  = $(INCDIRS);$(ZLIB_PATH)
LINKLIB  = $(LINKLIB) $(ZLIB_PATH)\zlib.lib
!endif

# SSL support is enabled setting WITH_SSL=1
!ifdef WITH_SSL
DEFINES  = $(DEFINES) -DUSE_OPENSSL
INCDIRS  = $(INCDIRS);$(OPENSSL_PATH)\inc32;$(OPENSSL_PATH)\inc32\openssl
LINKLIB  = $(LINKLIB) $(OPENSSL_PATH)\out32\ssleay32.lib $(OPENSSL_PATH)\out32\libeay32.lib
!endif

.autodepend

.path.c   = $(SRCDIRS)
.path.obj = $(OBJDIR)
.path.int = $(OBJDIR)

# Makefile.inc provides the CSOURCES and HHEADERS defines
!include Makefile.inc

CSOURCES = $(CURL_CFILES) $(CURLX_CFILES:../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:
	@-$(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)
	@-$(RM) curl.tds

$(OBJDIR):
	@-$(RMDIR) $(OBJDIR)
	@-$(MKDIR) $(OBJDIR)

!ifdef WITH_ZLIB
tool_hugehelp: ..\docs\MANUAL ..\docs\curl.1 mkhelp.pl
        groff -Tascii -man -P -c ../docs/curl.1 > tool_hugehelp.tmp
        perl -w mkhelp.pl -c ../docs/MANUAL < tool_hugehelp.tmp > tool_hugehelp.c
	@-$(RM) tool_hugehelp.tmp
!else
tool_hugehelp:
	if exist ..\GIT-INFO $(COPY) tool_hugehelp.c.cvs tool_hugehelp.c
!endif

$(PROGNAME): $(OBJECTS) $(LIBCURL_LIB) $(LINKLIB)
	@-$(RM) $(PROGNAME)
	$(LD) $(LDFLAGS) -e$@ @&&!
$(**: = ^
)
!


# End of Makefile.b32