1 # Makefile for Microsoft Visual C++ 7.1-8.0
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
10 ENABLE_THREAD_SAFETY=1
12 # CPU="i386" or CPU environment of nmake.exe (AMD64 or IA64)
14 !IF ("$(CPU)" == "")||("$(CPU)" == "i386")
16 !MESSAGE Building the Win32 static library...
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...
24 !MESSAGE Please check a CPU=$(CPU) ?
25 !MESSAGE CPU=i386 or AMD64 or IA64
41 !IF "$(SSL_INC)" == ""
42 SSL_INC=C:\OpenSSL\include
43 !MESSAGE Using default OpenSSL Include directory: $(SSL_INC)
46 !IF "$(SSL_LIB_PATH)" == ""
47 SSL_LIB_PATH=C:\OpenSSL\lib\VC
48 !MESSAGE Using default OpenSSL Library directory: $(SSL_LIB_PATH)
51 !IF "$(KFW_INC)" == ""
52 KFW_INC=C:\kfw-2.6.5\inc
53 !MESSAGE Using default Kerberos Include directory: $(KFW_INC)
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)
61 !IF "$(OS)" == "Windows_NT"
81 ALL : config "$(OUTDIR)\$(OUTFILENAME).lib" "$(OUTDIR)\$(OUTFILENAME).dll"
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"
129 LIB32_FLAGS=$(LOPT) /nologo /out:"$(OUTDIR)\$(OUTFILENAME).lib"
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" \
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"
167 config: ..\..\include\pg_config.h ..\..\include\pg_config_ext.h pg_config_paths.h ..\..\include\pg_config_os.h
169 ..\..\include\pg_config.h: ..\..\include\pg_config.h.win32
170 copy ..\..\include\pg_config.h.win32 ..\..\include\pg_config.h
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
175 ..\..\include\pg_config_os.h:
176 copy ..\..\include\port\win32.h ..\..\include\pg_config_os.h
178 pg_config_paths.h: win32.mak
179 echo #define SYSCONFDIR "" > pg_config_paths.h
182 if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
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)
191 CPP_PROJ=$(CPP_PROJ) /D USE_SSL
192 SSL_LIBS=ssleay32.lib libeay32.lib gdi32.lib
196 CPP_PROJ=$(CPP_PROJ) /D KRB5
197 KFW_LIBS=krb5_32.lib comerr32.lib gssapi32.lib
200 !IFDEF ENABLE_THREAD_SAFETY
201 CPP_PROJ=$(CPP_PROJ) /D ENABLE_THREAD_SAFETY
206 RSC_PROJ=/l 0x409 /fo"$(INTDIR)\libpq.res"
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
217 "$(OUTDIR)\$(OUTFILENAME).lib" \
218 "$(OUTDIR)\libpq.res"
220 # @<< is a Response file, http://www.opussoftware.com/tutorial/TutMakefile.htm
222 "$(OUTDIR)\$(OUTFILENAME).lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
224 $(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
227 "$(INTDIR)\libpq.res" : "$(INTDIR)" libpq-dist.rc
228 $(RSC) $(RSC_PROJ) libpq-dist.rc
231 "$(OUTDIR)\$(OUTFILENAME).dll" : "$(OUTDIR)" "$(INTDIR)\libpq.res"
233 $(LINK32_FLAGS) $(LINK32_OBJS)
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
242 "$(INTDIR)\getaddrinfo.obj" : ..\..\port\getaddrinfo.c
244 $(CPP_PROJ) ..\..\port\getaddrinfo.c
247 "$(INTDIR)\pgstrcasecmp.obj" : ..\..\port\pgstrcasecmp.c
249 $(CPP_PROJ) ..\..\port\pgstrcasecmp.c
252 "$(INTDIR)\pqsignal.obj" : ..\..\port\pqsignal.c
254 $(CPP_PROJ) ..\..\port\pqsignal.c
257 "$(INTDIR)\thread.obj" : ..\..\port\thread.c
259 $(CPP_PROJ) ..\..\port\thread.c
262 "$(INTDIR)\inet_aton.obj" : ..\..\port\inet_aton.c
264 $(CPP_PROJ) ..\..\port\inet_aton.c
267 "$(INTDIR)\crypt.obj" : ..\..\port\crypt.c
269 $(CPP_PROJ) ..\..\port\crypt.c
272 "$(INTDIR)\noblock.obj" : ..\..\port\noblock.c
274 $(CPP_PROJ) ..\..\port\noblock.c
277 "$(INTDIR)\chklocale.obj" : ..\..\port\chklocale.c
279 $(CPP_PROJ) ..\..\port\chklocale.c
282 "$(INTDIR)\inet_net_ntop.obj" : ..\..\port\inet_net_ntop.c
284 $(CPP_PROJ) ..\..\port\inet_net_ntop.c
287 "$(INTDIR)\md5.obj" : ..\..\backend\libpq\md5.c
289 $(CPP_PROJ) ..\..\backend\libpq\md5.c
292 "$(INTDIR)\ip.obj" : ..\..\backend\libpq\ip.c
294 $(CPP_PROJ) ..\..\backend\libpq\ip.c
297 "$(INTDIR)\wchar.obj" : ..\..\backend\utils\mb\wchar.c
299 $(CPP_PROJ) /I"." ..\..\backend\utils\mb\wchar.c
303 "$(INTDIR)\encnames.obj" : ..\..\backend\utils\mb\encnames.c
305 $(CPP_PROJ) /I"." ..\..\backend\utils\mb\encnames.c
308 "$(INTDIR)\snprintf.obj" : ..\..\port\snprintf.c
310 $(CPP_PROJ) /I"." ..\..\port\snprintf.c
313 "$(INTDIR)\strlcpy.obj" : ..\..\port\strlcpy.c
315 $(CPP_PROJ) /I"." ..\..\port\strlcpy.c
318 "$(INTDIR)\dirent.obj" : ..\..\port\dirent.c
320 $(CPP_PROJ) /I"." ..\..\port\dirent.c
323 "$(INTDIR)\dirmod.obj" : ..\..\port\dirmod.c
325 $(CPP_PROJ) /I"." ..\..\port\dirmod.c
328 "$(INTDIR)\pgsleep.obj" : ..\..\port\pgsleep.c
330 $(CPP_PROJ) /I"." ..\..\port\pgsleep.c
333 "$(INTDIR)\open.obj" : ..\..\port\open.c
335 $(CPP_PROJ) /I"." ..\..\port\open.c
338 "$(INTDIR)\win32error.obj" : ..\..\port\win32error.c
340 $(CPP_PROJ) /I"." ..\..\port\win32error.c
343 "$(INTDIR)\win32setlocale.obj" : ..\..\port\win32setlocale.c
345 $(CPP_PROJ) /I"." ..\..\port\win32setlocale.c
349 $(CPP) $(CPP_PROJ) $<
352 $(CPP) $(CPP_PROJ) $<