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)\thread.obj"
87
-@erase "$(INTDIR)\inet_aton.obj"
88
-@erase "$(INTDIR)\crypt.obj"
89
-@erase "$(INTDIR)\noblock.obj"
90
-@erase "$(INTDIR)\md5.obj"
91
-@erase "$(INTDIR)\ip.obj"
92
-@erase "$(INTDIR)\fe-auth.obj"
93
-@erase "$(INTDIR)\fe-protocol2.obj"
94
-@erase "$(INTDIR)\fe-protocol3.obj"
95
-@erase "$(INTDIR)\fe-connect.obj"
96
-@erase "$(INTDIR)\fe-exec.obj"
97
-@erase "$(INTDIR)\fe-lobj.obj"
98
-@erase "$(INTDIR)\fe-misc.obj"
99
-@erase "$(INTDIR)\fe-print.obj"
100
-@erase "$(INTDIR)\fe-secure.obj"
101
-@erase "$(INTDIR)\libpq-events.obj"
102
-@erase "$(INTDIR)\pqexpbuffer.obj"
103
-@erase "$(INTDIR)\pqsignal.obj"
104
-@erase "$(INTDIR)\win32.obj"
105
-@erase "$(INTDIR)\wchar.obj"
106
-@erase "$(INTDIR)\encnames.obj"
107
-@erase "$(INTDIR)\pthread-win32.obj"
108
-@erase "$(INTDIR)\snprintf.obj"
109
-@erase "$(INTDIR)\strlcpy.obj"
110
-@erase "$(INTDIR)\dirent.obj"
111
-@erase "$(INTDIR)\dirmod.obj"
112
-@erase "$(INTDIR)\pgsleep.obj"
113
-@erase "$(INTDIR)\open.obj"
114
-@erase "$(INTDIR)\win32error.obj"
115
-@erase "$(OUTDIR)\$(OUTFILENAME).lib"
116
-@erase "$(OUTDIR)\$(OUTFILENAME)dll.lib"
117
-@erase "$(OUTDIR)\libpq.res"
118
-@erase "$(OUTDIR)\$(OUTFILENAME).dll"
119
-@erase "$(OUTDIR)\$(OUTFILENAME)dll.exp"
120
-@erase "$(OUTDIR)\$(OUTFILENAME).dll.manifest"
121
-@erase "$(OUTDIR)\*.idb"
122
-@erase pg_config_paths.h"
126
LIB32_FLAGS=$(LOPT) /nologo /out:"$(OUTDIR)\$(OUTFILENAME).lib"
128
"$(INTDIR)\win32.obj" \
129
"$(INTDIR)\getaddrinfo.obj" \
130
"$(INTDIR)\pgstrcasecmp.obj" \
131
"$(INTDIR)\thread.obj" \
132
"$(INTDIR)\inet_aton.obj" \
133
"$(INTDIR)\crypt.obj" \
134
"$(INTDIR)\noblock.obj" \
135
"$(INTDIR)\md5.obj" \
137
"$(INTDIR)\fe-auth.obj" \
138
"$(INTDIR)\fe-protocol2.obj" \
139
"$(INTDIR)\fe-protocol3.obj" \
140
"$(INTDIR)\fe-connect.obj" \
141
"$(INTDIR)\fe-exec.obj" \
142
"$(INTDIR)\fe-lobj.obj" \
143
"$(INTDIR)\fe-misc.obj" \
144
"$(INTDIR)\fe-print.obj" \
145
"$(INTDIR)\fe-secure.obj" \
146
"$(INTDIR)\libpq-events.obj" \
147
"$(INTDIR)\pqexpbuffer.obj" \
148
"$(INTDIR)\pqsignal.obj" \
149
"$(INTDIR)\wchar.obj" \
150
"$(INTDIR)\encnames.obj" \
151
"$(INTDIR)\snprintf.obj" \
152
"$(INTDIR)\strlcpy.obj" \
153
"$(INTDIR)\dirent.obj" \
154
"$(INTDIR)\dirmod.obj" \
155
"$(INTDIR)\pgsleep.obj" \
156
"$(INTDIR)\open.obj" \
157
"$(INTDIR)\win32error.obj" \
158
"$(INTDIR)\pthread-win32.obj"
161
config: ..\..\include\pg_config.h pg_config_paths.h ..\..\include\pg_config_os.h
163
..\..\include\pg_config.h: ..\..\include\pg_config.h.win32
164
copy ..\..\include\pg_config.h.win32 ..\..\include\pg_config.h
166
..\..\include\pg_config_os.h:
167
copy ..\..\include\port\win32.h ..\..\include\pg_config_os.h
169
pg_config_paths.h: win32.mak
170
echo #define SYSCONFDIR "" > pg_config_paths.h
173
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
175
CPP_PROJ=/nologo /W3 /EHsc $(OPT) /I "..\..\include" /I "..\..\include\port\win32" /I "..\..\include\port\win32_msvc" /I "..\..\port" /I. /I "$(SSL_INC)" \
176
/D "FRONTEND" $(DEBUGDEF) \
177
/D "WIN32" /D "_WINDOWS" /Fp"$(INTDIR)\libpq.pch" \
178
/Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c \
179
/D "_CRT_SECURE_NO_DEPRECATE" $(ADD_DEFINES)
182
CPP_PROJ=$(CPP_PROJ) /D USE_SSL
183
SSL_LIBS=ssleay32.lib libeay32.lib gdi32.lib
187
CPP_PROJ=$(CPP_PROJ) /D KRB5
188
KFW_LIBS=krb5_32.lib comerr32.lib gssapi32.lib
191
!IFDEF ENABLE_THREAD_SAFETY
192
CPP_PROJ=$(CPP_PROJ) /D ENABLE_THREAD_SAFETY
197
RSC_PROJ=/l 0x409 /fo"$(INTDIR)\libpq.res"
200
LINK32_FLAGS=kernel32.lib user32.lib advapi32.lib shfolder.lib wsock32.lib secur32.lib $(SSL_LIBS) $(KFW_LIB) $(ADD_SECLIB) \
201
/nologo /subsystem:windows /dll $(LOPT) /incremental:no \
202
/pdb:"$(OUTDIR)\libpqdll.pdb" /machine:$(CPU) \
203
/out:"$(OUTDIR)\$(OUTFILENAME).dll"\
204
/implib:"$(OUTDIR)\$(OUTFILENAME)dll.lib" \
205
/libpath:"$(SSL_LIB_PATH)" /libpath:"$(KFW_LIB_PATH)" \
206
/def:$(OUTFILENAME)dll.def
208
"$(OUTDIR)\$(OUTFILENAME).lib" \
209
"$(OUTDIR)\libpq.res"
211
# @<< is a Response file, http://www.opussoftware.com/tutorial/TutMakefile.htm
213
"$(OUTDIR)\$(OUTFILENAME).lib" : "$(OUTDIR)" $(DEF_FILE) $(LIB32_OBJS)
215
$(LIB32_FLAGS) $(DEF_FLAGS) $(LIB32_OBJS)
218
"$(INTDIR)\libpq.res" : "$(INTDIR)" libpq-dist.rc
219
$(RSC) $(RSC_PROJ) libpq-dist.rc
222
"$(OUTDIR)\$(OUTFILENAME).dll" : "$(OUTDIR)" "$(INTDIR)\libpq.res"
224
$(LINK32_FLAGS) $(LINK32_OBJS)
226
# Inclusion of manifest
227
!IF "$(_NMAKE_VER)" != "6.00.8168.0" && "$(_NMAKE_VER)" != "7.00.9466"
228
!IF "$(_NMAKE_VER)" != "6.00.9782.0" && "$(_NMAKE_VER)" != "7.10.3077"
229
mt -manifest $(OUTDIR)\$(OUTFILENAME).dll.manifest -outputresource:$(OUTDIR)\$(OUTFILENAME).dll;2
233
"$(INTDIR)\getaddrinfo.obj" : ..\..\port\getaddrinfo.c
235
$(CPP_PROJ) ..\..\port\getaddrinfo.c
238
"$(INTDIR)\pgstrcasecmp.obj" : ..\..\port\pgstrcasecmp.c
240
$(CPP_PROJ) ..\..\port\pgstrcasecmp.c
243
"$(INTDIR)\thread.obj" : ..\..\port\thread.c
245
$(CPP_PROJ) ..\..\port\thread.c
248
"$(INTDIR)\inet_aton.obj" : ..\..\port\inet_aton.c
250
$(CPP_PROJ) ..\..\port\inet_aton.c
253
"$(INTDIR)\crypt.obj" : ..\..\port\crypt.c
255
$(CPP_PROJ) ..\..\port\crypt.c
258
"$(INTDIR)\noblock.obj" : ..\..\port\noblock.c
260
$(CPP_PROJ) ..\..\port\noblock.c
263
"$(INTDIR)\md5.obj" : ..\..\backend\libpq\md5.c
265
$(CPP_PROJ) ..\..\backend\libpq\md5.c
268
"$(INTDIR)\ip.obj" : ..\..\backend\libpq\ip.c
270
$(CPP_PROJ) ..\..\backend\libpq\ip.c
273
"$(INTDIR)\wchar.obj" : ..\..\backend\utils\mb\wchar.c
275
$(CPP_PROJ) /I"." ..\..\backend\utils\mb\wchar.c
279
"$(INTDIR)\encnames.obj" : ..\..\backend\utils\mb\encnames.c
281
$(CPP_PROJ) /I"." ..\..\backend\utils\mb\encnames.c
284
"$(INTDIR)\snprintf.obj" : ..\..\port\snprintf.c
286
$(CPP_PROJ) /I"." ..\..\port\snprintf.c
289
"$(INTDIR)\strlcpy.obj" : ..\..\port\strlcpy.c
291
$(CPP_PROJ) /I"." ..\..\port\strlcpy.c
294
"$(INTDIR)\dirent.obj" : ..\..\port\dirent.c
296
$(CPP_PROJ) /I"." ..\..\port\dirent.c
299
"$(INTDIR)\dirmod.obj" : ..\..\port\dirmod.c
301
$(CPP_PROJ) /I"." ..\..\port\dirmod.c
304
"$(INTDIR)\pgsleep.obj" : ..\..\port\pgsleep.c
306
$(CPP_PROJ) /I"." ..\..\port\pgsleep.c
309
"$(INTDIR)\open.obj" : ..\..\port\open.c
311
$(CPP_PROJ) /I"." ..\..\port\open.c
314
"$(INTDIR)\win32error.obj" : ..\..\port\win32error.c
316
$(CPP_PROJ) /I"." ..\..\port\win32error.c
320
$(CPP) $(CPP_PROJ) $<
323
$(CPP) $(CPP_PROJ) $<