1# Makefile for Hyper Estraier
2
3
4
5#================================================================
6# Setting Variables
7#================================================================
8
9
10# Generic settings
11SHELL = @SHELL@
12
13# Packaging
14PACKAGE = @PACKAGE_NAME@
15VERSION = @PACKAGE_VERSION@
16PACKAGEDIR = $(PACKAGE)-$(VERSION)
17PACKAGETGZ = $(PACKAGE)-$(VERSION).tar.gz
18LIBVER = @LIBVER@
19LIBREV = @LIBREV@
20PROTVER = @PROTVER@
21
22# Targets
23MYHEADS = estraier.h estmtdb.h estnode.h
24MYLIBOBJS = estraier.o estmtdb.o estnode.o md5.o
25MYLIBS = libestraier.a libestraier.so.$(LIBVER).$(LIBREV).0 \
26  libestraier.so.$(LIBVER) libestraier.so
27MYBINS = estcmd estmttest estmaster estbutler estcall estwaver estload
28MYCGIS = estseek.cgi estfraud.cgi estproxy.cgi estscout.cgi estsupt.cgi
29MYSCRIPTS = estconfig estwolefind
30MYCONFS = estseek.conf estseek.tmpl estseek.top estseek.help \
31  estfraud.conf estproxy.conf estscout.conf estsupt.conf \
32  estresult.dtd estraier.idl locale filter increm
33MYDOCS = COPYING ChangeLog THANKS doc
34MYMAN1S = estconfig.1 estcmd.1 estmaster.1 estwaver.1 estcall.1
35MYMAN3S = estraier.3 estnode.3
36MYPCS = hyperestraier.pc
37MYMACLIBS = libestraier.a libestraier.$(LIBVER).$(LIBREV).0.dylib \
38  libestraier.$(LIBVER).dylib libestraier.dylib
39MYHPUXLIBS = libestraier.a libestraier.sl
40MYWINLIBS = libestraier.a libestraier.dll.a
41MYCORELIBS = libestcore.a
42MYFCGIS = estseek.fcgi estfraud.fcgi estproxy.fcgi estscout.fcgi estsupt.fcgi
43
44# Install destinations
45prefix = @prefix@
46exec_prefix = @exec_prefix@
47MYHEADDIR = @includedir@
48MYLIBDIR = @libdir@
49MYBINDIR = @bindir@
50MYLIBEXECDIR = @libexecdir@
51MYDATADIR = @datadir@/$(PACKAGE)
52MYMAN1DIR = @mandir@/man1
53MYMAN3DIR = @mandir@/man3
54MYPCDIR = @prefix@/libdata/pkgconfig
55DESTDIR =
56
57# Building binaries
58CC = @CC@
59CPPFLAGS = @CPPFLAGS@ -I. -I$(MYHEADDIR) \
60  -I$(HOME)/include -I/usr/local/include -I/usr/include/qdbm @MYCPPOPTS@ \
61  -D_XOPEN_SOURCE_EXTENDED=1 -D_GNU_SOURCE=1 -D__EXTENSIONS__=1 -D_HPUX_SOURCE=1 \
62  -DPIC=1 -D_THREAD_SAFE=1 -D_REENTRANT=1 @MYDEFS@
63CFLAGS = @CFLAGS@ -Wall -fPIC -fsigned-char
64LDFLAGS = @LDFLAGS@ -L. -L$(MYLIBDIR) -L$(HOME)/lib -L/usr/local/lib @MYLDOPTS@
65LIBS = @LIBS@
66MTLIBS = @MYMTLIBS@
67SKLIBS = @MYSKLIBS@
68APPLIBS = @MYAPPLIBS@
69LDENV = LD_RUN_PATH=/lib:/usr/lib:$(MYLIBDIR):$(HOME)/lib:/usr/local/lib:@MYRUNPATH@:.
70RUNENV = LD_LIBRARY_PATH=.:/lib:/usr/lib:$(MYLIBDIR):$(HOME)/lib:/usr/local/lib:@MYRUNPATH@
71MYPOSTCMD = @MYPOSTCMD@
72
73
74
75#================================================================
76# Suffix rules
77#================================================================
78
79
80.SUFFIXES :
81.SUFFIXES : .c .o
82
83.c.o :
84	$(CC) -c $(CPPFLAGS) $(CFLAGS) $<
85
86
87
88#================================================================
89# Actions
90#================================================================
91
92
93all : $(MYLIBS) $(MYBINS) $(MYCGIS)
94	@$(MYPOSTCMD)
95	@printf '\n'
96	@printf '#================================================================\n'
97	@printf '# Ready to install.\n'
98	@printf '#================================================================\n'
99
100
101clean :
102	rm -rf $(MYLIBS) $(MYBINS) $(MYCGIS) $(MYCORELIBS) $(MYFCGIS) \
103	  *.exe *.o a.out *.dll.a *.dll *.dylib *.sl \
104	  check.out gmon.out leak.log casket casket-* *~
105
106
107version :
108	vernum=`expr $(LIBVER)00 + $(LIBREV)` ; \
109	  sed -e 's/_EST_VERSION.*/_EST_VERSION   "$(VERSION)"/' \
110	    -e "s/_EST_LIBVER.*/_EST_LIBVER    $$vernum/" \
111	    -e 's/_EST_PROTVER.*/_EST_PROTVER   "$(PROTVER)"/' estraier.h > estraier.h~
112	[ -f estraier.h~ ] && mv -f estraier.h~ estraier.h
113
114
115install :
116	mkdir -p $(DESTDIR)$(MYHEADDIR)
117	cp -Rf $(MYHEADS) $(DESTDIR)$(MYHEADDIR)
118	mkdir -p $(DESTDIR)$(MYLIBDIR)
119	cp -Rf $(MYLIBS) $(DESTDIR)$(MYLIBDIR)
120	mkdir -p $(DESTDIR)$(MYBINDIR)
121	cp -Rf $(MYBINS) $(MYSCRIPTS) $(DESTDIR)$(MYBINDIR)
122	mkdir -p $(DESTDIR)$(MYLIBEXECDIR)
123	cp -Rf $(MYCGIS) $(DESTDIR)$(MYLIBEXECDIR)
124	mkdir -p $(DESTDIR)$(MYDATADIR)
125	cp -Rf $(MYCONFS) $(MYDOCS) $(DESTDIR)$(MYDATADIR)
126	mkdir -p $(DESTDIR)$(MYMAN1DIR)
127	cd man && cp -Rf $(MYMAN1S) $(DESTDIR)$(MYMAN1DIR)
128	mkdir -p $(DESTDIR)$(MYMAN3DIR)
129	cd man && cp -Rf $(MYMAN3S) $(DESTDIR)$(MYMAN3DIR)
130	mkdir -p $(DESTDIR)$(MYPCDIR)
131	cp -Rf $(MYPCS) $(DESTDIR)$(MYPCDIR)
132	@printf '\n'
133	@printf '#================================================================\n'
134	@printf '# Thanks for using Hyper Estraier.\n'
135	@printf '#================================================================\n'
136
137
138install-strip :
139	make DESTDIR=$(DESTDIR) install
140	cd $(DESTDIR)$(MYBINDIR) && strip $(MYBINS)
141	cd $(DESTDIR)$(MYLIBEXECDIR) && strip $(MYCGIS)
142
143
144uninstall :
145	cd $(DESTDIR)$(MYHEADDIR) && rm -f $(MYHEADS)
146	cd $(DESTDIR)$(MYLIBDIR) && rm -f $(MYLIBS)
147	cd $(DESTDIR)$(MYBINDIR) && rm -f $(MYBINS) $(MYSCRIPTS)
148	cd $(DESTDIR)$(MYMAN1DIR) && rm -f $(MYMAN1S)
149	cd $(DESTDIR)$(MYMAN3DIR) && rm -f $(MYMAN3S)
150	cd $(DESTDIR)$(MYLIBEXECDIR) && rm -f $(MYCGIS)
151	rm -rf $(DESTDIR)$(MYDATADIR)
152	cd $(DESTDIR)$(MYPCDIR) && rm -f $(MYPCS)
153
154
155dist :
156	make version
157	make distclean
158	( cd javanative && ./configure && make dist )
159	( cd javapure && ./configure && make dist )
160	( cd rubynative && ./configure && make dist )
161	( cd rubypure && ./configure && make dist )
162	( cd perlnative && ./configure && make dist )
163	cd .. && tar cvf - $(PACKAGEDIR) | gzip -c > $(PACKAGETGZ)
164	sync ; sync
165
166
167distclean : clean
168	( cd javanative && if [ -f Makefile ] ; then make distclean ; fi )
169	( cd javapure && if [ -f Makefile ] ; then make distclean ; fi )
170	( cd rubynative && if [ -f Makefile ] ; then make distclean ; fi )
171	( cd rubypure && if [ -f Makefile ] ; then make distclean ; fi )
172	( cd perlnative && if [ -f Makefile ] ; then make distclean ; fi )
173	( cd windows && make clean )
174	( cd example && make clean )
175	rm -rf Makefile estconfig hyperestraier.pc \
176	  config.cache config.log config.status autom4te.cache
177
178
179casket : $(MYLIBS) $(MYBINS) $(MYCGIS)
180	rm -rf casket
181	./estcmd create -tr -xl -attr '@uri' seq -attr '@title' str \
182	  -attr '@author' str -attr '@mdate' num -attr '@size' num casket
183	./estcmd gather -cl -ws -il ja -cm -sd casket .
184
185
186multicasket :
187	rm -rf casket casket-*
188	./estcmd create -tr -xl -attr '@uri' seq -attr '@title' str \
189	  -attr '@author' str -attr '@mdate' num -attr '@size' num casket-doc
190	./estcmd gather -il ja casket-doc doc
191	./estcmd extkeys -um casket-doc
192	./estcmd gather -il ja casket-misc misc
193	./estcmd extkeys -um casket-misc
194
195
196scoutcasket :
197	rm -rf casket casket-*
198	./estcmd gather -il ja casket-0 .
199	./estcmd gather -il ja casket-1 doc
200	./estcmd gather -il ja casket-2 misc
201
202
203nodecasket : $(MYLIBS) $(MYBINS) $(MYCGIS)
204	rm -rf casket
205	./estmaster init -ex casket
206	./estcmd gather -cl -il ja -cm -sd casket/_node/sample0 .
207	./estcmd extkeys casket/_node/sample0
208	./estmaster start -bg casket ; sleep 1
209	masterurl='http://admin:admin@localhost:1978/master' ; \
210	  ./estcall raw "$$masterurl?action=useradd&name=mikio&passwd=oikim"
211	./estcall setuser -auth admin admin 'http://localhost:1978/node/sample0' mikio 1
212	./estcall setlink -auth mikio oikim 'http://localhost:1978/node/sample0' \
213	  'http://localhost:1978/node/sample0' 'Sample0' 20000
214	./estcall setlink -auth mikio oikim 'http://localhost:1978/node/sample0' \
215	  'http://localhost:1978/node/sample1' 'Sample1' 10100
216	./estcall setlink -auth mikio oikim 'http://localhost:1978/node/sample0' \
217	  'http://localhost:1978/node/sample2' 'Sample2' 9800
218	./estcall setlink -auth admin admin 'http://localhost:1978/node/sample1' \
219	  'http://localhost:1978/node/sample0' 'Sample0' 10001
220	./estcall setlink -auth admin admin 'http://localhost:1978/node/sample2' \
221	  'http://localhost:1978/node/sample0' 'Sample0' 10002
222	./estcall search -dpt 2 'http://localhost:1978/node/sample0' "mikio" > /dev/null
223	./estcall raw \
224	  'http://localhost:1978/node/sample1/search?phrase=mikio&depth=2' > /dev/null
225	./estcall raw \
226	  'http://localhost:1978/node/sample1/search_ui?phrase=mikio&depth=2' > /dev/null
227	./estcall raw \
228	  'http://localhost:1978/node/sample1/search_atom?phrase=mikio&depth=2' > /dev/null
229	./estcall raw \
230	  'http://localhost:1978/node/sample1/search_rss?phrase=mikio&depth=2' > /dev/null
231	./estmaster stop casket
232
233
234mastercasket : $(MYLIBS) $(MYBINS) $(MYCGIS)
235	rm -rf casket-master
236	./estmaster init casket-master
237	./estmaster start -bg casket-master ; sleep 1
238	masterurl='http://admin:admin@localhost:1978/master' ; \
239	  ./estcall raw "$$masterurl?action=nodeadd&name=node0&label=Node0" ; \
240	  ./estcall raw "$$masterurl?action=nodeadd&name=node1&label=Node1" ; \
241	  ./estcall raw "$$masterurl?action=nodeadd&name=node2&label=Node2" ; \
242	  ./estcall raw "$$masterurl?action=nodeadd&name=node3&label=Node3"
243	./estcall setlink -auth admin admin 'http://localhost:1978/node/node0' \
244	  'http://localhost:1978/node/node1' 'Node1' 10002
245	./estcall setlink -auth admin admin 'http://localhost:1978/node/node0' \
246	  'http://localhost:1978/node/node2' 'Node2' 10002
247	./estcall setlink -auth admin admin 'http://localhost:1978/node/node0' \
248	  'http://localhost:1978/node/node3' 'Node3' 10002
249	./estmaster stop casket-master
250
251
252wavercasket : $(MYLIBS) $(MYBINS) $(MYCGIS)
253	rm -rf casket-waver
254	./estwaver init casket-waver
255	printf '1,$$ s/guide-en/guide-ja/\nw\n' | ex casket-waver/_conf
256	printf '/qdbm\.sourceforge\.net/ d\nw\n' | ex casket-waver/_conf
257	printf '1,$$ s/^interval:.*/interval: 0/\nw\n' | ex casket-waver/_conf
258	printf '1,$$ s/^timeout:.*/timeout: 180/\nw\n' | ex casket-waver/_conf
259	printf '1,$$ s/^language:.*/language: 1/\nw\n' | ex casket-waver/_conf
260	printf '1,$$ s/^threadnum:.*/threadnum: 20/\nw\n' | ex casket-waver/_conf
261	printf '1,$$ s/^#node/node/\nw\n' | ex casket-waver/_conf
262
263
264pseudocasket :
265	rm -rf casket casket-pidx
266	./estcmd create -tr -xl -attr '@uri' seq -attr '@title' str \
267	  -attr '@author' str -attr '@mdate' num -attr '@size' num casket
268	./estcmd gather -il ja casket ./doc
269	mkdir casket-pidx
270	cp -f misc/*.est casket-pidx
271	chmod -R 777 casket casket-pidx
272
273
274check :
275	rm -rf casket casket-*
276	$(RUNENV) $(RUNCMD) ./estcmd create -tr -xl -attr '@uri' seq -attr '@title' str \
277	  -attr '@author' str -attr '@mdate' num -attr '@size' num casket
278	$(RUNENV) $(RUNCMD) ./estcmd put -ws casket ./misc/test001.est
279	$(RUNENV) $(RUNCMD) ./estcmd put -ws casket ./misc/test002.est
280	$(RUNENV) $(RUNCMD) ./estcmd put -ws casket ./misc/test003.est
281	$(RUNENV) $(RUNCMD) ./estcmd put -cl casket ./misc/test004.est
282	$(RUNENV) $(RUNCMD) ./estcmd put -cl casket ./misc/test005.est
283	$(RUNENV) $(RUNCMD) ./estcmd put -cl casket ./misc/test006.est
284	$(RUNENV) $(RUNCMD) ./estcmd get casket 1 > check.out
285	$(RUNENV) $(RUNCMD) ./estcmd get casket 2 > check.out
286	$(RUNENV) $(RUNCMD) ./estcmd get casket 3 > check.out
287	$(RUNENV) $(RUNCMD) ./estcmd get casket 4 > check.out
288	$(RUNENV) $(RUNCMD) ./estcmd get casket 5 > check.out
289	$(RUNENV) $(RUNCMD) ./estcmd get casket 6 > check.out
290	$(RUNENV) $(RUNCMD) ./estcmd get casket 1 @uri > check.out
291	$(RUNENV) $(RUNCMD) ./estcmd get -pidx misc casket 2000000001 > check.out
292	$(RUNENV) $(RUNCMD) ./estcmd get -pidx misc casket 2000000002 > check.out
293	$(RUNENV) $(RUNCMD) ./estcmd get -pidx misc casket 2000000001 @uri > check.out
294	$(RUNENV) $(RUNCMD) ./estcmd get -pidx misc casket 2000000002 @uri > check.out
295	$(RUNENV) $(RUNCMD) ./estcmd list -lp casket
296	$(RUNENV) $(RUNCMD) ./estcmd uriid casket "mailto:mikio@users.sourceforge.net"
297	$(RUNENV) $(RUNCMD) ./estcmd meta casket "mikio" "hirabayashi"
298	$(RUNENV) $(RUNCMD) ./estcmd meta casket
299	$(RUNENV) $(RUNCMD) ./estcmd search casket "Mikio Hirabayashi"
300	$(RUNENV) $(RUNCMD) ./estcmd search -nl casket `printf '\xe3\x81\x93\n'` > check.out
301	$(RUNENV) $(RUNCMD) ./estcmd search -cd casket `printf '\x32\xe8\xbc\xaa\n'` > check.out
302	$(RUNENV) $(RUNCMD) ./estcmd search -nb -vu -cd casket "mikio OR enjoy OR hoge"
303	$(RUNENV) $(RUNCMD) ./estcmd search -va -cd -max 1 casket "mikio OR momoyama AND GNU"
304	$(RUNENV) $(RUNCMD) ./estcmd search -vf -kn 8 casket "mikio ANDNOT LGPL" > check.out
305	$(RUNENV) $(RUNCMD) ./estcmd search -vs -kn 8 casket "dream OR estraier" > check.out
306	$(RUNENV) $(RUNCMD) ./estcmd search -vh -kn 8 casket "mikio AND estraier" > check.out
307	$(RUNENV) $(RUNCMD) ./estcmd search -vx -kn 8 -sim 2 casket > check.out
308	$(RUNENV) $(RUNCMD) ./estcmd search -va -ec 0.5 casket "mikio" > check.out
309	$(RUNENV) $(RUNCMD) ./estcmd search -vs -ec -0.5 casket "estraier" > check.out
310	$(RUNENV) $(RUNCMD) ./estcmd search -vx -ec dir casket "mikio OR estraier" > check.out
311	$(RUNENV) $(RUNCMD) ./estcmd search -vu \
312	  -attr "@uri STRBW http" casket "sample"
313	$(RUNENV) $(RUNCMD) ./estcmd search -vu \
314	  -attr '@title !ISTRINC ESTRAIER' casket "estraier"
315	$(RUNENV) $(RUNCMD) ./estcmd search -vu \
316	  -attr '@title ISTRRX ^est' -attr '@title !STRRX J' casket "estraier"
317	$(RUNENV) $(RUNCMD) ./estcmd search -vu \
318	  -attr '@title,author,to ISTRINC mikio' casket "mikio AND hirabayashi"
319	$(RUNENV) $(RUNCMD) ./estcmd search -vu \
320	  -attr "@cdate NUMEQ Wed, 23 Dec 2004 10:18:23 +0900" -attr "@uri STREW txt" casket
321	$(RUNENV) $(RUNCMD) ./estcmd search -vu -attr '@title' -ord "@title STRA" casket "[UVSET]"
322	$(RUNENV) $(RUNCMD) ./estcmd search -vu -ord "@cdate NUMD" casket "[UVSET]"
323	$(RUNENV) $(RUNCMD) ./estcmd search -gf -sf -ni casket \
324	  '"Hyper Estraier" miki* | *nix | put_* | *_doc' > check.out
325	$(RUNENV) $(RUNCMD) ./estcmd search -vs -hs casket \
326	  '[SIMILAR] WITH 10 mikio WITH 5 unix' > check.out
327	$(RUNENV) $(RUNCMD) ./estcmd search -va -hs casket '[ID] 1' > check.out
328	$(RUNENV) $(RUNCMD) ./estcmd search -va -hs casket '[URI] data001' > check.out
329	$(RUNENV) $(RUNCMD) ./estcmd search -va -hs casket '[RANK] 5 @size' > check.out
330	$(RUNENV) $(RUNCMD) ./estcmd search -va -hs casket '[RANK] -5 @mdate' > check.out
331	$(RUNENV) $(RUNCMD) ./estcmd search -pidx misc -vx -max -1 casket "[UVSET]" > check.out
332	$(RUNENV) $(RUNCMD) ./estcmd search -pidx misc -vs -max -1 casket "mikio" > check.out
333	$(RUNENV) $(RUNCMD) ./estcmd search -pidx misc -va -max -1 \
334	  -attr '@title STRINC a' -attr '@uri STRINC f' casket "estraier" > check.out
335	$(RUNENV) $(RUNCMD) ./estcmd search -pidx misc -vs -max -1 \
336	  -attr '@title,@size,@uri STRINC f' -attr '@size NUMGT 0' casket "estraier" > check.out
337	$(RUNENV) $(RUNCMD) ./estcmd search -pidx misc -vs -max -1 \
338	  -attr '@title,@size,@uri STRRX (a|b|0)' -ord '@size NUMD' casket "estraier" > check.out
339	$(RUNENV) $(RUNCMD) ./estcmd search -pidx misc -vf -dis '@type' \
340	  casket "[UVSET]" > check.out
341	$(RUNENV) $(RUNCMD) ./estcmd break "@This is a pen."
342	$(RUNENV) $(RUNCMD) ./estcmd break ./misc/zen.txt > check.out
343	$(RUNENV) $(RUNCMD) ./estcmd break -apn ./misc/chars.txt > check.out
344	$(RUNENV) $(RUNCMD) ./estcmd break -acc ./misc/chars.txt > check.out
345	$(RUNENV) $(RUNCMD) ./estcmd iconv "@This is a pen."
346	$(RUNENV) $(RUNCMD) ./estcmd iconv ./misc/zen.txt > check.out
347	$(RUNENV) $(RUNCMD) ./estcmd regex mikio Makefile.in > check.out
348	$(RUNENV) $(RUNCMD) ./estcmd regex -repl MIKIO mikio Makefile.in > check.out
349	$(RUNENV) $(RUNCMD) ./estcmd scandir -pu > check.out
350	$(RUNENV) $(RUNCMD) ./estcmd scandir -td > check.out
351	$(RUNENV) $(RUNCMD) ./estcmd out casket 3
352	$(RUNENV) $(RUNCMD) ./estcmd out casket 4
353	$(RUNENV) $(RUNCMD) ./estcmd edit casket 5 '@title' "five"
354	$(RUNENV) $(RUNCMD) ./estcmd edit casket 5 '@uri' "http://five.org/5"
355	$(RUNENV) $(RUNCMD) ./estcmd gather -il ja -bc -lf 0.05 -cm -cs 0.2 casket .
356	$(RUNENV) $(RUNCMD) ./estcmd gather -cl -ws -il ja -lt 10 -pc UTF-8 -cm -sd casket .
357	$(RUNENV) $(RUNCMD) ./estcmd extkeys -ni casket
358	$(RUNENV) $(RUNCMD) ./estcmd extkeys -fc -kn 64 casket
359	$(RUNENV) $(RUNCMD) ./estcmd extkeys -fc -kn 64 -um casket
360	$(RUNENV) $(RUNCMD) ./estcmd words casket > check.out
361	$(RUNENV) $(RUNCMD) ./estcmd draft ./misc/test003.est > check.out
362	$(RUNENV) $(RUNCMD) ./estcmd draft -um ./misc/test003.est > check.out
363	$(RUNENV) $(RUNCMD) ./estcmd search -vs -hs casket \
364	  '[SIMILAR] WITH 0 html WITH 5 gnu' > check.out
365	$(RUNENV) $(RUNCMD) ./estcmd purge casket
366	$(RUNENV) $(RUNCMD) ./estcmd optimize casket
367	$(RUNENV) $(RUNCMD) ./estcmd list casket
368	$(RUNENV) $(RUNCMD) ./estcmd search -vf casket \
369	  "[UVSET] ANDNOT mikio" > check.out
370	QUERY_STRING="phrase=mikio%20|%20estraier" \
371	  $(RUNENV) $(RUNCMD) ./estseek.cgi > check.out
372	QUERY_STRING="phrase=mikio&attr=@uri%20STRINC%20html" \
373	  $(RUNENV) $(RUNCMD) ./estseek.cgi > check.out
374	QUERY_STRING="phrase=estraier&order=@size%20NUMD" \
375	  $(RUNENV) $(RUNCMD) ./estseek.cgi > check.out
376	QUERY_STRING="phrase=mikio%7C%B4%B4%CD%BA&attr=&order=&perpage=5&pagenum=2&enc=EUC-JP" \
377	  $(RUNENV) $(RUNCMD) ./estseek.cgi > check.out
378	QUERY_STRING="similar=53&perpage=8&pagenum=2" \
379	  $(RUNENV) $(RUNCMD) ./estseek.cgi > check.out
380	QUERY_STRING="phrase=%5BSIMILAR%5D+WITH+2000+estraier&perpage=8&pagenum=2" \
381	  $(RUNENV) $(RUNCMD) ./estseek.cgi > check.out
382	QUERY_STRING="phrase=mikio%7Cestraier&clip=2&pagenum=2" \
383	  $(RUNENV) $(RUNCMD) ./estseek.cgi > check.out
384	PATH_INFO="/casket/inform" $(RUNENV) $(RUNCMD) ./estfraud.cgi > check.out
385	PATH_INFO="/casket/search" QUERY_STRING="phrase=mikio%20|%20estraier" \
386	  $(RUNENV) $(RUNCMD) ./estfraud.cgi > check.out
387	PATH_INFO="/casket/search" QUERY_STRING="phrase=mikio&attr1=@uri%20STRINC%20html" \
388	  $(RUNENV) $(RUNCMD) ./estfraud.cgi > check.out
389	PATH_INFO="/casket/get_doc" QUERY_STRING="uri=data001" \
390	  $(RUNENV) $(RUNCMD) ./estfraud.cgi > check.out
391	PATH_INFO="/casket/get_doc_attr" QUERY_STRING="uri=data001&attr=@uri" \
392	  $(RUNENV) $(RUNCMD) ./estfraud.cgi > check.out
393	PATH_INFO="/casket/etch_doc" QUERY_STRING="uri=data002" \
394	  $(RUNENV) $(RUNCMD) ./estfraud.cgi > check.out
395	PATH_INFO="/casket/uri_to_id" QUERY_STRING="uri=data003" \
396	  $(RUNENV) $(RUNCMD) ./estfraud.cgi > check.out
397	$(RUNENV) $(RUNCMD) ./estcmd randput casket 25
398	$(RUNENV) $(RUNCMD) ./estcmd search casket `printf '\xe3\x81\x93\n'` > check.out
399	$(RUNENV) $(RUNCMD) ./estcmd search casket "vw OR wx OR xy OR yz" > check.out
400	$(RUNENV) $(RUNCMD) ./estcmd create \
401	  -attr '@genre' str -attr '@id' num -attr '@digest' seq casket
402	$(RUNENV) $(RUNCMD) ./estcmd optimize casket
403	$(RUNENV) $(RUNCMD) ./estcmd wicked casket 1000
404	$(RUNENV) $(RUNCMD) ./estcmd regression casket
405	$(RUNENV) $(RUNCMD) ./estmttest wicked casket 1000 1
406	$(RUNENV) $(RUNCMD) ./estmttest regression casket
407	rm -rf casket casket-*
408	$(RUNENV) $(RUNCMD) ./estcmd gather -il ja -xh -sv casket .
409	$(RUNENV) $(RUNCMD) ./estcmd search -vu -hs casket "mikio OR estraier" > check.out
410	$(RUNENV) $(RUNCMD) ./estcmd optimize casket
411	$(RUNENV) $(RUNCMD) ./estcmd search -vu -hs casket "hyper estraier" > check.out
412	$(RUNENV) $(RUNCMD) ./estcmd gather -tr -il ja -sa -ss '@size' casket .
413	$(RUNENV) $(RUNCMD) ./estcmd search -vs -hs casket "mikio AND unix" > check.out
414	$(RUNENV) $(RUNCMD) ./estcmd optimize casket
415	$(RUNENV) $(RUNCMD) ./estcmd search -vf -hs casket "mikio NOT unix" > check.out
416	rm -rf casket casket-*
417	$(RUNENV) $(RUNCMD) ./estcmd create -tr -xl -attr '@uri' seq -attr '@title' str \
418	  -attr '@author' str -attr '@mdate' num -attr '@size' num casket
419	$(RUNENV) $(RUNCMD) ./estcmd uriid -pidx misc casket "data001"
420	$(RUNENV) $(RUNCMD) ./estcmd get -pidx misc casket "data002" > check.out
421	$(RUNENV) $(RUNCMD) ./estcmd search -pidx misc -vs -hs casket "[URI] data003" > check.out
422	$(RUNENV) $(RUNCMD) ./estcmd search -pidx misc -vx -hs casket "the" > check.out
423	$(RUNENV) $(RUNCMD) ./estcmd gather -il ja casket ./doc
424	$(RUNENV) $(RUNCMD) ./estcmd put casket ./misc/data001.est
425	$(RUNENV) $(RUNCMD) ./estcmd put casket ./misc/data002.est
426	$(RUNENV) $(RUNCMD) ./estcmd extkeys casket
427	$(RUNENV) $(RUNCMD) ./estcmd gather -il ja casket-child ./misc
428	$(RUNENV) $(RUNCMD) ./estcmd extkeys casket-child
429	$(RUNENV) $(RUNCMD) ./estcmd multi -db casket -db casket-child \
430	  -cd -hs -hu -dis '@type' mikio > check.out
431	$(RUNENV) $(RUNCMD) ./estcmd multi -db casket -db casket-child \
432	  -cd -hs -hu -attr '@uri ISTRINC est' -max -1 -sk 10 estraier > check.out
433	$(RUNENV) $(RUNCMD) ./estcmd merge casket casket-child
434	$(RUNENV) $(RUNCMD) ./estcmd merge casket-child casket
435	$(RUNENV) $(RUNCMD) ./estcmd merge -cl casket casket-child
436	$(RUNENV) $(RUNCMD) ./estcmd search -vs -hs casket "mikio OR unix" > check.out
437	rm -rf casket casket-*
438	$(RUNENV) $(RUNCMD) ./estmaster unittest casket
439	rm -rf casket casket-*
440	$(RUNENV) $(RUNCMD) ./estwaver unittest casket
441	rm -rf casket casket-*
442	$(RUNENV) $(RUNCMD) ./estcmd gather -il ja -xl -kn 48 -um casket misc
443	$(RUNENV) $(RUNCMD) ./estcmd search -vu -kn 32 -um -ec 0.5 -sim 2 casket > check.out
444	$(RUNENV) $(RUNCMD) ./estcmd purge -cl -fc -attr '@uri STREW .html' casket
445	$(RUNENV) $(RUNCMD) ./estcmd repair -rst casket
446	$(RUNENV) $(RUNCMD) ./estcmd search -vf casket "[UVSET]" > check.out
447	$(RUNENV) $(RUNCMD) ./estcmd search -vs -attr "@uri STRINC" casket > check.out
448	$(RUNENV) $(RUNCMD) ./estcmd words -kw casket > check.out
449	$(RUNENV) $(RUNCMD) ./estcmd words -kt casket > check.out
450	rm -rf casket casket-*
451	$(RUNENV) $(RUNCMD) ./estcmd gather -il ja casket-1 misc
452	$(RUNENV) $(RUNCMD) ./estcmd gather -il ja -xl casket-2 misc
453	$(RUNENV) $(RUNCMD) ./estcmd gather -il ja -xh casket-3 misc
454	QUERY_STRING="phrase1=mikio&stmode=1" \
455	  $(RUNENV) $(RUNCMD) ./estscout.cgi > check.out
456	QUERY_STRING="phrase1=mikio&phrase2=mikio&stmode=1" \
457	  $(RUNENV) $(RUNCMD) ./estscout.cgi > check.out
458	QUERY_STRING="phrase1=mikio&phrase2=mikio&phrase3=mikio&stmode=1" \
459	  $(RUNENV) $(RUNCMD) ./estscout.cgi > check.out
460	QUERY_STRING="phrase1=mikio&phrase2=mikio&attr1=%40uri%20STRBW%20file&stmode=1" \
461	  $(RUNENV) $(RUNCMD) ./estscout.cgi > check.out
462	QUERY_STRING='attr1=%40uri%20ISTRRX%20(txt%7Ceml%7Chtml)%24&max=20&stmode=1' \
463	  $(RUNENV) $(RUNCMD) ./estscout.cgi > check.out
464	QUERY_STRING='phrase2=mikio&attr1=%40uri%20STRINC%20test&stmode=1' \
465	  $(RUNENV) $(RUNCMD) ./estscout.cgi > check.out
466	rm -rf casket casket-*
467	@printf '\n'
468	@printf '#================================================================\n'
469	@printf '# Checking completed.\n'
470	@printf '#================================================================\n'
471
472
473check-valgrind :
474	make RUNCMD="valgrind --tool=memcheck --log-fd=1" check | tee leak.log
475	grep ERROR leak.log
476	grep 'at exit' leak.log
477
478
479check-xml :
480	make casket
481	./estcmd search -vx casket "mikio" > check.out ; \
482	  xmllint --dtdvalid estresult.dtd --noout check.out
483	./estcmd search -vx -max 3 casket "hyper estraier AND mikio" > check.out ; \
484	  xmllint --dtdvalid estresult.dtd --noout check.out
485	./estcmd search -vx -ec 0.5 casket "hyper estraier ANDNOT unix" > check.out ; \
486	  xmllint --dtdvalid estresult.dtd --noout check.out
487	./estcmd search -vx -sim 3 casket > check.out ; \
488	  xmllint --dtdvalid estresult.dtd --noout check.out
489	QUERY_STRING="" ./estseek.cgi | \
490	  tr -d '\r' | sed -n '/^$$/,$$ p' | grep -v '^$$' > check.out ; \
491	  xmllint --noout check.out
492	QUERY_STRING="phrase=mikio" ./estseek.cgi | \
493	  tr -d '\r' | sed -n '/^$$/,$$ p' | grep -v '^$$' > check.out ; \
494	  xmllint --noout check.out
495	QUERY_STRING="phrase=mikio&perpage=3&pagenum=2" ./estseek.cgi | \
496	  tr -d '\r' | sed -n '/^$$/,$$ p' | grep -v '^$$' > check.out ; \
497	  xmllint --noout check.out
498	QUERY_STRING="phrase=mikio&detail=3" ./estseek.cgi | \
499	  tr -d '\r' | sed -n '/^$$/,$$ p' | grep -v '^$$' > check.out ; \
500	  xmllint --noout check.out
501
502
503world :
504	make
505	cd javanative ; [ -f Makefile ] || ./configure ; make
506	cd javapure ; [ -f Makefile ] || ./configure ; make
507	cd rubynative ; [ -f Makefile ] || ./configure ; make
508	cd rubypure ; [ -f Makefile ] || ./configure ; make
509	cd perlnative ; [ -f Makefile ] || ./configure ; make
510
511
512check-world :
513	make check
514	cd javanative ; [ -f Makefile ] || ./configure ; make check
515	cd rubynative ; [ -f Makefile ] || ./configure ; make check
516	cd perlnative ; [ -f Makefile ] || ./configure ; make check
517
518
519install-world :
520	make install
521	cd javanative ; [ -f Makefile ] || ./configure ; make install
522	cd javapure ; [ -f Makefile ] || ./configure ; make install
523	cd rubynative ; [ -f Makefile ] || ./configure ; make install
524	cd rubypure ; [ -f Makefile ] || ./configure ; make install
525	cd perlnative ; [ -f Makefile ] || ./configure ; make install
526
527
528uninstall-world :
529	make uninstall
530	make uninstall-fcgi
531	cd javanative ; [ -f Makefile ] || ./configure ; make uninstall
532	cd javapure ; [ -f Makefile ] || ./configure ; make uninstall
533	cd rubynative ; [ -f Makefile ] || ./configure ; make uninstall
534	cd rubypure ; [ -f Makefile ] || ./configure ; make uninstall
535	cd perlnative ; [ -f Makefile ] || ./configure ; make uninstall
536
537
538mac :
539	make MYLIBS="$(MYMACLIBS)" CFLAGS="-Wall -fsigned-char -fno-common -O2 -DNDEBUG"
540
541
542check-mac :
543	make RUNENV="DYLD_LIBRARY_PATH=." check
544
545
546install-mac :
547	make MYLIBS="$(MYMACLIBS)" install
548
549
550uninstall-mac :
551	make MYLIBS="$(MYMACLIBS)" uninstall
552
553
554hpux :
555	make MYLIBS="$(MYHPUXLIBS)"
556
557
558check-hpux :
559	make RUNENV="SHLIB_PATH=." check
560
561
562install-hpux :
563	make MYLIBS="$(MYHPUXLIBS)" install
564
565
566uninstall-hpux :
567	make MYLIBS="$(MYHPUXLIBS)" uninstall
568
569
570win :
571	make CC="gcc -mno-cygwin" MYBINS="$(MYBINS) estmaster-sv" MYLIBS="$(MYWINLIBS)" \
572	  CFLAGS="-Wall -fsigned-char -O0 -DNDEBUG" LIBS="-lqdbm -lz -liconv -lregex" \
573	  MTLIBS="-lpthreadGC2" SKLIBS="-lws2_32"
574
575
576winpkg :
577	make win && strip *.exe
578	cd javanative && ./configure && make win
579	cd javapure && ./configure && make
580	cd rubypure && ./configure && make
581	cd windows && make
582	rm -rf $(PACKAGE)
583	mkdir -p $(PACKAGE)
584	cp -Rf estraier.dll libestraier.dll.a estraier.h estmtdb.h \
585	  estcmd.exe estmttest.exe estmaster.exe estmaster-sv.exe estbutler.exe \
586	  estcall.exe estwaver.exe estload.exe \
587	  estseek.cgi estfraud.cgi estproxy.cgi estscout.cgi estsupt.cgi \
588	  $(MYCONFS) doc $(PACKAGE)
589	rm -rf $(PACKAGE)/filter
590	cp -Rf /bin/mgwz.dll /bin/libiconv-2.dll /bin/regex.dll \
591	  /usr/local/bin/qdbm.dll $(PACKAGE)
592	cp -Rf /bin/pthreadGC2.dll /lib/mingw/libpthreadGC2.a $(PACKAGE)
593	cp -Rf /usr/local/include/depot.h /usr/local/include/curia.h \
594	  /usr/local/include/cabin.h /usr/local/include/villa.h $(PACKAGE)
595	cp -Rf /usr/include/mingw/pthread.h /usr/include/mingw/sched.h \
596	  /usr/include/mingw/semaphore.h $(PACKAGE)
597	cp -Rf /usr/local/xdoc2txt/* $(PACKAGE)
598	cp -Rf javanative/estraier.jar javanative/jestraier.dll $(PACKAGE)
599	cp -Rf javapure/estraierpure.jar $(PACKAGE)
600	cp -Rf rubypure/estraierpure.rb rubypure/estcall.rb $(PACKAGE)
601	cp -Rf windows/*.exe windows/*.bat windows/*.txt $(PACKAGE)
602	zip -r $(PACKAGEDIR)-win32.zip $(PACKAGE)
603	mv -f $(PACKAGEDIR)-win32.zip ..
604
605
606corelib : $(MYCORELIBS)
607
608
609fcgi : $(MYFCGIS)
610
611
612install-fcgi :
613	cp -Rf $(MYFCGIS) $(DESTDIR)$(MYLIBEXECDIR)
614
615
616uninstall-fcgi :
617	cd $(DESTDIR)$(MYLIBEXECDIR) && rm -f $(MYFCGIS)
618
619
620.PHONY : all clean install casket check
621
622
623
624#================================================================
625# Building binaries
626#================================================================
627
628
629libestraier.a : $(MYLIBOBJS)
630	$(AR) $(ARFLAGS) $@ $(MYLIBOBJS)
631
632
633libestraier.so.$(LIBVER).$(LIBREV).0 : $(MYLIBOBJS)
634	if $(CC) --print-prog-name=ld | egrep -i '(solaris|/ccs/|/ucb/)' > /dev/null ; \
635	  then \
636	    $(CC) -shared -Wl,-G,-h,libestraier.so.$(LIBVER) -o $@ $(MYLIBOBJS) \
637	       $(LDFLAGS) $(SKLIBS) $(MTLIBS) $(LIBS) ; \
638	  else \
639	    $(CC) -shared -Wl,-soname,libestraier.so.$(LIBVER) -o $@ $(MYLIBOBJS) \
640	       $(LDFLAGS) $(SKLIBS) $(MTLIBS) $(LIBS) ; \
641	  fi
642
643
644libestraier.so.$(LIBVER) : libestraier.so.$(LIBVER).$(LIBREV).0
645	ln -f -s libestraier.so.$(LIBVER).$(LIBREV).0 $@
646
647
648libestraier.so : libestraier.so.$(LIBVER).$(LIBREV).0
649	ln -f -s libestraier.so.$(LIBVER).$(LIBREV).0 $@
650
651
652libestraier.$(LIBVER).$(LIBREV).0.dylib : $(MYLIBOBJS)
653	$(CC) -dynamiclib -o $@ \
654	  -install_name $(MYLIBDIR)/libestraier.$(LIBVER).dylib \
655	  -current_version $(LIBVER).$(LIBREV).0 \
656	  -compatibility_version $(LIBVER) \
657	  $(MYLIBOBJS) $(LDFLAGS) $(SKLIBS) $(MTLIBS) $(LIBS)
658
659
660libestraier.$(LIBVER).dylib : libestraier.$(LIBVER).$(LIBREV).0.dylib
661	ln -f -s libestraier.$(LIBVER).$(LIBREV).0.dylib $@
662
663
664libestraier.dylib : libestraier.$(LIBVER).$(LIBREV).0.dylib
665	ln -f -s libestraier.$(LIBVER).$(LIBREV).0.dylib $@
666
667
668libestraier.sl : $(MYLIBOBJS)
669	$(CC) -shared -Wl,-b -o $@ $(MYLIBOBJS)
670
671
672libestraier.dll.a : estraier.dll
673
674
675estraier.dll : $(MYLIBOBJS)
676	$(CC) -shared -o $@ \
677	  -Wl,--out-implib=lib$@.a \
678	  -Wl,--export-all-symbols \
679	  -Wl,--enable-auto-import \
680	  -Wl,--add-stdcall-alias \
681	  -Wl,--whole-archive \
682	  -Wl,--no-whole-archive \
683	  $(MYLIBOBJS) $(LDFLAGS) $(SKLIBS) $(MTLIBS) $(LIBS)
684
685
686libestcore.a : estraier.o md5.o
687	$(AR) $(ARFLAGS) $@ estraier.o md5.o
688
689
690estcmd : estcmd.o mymorph.o $(MYLIBS)
691	$(LDENV) $(CC) $(CFLAGS) -o $@ estcmd.o mymorph.o \
692	  $(LDFLAGS) -lestraier $(APPLIBS) $(SKLIBS) $(MTLIBS) $(LIBS)
693
694
695estmttest : estmttest.o $(MYLIBS)
696	$(LDENV) $(CC) $(CFLAGS) -o $@ estmttest.o \
697	  $(LDFLAGS) -lestraier $(APPLIBS) $(SKLIBS) $(MTLIBS) $(LIBS)
698
699
700estmaster : estmaster.o mastermod.o mymorph.o $(MYLIBS)
701	$(LDENV) $(CC) $(CFLAGS) -o $@ estmaster.o mastermod.o mymorph.o \
702	  $(LDFLAGS) -lestraier $(APPLIBS) $(SKLIBS) $(MTLIBS) $(LIBS)
703
704
705estmaster-sv : estmaster.c mastermod.o mymorph.o $(MYLIBS)
706	$(LDENV) $(CC) $(CPPFLAGS) $(CFLAGS) -DMYWINSERV=1 -o $@ \
707	  estmaster.c mastermod.o mymorph.o \
708	  $(LDFLAGS) -lestraier $(APPLIBS) $(SKLIBS) $(MTLIBS) $(LIBS)
709
710
711estbutler : estbutler.o mastermod.o $(MYLIBS)
712	$(LDENV) $(CC) $(CFLAGS) -o $@ estbutler.o mastermod.o \
713	  $(LDFLAGS) -lestraier $(APPLIBS) $(SKLIBS) $(MTLIBS) $(LIBS)
714
715
716estcall : estcall.o $(MYLIBS)
717	$(LDENV) $(CC) $(CFLAGS) -o $@ estcall.o \
718	  $(LDFLAGS) -lestraier $(APPLIBS) $(SKLIBS) $(MTLIBS) $(LIBS)
719
720
721estwaver : estwaver.o wavermod.o mymorph.o $(MYLIBS)
722	$(LDENV) $(CC) $(CFLAGS) -o $@ estwaver.o wavermod.o mymorph.o \
723	  $(LDFLAGS) -lestraier $(APPLIBS) $(SKLIBS) $(MTLIBS) $(LIBS)
724
725
726estload : estload.o $(MYLIBS)
727	$(LDENV) $(CC) $(CFLAGS) -o $@ estload.o \
728	  $(LDFLAGS) -lestraier $(APPLIBS) $(SKLIBS) $(MTLIBS) $(LIBS)
729
730
731estseek.cgi : estseek.o $(MYLIBS)
732	$(LDENV) $(CC) $(CFLAGS) -o $@ estseek.o \
733	  $(LDFLAGS) -lestraier $(APPLIBS) $(SKLIBS) $(MTLIBS) $(LIBS)
734
735
736estseek.fcgi : estseek.c $(MYLIBS)
737	$(LDENV) $(CC) $(CPPFLAGS) $(CFLAGS) -DMYFCGI -o $@ estseek.c \
738	  $(LDFLAGS) -lfcgi -lestraier $(APPLIBS) $(SKLIBS) $(MTLIBS) $(LIBS)
739
740
741estfraud.cgi : estfraud.o mastermod.o mymorph.o $(MYLIBS)
742	$(LDENV) $(CC) $(CFLAGS) -o $@ estfraud.o mastermod.o mymorph.o \
743	  $(LDFLAGS) -lestraier $(APPLIBS) $(SKLIBS) $(MTLIBS) $(LIBS)
744
745
746estfraud.fcgi : estfraud.c mastermod.o mymorph.o $(MYLIBS)
747	$(LDENV) $(CC) $(CPPFLAGS) $(CFLAGS) -DMYFCGI -o $@ estfraud.c mastermod.o mymorph.o \
748	  $(LDFLAGS) -lfcgi -lestraier $(APPLIBS) $(SKLIBS) $(MTLIBS) $(LIBS)
749
750
751estproxy.cgi : estproxy.o $(MYLIBS)
752	$(LDENV) $(CC) $(CFLAGS) -o $@ estproxy.o \
753	  $(LDFLAGS) -lestraier $(APPLIBS) $(SKLIBS) $(MTLIBS) $(LIBS)
754
755
756estproxy.fcgi : estproxy.c $(MYLIBS)
757	$(LDENV) $(CC) $(CPPFLAGS) $(CFLAGS) -DMYFCGI -o $@ estproxy.c \
758	  $(LDFLAGS) -lfcgi -lestraier $(APPLIBS) $(SKLIBS) $(MTLIBS) $(LIBS)
759
760
761estscout.cgi : estscout.o $(MYLIBS)
762	$(LDENV) $(CC) $(CFLAGS) -o $@ estscout.o \
763	  $(LDFLAGS) -lestraier $(APPLIBS) $(SKLIBS) $(MTLIBS) $(LIBS)
764
765
766estscout.fcgi : estscout.c $(MYLIBS)
767	$(LDENV) $(CC) $(CPPFLAGS) $(CFLAGS) -DMYFCGI -o $@ estscout.c \
768	  $(LDFLAGS) -lfcgi -lestraier $(APPLIBS) $(SKLIBS) $(MTLIBS) $(LIBS)
769
770
771estsupt.cgi : estsupt.o $(MYLIBS)
772	$(LDENV) $(CC) $(CFLAGS) -o $@ estsupt.o \
773	  $(LDFLAGS) -lestraier $(APPLIBS) $(SKLIBS) $(MTLIBS) $(LIBS)
774
775
776estsupt.fcgi : estsupt.c $(MYLIBS)
777	$(LDENV) $(CC) $(CPPFLAGS) $(CFLAGS) -DMYFCGI -o $@ estsupt.c \
778	  $(LDFLAGS) -lfcgi -lestraier $(APPLIBS) $(SKLIBS) $(MTLIBS) $(LIBS)
779
780
781estcmd.o estmttest.o mastermod.o estmaster.o estbutler.o \
782  estcall.o estwaver.o estload.o \
783  estseek.o estfraud.o estproxy.o estscout.o estsupt.o mymorph.o : \
784  myconf.h md5.h estraier.h estmtdb.h estnode.h
785
786mymorph.o estcmd.o estmaster.o estwaver.o estfraud.o : mymorph.h
787
788md5.o : md5.h
789
790estraier.o : myconf.h md5.h estraier.h
791
792estmtdb.o : myconf.h md5.h estraier.h estmtdb.h
793
794estnode.o : myconf.h md5.h estraier.h estmtdb.h estnode.h
795
796mastermod.o estmaster.o estbutler.o : mastermod.h
797
798estmaster.o : myimage.dat
799
800wavermod.o estwaver.o : wavermod.h
801
802
803
804# END OF FILE
805