source: main/trunk/greenstone2/runtime-src/src/recpt/win32.mak@ 22044

Last change on this file since 22044 was 21945, checked in by ak19, 14 years ago

Fixed up win32.mak files in runtime-src that set DEFS for ANY of the indexers that can be ENABLEd/DISABLEd, such that DEFS for ALL the indexers are now set. Not doing so was causing memory overwrite problems (and consequently crashing) since different windows makefiles specified different indexers as specifically defined (leaving others unmentioned) whereas other makefiles would particularly pass on DEFS flags for all indexers. This made classes which were compiled which such makefiles and which contained references to these indexer objects a different size.

  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 6.9 KB
Line 
1###########################################################################
2#
3# win32 makefile -- src/recpt
4# A component of the Greenstone digital library software
5# from the New Zealand Digital Library Project at the
6# University of Waikato, New Zealand.
7#
8# Copyright (C) 1999-2008 The New Zealand Digital Library Project
9#
10#
11# This program is free software; you can redistribute it and/or modify
12# it under the terms of the GNU General Public License as published by
13# the Free Software Foundation; either version 2 of the License, or
14# (at your option) any later version.
15#
16# This program is distributed in the hope that it will be useful,
17# but WITHOUT ANY WARRANTY; without even the implied warranty of
18# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19# GNU General Public License for more details.
20#
21# You should have received a copy of the GNU General Public License
22# along with this program; if not, write to the Free Software
23# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
24#
25###########################################################################
26
27GSDL_DIR = ..\..\..
28COMMON_DIR = $(GSDL_DIR)\common-src
29RUNTIME_DIR = $(GSDL_DIR)\runtime-src
30
31INDEXERS_DIR = $(COMMON_DIR)\indexers
32COMMON_PACKAGES_DIR = $(COMMON_DIR)\packages
33PACKAGES_DIR = $(RUNTIME_DIR)\packages
34COLSERVR_DIR = $(RUNTIME_DIR)\src\colservr
35PROTOCOL_DIR = $(RUNTIME_DIR)\src\protocol
36Z3950_DIR = $(RUNTIME_DIR)\src\z3950
37
38
39GSDL_VC4 = 0
40LOCAL_LIBRARY = 0
41USE_Z3950 = 0
42DEBUG = 0
43DLL = 0
44DLLDEBUG = 0
45ENABLE_ACCENTFOLD = 1
46USE_GDBM = 1
47USE_SQLITE = 1
48ENABLE_MG = 1
49ENABLE_MGPP = 1
50ENABLE_LUCENE = 1
51
52!IF $(DEBUG)
53CXXFLAGS = -DEBUG -Z7 /errorReport:prompt
54!ELSE
55CXXFLAGS =
56!ENDIF
57
58!IF $(GSDL_VC4)
59CXXFLAGS = $(CXXFLAGS) -GX
60!ELSE
61CXXFLAGS = $(CXXFLAGS) -EHsc
62!ENDIF
63
64!IF $(DLL)
65CXXFLAGS = $(CXXFLAGS) -MD
66!ELSE
67!IF ($(DLLDEBUG))
68CXXFLAGS = $(CXXFLAGS) -MDd
69!ENDIF
70!ENDIF
71
72!IF $(ENABLE_ACCENTFOLD)
73ACCENTFOLD_LIBS = "$(INDEXERS_DIR)\packages\unac\libunac.lib" "$(INDEXERS_DIR)\packages\windows\iconv\iconv\lib\iconv.lib"
74!ELSE
75ACCENTFOLD_LIBS =
76!ENDIF
77
78!IF $(USE_GDBM)
79GDBM_DEFINES = -DUSE_GDBM
80GDBM_INCLUDES = -I"$(COMMON_PACKAGES_DIR)\gdbm\gdbm-1.8.3" -I"$(COMMON_PACKAGES_DIR)\gdbm\gdbm-1.8.3\windows"
81!ELSE
82GDBM_DEFINES =
83GDBM_INCLUDES =
84!ENDIF
85
86!IF $(USE_SQLITE)
87SQLITE_LIBS = "$(COMMON_PACKAGES_DIR)\sqlite\lib\sqlite3.lib"
88!ELSE
89SQLITE_LIBS =
90!ENDIF
91
92!IF $(USE_Z3950)
93Z3950_DEFS = -DUSE_Z3950
94Z3950_INCLUDES = -I$(Z3950_DIR)
95Z3950_LIBS = $(Z3950_DIR)\gsdlz3950.lib $(PACKAGES_DIR)\yaz\yaz-2.1.4\lib\yaz.lib
96!ELSE
97Z3950_DEFS =
98Z3950_INCLUDES =
99Z3950_LIBS =
100!ENDIF
101
102!IF $(ENABLE_MG)
103MG_DEFS = -DENABLE_MG
104MG_LIBS = "$(INDEXERS_DIR)\mg\src\text\libmgtext.lib" \
105 "$(INDEXERS_DIR)\mg\lib\libmglib.lib"
106MG_INCLUDES = -I"$(INDEXERS_DIR)\mg" -I"$(INDEXERS_DIR)\mg\lib"
107!ELSE
108MG_DEFS =
109MG_LIBS =
110MG_INCLUDES =
111!ENDIF
112
113!IF $(ENABLE_MGPP)
114MGPP_DEFS = -DENABLE_MGPP
115MGPP_SOURCES = phindaction.cpp
116MGPP_OBJECTS = phindaction.obj
117MGPP_LIBS = "$(INDEXERS_DIR)\mgpp\text\libmgpptext.lib" \
118 "$(INDEXERS_DIR)\mgpp\lib\libmgpplib.lib"
119MGPP_INCLUDES = -I"$(INDEXERS_DIR)\mgpp\text" \
120 -I"$(INDEXERS_DIR)\mgpp\lib"
121!ELSE
122MGPP_DEFS =
123MGPP_SOURCES =
124MGPP_OBJECTS =
125MGPP_LIBS =
126MGPP_INCLUDES =
127!ENDIF
128
129!IF $(ENABLE_LUCENE)
130LUCENE_DEFS = -DENABLE_LUCENE
131!ELSE
132LUCENE_DEFS=
133!ENDIF
134
135AR = lib
136CC = cl
137DEFS = -D__WIN32__ -DHAVE_CONFIG_H -DPARADOCNUM -D_LITTLE_ENDIAN -DSHORT_SUFFIX -D_CRT_SECURE_NO_DEPRECATE \
138 -DGSDL_NOCACHE $(GDBM_DEFINES) $(Z3950_DEFS) $(MG_DEFS) $(MGPP_DEFS) $(LUCENE_DEFS)
139INCLUDES = -I. -I"$(GSDL_DIR)" -I"$(COMMON_DIR)\src\lib" -I"$(COLSERVR_DIR)" -I"$(PROTOCOL_DIR)" \
140 $(MG_INCLUDES) $(MGPP_INCLUDES) \
141 -I"$(COMMON_PACKAGES_DIR)\windows\crypt\crypt" -I"$(COMMON_PACKAGES_DIR)\windows\expat\expat" \
142 $(GDBM_INCLUDES) \
143 $(Z3950_INCLUDES)
144LDFLAGS =
145LIBS = "$(COMMON_PACKAGES_DIR)\windows\crypt\crypt\crypt.lib" "$(COMMON_PACKAGES_DIR)\windows\expat\expat\libexpat.lib" \
146 "$(COMMON_PACKAGES_DIR)\gdbm\gdbm-1.8.3\gdbm.lib" $(ACCENTFOLD_LIBS) $(SQLITE_LIBS) $(Z3950_LIBS)
147
148!IF $(GSDL_VC4)
149DEFS = $(DEFS) -DGSDL_NAMESPACE_BROKEN -DGSDL_USE_IOS_H -D__STL_NO_NEW_IOSTREAMS
150INCLUDES = $(INCLUDES) -I"$(COMMON_PACKAGES_DIR)\windows\stlport\stlport"
151!ENDIF
152!IF $(LOCAL_LIBRARY)
153DEFS = $(DEFS) -DGSDL_LOCAL_LIBRARY
154!ENDIF
155
156
157COMPILE = $(CC) -nologo -c $(CXXFLAGS) $(DEFS) $(INCLUDES)
158LINK = $(CC) -nologo -Fe"$@" $(LDFLAGS)
159
160
161.SUFFIXES:
162.SUFFIXES: .cpp .obj
163.cpp.obj:
164 $(COMPILE) $<
165
166
167SOURCES = \
168 action.cpp \
169 argdb.cpp \
170 authenaction.cpp \
171 browseaction.cpp \
172 browseactiontools.cpp \
173 browserclass.cpp \
174 browsetoolsclass.cpp \
175 cgiargs.cpp \
176 cgiutils.cpp \
177 cgiwrapper.cpp \
178 collectoraction.cpp \
179 configaction.cpp \
180 converter.cpp \
181 datelistbrowserclass.cpp \
182 depositoraction.cpp \
183 documentaction.cpp \
184 dynamicclassifieraction.cpp \
185 extlinkaction.cpp \
186 formattools.cpp \
187 gtiaction.cpp \
188 highlighttext.cpp \
189 historydb.cpp \
190 hlistbrowserclass.cpp \
191 htmlbrowserclass.cpp \
192 htmlutils.cpp \
193 invbrowserclass.cpp \
194 librarymain.cpp \
195 maincfg.cpp \
196 pageaction.cpp \
197 pagedbrowserclass.cpp \
198 $(MGPP_SOURCES) \
199 phindbrowserclass.cpp \
200 pingaction.cpp \
201 queryaction.cpp \
202 querytools.cpp \
203 receptionist.cpp \
204 statusaction.cpp \
205 summarise.cpp \
206 tipaction.cpp \
207 userdb.cpp \
208 usersaction.cpp \
209 vlistbrowserclass.cpp \
210 wizardaction.cpp
211
212OBJECTS = \
213 action.obj \
214 argdb.obj \
215 authenaction.obj \
216 browseaction.obj \
217 browseactiontools.obj \
218 browserclass.obj \
219 browsetoolsclass.obj \
220 cgiargs.obj \
221 cgiutils.obj \
222 cgiwrapper.obj \
223 collectoraction.obj \
224 configaction.obj \
225 converter.obj \
226 datelistbrowserclass.obj \
227 depositoraction.obj \
228 documentaction.obj \
229 dynamicclassifieraction.obj \
230 extlinkaction.obj \
231 formattools.obj \
232 gtiaction.obj \
233 highlighttext.obj \
234 historydb.obj \
235 hlistbrowserclass.obj \
236 htmlbrowserclass.obj \
237 htmlutils.obj \
238 invbrowserclass.obj \
239 librarymain.obj \
240 maincfg.obj \
241 pageaction.obj \
242 pagedbrowserclass.obj \
243 $(MGPP_OBJECTS) \
244 phindbrowserclass.obj \
245 pingaction.obj \
246 queryaction.obj \
247 querytools.obj \
248 receptionist.obj \
249 statusaction.obj \
250 summarise.obj \
251 tipaction.obj \
252 userdb.obj \
253 usersaction.obj \
254 vlistbrowserclass.obj \
255 wizardaction.obj
256
257LIBRARY = gsdlrecpt.lib
258
259GSDL_LIBS = \
260 "$(PROTOCOL_DIR)\gsdlprotocol.lib" \
261 "$(COLSERVR_DIR)\gsdlcolservr.lib" \
262 $(MG_LIBS) \
263 $(MGPP_LIBS) \
264 "$(COMMON_DIR)\src\lib\gsdllib.lib"
265
266EXECUTABLE_OBJECTS = \
267 $(OBJECTS) \
268 $(GSDL_LIBS)
269
270EXECUTABLE = library.cgi
271
272
273# Default target: make gsdlrecpt.lib if LOCAL_LIBRARY is set, otherwise both gsdlrecpt.lib and library.exe
274!IF $(LOCAL_LIBRARY)
275all: $(LIBRARY)
276!ELSE
277all: $(LIBRARY) $(EXECUTABLE)
278!ENDIF
279
280gsdlrecpt.lib: $(OBJECTS)
281 if EXIST $(LIBRARY) del $(LIBRARY)
282 $(AR) -nologo /out:$(LIBRARY) $(OBJECTS)
283
284library.cgi: $(EXECUTABLE_OBJECTS)
285 $(LINK) $(EXECUTABLE_OBJECTS) $(LIBS)
286
287!IF $(LOCAL_LIBRARY)
288install:
289!ELSE
290install: $(EXECUTABLE)
291 copy $(EXECUTABLE) "$(GSDL_DIR)\cgi-bin"
292!ENDIF
293
294clean:
295 del *.obj
296 del $(LIBRARY)
297 del $(EXECUTABLE)
298
299
300# Always recompile configaction and statusaction in case GSDL_LOCAL_LIBRARY has changed
301statusaction.obj: FORCE
302configaction.obj: FORCE
303
304FORCE:
Note: See TracBrowser for help on using the repository browser.