File: vc-libpqxx.mak.template

package info (click to toggle)
libpqxx 4.0.1%2Bdfsg3-8
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 16,012 kB
  • ctags: 9,469
  • sloc: sh: 11,289; cpp: 10,801; xml: 1,256; makefile: 287; ansic: 195; python: 159
file content (227 lines) | stat: -rw-r--r-- 7,358 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
# Visual C++ makefile for libpqxx
# This file was created by Bart Samwel.

default:
	@echo LIBPQXX Makefile for Visual C++ Available Targets
	@echo -------------------------------------------------
	@echo.
	@echo Static library targets:
	@echo.
	@echo STATIC
	@echo STATICRELEASE (release mode only)
	@echo STATICDEBUG (debug mode only)
	@echo.
	@echo Dynamic Link Library (DLL) targets:
	@echo.
	@echo DLL
	@echo DLLRELEASE
	@echo DLLDEBUG
	@echo.
	@echo Other targets:
	@echo.
	@echo ALL: build both the DLL and STATIC builds.
	@echo CLEAN: clean up all output.
	@echo.
	@echo It is recommended that you link to libpqxx statically. Therefore, you should
	@echo normally build the "STATIC" target. If you want to link your programto libpqxx
	@echo dynamically, build target "DLL" and compile your program with preprocessor
	@echo define "PQXX_SHARED". This will make your program link against the DLL version
	@echo of libpqxx.

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

!include win32/common



########################################################
# Configuration
########################################################



# Output DLL/LIB files. No extensions, they are added automatically!
OUTDIR=lib
OUTFILE_STATICDEBUG=$(OUTDIR)\libpqxx_staticD
OUTFILE_STATICRELEASE=$(OUTDIR)\libpqxx_static
OUTFILE_DLLDEBUG=$(OUTDIR)\libpqxxD
OUTFILE_DLLRELEASE=$(OUTDIR)\libpqxx

# Directories for intermediate output.
INTDIR_STATICDEBUG=ObjStaticDebug
INTDIR_STATICRELEASE=ObjStaticRelease
INTDIR_DLLDEBUG=ObjDllDebug
INTDIR_DLLRELEASE=ObjDllRelease

# C++ compiler, linker (for DLLs) and library tool (for static builds).
CXX=cl.exe
LINK=link.exe
LIBTOOL=link.exe -lib

# The options common to all the different builds.
CXX_FLAGS_BASE=/nologo /W3 /EHsc /FD /GR /c \
    /I "include" /I $(PGSQLINC) /I $(LIBPQINC) \
    /D PGSTD=$(STD) /D "WIN32" /D "_MBCS" /D "_WINDOWS" /D "PQXX_INTERNAL"

CXX_FLAGS_DLLRELEASE=$(CXX_FLAGS_BASE) /MD  /D "NDEBUG" /D "PQXX_SHARED"
CXX_FLAGS_DLLDEBUG=$(CXX_FLAGS_BASE) /MDd /Gm /ZI /Od /D "_DEBUG" /D "PQXX_SHARED" /RTC1
CXX_FLAGS_STATICRELEASE=$(CXX_FLAGS_BASE) /MD /D "_LIB" /D "NDEBUG"
CXX_FLAGS_STATICDEBUG=$(CXX_FLAGS_BASE) /MDd /Gm /ZI /Od /D "_LIB" /D "_DEBUG" /RTC1

LINK_FLAGS_BASE=kernel32.lib ws2_32.lib advapi32.lib /nologo /dll /machine:I386 shell32.lib secur32.lib wldap32.lib

LINK_FLAGS_DLLRELEASE=$(LINK_FLAGS_BASE) /libpath:$(LIBPQPATH) $(LIBPQLIB)
LINK_FLAGS_DLLDEBUG=$(LINK_FLAGS_BASE) /libpath:$(LIBPQDPATH) $(LIBPQDLIB) /debug

LIB_FLAGS=/nologo



########################################################
# List of intermediate files
########################################################

OBJ_STATICDEBUG=\
    ###MAKTEMPLATE:FOREACH src/*.cxx
       "$(INTDIR_STATICDEBUG)\###BASENAME###.obj" \
    ###MAKTEMPLATE:ENDFOREACH

OBJ_STATICRELEASE=\
    ###MAKTEMPLATE:FOREACH src/*.cxx
       "$(INTDIR_STATICRELEASE)\###BASENAME###.obj" \
    ###MAKTEMPLATE:ENDFOREACH

OBJ_DLLDEBUG=\
    ###MAKTEMPLATE:FOREACH src/*.cxx,win32/libpqxx.cxx
       "$(INTDIR_DLLDEBUG)\###BASENAME###.obj" \
    ###MAKTEMPLATE:ENDFOREACH

OBJ_DLLRELEASE=\
    ###MAKTEMPLATE:FOREACH src/*.cxx,win32/libpqxx.cxx
       "$(INTDIR_DLLRELEASE)\###BASENAME###.obj" \
    ###MAKTEMPLATE:ENDFOREACH



########################################################
# Logical targets
########################################################

static: staticdebug staticrelease

dll: dlldebug dllrelease

all: static dll

$(OUTDIR):
	-@mkdir $(OUTDIR)

staticdebug: $(OUTFILE_STATICDEBUG).lib $(OUTDIR) $(OUTDIR)\$(LIBPQDDLL) $(OUTDIR)\$(LIBPQDLIB)
staticrelease: $(OUTFILE_STATICRELEASE).lib $(OUTDIR) $(OUTDIR)\$(LIBPQDLL) $(OUTDIR)\$(LIBPQLIB)

dlldebug: $(OUTFILE_DLLDEBUG).dll $(OUTDIR) $(OUTDIR)\$(LIBPQDDLL)

