1/* Copyright 1994 NEC Corporation, Tokyo, Japan.
2 *
3 * Permission to use, copy, modify, distribute and sell this software
4 * and its documentation for any purpose is hereby granted without
5 * fee, provided that the above copyright notice appear in all copies
6 * and that both that copyright notice and this permission notice
7 * appear in supporting documentation, and that the name of NEC
8 * Corporation not be used in advertising or publicity pertaining to
9 * distribution of the software without specific, written prior
10 * permission.  NEC Corporation makes no representations about the
11 * suitability of this software for any purpose.  It is provided "as
12 * is" without express or implied warranty.
13 *
14 * NEC CORPORATION DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
15 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
16 * NO EVENT SHALL NEC CORPORATION BE LIABLE FOR ANY SPECIAL, INDIRECT OR
17 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
18 * USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
19 * OTHER TORTUOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
20 * PERFORMANCE OF THIS SOFTWARE.
21 */
22
23/*
24 * ���Υե�����Ǥϡ��ƥե���������ȡ��뤹��ǥ��쥯�ȥ�ʤɤ�
25 * ���ꤹ�뤿��Υޥ�������ꤷ�ޤ���
26 *
27 * ������ѥ����Ԥ�����ɬ�� Canna.conf �������ԤäƤ���������
28 *
29 * �ʲ��˼����ޥ�������ꤷ�Ʋ�������
30 *
31 * cannaBinDir;
32 *		���ޥ�ɤ����ȡ��뤹��ǥ��쥯�ȥ�Ǥ���
33 *		���Υǥ��쥯�ȥ�˥��ޥ�ɥ������ѥ���ĥ��褦��
34 *		���Ƥ���������
35 * cannaSrvDir;
36 *		cannaserver ����� cannakill �����ȡ��뤹��ǥ��쥯�ȥ�
37 *              �Ǥ���
38 * libCannaDir;
39 *		libcanna ���饤�֥���������ȡ��뤹��ǥ��쥯�ȥ�Ǥ���
40 * cannaLibDir;
41 *		�ؤ���ʡ٤μ�Υե���������ȡ��뤹��ǥ��쥯�ȥ�Ǥ���
42 * cannaManDir;
43 *              �ؤ���ʡٴ�Ϣ����饤��ޥ˥奢��Υ����ȡ���ǥ��쥯�ȥ�
44 *              �Ǥ���
45 * cannaIncDir;
46 *		�إå��ե���������ȡ��뤹��ǥ��쥯�ȥ�Ǥ���
47 * ErrDir;
48 *		���ե����뤬�֤����ǥ��쥯�ȥ�Ǥ���
49 *		���ե�����ϡ����ʴ����Ѵ������Ф����顼��å�������
50 *		���Ϥ���ե�����Ǥ���
51 *
52 * cannaOwner:
53 *		����Ȥ��ʴ����Ѵ������ФΥ����ʤ���ꤷ�ޤ���
54 *
55 * cannaGroup:
56 *		����Ȥ��ʴ����Ѵ������ФΥ��롼�פ���ꤷ�ޤ���
57 *
58 * sharedLibExtension:
59 *              shared library �γ�ĥ�Ҥ���ꤷ�ޤ����̾�� so.1 �ʤ�
60 *              ���Ȥ��ޤ��� HP-UX �Ǥ� sl �Ǥ���
61 *
62 * cannaDsoRev:
63 *              shared library �Υ�ӥ�������ꤷ�ޤ���so.1 �ʤ� 1
64 *              �Ǥ���so.1.1 �Τ褦�ʾ��ϡ� 1.1 �Ȼ��ꤷ�ޤ���
65 *
66 * pubdicDir:
67 *              Pubdic+ �ǤϺǿ��μ�����������Ƥ��ޤ��������������
68 *              ������ˤϤ����Ǥ��Υǥ��쥯�ȥ����ꤷ�ޤ���Canna
69 *              �� make �������ˡ����ꤵ�줿�ǥ��쥯�ȥ�� iroha.t
70 *              ������Ƥ�����֤ˤʤäƤ���褦�ˤ��Ƥ���������
71 *
72 * engineSwitch:
73 *              (���ߤ����ѤǤ��ޤ���)
74 *
75 * cannaLight:
76 *              (���̤���ͳ��̵���¤�1�Τޤޤˤ��Ƥ���������)
77 *
78 * USE_OBSOLETE_STYLE_FILENAME:
79 *              ��������̾�����޻��ơ��֥�̾�� Version 3.4 ������̾
80 *              ���Τޤޤˤ�����ˤϡ����Υޥ���� #define ���Ƥ���
81 *              ���������ʤߤˡ�Version 3.5 ���顢���޻���̾�Ѵ��ơ�
82 *              �֥�γ�ĥ�Ҥ� .kp ���� .cbp �ء��ƥ����ȼ���ե����롢
83 *              �Х��ʥ꼭��ե����롢����ؽ��ե�����γ�ĥ�Ҥ����줾
84 *              �졢.t, .d, .fq ���� .cbd, .ctd, .cld ���ѹ��ˤʤ�ޤ�
85 *              ����
86 *
87 * �԰ʲ��Σ��ĤϽ������פȤϻפ��ޤ����������Ƥ����ޤ���
88 *
89 * DicDir;
90 *		��������ȡ��뤹��ǥ��쥯�ȥ�Ǥ���
91 *
92 * JAPANESEMAN;
93 *              �ޥ˥奢��Ȥ������ܸ�ޥ˥奢������ȡ��뤹�����
94 *              �Ϥ��Υޥ���� #define ���ޤ����Ѹ�ޥ˥奢��Ͻ�ʬ��
95 *              ����äƤ��ʤ��Τ� #define ���Ƥ����Ƥ���������
96 */
97/*
98 * $Id: Canna.conf.dist,v 1.23.2.4 2004/04/26 23:15:17 aida_s Exp $
99 */
100
101/* root�ˤʤ餺�˥����ȡ��뤹����Ϥ����������Ʋ����� */
102/* #define InstallAsUser */
103/* ����ȸߴ��Υǥ��쥯�ȥ깽¤�ˤ�����Ϥ����������Ƥ������� */
104/* #define ObsoleteInstallDir */
105
106/* �ʲ��ǥե�����͡��ѹ����� */
107#ifdef InstallAsUser
108# define DefCannaPrefix $(HOME)/canna
109# define DefErrDir $(cannaPrefix)/log
110# define DefLibCannaDir $(cannaExecPrefix)/lib
111#else
112# define DefCannaPrefix /usr/local/canna
113# ifdef ObsoleteInstallDir
114#  define DefErrDir /usr/spool/canna
115#  define DefLibCannaDir /usr/lib
116# else
117#  define DefErrDir /var/log
118#  define DefLibCannaDir $(cannaExecPrefix)/lib
119# endif
120#endif
121#ifdef ObsoleteInstallDir
122# define DefCannaSrvDir $(cannaExecPrefix)/bin
123# define DefCannaLibDir $(cannaPrefix)/lib
124#else
125# define DefCannaSrvDir $(cannaExecPrefix)/sbin
126# define DefCannaLibDir $(cannaPrefix)/share/canna
127#endif
128
129#if defined(LinuxArchitecture) || defined(FreeBSDArchitecture) \
130    || defined(NetBSDArchitecture) || defined(OpenBSDArchitecture)
131# ifdef UseElfFormat
132#  define ModernElfLinkAvailable UseElfFormat
133#  define CannaGccElfArchitecture
134# else
135#  define ModernElfLinkAvailable NO
136# endif
137#elif defined(SVR4Architecture)
138# define ModernElfLinkAvailable YES
139#else
140# define ModernElfLinkAvailable NO
141#endif
142
143cannaPrefix = DefCannaPrefix
144cannaExecPrefix = $(cannaPrefix)
145cannaBinDir = $(cannaExecPrefix)/bin
146cannaSrvDir = DefCannaSrvDir
147XCOMM cannaLibDir = /var/lib/canna
148XCOMM cannaLibDir = /var/db/canna
149cannaLibDir = DefCannaLibDir
150XCOMM cannaManDir = $(cannaPrefix)/share/man
151cannaManDir = $(cannaPrefix)/man
152cannaIncDir = $(cannaPrefix)/include/canna
153
154libCannaDir = DefLibCannaDir
155ErrDir  = DefErrDir
156
157/* ��С������Ȥθߴ�API��̵���ˤ������0��������Ƥ������� */
158#define SupportOldWchar 1
159
160/* IPv6���Ѥ������1��������Ƥ������� */
161#define UseInet6 0 /* requires newer IPv6 implementation */
162
163/* 3.2�Ϥ���3.6�ϤޤǤη����μ��������Ϥ����������Ƥ������� */
164/* #define DIC_3_6_COMPAT */
165
166/* ELF��Ȥ��ץ�åȥե�����ǡ���ͭ�饤�֥��ΰ�����Linux��NetBSD��
167 * OpenBSD�Τ褦�ʸ���Ū�ʰ����ˤ�������硢YES�ˤ��Ƥ���������
168 */
169#define ModernElfLink NO /* experimental */
170
171
172cannaOwner = bin
173cannaGroup = bin
174
175#ifdef InstallAsUser
176cannaOwnerGroup =
177#else
178cannaOwnerGroup = -o $(cannaOwner) -g $(cannaGroup)
179#endif
180
181cannaDsoRev = 1.2
182
183#if defined(cygwinArchitecture)
184/* import library��������ꤷ�Ƥ�����DLL���Τ�/usr/X11R6/bin�����롣 */
185sharedLibExtension = a
186#elif defined(HPArchitecture) && !defined(LinuxArchitecture)
187sharedLibExtension = sl.$(cannaDsoRev)
188#elif defined(DarwinArchitecture)
189sharedLibExtension = $(cannaDsoRev).dylib
190#else
191sharedLibExtension = so.$(cannaDsoRev)
192#endif
193
194/* iroha.t �ξ�����ꡣpubdic+ ������Ф��������ꤷ�ޤ��� */
195pubdicDir = $(CANNAROOT)/dic/ideo/pubdic
196
197#ifdef InstallAsUser
198CHOWN = :
199CHGRP = :
200CHMOD = :
201#else
202CHOWN = chown
203CHGRP = chgrp
204CHMOD = chmod
205#endif
206
207/* ���ܸ�ޥ˥奢���Ȥ�ʤ��ΤǤ���Х����ȥ����� */
208#define JAPANESEMAN
209
210/* #define engineSwitch */
211
212/* �ʲ����������å������ */
213#ifdef engineSwitch
214   kinput2SrcDir = /work/X11R5/contrib/im/kinput2
215      wnn4SrcDir = /work/X11R5/contrib/im/Xsi/Wnn
216       sj3SrcDir = /work/X11R5/contrib/im/Ximp/sony/sj3
217
218           DLLIB = -ldl
219  cannaDsoRevDef = -DCANNA_DSOREV=\"$(cannaDsoRev)\"
220#endif
221
222/* cannaserver��libcanna �� EUC �ץ�ȥ�����������Ȥ߹��ߤޤ���
223 * EUC�ץ�ȥ���Υ��ݡ��Ȥ��Ǥ��ڤ�줿�Τǡ����̤���ͳ��̵���¤�1��
224 * ���ꤷ�Ʋ�������
225 */
226cannaLight = 1
227
228/* ��������̾�����޻��ơ��֥�̾�������̾���Τޤޤˤ�����ˤϡ�
229   USE_OBSOLETE_STYLE_FILENAME ��������� */
230/* #define USE_OBSOLETE_STYLE_FILENAME */
231
232
233/*
234 * �����ȡ���Ѥߤζ�ͭ�饤�֥����Ѥ��� Canna ��
235 * ���ޥ�������������ϡ����� YES �ˤ��Ƥ�������
236 */
237/* #define UseInstalledLibCanna YES */
238#define UseInstalledLibCanna NO
239
240DicDir   = $(cannaLibDir)/dic
241
242/* �������鲼���ѹ����פǤ� */
243
244/*
245 * �����ˤĤ��Ƥ� <Library.tmpl> �⸫�Ƥ�������
246 */
247
248#ifndef DoSharedLib
249#define DoSharedLib HasSharedLibraries
250#endif
251
252#if DoSharedLib == YES && defined(cygwinArchitecture)
253#define CYGWIN_DLL
254#endif
255#ifndef CYGWIN_DLL
256/* cygwin�Ǥϡ�imake��import library��*.dll.a�Ǥʤ�*.a�ˤ��Ƥ��ޤ����ᡢ
257   static library�ȶ�¸�Ǥ��ʤ� */
258#define DoNormalLib YES
259#endif
260
261#define DoDebugLib NO
262#define DoProfileLib NO
263
264#ifndef UseInstalledLibCanna
265#define UseInstalledLibCanna NO
266#endif /* UseInstalledLibCanna */
267
268#if 0 && defined(OS2Architecutre)
269# ifdef LibraryTargetName
270#  undef LibraryTargetName
271# endif
272# define LibraryTargetName(libname) libname.a
273#endif
274#if DoSharedLib
275# define CannaDepLibraryName(libname) Concat(lib,libname.$(sharedLibExtension))
276#else
277# define CannaDepLibraryName(libname) LibraryTargetName(libname)
278#endif
279
280#if UseInstalledLibCanna
281DEPCANNALIB = $(libCannaDir)/CannaDepLibraryName(canna)
282CANNALIB = -L$(libCannaDir) -lcanna $(DLLIB)
283DEPCANNALIB16 = $(libCannaDir)/CannaDepLibraryName(canna16)
284CANNALIB16 = -L$(libCannaDir) -lcanna16 $(DLLIB)
285#else
286DEPCANNALIB = $(CANNASRC)/CannaDepLibraryName(canna)
287CANNALIB = -L$(CANNASRC) -lcanna $(DLLIB)
288DEPCANNALIB16 = $(CANNASRC)/CannaDepLibraryName(canna16)
289CANNALIB16 = -L$(CANNASRC) -lcanna16 $(DLLIB)
290#endif
291
292#if DoSharedLib
293DEPRKCLIB = $(DEPCANNALIB)
294RKCLIB = $(CANNALIB)
295#else /* !HasSharedLibraries */
296DEPRKCLIB = $(RKCSRC)/LibraryTargetName(RKC)
297RKCLIB = -L$(RKCSRC) -lRKC
298#endif /* !HasSharedLibraries */
299
300DEPRKLIB = $(CANNAROOT)/lib/RK/LibraryTargetName(RK)
301RKLIB = -L$(CANNAROOT)/lib/RK -lRK
302DEPRKINDEPLIB = $(CANNAROOT)/lib/RKindep/LibraryTargetName(RKindep)
303RKINDEPLIB = -L$(CANNAROOT)/lib/RKindep -lRKindep
304LDOPTIONS = $(CDEBUGFLAGS) $(CCOPTIONS) $(LOCAL_LDFLAGS)
305#if ModernElfLink
306/* best effort */
307# if defined(CannaGccElfArchitecture)
308SHLIBLDFLAGS = -shared -Wl,-rpath,$(libCannaDir)
309# elif defined(SVR4Architecture)
310SHLIBLDFLAGS = -G -z text
311# endif
312USRLIBDIRPATH = $(libCannaDir)
313CCENVSETUP = LD_RUN_PATH=$(USRLIBDIRPATH)
314SOSYMLINK = true
315#endif
316
317/*
318 * �������鲼���ѹ����ʤ��褦�ˤ��Ƥ���������
319 */
320#if defined(SunArchitecture)
321# define CannaDefines -D__EXTENSIONS__
322#else
323# define CannaDefines
324#endif
325CANNA_DEFINES = CannaDefines
326CANNASERVER_DEFINES = $(CANNA_DEFINES)
327RK_DEFINES = $(CANNA_DEFINES)
328RKC_DEFINES = -DCPP='"$(CPP)"' $(CANNA_DEFINES)
329UILIB_DEFINES = $(cannaDsoRevDef) $(CANNA_DEFINES)
330SCRIPTS_DEFINES = $(CANNA_DEFINES)
331
332#ifdef JAPANESEMAN
333JMNLOCALE = ja
334#endif
335
336/* USE_OBSOLETE_STYLE_FILENAME ��������뤿������ */
337#ifdef USE_OBSOLETE_STYLE_FILENAME
338useObsoleteFilename = -DUSE_OBSOLETE_STYLE_FILENAME
339#endif
340
341#ifdef InstallAsUser
342UnixSockDir = $(cannaPrefix)/tmp/.iroha_unix
343AccessFile = $(cannaPrefix)/etc/hosts.canna
344#else
345UnixSockDir = /tmp/.iroha_unix
346AccessFile = /etc/hosts.canna
347#endif
348UnixSockName = IROHA
349
350/*
351 * �ʲ�man�ڡ����˴ؤ������
352 */
353
354#ifndef OS2Architecutre
355MANUALSED = $(CANNAROOT)/misc/manual.sed
356
357#define ConvertPathName(dst,src)					@@\
358dst:: src $(MANUALSED)							@@\
359	sed -f $(MANUALSED) src > dst					@@\
360$(MANUALSED):: $(CANNAROOT)/Canna.conf					@@\
361	(echo "s%@(cannaBinDir)%$(cannaBinDir)%g"; \			@@\
362	 echo "s%@(cannaLibDir)%$(cannaLibDir)%g"; \			@@\
363	 echo "s%@(cannaIncDir)%$(cannaIncDir)%g"; \			@@\
364	 echo "s%@(UnixSockDir)%$(UnixSockDir)%g"; \			@@\
365	 echo "s%@(UnixSockName)%$(UnixSockName)%g"; \			@@\
366	 echo "s%@(AccessFile)%$(AccessFile)%g"; \			@@\
367	 echo "s%@(DicDir)%$(DicDir)%g"; \				@@\
368	 echo "s%@(ErrDir)%$(ErrDir)%g") > $(MANUALSED)			@@\
369clean::									@@\
370	$(RM) $(MANUALSED)
371#else
372MANUALSED = manual.sed
373
374#define ConvertPathName(dst,src)					@@\
375dst:: src $(MANUALSED)							@@\
376	sed -f $(MANUALSED) src > dst					@@\
377$(MANUALSED):: $(CANNAROOT)/Canna.conf					@@\
378	echo "s%@(cannaBinDir)%$(cannaBinDir)%g" > $(MANUALSED)		@@\
379	echo "s%@(cannaLibDir)%$(cannaLibDir)%g" >> $(MANUALSED)	@@\
380	echo "s%@(cannaIncDir)%$(cannaIncDir)%g" >> $(MANUALSED)	@@\
381	echo "s%@(UnixSockDir)%$(UnixSockDir)%g" >> $(MANUALSED)	@@\
382	echo "s%@(UnixSockName)%$(UnixSockName)%g" >> $(MANUALSED)	@@\
383	echo "s%@(AccessFile)%$(AccessFile)%g" >> $(MANUALSED)		@@\
384	echo "s%@(DicDir)%$(DicDir)%g" >> $(MANUALSED)			@@\
385	echo "s%@(ErrDir)%$(ErrDir)%g" >> $(MANUALSED)			@@\
386clean::									@@\
387	$(RM) $(MANUALSED)
388#endif
389
390#ifdef InstallManPageLong
391#undef InstallManPageLong
392#endif
393
394#ifdef ObsoleteInstallDir
395#define ManInstDir man$(MANSUFFIX)
396#define ManBase(dest) dest.$(MANSUFFIX)
397#define LibManInstDir man$(LIBMANSUFFIX)
398#define LibManBase(dest) dest.$(LIBMANSUFFIX)
399#else /* !ObsoleteInstallDir */
400#define ManInstDir man1
401#define ManBase(dest) dest.1
402#define LibManInstDir man3
403#define LibManBase(dest) dest.3
404#endif /* !ObsoleteInstallDir */
405#define ManDest(dest) ManInstDir/ManBase(dest)
406#define LibManDest(dest) LibManInstDir/LibManBase(dest)
407#define ManTop(destdir) $(DESTDIR)destdir
408#define JManTop(destdir) $(DESTDIR)destdir/$(JMNLOCALE)
409
410#ifdef JAPANESEMAN
411#define	InstallManPageLong(file,destdir,dest)				@@\
412ConvertPathName(file.tmp,file.man)					@@\
413ConvertPathName(file.jtmp,file.jmn)					@@\
414install.man:: file.tmp file.jtmp					@@\
415	MakeDir($(DESTDIR)destdir/ManInstDir)				@@\
416	MakeDir($(DESTDIR)destdir/$(JMNLOCALE)/ManInstDir)		@@\
417	$(INSTALL) -c $(INSTMANFLAGS) file.tmp ManTop(destdir)/ManDest(dest)	@@\
418	$(INSTALL) -c $(INSTMANFLAGS) file.jtmp JManTop(destdir)/ManDest(dest)	@@\
419	$(RM) file.tmp file.jtmp					@@\
420clean::									@@\
421	$(RM) file.tmp file.jtmp
422#else
423#define	InstallManPageLong(file,destdir,dest)				@@\
424ConvertPathName(file.tmp,file.man)					@@\
425install.man:: file.tmp							@@\
426	MakeDir($(DESTDIR)destdir/ManInstDir)				@@\
427	$(INSTALL) -c $(INSTMANFLAGS) file.tmp ManTop(destdir)/ManDest(dest)	@@\
428	$(RM) file.tmp							@@\
429clean::									@@\
430	$(RM) file.tmp
431#endif
432
433#ifdef InstallManPage
434#undef InstallManPage
435#endif
436#define	InstallManPage(file,destdir)					@@\
437InstallManPageLong(file,destdir,file)
438
439#ifdef InstallLibManPageLong
440#undef InstallLibManPageLong
441#endif
442#ifdef JAPANESEMAN
443#define	InstallLibManPageLong(file,destdir,dest)			@@\
444ConvertPathName(file.tmp,file.man)					@@\
445ConvertPathName(file.jtmp,file.jmn)					@@\
446install.man:: file.tmp file.jtmp					@@\
447	MakeDir($(DESTDIR)destdir/LibManInstDir)			@@\
448	MakeDir($(DESTDIR)destdir/$(JMNLOCALE)/LibManInstDir)		@@\
449	$(INSTALL) -c $(INSTMANFLAGS) file.tmp ManTop(destdir)/LibManDest(dest)	@@\
450	$(INSTALL) -c $(INSTMANFLAGS) file.jtmp JManTop(destdir)/LibManDest(dest)	@@\
451	$(RM) file.tmp file.jtmp					@@\
452clean::									@@\
453	$(RM) file.tmp file.jtmp
454#else
455#define	InstallLibManPageLong(file,destdir,dest)			@@\
456ConvertPathName(file.tmp,file.man)					@@\
457install.man:: file.tmp							@@\
458	MakeDir($(DESTDIR)destdir/LibManInstDir)			@@\
459	$(INSTALL) -c $(INSTMANFLAGS) file.tmp ManTop(destdir)/LibManDest(dest)	@@\
460	$(RM) file.tmp							@@\
461clean::									@@\
462	$(RM) file.tmp
463#endif
464
465#ifdef InstallLibManPage
466#undef InstallLibManPage
467#endif
468#define	InstallLibManPage(file,destdir)					@@\
469InstallLibManPageLong(file,destdir,file)
470
471#ifdef InstallLibManPageAliases
472#undef InstallLibManPageAliases
473#endif
474#ifdef JAPANESEMAN
475#define InstallLibManPageAliases(file,destdir,aliases)			@@\
476install.man::								@@\
477	@for i in aliases; do (set -x; \				@@\
478	$(RM) $(DESTDIR)destdir/LibManDest($$i); \			@@\
479	$(LN) LibManBase(file) ManTop(destdir)/LibManDest($$i); \	@@\
480	$(RM) $(DESTDIR)destdir/$(JMNLOCALE)/LibManDest($$i); \		@@\
481	$(LN) LibManBase(file) JManTop(destdir)/LibManDest($$i) \	@@\
482	); done
483#else
484#define InstallLibManPageAliases(file,destdir,aliases)			@@\
485install.man::								@@\
486	@for i in aliases; do (set -x; \				@@\
487	$(RM) $(DESTDIR)destdir/LibManDest($$i); \			@@\
488	$(LN) LibManBase(file) JManTop(destdir)/LibManDest($$i) \	@@\
489	); done
490#endif
491
492/*
493 * �ʲ��饤�֥��˴ؤ������
494 */
495
496#if ModernElfLink
497# define CannaLongShLib(libname,rev) Concat(lib,libname.so.rev)
498# define CannaShortShLib(libname) Concat(lib,libname.so)
499
500# if defined(CannaGccElfArchitecture)
501#  define CannaLinkTmpSharedLibrary(tmpso,dlname,solist) \
502    $(CC) -o tmpso $(SHLIBLDFLAGS) -Wl,-soname,dlname solist $(REQUIREDLIBS) BaseShLibReqs
503# elif defined(SVR4Architecture)
504#  define CannaLinkTmpSharedLibrary(tmpso,dlname,solist) \
505    $(CCENVSETUP) $(LD) -o tmpso $(SHLIBLDFLAGS) -h dlname solist $(REQUIREDLIBS) BaseShLibReqs
506# else
507#  error unsupported platform
508# endif
509/* CannaLinkTmpSharedLibrary */
510
511# define CannaSharedLibraryTarget(libname,rev,solist,down,up)		@@\
512AllTarget(CannaLongShLib(libname,rev))					@@\
513									@@\
514CannaLongShLib(libname,rev):  solist $(EXTRALIBRARYDEPS)		@@\
515	$(RM) $@~							@@\
516	@SONAME=`echo $@ | sed 's/\.[^\.]*$$//'`; set -x; \		@@\
517		(cd down; CannaLinkTmpSharedLibrary(up/$@~,$$SONAME,solist)); \ @@\
518		$(RM) $$SONAME; $(LN) $@ $$SONAME			@@\
519	$(RM) $@ 							@@\
520	$(MV) $@~ $@							@@\
521	@if $(SOSYMLINK); then (set -x; \				@@\
522	  $(RM) CannaShortShLib(libname); \				@@\
523	  $(LN) $@ CannaShortShLib(libname)); fi			@@\
524									@@\
525clean::									@@\
526	@MAJREV=`expr rev : '\([^.]*\)'`; \				@@\
527	set -x; $(RM) CannaLongShLib(libname,$$MAJREV)			@@\
528	$(RM) CannaLongShLib(libname,rev) CannaShortShLib(libname)
529/* CannaSharedLibraryTarget */
530# define CannaInstallSharedLibrary(libname,rev,dest)			@@\
531install:: CannaLongShLib(libname,rev) 					@@\
532	MakeDir($(DESTDIR)dest)						@@\
533	$(INSTALL) $(INSTALLFLAGS) $(INSTBINFLAGS) CannaLongShLib(libname,rev) $(DESTDIR)dest @@\
534	@T=`echo $(DESTDIR)dest/CannaLongShLib(libname,rev) | sed 's/\.[^\.]*$$//'`;\
535	  set -x; $(RM) $$T && $(LN) CannaLongShLib(libname,rev) $$T	@@\
536	@if $(SOSYMLINK); then (set -x; \
537	  $(RM) $(DESTDIR)dest/CannaShortShLib(libname); \		@@\
538	  $(LN) CannaLongShLib(libname,rev) $(DESTDIR)dest/CannaShortShLib(libname)); fi
539/* CannaInstallSharedLibrary */
540
541#elif defined(CYGWIN_DLL)
542/* libname-def.cpp����Τ����ݤʤΤ�X��SharedLibraryTarget���� */
543# define CannaSharedLibraryTarget(libname,rev,solist,down,up)		@@\
544AllTarget(Concat3(lib,libname,.dll))					@@\
545									@@\
546Concat3(lib,libname,.dll):  solist					@@\
547	RemoveFile(LibraryTargetName(libname))				@@\
548	RemoveFile(Concat3(lib,libname,.dll))				@@\
549	gcc -shared -nostartfiles -Wl,--out-implib=Concat(lib,libname.a) -o Concat3(lib,libname,.dll) solist $(REQUIREDLIBS)	@@\
550									@@\
551clean::									@@\
552	RemoveFile(LibraryTargetName(libname))				@@\
553	RemoveFile(Concat3(lib,libname,.dll))
554/* CannaSharedLibraryTarget */
555/* 4.3.0�Ǥϥ饤�֥���̿̾���ѹ�����Ƥ���褦�ʤΤǸŤ�̿̾��Ȥ� */
556# define CannaInstallSharedLibrary(libname,rev,dest)                    @@\
557InstallTarget(install,LibraryTargetName(libname),$(INSTLIBFLAGS),$(USRLIBDIR)) @@\
558InstallTarget(install,Concat3(lib,libname,.dll),$(INSTBINFLAGS),$(BINDIR))
559/* CannaInstallSharedLibrary */
560
561#elif defined(RsArchitecture)
562/* �ʲ��� IBM ���ø��θ�Ȫ����(furuhata@trl.ibm.co.jp)�ˤ�����ޤ��� */
563# define CannaSharedLibraryTarget(libname,rev,solist,down,up)		@@\
564AllTarget(Concat(lib,libname.a))					@@\
565									@@\
566Concat(lib,libname.a):  solist $(UNSHAREDOBJS)				@@\
567	$(RM) $@~ shr.o							@@\
568	(cd down; $(AR) up/$@~ solist)					@@\
569	dump -g $@~ | sed -n -e 's/^[ 	]*[0-9][0-9]*[	 ]*\([^	 .][^	 ]*\)$$/\1/p' > $@.syms	@@\
570	$(LD) -o shr.o $@~ -H512 -T512 -bM\:SRE -bE\:$@.syms $(REQUIREDLIBS) -lc -lm -L$(libCannaDir)	@@\
571	$(RM) $@~							@@\
572	$(AR) $@~ shr.o $(UNSHAREDOBJS)					@@\
573	$(RM) $@ shr.o  						@@\
574	$(MV) $@~ $@							@@\
575									@@\
576clean::									@@\
577	$(RM) Concat(lib,libname.a)
578/* CannaSharedLibraryTarget */
579#endif /* Special link rules */
580
581/* ɬ�פ˱�����X�Υ롼����� */
582#ifdef CannaSharedLibraryTarget
583# ifdef SharedLibraryTarget
584#  undef SharedLibraryTarget
585# endif
586# define SharedLibraryTarget CannaSharedLibraryTarget
587#endif
588
589#ifdef CannaInstallSharedLibrary
590# ifdef InstallSharedLibrary
591#  undef InstallSharedLibrary
592# endif
593# define InstallSharedLibrary CannaInstallSharedLibrary
594#endif
595
596#ifdef LinkBuildLibrary
597# undef LinkBuildLibrary
598#endif
599#define LinkBuildLibrary(lib) $(_NULLCMD_)
600
601#if defined(DarwinArchitecture) && OSMajorVersion >= 7 \
602    && defined(XFree86Version) && defined(XF86_VERSION_NUMERIC)
603# if XFree86Version < XF86_VERSION_NUMERIC(4, 3, 99, 16, 0)
604#  ifdef CppSedMagic
605#   undef CppSedMagic
606#  endif
607#  define CppSedMagic sed -e '/^#  *[0-9][0-9]*  *.*$$/d' -e '/# *pragma /d' -e '/^XCOMM$$/s//#/' -e '/^XCOMM[^a-zA-Z0-9_]/s/^XCOMM/#/'
608# endif
609#endif /* Apple X11 and MacOS X 10.3 */
610
611/* �ʲ�������礱�Ƥ�����Τ����������� */
612#ifndef ProgramTargetName
613# if defined(OS2Architecutre) || defined(cygwinArchitecture)
614#  define ProgramTargetName(target) Concat(target,.exe)
615# else
616#  define ProgramTargetName(target) target
617# endif
618#endif /* ProgramTargetName */
619
620#ifndef MakeDirectoriesLong
621# define MakeDirectoriesLong(step,dirs,owner,group)			@@\
622step::									@@\
623	@case '${MFLAGS}' in *[i]*) set +e;; esac;			@@\
624	DirFailPrefix@for i in dirs; do if [ -d $(DESTDIR)$$i ]; then \	@@\
625		set +x; else (set -x; $(MKDIRHIER) $(DESTDIR)$$i;$(CHOWN) owner $(DESTDIR)$$i;$(CHGRP) group $(DESTDIR)$$i); fi; \	@@\
626	done
627#endif /* MakeDirectoriesLong */
628
629#ifndef BaseShLibReqs
630# define BaseShLibReqs
631#endif
632