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

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

Changes in z3950 and recpt Makefile to get dependencies right for libyaz (now these library dependencies are taken directly from yaz's Makefile with a GNU makefile specific shell command). These changes are ahead of committing a somewhat newer version of yaz itself (from 2007).

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