David Byron's debug build fix
[platform/upstream/curl.git] / src / Makefile.vc6
1 ########################################################\r
2 # $Id: Makefile.vc6,v 1.19 2004/11/14 13:48:15 giva Exp $\r
3 #\r
4 ## Makefile for building curl.exe with MSVC6\r
5 ## Use: nmake -f makefile.vc6 [release | debug] [CFG=release-ssl]\r
6 ##      (default is release)\r
7 ## "nmake -f makefile.vc6 CFG=release-ssl" statically links OpenSSL\r
8 ## into curl.exe producing a standalone SSL-enabled executable.\r
9 ##\r
10 ## Comments to: Troy Engel <tengel@sonic.net>\r
11 ## Updated by: Craig Davison <cd@securityfocus.com>\r
12 ## release-ssl added by Miklos Nemeth <mnemeth@kfkisystems.com>\r
13 ## winmm.lib added by Miklos Nemeth <mnemeth@kfkisystems.com> to support\r
14 ## timeGetTime() in timeval.c\r
15 \r
16 PROGRAM_NAME = curl.exe\r
17 \r
18 !IFNDEF ZLIB_PATH\r
19 ZLIB_PATH = ../../zlib-1.2.1\r
20 !ENDIF\r
21 \r
22 !IFNDEF OPENSSL_PATH\r
23 OPENSSL_PATH = ../../openssl-0.9.7d\r
24 !ENDIF\r
25 \r
26 ########################################################\r
27 ## Nothing more to do below this line!\r
28 CFLAGSZLIB = /DHAVE_ZLIB_H /DHAVE_ZLIB /DHAVE_LIBZ /I "$(ZLIB_PATH)"\r
29 LFLAGSZLIB = "/LIBPATH:$(ZLIB_PATH)"\r
30 ZLIBLIBS   = zlib.lib\r
31 SSLINC     = /I "$(OPENSSL_PATH)/inc32" /I "$(OPENSSL_PATH)/inc32/openssl"\r
32 CFLAGSSSL  = /DUSE_SSLEAY\r
33 LFLAGSSSL  = /LIBPATH:"$(OPENSSL_PATH)/out32"\r
34 SSLLIBS    = libeay32.lib ssleay32.lib gdi32.lib\r
35 \r
36 ## Release\r
37 CCR   = cl.exe /MD /O2 /DNDEBUG\r
38 LINKR = link.exe /incremental:no /libpath:../lib\r
39 RCR   = rc.exe /dCURLDEBUG=0\r
40 \r
41 ## Debug\r
42 CCD   = cl.exe /MDd /Gm /ZI /Od /D_DEBUG /GZ\r
43 LINKD = link.exe /incremental:yes /debug /libpath:../lib\r
44 RCD   = rc.exe /dCURLDEBUG=1\r
45 \r
46 CFLAGS   = /I../lib /I../include /nologo /W3 /GX /DWIN32 /YX /FD /c\r
47 LFLAGS   = /nologo /out:$(PROGRAM_NAME) /subsystem:console /machine:I386\r
48 RESFLAGS = /i../include\r
49 \r
50 \r
51 RELEASE_OBJS= \\r
52         hugehelpr.obj \\r
53         writeoutr.obj \\r
54         urlglobr.obj \\r
55         getpassr.obj \\r
56         homedirr.obj \\r
57         timevalr.obj \\r
58         strtoofftr.obj \\r
59         mainr.obj \\r
60         curlr.res\r
61 \r
62 DEBUG_OBJS= \\r
63         hugehelpd.obj \\r
64         writeoutd.obj \\r
65         urlglobd.obj \\r
66         getpassd.obj \\r
67         homedird.obj \\r
68         timevald.obj \\r
69         strtoofftd.obj \\r
70         maind.obj \\r
71         curld.res\r
72 \r
73 #################################################\r
74 # release-zlib (static libcurl + zlib)\r
75 \r
76 !IF "$(CFG)" == "release-zlib"\r
77 CFLAGS         = $(CFLAGS) $(CFLAGSZLIB) /DCURL_STATICLIB\r
78 LINKLIBS       = libcurl.lib  $(ZLIBLIBS)\r
79 LINKLIBS_DEBUG = libcurld.lib $(ZLIBLIBS)\r
80 LFLAGS         = $(LFLAGS) $(LFLAGSZLIB)\r
81 !ENDIF\r
82 \r
83 #################################################\r
84 # release-ssl (static libcurl + ssl)\r
85 \r
86 !IF "$(CFG)" == "release-ssl"\r
87 CFLAGS         = $(CFLAGS) $(CFLAGSSSL) /DCURL_STATICLIB\r
88 LINKLIBS       = libcurl.lib  $(SSLLIBS)\r
89 LINKLIBS_DEBUG = libcurld.lib $(SSLLIBS)\r
90 LFLAGS         = $(LFLAGS) $(LFLAGSSSL)\r
91 !ENDIF\r
92 \r
93 #################################################\r
94 # release-libcurl-ssl-dll (libcurl.dll + ssl)\r
95 \r
96 !IF "$(CFG)" == "release-libcurl-ssl-dll"\r
97 CFLAGS         = $(CFLAGS) $(CFLAGSSSL)\r
98 LINKLIBS       = libcurl_imp.lib  $(SSLLIBS)\r
99 LINKLIBS_DEBUG = libcurld_imp.lib $(SSLLIBS)\r
100 LFLAGS         = $(LFLAGS) $(LFLAGSSSL)\r
101 !ENDIF\r
102 \r
103 #################################################\r
104 # release-ssl-zlib (static libcurl +  ssl + zlib)\r
105 \r
106 !IF "$(CFG)" == "release-ssl-zlib"\r
107 CFLAGS         = $(CFLAGS) $(CFLAGSSSL) $(CFLAGSZLIB) /DCURL_STATICLIB\r
108 LINKLIBS       = libcurl.lib  $(SSLLIBS) $(ZLIBLIBS)\r
109 LINKLIBS_DEBUG = libcurld.lib $(SSLLIBS) $(ZLIBLIBS)\r
110 LFLAGS         = $(LFLAGS) $(LFLAGSSSL) $(LFLAGSZLIB)\r
111 !ENDIF\r
112 \r
113 #################################################\r
114 # If CFG not specified, use static libs\r
115 \r
116 !IF "$(CFG)." == "."\r
117 CFLAGS         = $(CFLAGS) /DCURL_STATICLIB\r
118 LINKLIBS       = libcurl.lib\r
119 LINKLIBS_DEBUG = libcurld.lib\r
120 !ENDIF\r
121 \r
122 \r
123 LINKLIBS       = $(LINKLIBS) wsock32.lib winmm.lib\r
124 LINKLIBS_DEBUG = $(LINKLIBS_DEBUG) wsock32.lib winmm.lib\r
125 \r
126 all : release\r
127 \r
128 release: $(RELEASE_OBJS)\r
129         $(LINKR) $(LFLAGS) $(LINKLIBS) $(RELEASE_OBJS)\r
130 \r
131 debug: $(DEBUG_OBJS)\r
132         $(LINKD) $(LFLAGS) $(LINKLIBS_DEBUG) $(DEBUG_OBJS)\r
133 \r
134 ## Release\r
135 hugehelpr.obj: hugehelp.c\r
136         $(CCR) $(CFLAGS) /Zm200 /Fo"$@" hugehelp.c\r
137 writeoutr.obj: writeout.c\r
138         $(CCR) $(CFLAGS) /Fo"$@" writeout.c\r
139 urlglobr.obj: urlglob.c\r
140         $(CCR) $(CFLAGS) /Fo"$@" urlglob.c\r
141 getpassr.obj: getpass.c\r
142         $(CCR) $(CFLAGS) /Fo"$@" getpass.c\r
143 homedirr.obj: homedir.c\r
144         $(CCR) $(CFLAGS) /Fo"$@" homedir.c\r
145 timevalr.obj: ../lib/timeval.c\r
146         $(CCR) $(CFLAGS) /Fo"$@" ../lib/timeval.c\r
147 strtoofftr.obj: ../lib/strtoofft.c\r
148         $(CCR) $(CFLAGS) /Fo"$@" ../lib/strtoofft.c\r
149 mainr.obj: main.c\r
150         $(CCR) $(CFLAGS) /Fo"$@" main.c\r
151 curlr.res : curl.rc\r
152         $(RCR) $(RESFLAGS) /Fo"$@" curl.rc\r
153 \r
154 ## Debug\r
155 hugehelpd.obj: hugehelp.c\r
156         $(CCD) $(CFLAGS) /Zm200 /Fo"$@" hugehelp.c\r
157 writeoutd.obj: writeout.c\r
158         $(CCD) $(CFLAGS) /Fo"$@" writeout.c\r
159 urlglobd.obj: urlglob.c\r
160         $(CCD) $(CFLAGS) /Fo"$@" urlglob.c\r
161 getpassd.obj: getpass.c\r
162         $(CCD) $(CFLAGS) /Fo"$@" getpass.c\r
163 homedird.obj: homedir.c\r
164         $(CCD) $(CFLAGS) /Fo"$@" homedir.c\r
165 timevald.obj: ../lib/timeval.c\r
166         $(CCD) $(CFLAGS) /Fo"$@" ../lib/timeval.c\r
167 strtoofftd.obj: ../lib/strtoofft.c\r
168         $(CCD) $(CFLAGS) /Fo"$@" ../lib/strtoofft.c\r
169 maind.obj: main.c\r
170         $(CCD) $(CFLAGS) /Fo"$@" main.c\r
171 curld.res : curl.rc\r
172         $(RCD) $(RESFLAGS) /Fo"$@" curl.rc\r
173 \r
174 clean:\r
175         -@erase $(RELEASE_OBJS)\r
176         -@erase $(DEBUG_OBJS)\r
177         -@erase vc60.idb\r
178         -@erase vc60.pdb\r
179         -@erase vc60.pch\r
180         -@erase vc70.idb\r
181         -@erase vc70.pch\r
182         -@erase curl.ilk\r
183         -@erase curl.pdb\r
184 \r
185 distrib: clean\r
186         -@erase $(PROGRAM_NAME)\r