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

Last change on this file was 30954, checked in by ak19, 7 years ago

New yaz 2.1.56 was needed to get GS2 compiling to work again on Macs after going from producing dynamic linked to statically linked gnome-lib libraries. The new yaz finally compiles (see recent and current commits). Tested z3950server (built by configuring with --enable-z3950) against built yaz-client, and tested GLI's use of yaz-client against Library of Congress' z3950 server. It all works. Need to test Windows next.

  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 10.6 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
42USE_GSDL_MOD = 0
43DEBUG = 0
44DLL = 0
45DLLDEBUG = 0
46ENABLE_ACCENTFOLD = 1
47USE_RSS = 1
48USE_GDBM = 1
49USE_JDBM = 1
50USE_SQLITE = 1
51USE_MSSQL = 0
52ENABLE_MG = 1
53ENABLE_MGPP = 1
54ENABLE_LUCENE = 1
55
56!IF $(DEBUG)
57CXXFLAGS = -DEBUG -Z7 /errorReport:prompt
58LDFLAGS = -DEBUG -Z7 /errorReport:prompt
59!ELSE
60CXXFLAGS =
61LDFLAGS =
62!ENDIF
63
64!IF $(GSDL_VC4)
65CXXFLAGS = $(CXXFLAGS) -GX
66!ELSE
67CXXFLAGS = $(CXXFLAGS) -EHsc
68!ENDIF
69
70!IF $(DLL)
71CXXFLAGS = $(CXXFLAGS) -MD
72!ELSE
73!IF ($(DLLDEBUG))
74CXXFLAGS = $(CXXFLAGS) -MDd
75!ENDIF
76!ENDIF
77
78!IF $(ENABLE_ACCENTFOLD)
79ACCENTFOLD_LIBS = "$(INDEXERS_DIR)\packages\unac\libunac.lib" "$(INDEXERS_DIR)\packages\windows\iconv\iconv\lib\iconv.lib"
80!ELSE
81ACCENTFOLD_LIBS =
82!ENDIF
83
84!IF $(USE_RSS)
85RSS_DEFINES = -DUSE_RSS
86RSS_SOURCES = rssaction.cpp
87RSS_OBJECTS = rssaction.obj
88!ELSE
89RSS_DEFINES =
90RSS_SOURCES =
91RSS_OBJECTS =
92!ENDIF
93
94!IF $(USE_GDBM)
95GDBM_DEFINES = -DUSE_GDBM
96GDBM_LIBS = "$(COMMON_PACKAGES_DIR)\gdbm\gdbm-1.8.3\gdbm.lib"
97GDBM_INCLUDES = -I"$(COMMON_PACKAGES_DIR)\gdbm\gdbm-1.8.3" -I"$(COMMON_PACKAGES_DIR)\gdbm\gdbm-1.8.3\windows"
98!ELSE
99GDBM_DEFINES =
100GDBM_LIBS =
101GDBM_INCLUDES =
102!ENDIF
103
104!IF $(USE_JDBM)
105JDBM_DEFINES = -DUSE_JDBM
106!ELSE
107JDBM_DEFINES =
108!ENDIF
109
110!IF $(USE_SQLITE)
111SQLITE_DEFINES = -DUSE_SQLITE
112SQL_SOURCES = sqlqueryaction.cpp
113SQL_OBJECTS = sqlqueryaction.obj
114SQLITE_LIBS = "$(COMMON_PACKAGES_DIR)\sqlite\lib\sqlite3.lib"
115!ELSE
116SQLITE_DEFINES =
117SQL_SOURCES =
118SQL_OBJECTS =
119SQLITE_LIBS =
120!ENDIF
121
122!IF $(USE_MSSQL)
123MSSQL_DEFINES = -DUSE_MSSQL
124!ELSE
125MSSQL_DEFINES =
126!ENDIF
127
128!IF $(USE_Z3950)
129Z3950_DEFS = -DUSE_Z3950
130Z3950_INCLUDES = -I$(Z3950_DIR)
131Z3950_LIBS = $(Z3950_DIR)\gsdlz3950.lib $(PACKAGES_DIR)\yaz\yaz-2.1.56\lib\yaz.lib
132!ELSE
133Z3950_DEFS =
134Z3950_INCLUDES =
135Z3950_LIBS =
136!ENDIF
137
138!IF $(USE_GSDL_MOD)
139APACHE_OBJS = string_pool.obj mod_gsdl.obj
140
141APACHE_INSTDIR=$(GSDL_DIR)\apache-httpd\windows
142APACHE_SRCLIBDIR=..\..\packages\apache-httpd\httpd-2.2.11\srclib
143
144APXS_CFLAGS=-I$(APACHE_INSTDIR)\include \
145 -I$(APACHE_SRCLIBDIR)\apr\include -I$(APACHE_SRCLIBDIR)\apr-util\include
146
147APXS_LINKFLAGS= /libpath:$(APACHE_INSTDIR)\lib \
148 /libpath:$(APACHE_SRCLIBDIR)\apr\include \
149 /libpath:$(APACHE_SRCLIBDIR)\apr-util\include
150
151APXS_LDFLAGS= -L$(APACHE_INSTDIR)\lib \
152 -L$(APACHE_SRCLIBDIR)\apr\include \
153 -L$(APACHE_SRCLIBDIR)\apr-util\include
154
155APXS_LIBS = libaprutil-1.lib libapr-1.lib libhttpd.lib
156
157APACHE_MODULE = mod_gsdl.so
158!ELSE
159APACHE_OBJS =
160APACHE_MODULE =
161!ENDIF
162
163
164!IF $(ENABLE_MG)
165MG_DEFS = -DENABLE_MG
166MG_LIBS = "$(INDEXERS_DIR)\mg\src\text\libmgtext.lib" \
167 "$(INDEXERS_DIR)\mg\lib\libmglib.lib"
168MG_INCLUDES = -I"$(INDEXERS_DIR)\mg" -I"$(INDEXERS_DIR)\mg\lib"
169!ELSE
170MG_DEFS =
171MG_LIBS =
172MG_INCLUDES =
173!ENDIF
174
175!IF $(ENABLE_MGPP)
176MGPP_DEFS = -DENABLE_MGPP
177MGPP_SOURCES = phindaction.cpp
178MGPP_OBJECTS = phindaction.obj
179MGPP_LIBS = "$(INDEXERS_DIR)\mgpp\text\libmgpptext.lib" \
180 "$(INDEXERS_DIR)\mgpp\lib\libmgpplib.lib"
181MGPP_INCLUDES = -I"$(INDEXERS_DIR)\mgpp\text" \
182 -I"$(INDEXERS_DIR)\mgpp\lib"
183!ELSE
184MGPP_DEFS =
185MGPP_SOURCES =
186MGPP_OBJECTS =
187MGPP_LIBS =
188MGPP_INCLUDES =
189!ENDIF
190
191!IF $(ENABLE_LUCENE)
192LUCENE_DEFS = -DENABLE_LUCENE
193!ELSE
194LUCENE_DEFS=
195!ENDIF
196
197AR = lib
198CC = cl
199DEFS = -D__WIN32__ -DHAVE_CONFIG_H -DPARADOCNUM -D_LITTLE_ENDIAN -DSHORT_SUFFIX -D_CRT_SECURE_NO_DEPRECATE \
200 -DGSDL_NOCACHE $(RSS_DEFINES) $(GDBM_DEFINES) $(JDBM_DEFINES) $(SQLITE_DEFINES) $(MSSQL_DEFINES) \
201 $(Z3950_DEFS) $(MG_DEFS) $(MGPP_DEFS) $(LUCENE_DEFS)
202INCLUDES = -I. -I"$(GSDL_DIR)" -I"$(COMMON_DIR)\src\lib" -I"$(COLSERVR_DIR)" -I"$(PROTOCOL_DIR)" \
203 $(MG_INCLUDES) $(MGPP_INCLUDES) \
204 -I"$(COMMON_PACKAGES_DIR)\windows\crypt\crypt" -I"$(COMMON_PACKAGES_DIR)\expat\include" \
205 $(GDBM_INCLUDES) \
206 $(Z3950_INCLUDES)
207LIBS = "$(COMMON_PACKAGES_DIR)\windows\crypt\crypt\crypt.lib" "$(COMMON_PACKAGES_DIR)\expat\lib\libexpat.lib" \
208 $(GDBM_LIBS) $(ACCENTFOLD_LIBS) $(SQLITE_LIBS) $(Z3950_LIBS)
209
210!IF $(GSDL_VC4)
211DEFS = $(DEFS) -DGSDL_NAMESPACE_BROKEN -DGSDL_USE_IOS_H -D__STL_NO_NEW_IOSTREAMS
212INCLUDES = $(INCLUDES) -I"$(COMMON_PACKAGES_DIR)\windows\stlport\stlport"
213!ENDIF
214!IF $(LOCAL_LIBRARY)
215DEFS = $(DEFS) -DGSDL_LOCAL_LIBRARY
216!ENDIF
217
218CXXFLAGS = $(CXXFLAGS)
219
220COMPILE = $(CC) -nologo -c $(CXXFLAGS) $(DEFS) $(INCLUDES)
221LINK = $(CC) -nologo $(LDFLAGS) -Fe"$@"
222
223
224.SUFFIXES:
225.SUFFIXES: .cpp .obj
226.cpp.obj:
227 $(COMPILE) $<
228
229OSPROCESS_SOURCES = \
230 os_process.cpp \
231 os_process_windows.cpp \
232
233OSPROCESS_OBJECTS = \
234 os_process.obj \
235 os_process_windows.obj \
236
237
238SOURCES = \
239 action.cpp \
240 argdb.cpp \
241 authenaction.cpp \
242 basequeryaction.cpp \
243 browseaction.cpp \
244 browseactiontools.cpp \
245 browserclass.cpp \
246 browsetoolsclass.cpp \
247 cgiargs.cpp \
248 cgiutils.cpp \
249 cgiwrapper.cpp \
250 collectoraction.cpp \
251 configaction.cpp \
252 converter.cpp \
253 datelistbrowserclass.cpp \
254 depositoraction.cpp \
255 documentaction.cpp \
256 dynamicclassifieraction.cpp \
257 extlinkaction.cpp \
258 formatconverter.cpp \
259 formattools.cpp \
260 gtiaction.cpp \
261 highlighttext.cpp \
262 historydb.cpp \
263 hlistbrowserclass.cpp \
264 htmlbrowserclass.cpp \
265 htmlutils.cpp \
266 invbrowserclass.cpp \
267 librarymain.cpp \
268 maincfg.cpp \
269 $(OSPROCESS_SOURCES) \
270 pageaction.cpp \
271 pagedbrowserclass.cpp \
272 $(MGPP_SOURCES) \
273 phindbrowserclass.cpp \
274 pingaction.cpp \
275 ispersistentaction.cpp \
276 queryaction.cpp \
277 querytools.cpp \
278 receptionist.cpp \
279 $(RSS_SOURCES) \
280 statusaction.cpp \
281 $(SQL_SOURCES) \
282 securitytools.cpp \
283 summarise.cpp \
284 tipaction.cpp \
285 userdb.cpp \
286 usersaction.cpp \
287 vlistbrowserclass.cpp \
288 wizardaction.cpp
289
290OBJECTS = \
291 action.obj \
292 argdb.obj \
293 authenaction.obj \
294 basequeryaction.obj \
295 browseaction.obj \
296 browseactiontools.obj \
297 browserclass.obj \
298 browsetoolsclass.obj \
299 cgiargs.obj \
300 cgiutils.obj \
301 cgiwrapper.obj \
302 collectoraction.obj \
303 configaction.obj \
304 converter.obj \
305 datelistbrowserclass.obj \
306 depositoraction.obj \
307 documentaction.obj \
308 dynamicclassifieraction.obj \
309 extlinkaction.obj \
310 formattools.obj \
311 gtiaction.obj \
312 highlighttext.obj \
313 historydb.obj \
314 hlistbrowserclass.obj \
315 htmlbrowserclass.obj \
316 htmlutils.obj \
317 invbrowserclass.obj \
318 librarymain.obj \
319 maincfg.obj \
320 $(OSPROCESS_OBJECTS) \
321 pageaction.obj \
322 pagedbrowserclass.obj \
323 $(MGPP_OBJECTS) \
324 phindbrowserclass.obj \
325 pingaction.obj \
326 ispersistentaction.obj \
327 queryaction.obj \
328 querytools.obj \
329 receptionist.obj \
330 $(RSS_OBJECTS) \
331 statusaction.obj \
332 $(SQL_OBJECTS) \
333 securitytools.obj \
334 summarise.obj \
335 tipaction.obj \
336 userdb.obj \
337 usersaction.obj \
338 vlistbrowserclass.obj \
339 wizardaction.obj
340
341LIBRARY = gsdlrecpt.lib
342
343GSDL_LIBS = \
344 "$(PROTOCOL_DIR)\gsdlprotocol.lib" \
345 "$(COLSERVR_DIR)\gsdlcolservr.lib" \
346 $(MG_LIBS) \
347 $(MGPP_LIBS) \
348 "$(COMMON_DIR)\src\lib\gsdllib.lib"
349
350CONVERTER_OBJECTS = \
351 cgiargs.obj \
352 cgiutils.obj \
353 formattools.obj \
354 formatconverter.obj \
355 summarise.obj
356
357EXECUTABLE_OBJECTS = \
358 $(OBJECTS) \
359 $(GSDL_LIBS)
360
361EXECUTABLE = library.cgi
362
363# Default target: make gsdlrecpt.lib if LOCAL_LIBRARY is set, otherwise both gsdlrecpt.lib and library.exe
364!IF $(LOCAL_LIBRARY)
365all: $(LIBRARY) $(APACHE_MODULE) formatconverter.exe
366!ELSE
367all: $(LIBRARY) $(EXECUTABLE) $(APACHE_MODULE) formatconverter.exe
368!ENDIF
369
370gsdlrecpt.lib: $(OBJECTS)
371 if EXIST $(LIBRARY) del $(LIBRARY)
372 $(AR) -nologo /out:$(LIBRARY) $(OBJECTS)
373
374library.cgi: $(EXECUTABLE_OBJECTS)
375 $(LINK) $(EXECUTABLE_OBJECTS) $(LIBS)
376
377formatconverter.exe: $(CONVERTER_OBJECTS)
378 $(LINK) $(CONVERTER_OBJECTS) "$(COMMON_DIR)\src\lib\gsdllib.lib" "$(PROTOCOL_DIR)\gsdlprotocol.lib" "$(COLSERVR_DIR)\gsdlcolservr.lib"
379
380mod_gsdl.obj: mod_gsdl.cpp
381 $(CC) -nologo /MD /W3 /D WIN32 /D _WINDOWS /D NDEBUG -c $(CXXFLAGS) $(DEFS) $(INCLUDES) -D_APACHE_MOD=2 $(APXS_CFLAGS) mod_gsdl.cpp
382## cl.exe /nologo /MT /W3 /O2 /D WIN32 /D _WINDOWS /D NDEBUG -I"C:\Program Files\xampp\apache\include" -c mod_gsdl.c
383
384mod_gsdl.so: $(APACHE_OBJS) $(LIBRARY)
385 $(CC) /nologo -Fe"mod_gsdl.dll" $(APACHE_OBJS) gsdlrecpt.lib $(GSDL_LIBS) $(LIBS) $(APXS_LDFLAGS) $(APXS_LIBS)
386
387# link /nologo /dll $(APACHE_OBJS) gsdlrecpt.lib $(GSDL_LIBS) $(LIBS) $(APXS_LDFLAGS) $(APXS_LIBS)
388 rename mod_gsdl.dll mod_gsdl.so
389
390## $(CC) -nologo /dll -Fe"$@" $(APACHE_OBJS) $(LIBRARY) $(GSDL_LIBS) $(LIBS)
391
392
393## link.exe kernel32.lib /nologo /subsystem:windows /dll /machine:I386 /libpath:"C:\Program Files\xampp\apache\lib" libaprutil-1.lib libapr-1.lib libhttpd.lib mod_gsdl.obj
394
395## rename mod_gsdl.dll mod_gsdl.so
396
397
398# COMPILE = $(CC) -nologo -c $(CXXFLAGS) $(DEFS) $(INCLUDES)
399# LINK = $(CC) -nologo -Fe"$@" $(LDFLAGS)
400
401
402
403
404
405
406osprocess-test.cgi: $(OSPROCESS_OBJECTS) os_process_test.obj
407 $(LINK) $(OSPROCESS_OBJECTS) os_process_test.obj ..\..\..\common-src\src\lib\gsdllib.lib
408
409!IF $(LOCAL_LIBRARY)
410install:
411 if exist "formatconverter.exe" copy formatconverter.exe "$(GSDL_DIR)\bin\windows"
412!ELSE
413install: $(EXECUTABLE)
414 if exist "formatconverter.exe" copy formatconverter.exe "$(GSDL_DIR)\bin\windows"
415!IF "$(PROCESSOR_ARCHITECTURE)"==""
416 copy $(EXECUTABLE) "$(GSDL_DIR)\cgi-bin\windows"
417!ELSE IF EXIST ("$(GSDL_DIR)\bin\windows")
418 copy $(EXECUTABLE) "$(GSDL_DIR)\cgi-bin\windows"
419!ELSE IF "$(PROCESSOR_ARCHITECTURE)"=="x86"
420 copy $(EXECUTABLE) "$(GSDL_DIR)\cgi-bin\windows32"
421!ELSE
422 copy $(EXECUTABLE) "$(GSDL_DIR)\cgi-bin\windows64"
423!ENDIF
424!ENDIF
425
426clean:
427 del *.obj
428 del $(LIBRARY)
429 del $(EXECUTABLE)
430
431
432# Always recompile configaction and statusaction in case GSDL_LOCAL_LIBRARY has changed
433statusaction.obj: FORCE
434configaction.obj: FORCE
435
436FORCE:
Note: See TracBrowser for help on using the repository browser.