source: gsdl/trunk/src/recpt/Makefile.in@ 15471

Last change on this file since 15471 was 15471, checked in by mdewsnip, 16 years ago

Moved all the CORBA stuff in src/recpt into src/corba, because it really uglies up the core source code, Makefiles etc.

  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 10.9 KB
Line 
1###########################################################################
2#
3# 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 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
27USE_Z3950 = @USE_Z3950@
28ifeq ($(USE_Z3950), 1)
29Z_CFLAGS=-DUSE_Z3950
30else
31Z_CFLAGS=
32endif
33
34INDEXERS_DIR=../../indexers
35
36ENABLE_ACCENTFOLD = @ENABLE_ACCENTFOLD@
37ifeq ($(ENABLE_ACCENTFOLD), 1)
38AFLIBS = $(INDEXERS_DIR)/packages/unac/libunac.a
39AFFLAGS = -DENABLE_ACCENTFOLD
40else
41AFLIBS =
42AFFLAGS =
43endif
44
45AR = ar
46CC = @CC@
47CXX = @CXX@
48
49CXXFLAGS = $(Z_CFLAGS) $(AFFLAGS) @CXXFLAGS@
50
51# YAZ kit for z39.50
52YAZDIR=../../packages/yaz
53
54
55USE_FASTCGI = @USE_FASTCGI@
56ifneq ($(USE_FASTCGI), 1)
57DEFS = -DNZDL -DQUIET -DSHORT_SUFFIX -DPARADOCNUM -DHAVE_CONFIG_H
58INCLUDES = -I. -I../.. -I../../lib -I../colservr -I../protocol \
59 -I$(INDEXERS_DIR)/mg/lib -I$(INDEXERS_DIR)/mgpp/text \
60 -I../../packages/expat/include
61else
62DEFS = -DNZDL -DQUIET -DSHORT_SUFFIX -DPARADOCNUM -DUSE_FASTCGI -DHAVE_CONFIG_H
63INCLUDES = -I. -I../.. -I../../lib -I../colservr -I../protocol \
64 -I$(INDEXERS_DIR)/mg/lib -I$(INDEXERS_DIR)/mgpp/text \
65 -I../../packages/expat/include -I../../packages/fcgi/include
66endif
67
68MICO_DIR = @MICO_DIR@
69MICO_VER = @MICO_VER@
70ifeq ($(MICO_DIR), yes)
71MICO_INC =
72MICO_LIB =
73MICO_PATH =
74else
75ifeq ($(MICO_DIR), default)
76MICO_DIR = ../../packages/mico/include
77MICO_PATH = ../../bin/linux/
78else
79MICO_PATH =
80endif
81MICO_INC = -I$(MICO_DIR)
82MICO_LIB = -L$(MICO_DIR)
83endif
84MINCLUDES = -I. -I../../lib -I../colservr -I$(INDEXERS_DIR)/mgpp/text $(MICO_INC)
85
86LC_LIBS = -L../../packages/expat/lib -lexpat
87LC_OBJECTS = \
88 ../colservr/lucenesearch.o \
89 ../colservr/lucenequeryfilter.o \
90 ../colservr/lucenegdbmsource.o \
91 ../colservr/expat_resultset.o \
92 ../colservr/expat_document.o
93
94RANLIB = @RANLIB@
95LDFLAGS = @LDFLAGS@
96GDBM_LIBS=@GDBM_LIBPATH@ -lgdbm
97LIBS = $(GDBM_LIBS) $(LC_LIBS) $(AFLIBS) @LIBS@
98GSDLOS = @gsdlos@
99INSTALL = @INSTALL@
100
101COMPILE = $(CC) -c $(CCFLAGS) $(DEFS) $(INCLUDES)
102LINK = $(CC) $(LDFLAGS) -o $@
103
104CXXCOMPILE = $(CXX) -c $(CXXFLAGS) $(DEFS) $(INCLUDES)
105CXXLINK = $(CXX) $(LDFLAGS) -o $@
106
107MCOMPILE = $(MICO_PATH)mico-c++ -x c++ $(MCFLAGS) $(DEFS) $(MINCLUDES) -c
108MSTATIC = @STATIC@
109MLINK = $(MICO_PATH)mico-ld $(MSTATIC) $(LDFLAGS) $(MICO_LIB) -o $@
110MLIBS = $(LIBS) -L../../lib/ -lmico$(MICO_VER) -lmicoaux$(MICO_VER)
111
112# in case gdbm.h/libgdbm.a are in a non-standard place...
113GDBM_OBJS=argdb.o authenaction.o collectoraction.o depositoraction.o wizardaction.o infodbclass.o userdb.o usersaction.o historydb.o librarymain.o nullproto.o queryaction.o z3950proto.o
114
115EXEC = library
116
117ifeq ($(USE_Z3950), 1)
118Z3950EXEC = z3950server
119else
120Z3950EXEC =
121endif
122
123all: $(EXEC) $(Z3950EXEC)
124
125
126
127.SUFFIXES:
128.SUFFIXES: .c .o
129.c.o:
130 $(COMPILE) $<
131
132.SUFFIXES: .cpp .o
133.cpp.o:
134 $(CXXCOMPILE) $<
135
136$(GDBM_OBJS) :%.o :%.cpp
137 $(CXXCOMPILE) @GDBM_INCLUDE@ $<
138
139.SUFFIXES: .mpp .o
140.mpp.o:
141 $(MCOMPILE) $< -o $@
142
143
144COMMONHEADERS = receptionist.h cgiwrapper.h cgiargs.h action.h browserclass.h \
145 converter.h maincfg.h cgiutils.h recptprototools.h browsetoolsclass.h \
146 statusaction.h pageaction.h \
147 pingaction.h queryaction.h documentaction.h \
148 extlinkaction.h browseaction.h htmlutils.h argdb.h \
149 querytools.h browseactiontools.h formattools.h tipaction.h authenaction.h \
150 userdb.h usersaction.h vlistbrowserclass.h hlistbrowserclass.h \
151 datelistbrowserclass.h invbrowserclass.h pagedbrowserclass.h \
152 htmlbrowserclass.h phindbrowserclass.h historydb.h collectoraction.h depositoraction.h wizardaction.h \
153 phindaction.h summarise.h highlighttext.h gtiaction.h
154
155RECEPTHEADERS =
156
157LIBRARYHEADERS = z3950proto.h z3950proxy.h
158
159HEADERS = $(COMMONHEADERS) $(RECPTHEADERS) $(LIBRARYHEADERS)
160
161
162COMMONSOURCES = receptionist.cpp cgiwrapper.cpp cgiargs.cpp action.cpp browserclass.cpp \
163 converter.cpp maincfg.cpp cgiutils.cpp recptprototools.cpp browsetoolsclass.cpp \
164 statusaction.cpp pageaction.cpp \
165 pingaction.cpp queryaction.cpp documentaction.cpp \
166 extlinkaction.cpp browseaction.h htmlutils.cpp querytools.cpp \
167 tipaction.cpp authenaction.cpp userdb.cpp usersaction.cpp \
168 vlistbrowserclass.cpp hlistbrowserclass.cpp datelistbrowserclass.cpp \
169 invbrowserclass.cpp pagedbrowserclass.cpp htmlbrowserclass.cpp \
170 phindbrowserclass.cpp historydb.cpp collectoraction.cpp depositoraction.cpp wizardaction.cpp argdb.cpp \
171 browseactiontools.h formattools.cpp phindaction.cpp summarise.cpp \
172 highlighttext.cpp gtiaction.cpp
173
174
175RECPTSOURCES = recptmain.cpp
176
177ifeq ($(USE_Z3950), 1)
178Z_LIBSOURCES=z3950proto.cpp z3950proxy.cpp yaz_zclient.c zparse.tab.c zparse.yy.c $(YAZDIR)/yaz-2.1.4/client/tabcomplete.c
179else
180Z_LIBSOURCES=
181endif
182
183LIBRARYSOURCES = librarymain.cpp $(Z_LIBSOURCES)
184
185SOURCES = $(COMMONSOURCES) $(RECPTSOURCES) $(LIBRARYSOURCES)
186
187
188ifeq ($(USE_Z3950), 1)
189Z_COMOBJS=zparse.yy.o
190else
191Z_COMOBJS=
192endif
193
194
195COMMONOBJECTS = receptionist.o cgiwrapper.o cgiargs.o action.o browserclass.o \
196 converter.o maincfg.o cgiutils.o recptprototools.o browsetoolsclass.o \
197 statusaction.o pageaction.o \
198 pingaction.o queryaction.o documentaction.o \
199 extlinkaction.o browseaction.o htmlutils.o querytools.o browseactiontools.o \
200 formattools.o tipaction.o authenaction.o argdb.o \
201 userdb.o usersaction.o vlistbrowserclass.o \
202 hlistbrowserclass.o datelistbrowserclass.o invbrowserclass.o \
203 pagedbrowserclass.o htmlbrowserclass.o phindbrowserclass.o \
204 historydb.o $(Z_COMOBJS) collectoraction.o depositoraction.o wizardaction.o phindaction.o \
205 summarise.o highlighttext.o gtiaction.o
206
207RECPTOBJECTS = recptmain.o
208
209
210ifeq ($(USE_Z3950), 1)
211Z_LIBOBJS=z3950proto.o z3950proxy.o yaz_zclient.o zparse.tab.o
212Z_CLIENTOBJS=$(YAZDIR)/yaz-2.1.4/client/tabcomplete.o
213else
214Z_LIBOBJS=
215Z_CLIENTOBJS=
216endif
217
218LIBRARYOBJECTS = librarymain.o $(Z_LIBOBJS)
219
220OBJECTS = $(COMMONOBJECTS) $(RECPTOBJECTS) $(LIBRARYOBJECTS)
221
222
223COLSERVROBJECTS = ../colservr/comtypes.o \
224 ../colservr/mgq.o \
225 ../colservr/search.o \
226 ../colservr/mgsearch.o \
227 ../colservr/querycache.o \
228 ../colservr/queryinfo.o \
229 ../colservr/collectserver.o \
230 ../colservr/colservrconfig.o \
231 ../colservr/maptools.o \
232 ../colservr/filter.o \
233 ../colservr/source.o \
234 ../colservr/browsefilter.o \
235 ../colservr/queryfilter.o \
236 ../colservr/gdbmsource.o \
237 ../colservr/mggdbmsource.o \
238 ../colservr/phrasesearch.o \
239 ../colservr/phrasequeryfilter.o \
240 ../colservr/mgqueryfilter.o \
241 ../colservr/mgppsearch.o \
242 ../colservr/mgppqueryfilter.o \
243 ../colservr/collectset.o \
244 $(LC_OBJECTS)
245
246PROTOCOLOBJECTS = ../protocol/recptproto.o \
247 ../protocol/nullproto.o
248
249
250## z39.50 rules
251# Note! If USE_FASTCGI=1, yaz is still compiled and linked, but never
252# called by librarymain.cpp.
253yaz_zclient.o: yaz_zclient.c
254 $(COMPILE) -I$(YAZDIR)/yaz-2.1.4/include -I$(YAZDIR)/yaz-2.1.4/client $<
255
256# this should be done by the top level makefile...
257$(YAZDIR)/lib/libyaz.a:
258 cd $(YAZDIR)/yaz-2.1.4/src && $(MAKE) && $(MAKE) install
259
260# put a separate rule here, as it speeds up compilation of other objects
261# if they don't need to include all the yaz headers
262z3950%.o: z3950%.cpp
263 $(COMPILE) -I$(YAZDIR)/include -I../../packages/d2m $<
264
265zparse.tab.c: zparse.y
266 @YACC@ -b zparse -d zparse.y
267
268zparse.tab.h: zparse.tab.c
269
270zparse.yy.c: zparse.fl zparse.tab.h
271 flex -Pzconfig -ozparse.yy.c zparse.fl
272
273
274
275# We'll keep the .c and .h files for those without lex/flex and yacc/bison.
276#PARSE_TMPFILES= zparse.tab.o zparse.tab.c zparse.tab.h zparse.yy.o zparse.yy.c
277PARSE_TMPFILE=zparse.tab.o zparse.yy.o
278
279
280distclean:
281 rm -f $(OBJECTS) $(EXEC) $(PARSE_TMPFILES) Makefile
282
283clean:
284 rm -f $(OBJECTS) $(EXEC) $(PARSE_TMPFILES)
285
286install:
287 $(INSTALL) -m 755 -s library ../../cgi-bin
288ifeq ($(USE_Z3950), 1)
289 $(INSTALL) -m 755 -s z3950server ../../bin/$(GSDLOS)
290endif
291
292depend:
293 makedepend -Y -- $(DEFS) $(INCLUDES) $(CXXFLAGS) -- $(SOURCES)
294
295# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
296ifeq ($(USE_FASTCGI), 1)
297 FASTCGI_OBJS = ../../packages/fcgi/libfcgi/libfcgi.a
298else
299 FASTCGI_OBJS =
300endif
301
302RECPT_OBJS = $(COMMONOBJECTS) $(RECPTOBJECTS) \
303 ../../lib/gsdllib.a \
304 $(INDEXERS_DIR)/mg/src/text/libmgtext.a \
305 $(INDEXERS_DIR)/mg/lib/libmglib.a \
306 $(FASTCGI_OBJS) \
307 $(INDEXERS_DIR)/mgpp/text/libmgpptext.a \
308 $(INDEXERS_DIR)/mgpp/lib/libmgpplib.a
309
310recpt: $(RECPT_OBJS)
311 $(CXXLINK) $(RECPT_OBJS) $(LIBS)
312
313# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
314ifeq ($(USE_Z3950), 1)
315Z_LIBYAZ_A=$(YAZDIR)/lib/libyaz.a
316else
317Z_LIBYAZ_A=
318endif
319
320
321LIBRARY_OBJS = $(COMMONOBJECTS) $(LIBRARYOBJECTS) $(COLSERVROBJECTS) $(PROTOCOLOBJECTS) $(Z_CLIENTOBJS) \
322 ../../lib/gsdllib.a \
323 $(INDEXERS_DIR)/mg/src/text/libmgtext.a \
324 $(INDEXERS_DIR)/mg/lib/libmglib.a \
325 $(FASTCGI_OBJS) $(Z_LIBYAZ_A) \
326 $(INDEXERS_DIR)/mgpp/text/libmgpptext.a \
327 $(INDEXERS_DIR)/mgpp/lib/libmgpplib.a
328
329library: $(LIBRARY_OBJS)
330 $(CXXLINK) $(LIBRARY_OBJS) $(LIBS)
331
332# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
333
334RECPTLIB_OBJECTS = nullproto.o
335
336RLIBRARY_OBJS = $(COMMONOBJECTS) $(RECPTLIB_OBJECTS) $(COLSERVROBJECTS) \
337 ../../lib/gsdllib.a \
338 $(INDEXERS_DIR)/mg/src/text/libmgtext.a \
339 $(INDEXERS_DIR)/mg/lib/libmglib.a \
340 $(FASTCGI_OBJS) $(Z_LIBOBJS) $(Z_LIBYAZ_A) \
341 $(INDEXERS_DIR)/mgpp/text/libmgpptext.a \
342 $(INDEXERS_DIR)/mgpp/lib/libmgpplib.a
343
344RECPTLIB_OBJS = $(RLIBRARY_OBJS)
345
346
347test:
348
349Z3950_OBJECTS = z3950explain.o z3950parser.o z3950server.o z3950_to_gsdl.o
350
351Z3950_OBJS = $(Z3950_OBJECTS) recptproto.o recptprototools.o nullproto.o $(COLSERVROBJECTS) \
352 ../../lib/gsdllib.a \
353 $(INDEXERS_DIR)/mg/src/text/libmgtext.a \
354 $(INDEXERS_DIR)/mg/lib/libmglib.a \
355 $(FASTCGI_OBJS) \
356 $(INDEXERS_DIR)/mgpp/text/libmgpptext.a \
357 $(INDEXERS_DIR)/mgpp/lib/libmgpplib.a \
358 ../../packages/yaz/lib/libyaz.a ../../packages/d2m/libd2m.a
359
360z3950server: $(Z3950_OBJS)
361 @echo -e building z3950server
362 $(CXXLINK) $(Z3950_OBJS) $(LIBS) -lxml2
Note: See TracBrowser for help on using the repository browser.