source: main/trunk/greenstone2/runtime-src/src/recpt/Makefile.in@ 28888

Last change on this file since 28888 was 28888, checked in by ak19, 10 years ago

First security commit. 1. Introducing the new securitools.h and .cpp files, which port the functions necessary to implement security in Greenstone from OWASP-ESAPI for Java, since OWASP's C++ version is largely not yet implemented, even though their code compiles. The newly added runtime-src/packages/security which contains OWASP ESAPI for C++ will therefore be removed again shortly. 2. receptionist.cpp now sets various web-encoded variants for each cgiarg macro, such as HTML entity encoded, attr encoded, javascript encoded (and css encoded variants). These are now used in the macro files based on which variant is suited to the context. 3. This commit further contains the minimum changes to protect the c, d, and p cgi variables.

  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 8.5 KB
Line 
1###########################################################################
2#
3# Makefile -- runtime-src/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
31GSDLOS = @gsdlos@
32GSDLARCH = @gsdlarch@
33
34INDEXERS_DIR = $(COMMON_DIR)/indexers
35COMMON_PACKAGES_DIR = $(COMMON_DIR)/packages
36RUNTIME_PACKAGES_DIR = $(RUNTIME_DIR)/packages
37COLSERVR_DIR = $(RUNTIME_DIR)/src/colservr
38PROTOCOL_DIR = $(RUNTIME_DIR)/src/protocol
39Z3950_DIR = $(RUNTIME_DIR)/src/z3950
40
41
42ENABLE_ACCENTFOLD = @ENABLE_ACCENTFOLD@
43ifeq ($(ENABLE_ACCENTFOLD), 1)
44ACCENTFOLD_LIBS = $(INDEXERS_DIR)/packages/unac/libunac.a $(COMMON_PACKAGES_DIR)/iconv/lib/libiconv.a
45else
46ACCENTFOLD_LIBS =
47endif
48
49ENABLE_MG = @ENABLE_MG@
50ifeq ($(ENABLE_MG), 1)
51MG_INDEXERS_LIBS = $(INDEXERS_DIR)/mg/src/text/libmgtext.a \
52 $(INDEXERS_DIR)/mg/lib/libmglib.a
53MG_INCLUDES = -I$(INDEXERS_DIR)/mg -I$(INDEXERS_DIR)/mg/lib
54else
55MG_INDEXERS_LIBS =
56MG_INCLUDES =
57endif
58
59ENABLE_MGPP = @ENABLE_MGPP@
60ifeq ($(ENABLE_MGPP), 1)
61MGPP_SOURCES = phindaction.cpp
62MGPP_OBJECTS = phindaction.o
63MGPP_INDEXERS_LIBS = $(INDEXERS_DIR)/mgpp/text/libmgpptext.a \
64 $(INDEXERS_DIR)/mgpp/lib/libmgpplib.a
65MGPP_INCLUDES = -I$(INDEXERS_DIR)/mgpp/text -I$(INDEXERS_DIR)/mgpp/lib
66else
67MGPP_SOURCES =
68MGPP_OBJECTS =
69MGPP_INDEXERS_LIBS =
70MGPP_INCLUDES =
71endif
72
73USE_FASTCGI = @USE_FASTCGI@
74ifeq ($(USE_FASTCGI), 1)
75FASTCGI_DEFS = -DUSE_FASTCGI
76FASTCGI_INCLUDES = -I$(RUNTIME_PACKAGES_DIR)/fcgi/include
77FASTCGI_LIBS = $(RUNTIME_PACKAGES_DIR)/fcgi/libfcgi/libfcgi.a
78else
79FASTCGI_DEFS =
80FASTCGI_INCLUDES =
81FASTCGI_LIBS =
82endif
83
84USE_GDBM = @USE_GDBM@
85ifeq ($(USE_GDBM), 1)
86GDBM_DEFINES = -DUSE_GDBM
87GDBM_INCLUDES = -I$(COMMON_PACKAGES_DIR)/gdbm/include
88GDBM_LIBS = $(COMMON_PACKAGES_DIR)/gdbm/lib/libgdbm.a
89else
90GDBM_DEFINES =
91GDBM_INCLUDES =
92GDBM_LIBS =
93endif
94
95USE_JDBM = @USE_JDBM@
96ifeq ($(USE_JDBM), 1)
97JDBM_DEFINES = -DUSE_JDBM
98else
99JDBM_DEFINES =
100endif
101
102USE_SQLITE = @USE_SQLITE@
103ifeq ($(USE_SQLITE), 1)
104SQLITE_DEFINES = -DUSE_SQLITE
105SQLITE_LIBS = $(COMMON_PACKAGES_DIR)/sqlite/lib/libsqlite3.a -ldl -lpthread
106SQL_SOURCES = sqlqueryaction.cpp
107SQL_OBJECTS = sqlqueryaction.o
108else
109SQLITE_DEFINES =
110SQLITE_LIBS =
111SQL_SOURCES =
112SQL_OBJECTS =
113endif
114
115USE_RSS = @USE_RSS@
116ifeq ($(USE_RSS), 1)
117RSS_DEFINES = -DUSE_RSS
118RSS_SOURCES = rssaction.cpp
119RSS_OBJECTS = rssaction.o
120else
121RSS_DEFINES =
122RSS_SOURCES =
123RSS_OBJECTS =
124endif
125
126
127USE_Z3950 = @USE_Z3950@
128ifeq ($(USE_Z3950), 1)
129Z3950_DEFS = -DUSE_Z3950
130Z3950_INCLUDES = -I$(Z3950_DIR)
131Z3950_LIBS = $(Z3950_DIR)/gsdlz3950.a $(RUNTIME_PACKAGES_DIR)/yaz/lib/libyaz.a
132else
133Z3950_DEFS =
134Z3950_INCLUDES =
135Z3950_LIBS =
136endif
137
138USE_APACHE_HTTPD=@USE_APACHE_HTTPD@
139#ifeq ($(USE_APACHE_HTTPD), 1)
140ifeq ($(USE_APACHE_HTTPD), "IGNORE_FOR_NOW")
141APACHE_OBJS = string_pool.o mod_gsdl.o
142
143APACHE_INSTDIR=$(GSDL_DIR)/apache-httpd/$(GSDLOS)
144APACHE_SRCLIBDIR=../../packages/apache-httpd/httpd-2.2.11/srclib
145
146APXS_CFLAGS=-I$(APACHE_INSTDIR)/include \
147 -I$(APACHE_SRCLIBDIR)/apr/include -I$(APACHE_SRCLIBDIR)/apr-util/include
148
149APXS_LDFLAGS= -L$(APACHE_INSTDIR)/lib \
150 -L$(APACHE_SRCLIBDIR)/apr/include -L$(APACHE_SRCLIBDIR)/apr-util/include
151
152APACHE_MODULE = mod_gsdl.so
153else
154APACHE_OBJS =
155APACHE_MODULE =
156endif
157
158
159# Extension support
160EXT_DEFINES =
161EXT_INCLUDES =
162EXT_LDFLAGS =
163EXT_LIBS =
164
165
166
167AR = ar
168CC = @CC@
169CFLAGS=@CFLAGS@ @ARCH_DEP_FLAGS@
170CXX = @CXX@
171CXXFLAGS = @CXXFLAGS@ @ARCH_DEP_FLAGS@
172DEFS = @DEFS@ -DNZDL -DQUIET -DSHORT_SUFFIX -DPARADOCNUM -DHAVE_CONFIG_H $(FASTCGI_DEFS) $(RSS_DEFINES) $(GDBM_DEFINES) $(JDBM_DEFINES) $(SQLITE_DEFINES) $(Z3950_DEFS) $(EXT_DEFINES)
173INCLUDES = -I. -I$(GSDL_DIR) -I$(COMMON_DIR)/src/lib \
174 -I$(COLSERVR_DIR) -I$(PROTOCOL_DIR) \
175 $(MG_INCLUDES) $(MGPP_INCLUDES) \
176 -I$(COMMON_PACKAGES_DIR)/expat/include $(FASTCGI_INCLUDES) $(GDBM_INCLUDES) $(Z3950_INCLUDES) $(EXT_INCLUDES)
177INSTALL = @INSTALL@
178LDFLAGS = @LDFLAGS@ @ARCH_DEP_FLAGS@ $(EXT_LDFLAGS)
179LIBS = @LIBS@ $(GDBM_LIBS) \
180 $(COMMON_PACKAGES_DIR)/expat/lib/libexpat.a \
181 $(ACCENTFOLD_LIBS) $(FASTCGI_LIBS) $(SQLITE_LIBS) $(Z3950_LIBS) $(EXT_LIBS)
182RANLIB = @RANLIB@
183
184
185CXXCOMPILE = $(CXX) -c $(CXXFLAGS) $(DEFS) $(INCLUDES)
186CXXLINK = $(CXX) $(LDFLAGS) -o $@
187
188
189SOURCES = \
190 action.cpp \
191 argdb.cpp \
192 authenaction.cpp \
193 browseaction.cpp \
194 browseactiontools.cpp \
195 browserclass.cpp \
196 browsetoolsclass.cpp \
197 cgiargs.cpp \
198 cgiutils.cpp \
199 cgiwrapper.cpp \
200 collectoraction.cpp \
201 configaction.cpp \
202 converter.cpp \
203 datelistbrowserclass.cpp \
204 depositoraction.cpp \
205 documentaction.cpp \
206 dynamicclassifieraction.cpp \
207 extlinkaction.cpp \
208 formattools.cpp \
209 formatconverter.cpp \
210 gtiaction.cpp \
211 highlighttext.cpp \
212 historydb.cpp \
213 hlistbrowserclass.cpp \
214 htmlbrowserclass.cpp \
215 htmlutils.cpp \
216 invbrowserclass.cpp \
217 librarymain.cpp \
218 maincfg.cpp \
219 pageaction.cpp \
220 pagedbrowserclass.cpp \
221 $(MGPP_SOURCES) \
222 phindbrowserclass.cpp \
223 pingaction.cpp \
224 ispersistentaction.cpp \
225 basequeryaction.cpp \
226 queryaction.cpp \
227 $(SQL_SOURCES) \
228 querytools.cpp \
229 receptionist.cpp \
230 $(RSS_SOURCES) \
231 statusaction.cpp \
232 securitytools.cpp \
233 summarise.cpp \
234 tipaction.cpp \
235 userdb.cpp \
236 usersaction.cpp \
237 vlistbrowserclass.cpp \
238 wizardaction.cpp
239
240OBJECTS = \
241 action.o \
242 argdb.o \
243 authenaction.o \
244 browseaction.o \
245 browseactiontools.o \
246 browserclass.o \
247 browsetoolsclass.o \
248 cgiargs.o \
249 cgiutils.o \
250 cgiwrapper.o \
251 collectoraction.o \
252 configaction.o \
253 converter.o \
254 datelistbrowserclass.o \
255 depositoraction.o \
256 documentaction.o \
257 dynamicclassifieraction.o \
258 extlinkaction.o \
259 formattools.o \
260 gtiaction.o \
261 highlighttext.o \
262 historydb.o \
263 hlistbrowserclass.o \
264 htmlbrowserclass.o \
265 htmlutils.o \
266 invbrowserclass.o \
267 librarymain.o \
268 maincfg.o \
269 pageaction.o \
270 pagedbrowserclass.o \
271 $(MGPP_OBJECTS) \
272 phindbrowserclass.o \
273 pingaction.o \
274 ispersistentaction.o \
275 basequeryaction.o \
276 queryaction.o \
277 $(SQL_OBJECTS) \
278 querytools.o \
279 receptionist.o \
280 $(RSS_OBJECTS) \
281 statusaction.o \
282 securitytools.o \
283 summarise.o \
284 tipaction.o \
285 userdb.o \
286 usersaction.o \
287 vlistbrowserclass.o \
288 wizardaction.o
289
290CONVERTER_OBJECTS = \
291 cgiargs.o \
292 cgiutils.o \
293 formattools.o \
294 formatconverter.o \
295 summarise.o
296
297LIBRARY = gsdlrecpt.a
298
299GSDL_LIBS = \
300 $(PROTOCOL_DIR)/gsdlprotocol.a \
301 $(COLSERVR_DIR)/gsdlcolservr.a \
302 $(MG_INDEXERS_LIBS) \
303 $(MGPP_INDEXERS_LIBS) \
304 $(COMMON_DIR)/src/lib/gsdllib.a
305
306EXECUTABLE_OBJECTS = \
307 $(OBJECTS) \
308 $(GSDL_LIBS)
309
310EXECUTABLE = library.cgi
311
312
313# Default target: make both gsdlrecpt.a and the library executable
314all: $(LIBRARY) $(EXECUTABLE) $(APACHE_MODULE) formatconverter
315
316formatconverter: $(CONVERTER_OBJECTS)
317 $(CXXLINK) $(CONVERTER_OBJECTS) $(COMMON_DIR)/src/lib/gsdllib.a $(PROTOCOL_DIR)/gsdlprotocol.a $(COLSERVR_DIR)/gsdlcolservr.a
318
319gsdlrecpt.a: $(OBJECTS)
320 rm -f $(LIBRARY)
321 $(AR) cru $(LIBRARY) $(OBJECTS)
322 $(RANLIB) $(LIBRARY)
323
324$(EXECUTABLE): $(EXECUTABLE_OBJECTS) $(GSDL_LIBS)
325 $(CXXLINK) $(EXECUTABLE_OBJECTS) $(LIBS)
326
327mod_gsdl.o: mod_gsdl.cpp
328 $(CXX) -c $(CXXFLAGS) $(DEFS) $(INCLUDES) -D_APACHE_MOD=2 -fPIC $(APXS_CFLAGS) -Wall -o $@ $<
329
330mod_gsdl.so: $(APACHE_OBJS) $(LIBRARY)
331 $(CXX) -fPIC -shared -o $@ $(APACHE_OBJS) $(LIBRARY) $(GSDL_LIBS) $(LIBS)
332
333
334.SUFFIXES:
335.SUFFIXES: .cpp .o
336.cpp.o:
337 $(CXXCOMPILE) $<
338
339
340install: $(EXECUTABLE)
341 $(INSTALL) -m 755 -s $(EXECUTABLE) $(GSDL_DIR)/cgi-bin/$(GSDLOS)$(GSDLARCH)
342#ifeq ($(USE_APACHE_HTTPD), 1)
343ifeq ($(USE_APACHE_HTTPD), "IGNORE_FOR_NOW")
344 $(GSDL_DIR)/apache-httpd/$(GSDLOS)/bin/apxs -i -n gsdl mod_gsdl.so
345endif
346
347clean:
348 rm -f $(OBJECTS) $(LIBRARY) $(EXECUTABLE) $(APACHE_MODULE) $(APACHE_OBJS)
349
350distclean:
351 rm -f $(OBJECTS) $(LIBRARY) $(EXECUTABLE) Makefile
352
353depend:
354 makedepend -Y -- $(DEFS) $(INCLUDES) $(CXXFLAGS) -- $(SOURCES)
Note: See TracBrowser for help on using the repository browser.