]> granicus.if.org Git - postgresql/blob - src/interfaces/libpq/win32.mak
Additional spelling corrections
[postgresql] / src / interfaces / libpq / win32.mak
1 # Makefile for Microsoft Visual C++ 7.1-8.0
2
3 # Will build a static library libpq(d).lib
4 #        and a dynamic library libpq(d).dll with import library libpq(d)dll.lib
5 # USE_SSL=1 will compile with OpenSSL
6 # USE_KFW=1 will compile with kfw(kerberos for Windows)
7 # DEBUG=1 compiles with debugging symbols
8 # ENABLE_THREAD_SAFETY=1 compiles with threading enabled
9
10 ENABLE_THREAD_SAFETY=1
11
12 # CPU="i386" or CPU environment of nmake.exe (AMD64 or IA64)
13
14 !IF ("$(CPU)" == "")||("$(CPU)" == "i386")
15 CPU=i386
16 !MESSAGE Building the Win32 static library...
17 !MESSAGE
18 !ELSEIF ("$(CPU)" == "IA64")||("$(CPU)" == "AMD64")
19 ADD_DEFINES=/D "WIN64" /Wp64 /GS
20 ADD_SECLIB=bufferoverflowU.lib
21 !MESSAGE Building the Win64 static library...
22 !MESSAGE
23 !ELSE
24 !MESSAGE Please check a CPU=$(CPU) ?
25 !MESSAGE CPU=i386 or AMD64 or IA64
26 !ERROR Make aborted.
27 !ENDIF
28
29 !IFDEF DEBUG
30 OPT=/Od /Zi /MDd
31 LOPT=/DEBUG
32 DEBUGDEF=/D _DEBUG
33 OUTFILENAME=libpqd
34 !ELSE
35 OPT=/O2 /MD
36 LOPT=
37 DEBUGDEF=/D NDEBUG
38 OUTFILENAME=libpq
39 !ENDIF
40
41 !IF "$(SSL_INC)" == ""
42 SSL_INC=C:\OpenSSL\include
43 !MESSAGE Using default OpenSSL Include directory: $(SSL_INC)
44 !ENDIF
45
46 !IF "$(SSL_LIB_PATH)" == ""
47 SSL_LIB_PATH=C:\OpenSSL\lib\VC
48 !MESSAGE Using default OpenSSL Library directory: $(SSL_LIB_PATH)
49 !ENDIF
50
51 !IF "$(KFW_INC)" == ""
52 KFW_INC=C:\kfw-2.6.5\inc
53 !MESSAGE Using default Kerberos Include directory: $(KFW_INC)
54 !ENDIF
55
56 !IF "$(KFW_LIB_PATH)" == ""
57 KFW_LIB_PATH=C:\kfw-2.6.5\lib\$(CPU)
58 !MESSAGE Using default Kerberos Library directory: $(KFW_LIB_PATH)
59 !ENDIF
60
61 !IF "$(OS)" == "Windows_NT"
62 NULL=
63 !ELSE
64 NULL=nul
65 !ENDIF
66
67 CPP=cl.exe
68 RSC=rc.exe
69
70 !IFDEF DEBUG
71 OUTDIR=.\Debug
72 INTDIR=.\Debug
73 CPP_OBJS=.\Debug/
74 !ELSE
75 OUTDIR=.\Release
76 INTDIR=.\Release
77 CPP_OBJS=.\Release/
78 !ENDIF
79
80
81 ALL : config "$(OUTDIR)\$(OUTFILENAME).lib" "$(OUTDIR)\$(OUTFILENAME).dll"
82
83 CLEAN :
84         -@erase "$(INTDIR)\getaddrinfo.obj"
85         -@erase "$(INTDIR)\pgstrcasecmp.obj"
86         -@erase "$(INTDIR)\pqsignal.obj"
87         -@erase "$(INTDIR)\thread.obj"
88         -@erase "$(INTDIR)\inet_aton.obj"
89         -@erase "$(INTDIR)\crypt.obj"
90         -@erase "$(INTDIR)\noblock.obj"
91         -@erase "$(INTDIR)\chklocale.obj"
92         -@erase "$(INTDIR)\inet_net_ntop.obj"
93         -@erase "$(INTDIR)\md5.obj"
94         -@erase "$(INTDIR)\ip.obj"
95         -@erase "$(INTDIR)\fe-auth.obj"
96         -@erase "$(INTDIR)\fe-protocol2.obj"
97         -@erase "$(INTDIR)\fe-protocol3.obj"
98         -@erase "$(INTDIR)\fe-connect.obj"
99         -@erase "$(INTDIR)\fe-exec.obj"
100         -@erase "$(INTDIR)\fe-lobj.obj"
101         -@erase "$(INTDIR)\fe-misc.obj"
102         -@erase "$(INTDIR)\fe-print.obj"
103         -@erase "$(INTDIR)\fe-secure.obj"
104         -@erase "$(INTDIR)\libpq-events.obj"
105         -@erase "$(INTDIR)\pqexpbuffer.obj"
106         -@erase "$(INTDIR)\win32.obj"
107         -@erase "$(INTDIR)\wchar.obj"
108         -@erase "$(INTDIR)\encnames.obj"
109         -@erase "$(INTDIR)\pthread-win32.obj"
110         -@erase "$(INTDIR)\snprintf.obj"
111         -@erase "$(INTDIR)\strlcpy.obj"
112         -@erase "$(INTDIR)\dirent.obj"
113         -@erase "$(INTDIR)\dirmod.obj"
114         -@erase "$(INTDIR)\pgsleep.obj"
115         -@erase "$(INTDIR)\open.obj"
116         -@erase "$(INTDIR)\win32error.obj"
117         -@erase "$(INTDIR)\win32setlocale.obj"
118         -@erase "$(OUTDIR)\$(OUTFILENAME).lib"
119         -@erase "$(OUTDIR)\$(OUTFILENAME)dll.lib"
120         -@erase "$(OUTDIR)\libpq.res"
121         -@erase "$(OUTDIR)\$(OUTFILENAME).dll"
122         -@erase "$(OUTDIR)\$(OUTFILENAME)dll.exp"
123         -@erase "$(OUTDIR)\$(OUTFILENAME).dll.manifest"
124         -@erase "$(OUTDIR)\*.idb"
125         -@erase pg_config_paths.h"
126
127
128 LIB32=link.exe -lib
129 LIB32_FLAGS=$(LOPT) /nologo /out:"$(OUTDIR)\$(OUTFILENAME).lib"
130 LIB32_OBJS= \
131         "$(INTDIR)\win32.obj" \
132         "$(INTDIR)\getaddrinfo.obj" \
133         "$(INTDIR)\pgstrcasecmp.obj" \
134         "$(INTDIR)\pqsignal.obj" \
135         "$(INTDIR)\thread.obj" \
136         "$(INTDIR)\inet_aton.obj" \
137         "$(INTDIR)\crypt.obj" \
138         "$(INTDIR)\noblock.obj" \
139         "$(INTDIR)\chklocale.obj" \
140         "$(INTDIR)\inet_net_ntop.obj" \
141         "$(INTDIR)\md5.obj" \
142         "$(INTDIR)\ip.obj" \
143         "$(INTDIR)\fe-auth.obj" \
144         "$(INTDIR)\fe-protocol2.obj" \
145         "$(INTDIR)\fe-protocol3.obj" \
146         "$(INTDIR)\fe-connect.obj" \
147         "$(INTDIR)\fe-exec.obj" \
148         "$(INTDIR)\fe-lobj.obj" \
149         "$(INTDIR)\fe-misc.obj" \
150         "$(INTDIR)\fe-print.obj" \
151         "$(INTDIR)\fe-secure.obj" \
152         "$(INTDIR)\libpq-events.obj" \
153         "$(INTDIR)\pqexpbuffer.obj" \
154         "$(INTDIR)\wchar.obj" \
155         "$(INTDIR)\encnames.obj" \
156         "$(INTDIR)\snprintf.obj" \
157         "$(INTDIR)\strlcpy.obj" \
158         "$(INTDIR)\dirent.obj" \
159         "$(INTDIR)\dirmod.obj" \
160         "$(INTDIR)\pgsleep.obj" \
161         "$(INTDIR)\open.obj" \
162         "$(INTDIR)\win32error.obj" \
163         "$(INTDIR)\win32setlocale.obj" \
164         "$(INTDIR)\pthread-win32.obj"
165
166
167 config: ..\..\include\pg_config.h ..\..\include\pg_config_ext.h pg_config_paths.h  ..\..\include\pg_config_os.h
168
169 ..\..\include\pg_config.h: ..\..\include\pg_config.h.win32
170         copy ..\..\include\pg_config.h.win32 ..\..\include\pg_config.h
171
172 ..\..\include\pg_config_ext.h: ..\..\include\pg_config_ext.h.win32
173         copy ..\..\include\pg_config_ext.h.win32 ..\..\include\pg_config_ext.h
174
175 ..\..\include\pg_config_os.h:
176         copy ..\..\include\port\win32.h ..\..\include\pg_config_os.h
177
178 pg_config_paths.h: win32.mak
179         echo #define SYSCONFDIR "" > pg_config_paths.h
180
181 "$(OUTDIR)" :
182     if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
183
184 CPP_PROJ=/nologo /W3 /EHsc $(OPT) /I "..\..\include" /I "..\..\include\port\win32" /I "..\..\include\port\win32_msvc" /I "..\..\port" /I. /I "$(SSL_INC)" \
185  /D "FRONTEND" $(DEBUGDEF) \
186  /D "WIN32" /D "_WINDOWS" /Fp"$(INTDIR)\libpq.pch" \
187  /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c  \
188  /D "_CRT_SECURE_NO_DEPRECATE" $(ADD_DEFINES)
189
190 !IFDEF USE_SSL
191 CPP_PROJ=$(CPP_PROJ) /D USE_SSL
192 SSL_LIBS=ssleay32.lib libeay32.lib gdi32.lib
193 !ENDIF
194
195 !IFDEF USE_KFW
196 CPP_PROJ=$(CPP_PROJ) /D KRB5
197 KFW_LIBS=krb5_32.lib comerr32.lib gssapi32.lib
198 !ENDIF
199
200 !IFDEF ENABLE_THREAD_SAFETY
201 CPP_PROJ=$(CPP_PROJ) /D ENABLE_THREAD_SAFETY
202 !ENDIF
203
204 CPP_SBRS=.
205
206 RSC_PROJ=/l 0x409 /fo"$(INTDIR)\libpq.res"
207
208 LINK32=link.exe
209 LINK32_FLAGS=kernel32.lib user32.lib advapi32.lib shfolder.lib wsock32.lib ws2_32.lib secur32.lib $(SSL_LIBS)  $(KFW_LIB) $(ADD_SECLIB) \
210  /nologo /subsystem:windows /dll $(LOPT) /incremental:no \
211  /pdb:"$(OUTDIR)\libpqdll.pdb" /machine:$(CPU) \
212  /out:"$(OUTDIR)\$(OUTFILENAME).dll"\
213  /implib:"$(OUTDIR)\$(OUTFILENAME)dll.lib"  \
214  /libpath:"$(SSL_LIB_PATH)" /libpath:"$(KFW_LIB_PATH)" \
215  /def:$(OUTFILENAME)dll.def
216 LINK32_OBJS= \
217         "$(OUTDIR)\$(OUTFILENAME).lib" \
218         "$(OUTDIR)\libpq.res"
219
220 # @<< is a Response file, http://www.opussoftware.com/tutorial/TutMakefile.htm
221
222 "$(OUTDIR)\$(OUTFILENAME).lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
223         $(LIB32) @<<
224         $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
225 <<
226
227 "$(INTDIR)\libpq.res" : "$(INTDIR)" libpq-dist.rc
228         $(RSC) $(RSC_PROJ) libpq-dist.rc
229
230
231 "$(OUTDIR)\$(OUTFILENAME).dll" : "$(OUTDIR)" "$(INTDIR)\libpq.res"
232         $(LINK32) @<<
233         $(LINK32_FLAGS) $(LINK32_OBJS)
234 <<
235 # Inclusion of manifest
236 !IF "$(_NMAKE_VER)" != "6.00.8168.0" && "$(_NMAKE_VER)" != "7.00.9466"
237 !IF "$(_NMAKE_VER)" != "6.00.9782.0" && "$(_NMAKE_VER)" != "7.10.3077"
238         mt -manifest $(OUTDIR)\$(OUTFILENAME).dll.manifest -outputresource:$(OUTDIR)\$(OUTFILENAME).dll;2
239 !ENDIF
240 !ENDIF
241
242 "$(INTDIR)\getaddrinfo.obj" : ..\..\port\getaddrinfo.c
243         $(CPP) @<<
244         $(CPP_PROJ) ..\..\port\getaddrinfo.c
245 <<
246
247 "$(INTDIR)\pgstrcasecmp.obj" : ..\..\port\pgstrcasecmp.c
248         $(CPP) @<<
249         $(CPP_PROJ) ..\..\port\pgstrcasecmp.c
250 <<
251
252 "$(INTDIR)\pqsignal.obj" : ..\..\port\pqsignal.c
253         $(CPP) @<<
254         $(CPP_PROJ) ..\..\port\pqsignal.c
255 <<
256
257 "$(INTDIR)\thread.obj" : ..\..\port\thread.c
258         $(CPP) @<<
259         $(CPP_PROJ) ..\..\port\thread.c
260 <<
261
262 "$(INTDIR)\inet_aton.obj" : ..\..\port\inet_aton.c
263         $(CPP) @<<
264         $(CPP_PROJ) ..\..\port\inet_aton.c
265 <<
266
267 "$(INTDIR)\crypt.obj" : ..\..\port\crypt.c
268         $(CPP) @<<
269         $(CPP_PROJ) ..\..\port\crypt.c
270 <<
271
272 "$(INTDIR)\noblock.obj" : ..\..\port\noblock.c
273         $(CPP) @<<
274         $(CPP_PROJ) ..\..\port\noblock.c
275 <<
276
277 "$(INTDIR)\chklocale.obj" : ..\..\port\chklocale.c
278         $(CPP) @<<
279         $(CPP_PROJ) ..\..\port\chklocale.c
280 <<
281
282 "$(INTDIR)\inet_net_ntop.obj" : ..\..\port\inet_net_ntop.c
283         $(CPP) @<<
284         $(CPP_PROJ) ..\..\port\inet_net_ntop.c
285 <<
286
287 "$(INTDIR)\md5.obj" : ..\..\backend\libpq\md5.c
288         $(CPP) @<<
289         $(CPP_PROJ) ..\..\backend\libpq\md5.c
290 <<
291
292 "$(INTDIR)\ip.obj" : ..\..\backend\libpq\ip.c
293         $(CPP) @<<
294         $(CPP_PROJ) ..\..\backend\libpq\ip.c
295 <<
296
297 "$(INTDIR)\wchar.obj" : ..\..\backend\utils\mb\wchar.c
298         $(CPP) @<<
299         $(CPP_PROJ) /I"." ..\..\backend\utils\mb\wchar.c
300 <<
301
302
303 "$(INTDIR)\encnames.obj" : ..\..\backend\utils\mb\encnames.c
304         $(CPP) @<<
305         $(CPP_PROJ) /I"." ..\..\backend\utils\mb\encnames.c
306 <<
307
308 "$(INTDIR)\snprintf.obj" : ..\..\port\snprintf.c
309         $(CPP) @<<
310         $(CPP_PROJ) /I"." ..\..\port\snprintf.c
311 <<
312
313 "$(INTDIR)\strlcpy.obj" : ..\..\port\strlcpy.c
314         $(CPP) @<<
315         $(CPP_PROJ) /I"." ..\..\port\strlcpy.c
316 <<
317
318 "$(INTDIR)\dirent.obj" : ..\..\port\dirent.c
319         $(CPP) @<<
320         $(CPP_PROJ) /I"." ..\..\port\dirent.c
321 <<
322
323 "$(INTDIR)\dirmod.obj" : ..\..\port\dirmod.c
324         $(CPP) @<<
325         $(CPP_PROJ) /I"." ..\..\port\dirmod.c
326 <<
327
328 "$(INTDIR)\pgsleep.obj" : ..\..\port\pgsleep.c
329         $(CPP) @<<
330         $(CPP_PROJ) /I"." ..\..\port\pgsleep.c
331 <<
332
333 "$(INTDIR)\open.obj" : ..\..\port\open.c
334         $(CPP) @<<
335         $(CPP_PROJ) /I"." ..\..\port\open.c
336 <<
337
338 "$(INTDIR)\win32error.obj" : ..\..\port\win32error.c
339         $(CPP) @<<
340         $(CPP_PROJ) /I"." ..\..\port\win32error.c
341 <<
342
343 "$(INTDIR)\win32setlocale.obj" : ..\..\port\win32setlocale.c
344         $(CPP) @<<
345         $(CPP_PROJ) /I"." ..\..\port\win32setlocale.c
346 <<
347
348 .c{$(CPP_OBJS)}.obj:
349         $(CPP) $(CPP_PROJ) $<
350
351 .c.obj:
352         $(CPP) $(CPP_PROJ) $<