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

Last change on this file since 22926 was 22926, checked in by davidb, 14 years ago

Additional syntax added to optionally allow mod_gsdl.so to be compile using the built-in apache that ships with Greenstone

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