bcc32.mak 5.66 KB
Newer Older
1 2 3 4 5 6
# Makefile for Borland C++ 5.5

# Will build a Win32 static library libpq.lib
#        and a Win32 dynamic library libpq.dll with import library libpqdll.lib

# Borland C++ base install directory goes here
7
# BCB=c:\Borland\Bcc55
8 9 10 11 12 13 14 15 16 17

!IF "$(BCB)" == ""
!MESSAGE You must edit bcc32.mak and define BCB at the top
!ERROR misssing BCB
!ENDIF

!IF "$(__NMAKE__)" == ""
!MESSAGE You must use the -N compatibility flag, e.g. make -N -f bcc32.make
!ERROR missing -N
!ENDIF
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34

!MESSAGE Building the Win32 DLL and Static Library...
!MESSAGE
!IF "$(CFG)" == ""
CFG=Release
!MESSAGE No configuration specified. Defaulting to Release.
!MESSAGE
!ELSE
!MESSAGE Configuration "$(CFG)"
!MESSAGE
!ENDIF

!IF "$(CFG)" != "Release" && "$(CFG)" != "Debug"
!MESSAGE Invalid configuration "$(CFG)" specified.
!MESSAGE You can specify a configuration when running MAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
35
!MESSAGE make -N -DCFG=[Release | Debug] -f bcc32.mak
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "Release" (Win32 Release DLL and Static Library)
!MESSAGE "Debug" (Win32 Debug DLL and Static Library)
!MESSAGE
!ERROR An invalid configuration was specified.
!ENDIF

!IF "$(OS)" == "Windows_NT"
NULL=
!ELSE 
NULL=nul
!ENDIF 

!IF "$(CFG)" == "Debug"
DEBUG=1
OUTDIR=.\Debug
INTDIR=.\Debug
55
!ELSE
56 57
OUTDIR=.\Release
INTDIR=.\Release
58 59 60
!ENDIF

OUTFILENAME=blibpq
61 62 63 64

USERDEFINES=FRONTEND;NDEBUG;WIN32;_WINDOWS;HAVE_VSNPRINTF;HAVE_STRDUP;

CPP=bcc32.exe
65
CPP_PROJ = -I$(BCB)\include;..\..\include -n"$(INTDIR)" -WD -c -D$(USERDEFINES) -tWM \
66 67 68 69 70 71 72 73
		-a8 -X -w-use -w-par -w-pia -w-csu -w-aus -w-ccc

!IFDEF DEBUG
CPP_PROJ	= $(CPP_PROJ) -Od -r- -k -v -y -vi- -D_DEBUG
!else
CPP_PROJ	= $(CPP_PROJ) -O -Oi -OS -DNDEBUG
!endif

74 75
ALL : config "$(OUTDIR)" "$(OUTDIR)\blibpq.dll" "$(OUTDIR)\blibpq.lib"

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
CLEAN :
	-@erase "$(INTDIR)\getaddrinfo.obj"
	-@erase "$(INTDIR)\pgstrcasecmp.obj"
	-@erase "$(INTDIR)\thread.obj"
	-@erase "$(INTDIR)\inet_aton.obj"
	-@erase "$(INTDIR)\crypt.obj"
	-@erase "$(INTDIR)\noblock.obj"
	-@erase "$(INTDIR)\md5.obj"
	-@erase "$(INTDIR)\ip.obj"
	-@erase "$(INTDIR)\fe-auth.obj"
	-@erase "$(INTDIR)\fe-protocol2.obj"
	-@erase "$(INTDIR)\fe-protocol3.obj"
	-@erase "$(INTDIR)\fe-connect.obj"
	-@erase "$(INTDIR)\fe-exec.obj"
	-@erase "$(INTDIR)\fe-lobj.obj"
	-@erase "$(INTDIR)\fe-misc.obj"
	-@erase "$(INTDIR)\fe-print.obj"
	-@erase "$(INTDIR)\fe-secure.obj"
	-@erase "$(INTDIR)\pqexpbuffer.obj"
	-@erase "$(INTDIR)\pqsignal.obj"
	-@erase "$(OUTDIR)\libpqdll.obj"
	-@erase "$(OUTDIR)\win32.obj"
	-@erase "$(INTDIR)\wchar.obj"
	-@erase "$(INTDIR)\encnames.obj"
	-@erase "$(INTDIR)\pthread-win32.obj"
	-@erase "$(OUTDIR)\$(OUTFILENAME).lib"
	-@erase "$(OUTDIR)\$(OUTFILENAME)dll.lib"
	-@erase "$(OUTDIR)\libpq.res"
	-@erase "$(OUTDIR)\$(OUTFILENAME).dll"
	-@erase "$(OUTDIR)\$(OUTFILENAME).tds"
	-@erase "$(INTDIR)\pg_config_paths.h"

108

109 110 111
LIB32=tlib.exe
LIB32_FLAGS= 
LIB32_OBJS= \
112
	"$(INTDIR)\win32.obj" \
113
	"$(INTDIR)\getaddrinfo.obj" \
114
	"$(INTDIR)\pgstrcasecmp.obj" \
115
	"$(INTDIR)\thread.obj" \
116 117
	"$(INTDIR)\inet_aton.obj" \
	"$(INTDIR)\crypt.obj" \
118
	"$(INTDIR)\noblock.obj" \