dllrelease: $(OUTFILE_DLLRELEASE).dll $(OUTDIR) $(OUTDIR)\$(LIBPQDLL)

clean:
	@echo Deleting all intermediate output files and the contents of $(OUTDIR).
	-@del /Q "$(INTDIR_STATICDEBUG)\*"
	-@del /Q "$(INTDIR_STATICRELEASE)\*"
	-@del /Q "$(INTDIR_DLLDEBUG)\*"
	-@del /Q "$(INTDIR_DLLRELEASE)\*"
	-@del /Q "$(OUTDIR)\*"



########################################################
# Physical targets
########################################################

$(OUTDIR)\$(LIBPQDLL): $(OUTDIR)
	@echo -------------------------------------------------------------
	@echo Copying $(LIBPQDLL) to $(OUTDIR).
	@echo.
	@echo IMPORTANT: you MUST copy this $(LIBPQDLL) into the directory
	@echo where your program's .EXE resides. The system $(LIBPQDLL) is
	@echo not necessarily compatible with the libpq include files that
	@echo you built libpqxx with. Do NOT copy this file into your
	@echo Windows system32 directory, that may break other programs.
	@echo Instead, keep it with your program and distribute it along
	@echo with the program.
	@echo -------------------------------------------------------------
	copy $(LIBPQPATH)\$(LIBPQDLL) $(OUTDIR)

$(OUTDIR)\$(LIBPQDDLL): $(OUTDIR)
	@echo -------------------------------------------------------------
	@echo Copying $(LIBPQDDLL) to $(OUTDIR).
	@echo.
	@echo IMPORTANT: you MUST copy this $(LIBPQDDLL) into the directory
	@echo where your program's .EXE resides, or you must make sure that
	@echo it is in your system PATH.
	@echo -------------------------------------------------------------
	copy $(LIBPQDPATH)\$(LIBPQDDLL) $(OUTDIR)

$(OUTDIR)\$(LIBPQLIB): $(OUTDIR)
	copy $(LIBPQPATH)\$(LIBPQLIB) $(OUTDIR)

$(OUTDIR)\$(LIBPQDLIB): $(OUTDIR)
	copy $(LIBPQDPATH)\$(LIBPQDLIB) $(OUTDIR)

$(OUTFILE_STATICDEBUG).lib: $(OUTDIR) $(OBJ_STATICDEBUG)
	$(LIBTOOL) $(LIB_FLAGS) $(OBJ_STATICDEBUG) /out:"$(OUTFILE_STATICDEBUG).lib"

$(OUTFILE_STATICRELEASE).lib: $(OUTDIR) $(OBJ_STATICRELEASE)
	$(LIBTOOL) $(LIB_FLAGS) $(OBJ_STATICRELEASE) /out:"$(OUTFILE_STATICRELEASE).lib"

$(OUTFILE_DLLDEBUG).dll: $(OUTDIR) $(OBJ_DLLDEBUG)
	$(LINK) $(LINK_FLAGS_DLLDEBUG) $(OBJ_DLLDEBUG) /out:"$(OUTFILE_DLLDEBUG).dll" /implib:"$(OUTFILE_DLLDEBUG).lib"

$(OUTFILE_DLLRELEASE).dll: $(OUTDIR) $(OBJ_DLLRELEASE)
	$(LINK) $(LINK_FLAGS_DLLRELEASE) $(OBJ_DLLRELEASE) /out:"$(OUTFILE_DLLRELEASE).dll" /implib:"$(OUTFILE_DLLRELEASE).lib"


$(INTDIR_STATICDEBUG):
	-@mkdir $(INTDIR_STATICDEBUG)

$(INTDIR_STATICRELEASE):
	-@mkdir $(INTDIR_STATICRELEASE)

$(INTDIR_DLLDEBUG):
	-@mkdir $(INTDIR_DLLDEBUG)

$(INTDIR_DLLRELEASE):
	-@mkdir $(INTDIR_DLLRELEASE)




########################################################
# Physical intermediate files
########################################################


###MAKTEMPLATE:FOREACH src/*.cxx

"$(INTDIR_STATICRELEASE)\###BASENAME###.obj": ###FILENAME### $(INTDIR_STATICRELEASE)
	$(CXX) $(CXX_FLAGS_STATICRELEASE) /Fo"$(INTDIR_STATICRELEASE)\\" /Fd"$(INTDIR_STATICRELEASE)\\" ###FILENAME###

"$(INTDIR_STATICDEBUG)\###BASENAME###.obj": ###FILENAME### $(INTDIR_STATICDEBUG)
	$(CXX) $(CXX_FLAGS_STATICDEBUG) /Fo"$(INTDIR_STATICDEBUG)\\" /Fd"$(INTDIR_STATICDEBUG)\\" ###FILENAME###

###MAKTEMPLATE:ENDFOREACH


###MAKTEMPLATE:FOREACH src/*.cxx,win32/libpqxx.cxx

"$(INTDIR_DLLRELEASE)\###BASENAME###.obj": ###FILENAME### $(INTDIR_DLLRELEASE)
	$(CXX) $(CXX_FLAGS_DLLRELEASE) /Fo"$(INTDIR_DLLRELEASE)\\" /Fd"$(INTDIR_DLLRELEASE)\\" ###FILENAME###

"$(INTDIR_DLLDEBUG)\###BASENAME###.obj": ###FILENAME### $(INTDIR_DLLDEBUG)
	$(CXX) $(CXX_FLAGS_DLLDEBUG) /Fo"$(INTDIR_DLLDEBUG)\\" /Fd"$(INTDIR_DLLDEBUG)\\" ###FILENAME###

###MAKTEMPLATE:ENDFOREACH