1/* $Id: Imakefile,v 1.10 2003/09/08 01:14:33 aida_s Exp $ */
2#include "../../Canna.conf"
3#ifdef NARROW
4# define CannaWCharDef -DCANNA_WCHAR16
5# define LibName canna16
6# define RkcName RKC16
7#else
8# define CannaWCharDef
9# define LibName canna
10# define RkcName RKC
11#endif
12
13         CANNAROOT = ../..
14          SOLIBREV = 1
15
16          CANNADIR = .
17             RKDIR = ../RK
18            RKCDIR = ../RkcName
19
20           HEADERS = canna.h sglobal.h lisp.h
21            IRSRCS = $(COOKSRCS) $(HEADERS)
22           MAPSRCS = defaultmap.c
23   INCLUDEDMAPSRCS = chikujimap.h emptymap.h alphamap.h tanmap.h ichiranmap.h \
24		jishumap.h kigomap.h onoffmap.h yomimap.h t_reimap.h bunmap.h
25          COOKSRCS = jrbind.c ebind.c $(CORESRCS)
26          CORESRCS = lisp.c $(MAPSRCS) \
27			bushu.c chikuji.c commondata.c empty.c henkan.c hex.c \
28			ichiran.c jishu.c kctrl.c keydef.c \
29			kigo.c mode.c multi.c onoff.c parse.c romaji.c \
30			uiutil.c uldefine.c uldelete.c ulhinshi.c ulkigo.c \
31			ulmount.c ulserver.c util.c yesno.c bunsetsu.c \
32			engine.c RKroma.c RKkana.c obind.c
33           RKCSRCS = $(RKCDIR)/rkc.c $(RKCDIR)/convert.c \
34                     $(RKCDIR)/wconvert.c $(RKCDIR)/wutil.c $(RKCDIR)/conf.c
35/*              SRCS = $(IRSRCS) $(RKCSRCS) */
36              SRCS = $(IRSRCS) $(RKINDEPSRCS)
37       RKINDEPSRCS = cfuncs.c file.c strops.c
38
39           IRIOBJS = $(COOKOBJS)
40           MAPOBJS = defaultmap.o
41          COOKOBJS = jrbind.o ebind.o $(COREOBJS)
42          COREOBJS = lisp.o $(MAPOBJS) \
43			bushu.o chikuji.o commondata.o empty.o henkan.o hex.o \
44			ichiran.o jishu.o kctrl.o keydef.o \
45			kigo.o mode.o multi.o onoff.o parse.o romaji.o \
46			uiutil.o uldefine.o uldelete.o ulhinshi.o ulkigo.o \
47			ulmount.o ulserver.o util.o yesno.o bunsetsu.o \
48			engine.o RKroma.o RKkana.o obind.o
49        DEPRKCOBJS = $(RKCDIR)/rkc.o $(RKCDIR)/convert.o \
50                     $(RKCDIR)/wconvert.o $(RKCDIR)/wutil.o $(RKCDIR)/conf.o
51           RKCOBJS = rkc.o convert.o wconvert.o wutil.o conf.o
52       RKINDEPOBJS = cfuncs.o file.o strops.o
53              OBJS = $(COOKOBJS) $(RKOBJS) $(ENGINE_OBJS) $(RKINDEPOBJS)
54
55          INCLUDES = -I$(CANNAROOT)/include
56           DEFINES = $(UILIB_DEFINES) CannaWCharDef $(ENGINE_DEFS) -DNEED_RKINDEP_SUBST
57   LOCAL_LIBRARIES =
58     LOCAL_LDFLAGS =
59          LINTLIBS = $(RKDIR)/llib-lRK.ln \
60			$(RKCDIR)/llib-lRKC.ln
61
62
63#ifdef engineSwitch
64       ENGINE_DEFS = -DENGINE_SWITCH -DDL
65#else
66       ENGINE_OBJS = $(RKCOBJS)
67#endif /* !engineSwitch */
68
69#if ProjectX > 5
70#define SoRev		cannaDsoRev
71#define SHLIBDIR	libCannaDir
72#define USRLIBDIR	libCannaDir
73#define LibHeaders 0
74
75#include <Library.tmpl>
76
77#else /* ProjectX */
78#include <Library.tmpl>
79
80LibraryObjectRule()
81
82#if DoSharedLib
83#if DoNormalLib
84SharedLibraryTarget(LibName,$(cannaDsoRev),$(OBJS),shared,..)
85#else
86SharedLibraryTarget(LibName,$(cannaDsoRev),$(OBJS),.,.)
87#endif
88InstallSharedLibrary(LibName,$(cannaDsoRev),$(libCannaDir))
89#endif /* DoSharedLib */
90
91#if DoNormalLib
92NormalLibraryTarget(LibName,$(OBJS))
93InstallLibrary(LibName,$(libCannaDir))
94#endif
95
96NormalLintTarget(*.c)
97LintLibraryTarget(LibName,*.c)
98
99#endif /* ProjectX */
100
101#ifdef __EMX__
102$(DEPRKCOBJS): $(RKCSRCS)
103	ImakeIndir $(RKCDIR) $(MAKE) $(RKCOBJS)
104
105$(RKCOBJS): $(DEPRKCOBJS)
106	@for %i in ($(RKCOBJS)) do $(RM) %i & ImakeHelper 3 $(RKCDIR) . %i & touch %i
107#else
108$(DEPRKCOBJS): $(RKCSRCS)
109	(cd $(RKCDIR) ; $(MAKE) $(RKCOBJS))
110
111$(RKCOBJS): $(DEPRKCOBJS)
112	for i in $(RKCOBJS) ; do ($(RM) $$i; $(CP) $(RKCDIR)/$$i . ); done
113#endif
114#if DoSharedLib
115#if ProjectX > 5
116	if [ -d unshared ]; then (cd unshared ; \
117		for i in $(RKCOBJS); do \
118                  if [ -f ../$(RKCDIR)/unshared/$$i ]; then \
119                    ($(RM) $$i; $(CP) ../$(RKCDIR)/unshared/$$i .) ; fi; \
120                done ) ; fi
121#else /* ProjectX */
122	if [ -d shared ]; then (cd shared ; \
123		for i in $(RKCOBJS); do \
124                  if [ -f ../$(RKCDIR)/shared/$$i ]; then \
125                    ($(RM) $$i; $(CP) ../$(RKCDIR)/shared/$$i .) ; fi; \
126                done ) ; fi
127#endif /* ProjectX */
128#endif /* DoSharedLib */
129
130sglobal.h: GSYM.awk globnames
131	awk -f GSYM.awk < globnames > $@
132
133#ifdef NARROW
134clean::
135	$(RM) *.c *.h GSYM.awk globnames
136#else
137clean::
138	$(RM) y.tab.h y.tab.c lex.yy.c gram.h gram.c lex.c sglobal.h
139#endif
140
141#ifdef NARROW
142LinkSourceFile(canna.h,../canna)
143/*LinkSourceFile(traceRK.h,../canna)*/
144LinkSourceFile(jrbind.c,../canna)
145LinkSourceFile(ebind.c,../canna)
146LinkSourceFile(defaultmap.c,../canna)
147LinkSourceFile(lisp.c,../canna)
148LinkSourceFile(lisp.h,../canna)
149LinkSourceFile(bushu.c,../canna)
150LinkSourceFile(chikuji.c,../canna)
151LinkSourceFile(commondata.c,../canna)
152LinkSourceFile(empty.c,../canna)
153LinkSourceFile(henkan.c,../canna)
154LinkSourceFile(hex.c,../canna)
155LinkSourceFile(ichiran.c,../canna)
156LinkSourceFile(jishu.c,../canna)
157LinkSourceFile(kctrl.c,../canna)
158LinkSourceFile(keydef.c,../canna)
159LinkSourceFile(kigo.c,../canna)
160LinkSourceFile(mode.c,../canna)
161LinkSourceFile(multi.c,../canna)
162LinkSourceFile(onoff.c,../canna)
163LinkSourceFile(parse.c,../canna)
164LinkSourceFile(romaji.c,../canna)
165LinkSourceFile(uiutil.c,../canna)
166LinkSourceFile(uldefine.c,../canna)
167LinkSourceFile(uldelete.c,../canna)
168LinkSourceFile(ulhinshi.c,../canna)
169LinkSourceFile(ulkigo.c,../canna)
170LinkSourceFile(ulmount.c,../canna)
171LinkSourceFile(ulserver.c,../canna)
172LinkSourceFile(util.c,../canna)
173LinkSourceFile(yesno.c,../canna)
174LinkSourceFile(bunsetsu.c,../canna)
175LinkSourceFile(RKroma.c,../canna)
176LinkSourceFile(RKkana.c,../canna)
177LinkSourceFile(GSYM.awk,../canna)
178LinkSourceFile(globnames,../canna)
179LinkSourceFile(chikujimap.h,../canna)
180LinkSourceFile(emptymap.h,../canna)
181LinkSourceFile(alphamap.h,../canna)
182LinkSourceFile(tanmap.h,../canna)
183LinkSourceFile(ichiranmap.h,../canna)
184LinkSourceFile(jishumap.h,../canna)
185LinkSourceFile(kigomap.h,../canna)
186LinkSourceFile(onoffmap.h,../canna)
187LinkSourceFile(yomimap.h,../canna)
188LinkSourceFile(t_reimap.h,../canna)
189LinkSourceFile(bunmap.h,../canna)
190LinkSourceFile(engine.c,../canna)
191LinkSourceFile(obind.c,../canna)
192#endif /* NARROW */
193LinkSourceFile(cfuncs.c,../RKindep)
194LinkSourceFile(file.c,../RKindep)
195LinkSourceFile(strops.c,../RKindep)
196#ifdef NARROW
197depend:: $(SRCS) $(HEADERS) $(INCLUDEDMAPSRCS)
198#endif
199DependTarget()
200
201#ifndef NARROW
202includes:: sglobal.h
203LinkFileList(includes,$(HEADERS), $(CANNAROOT)/include,../lib/canna)
204
205#ifndef __EMX__
206   UIMANOBJS = jrKanjiString jrKanjiControl XLookupKanjiString XKanjiControl
207#endif
208
209InstallLibManPage(cannalib,$(cannaManDir))
210InstallLibManPage(uilib,$(cannaManDir))
211InstallLibManPageLong(RkCloseR,$(cannaManDir),RkCloseRoma)
212InstallLibManPageLong(RkCvtEuc,$(cannaManDir),RkCvtEuc)
213InstallLibManPageLong(RkCvtHan,$(cannaManDir),RkCvtHan)
214InstallLibManPageLong(RkCvtHir,$(cannaManDir),RkCvtHira)
215InstallLibManPageLong(RkCvtKan,$(cannaManDir),RkCvtKana)
216InstallLibManPageLong(RkCvtRom,$(cannaManDir),RkCvtRoma)
217InstallLibManPageLong(RkCvtZen,$(cannaManDir),RkCvtZen)
218InstallLibManPageLong(RkMapPho,$(cannaManDir),RkMapPhonogram)
219InstallLibManPageLong(RkMapRom,$(cannaManDir),RkMapRoma)
220InstallLibManPageLong(RkOpenRo,$(cannaManDir),RkOpenRoma)
221
222InstallLibManPageAliases(uilib,$(cannaManDir),$(UIMANOBJS))
223#endif /* !NARROW */
224