119
	"$(INTDIR)\md5.obj" \
120
	"$(INTDIR)\ip.obj" \
121
	"$(INTDIR)\fe-auth.obj" \
122 123
	"$(INTDIR)\fe-protocol2.obj" \
	"$(INTDIR)\fe-protocol3.obj" \
124 125 126 127 128 129 130
	"$(INTDIR)\fe-connect.obj" \
	"$(INTDIR)\fe-exec.obj" \
	"$(INTDIR)\fe-lobj.obj" \
	"$(INTDIR)\fe-misc.obj" \
	"$(INTDIR)\fe-print.obj" \
	"$(INTDIR)\fe-secure.obj" \
	"$(INTDIR)\pqexpbuffer.obj" \
131
	"$(INTDIR)\pqsignal.obj" \
132
	"$(INTDIR)\wchar.obj" \
133 134
	"$(INTDIR)\encnames.obj" \
	"$(INTDIR)\pthread-win32.obj"
135

136 137 138 139 140 141 142 143 144

config: ..\..\include\pg_config.h pthread.h pg_config_paths.h

..\..\include\pg_config.h: ..\..\include\pg_config.h.win32
	copy ..\..\include\pg_config.h.win32 ..\..\include\pg_config.h

pthread.h: pthread.h.win32
	copy pthread.h.win32 pthread.h

145 146
pg_config_paths.h: bcc32.mak
	echo \#define SYSCONFDIR "" > pg_config_paths.h
147 148 149 150

"$(OUTDIR)" :
	@if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"

151 152 153 154 155 156 157 158
RSC=brcc32.exe
RSC_PROJ=-l 0x409 -i$(BCB)\include -fo"$(INTDIR)\libpq.res"

LINK32=ilink32.exe
LINK32_FLAGS = -Gn -L$(BCB)\lib;$(INTDIR); -x -Tpd -v
LINK32_OBJS= "$(INTDIR)\libpqdll.obj"

# @<< is a Response file, http://www.opussoftware.com/tutorial/TutMakefile.htm
159

160
"$(OUTDIR)\blibpq.dll": "$(OUTDIR)\blibpq.lib" $(LINK32_OBJS) "$(INTDIR)\libpq.res" blibpqdll.def 
161
	$(LINK32) @<<
162 163 164 165 166
	$(LINK32_FLAGS) +
	c0d32.obj $(LINK32_OBJS), +
	$@,, +
	"$(OUTDIR)\blibpq.lib" import32.lib cw32mti.lib, +
	blibpqdll.def,"$(INTDIR)\libpq.res"
167
<<
168
	implib -w "$(OUTDIR)\blibpqdll.lib" blibpqdll.def $@
169 170

"$(INTDIR)\libpq.res" : "$(INTDIR)" libpq.rc
171
	$(RSC) $(RSC_PROJ) libpq.rc
172 173

"$(OUTDIR)\blibpq.lib": $(LIB32_OBJS)
174
	$(LIB32) $@ @<<
175 176
+-"$(**: =" &^
+-")"
177
<<
178

179

180
"$(INTDIR)\getaddrinfo.obj" : ..\..\port\getaddrinfo.c
181
	$(CPP) @<<
182
	$(CPP_PROJ) ..\..\port\getaddrinfo.c
183
<<
184 185

"$(INTDIR)\pgstrcasecmp.obj" : ..\..\port\pgstrcasecmp.c
186
	$(CPP) @<<
187
	$(CPP_PROJ) ..\..\port\pgstrcasecmp.c
188
<<
189 190

"$(INTDIR)\thread.obj" : ..\..\port\thread.c
191
	$(CPP) @<<
192
	$(CPP_PROJ) ..\..\port\thread.c
193
<<
194 195

"$(INTDIR)\inet_aton.obj" : ..\..\port\inet_aton.c
196
	$(CPP) @<<
197
	$(CPP_PROJ) ..\..\port\inet_aton.c
198
<<
199 200

"$(INTDIR)\crypt.obj" : ..\..\port\crypt.c
201
	$(CPP) @<<
202
	$(CPP_PROJ) ..\..\port\crypt.c
203
<<
204 205

"$(INTDIR)\noblock.obj" : ..\..\port\noblock.c
206
	$(CPP) @<<
207
	$(CPP_PROJ) ..\..\port\noblock.c
208
<<
209 210

"$(INTDIR)\md5.obj" : ..\..\backend\libpq\md5.c
211
	$(CPP) @<<
212
	$(CPP_PROJ) ..\..\backend\libpq\md5.c
213
<<
214 215

"$(INTDIR)\ip.obj" : ..\..\backend\libpq\ip.c
216
	$(CPP) @<<
217
	$(CPP_PROJ) ..\..\backend\libpq\ip.c
218
<<
219 220

"$(INTDIR)\wchar.obj" : ..\..\backend\utils\mb\wchar.c
221 222 223
	$(CPP) @<<
	$(CPP_PROJ) /I"." ..\..\backend\utils\mb\wchar.c
<<
224 225 226


"$(INTDIR)\encnames.obj" : ..\..\backend\utils\mb\encnames.c
227 228 229
	$(CPP) @<<
	$(CPP_PROJ) /I"." ..\..\backend\utils\mb\encnames.c
<<
230

231
.c.obj:
232
	$(CPP) $(CPP_PROJ) $<