/* $Id: Imakefile,v 3.3 1996/11/27 07:24:20 kon Exp $ */
#include "../../Canna.conf"

         CANNAROOT = ../..
          SOLIBREV = 1

          CANNADIR = .
             RKDIR = ../RK
            RKCDIR = ../RKC16
             XNDIR = ../Xn16

           HEADERS = canna.h sglobal.h lisp.h
            IRSRCS = $(COOKSRCS) $(HEADERS)
           MAPSRCS = defaultmap.c
   INCLUDEDMAPSRCS = chikujimap.h emptymap.h alphamap.h tanmap.h ichiranmap.h \
		jishumap.h kigomap.h onoffmap.h yomimap.h t_reimap.h bunmap.h
          COOKSRCS = jrbind.c ebind.c $(CORESRCS)
          CORESRCS = lisp.c $(MAPSRCS) \
			bushu.c chikuji.c commondata.c empty.c henkan.c hex.c \
			ichiran.c jishu.c kctrl.c keydef.c \
			kigo.c mode.c multi.c onoff.c parse.c romaji.c \
			uiutil.c uldefine.c uldelete.c ulhinshi.c ulkigo.c \
			ulmount.c ulserver.c util.c yesno.c bunsetsu.c \
			engine.c RKroma.c RKkana.c
           RKCSRCS = $(RKCDIR)/rkc.c $(RKCDIR)/convert.c \
                     $(RKCDIR)/wconvert.c $(RKCDIR)/wutil.c
/*              SRCS = $(IRSRCS) $(RKCSRCS) */
              SRCS = $(IRSRCS)

           IRIOBJS = $(COOKOBJS)
           MAPOBJS = defaultmap.o
          COOKOBJS = jrbind.o ebind.o $(COREOBJS)
          COREOBJS = lisp.o $(MAPOBJS) \
			bushu.o chikuji.o commondata.o empty.o henkan.o hex.o \
			ichiran.o jishu.o kctrl.o keydef.o \
			kigo.o mode.o multi.o onoff.o parse.o romaji.o \
			uiutil.o uldefine.o uldelete.o ulhinshi.o ulkigo.o \
			ulmount.o ulserver.o util.o yesno.o bunsetsu.o \
			engine.o RKroma.o RKkana.o
        DEPRKCOBJS = $(RKCDIR)/rkc.o $(RKCDIR)/convert.o \
                     $(RKCDIR)/wconvert.o $(RKCDIR)/wutil.o
           RKCOBJS = rkc.o convert.o \
                     wconvert.o wutil.o
              OBJS = $(COOKOBJS) $(RKOBJS) $(ENGINE_OBJS)

          INCLUDES = -I$(CANNAROOT)/include
           DEFINES = $(UILIB_DEFINES) -DWCHAR16 $(ENGINE_DEFS)
   LOCAL_LIBRARIES = 
     LOCAL_LDFLAGS = 
          LINTLIBS = $(RKDIR)/llib-lRK.ln \
			$(RKCDIR)/llib-lRKC.ln

#ifdef engineSwitch
       ENGINE_DEFS = -DENGINE_SWITCH -DDL
#else
       ENGINE_OBJS = $(RKCOBJS)
#endif /* !engineSwitch */

#if ProjectX > 5
#define LibName canna16
#define SoRev		cannaDsoRev
#define SHLIBDIR	libCannaDir
#define USRLIBDIR	libCannaDir
#define LibHeaders 0

#include <Library.tmpl>

#else /* ProjectX */
#include <Library.tmpl>

LibraryObjectRule()

#if DoSharedLib
#if DoNormalLib
SharedLibraryTarget(canna16,$(cannaDsoRev),$(OBJS),shared,..)
#else
SharedLibraryTarget(canna16,$(cannaDsoRev),$(OBJS),.,.)
#endif
InstallSharedLibrary(canna16,$(cannaDsoRev),$(libCannaDir))
#endif /* DoSharedLib */

#if DoNormalLib
NormalLibraryTarget(canna16,$(OBJS))
InstallLibrary(canna16,$(libCannaDir))
#endif

NormalLintTarget(*.c)
LintLibraryTarget(canna16,*.c)

#endif /* ProjectX */

#ifdef __EMX__
$(DEPRKCOBJS): $(RKCSRCS)
	ImakeIndir $(RKCDIR) $(MAKE) $(RKCOBJS)

$(RKCOBJS): $(DEPRKCOBJS)
	@for %i in ($(RKCOBJS)) do $(RM) %i & ImakeHelper 3 $(RKCDIR) . %i & touch %i
#else
$(DEPRKCOBJS): $(RKCSRCS)
	(cd $(RKCDIR) ; $(MAKE) $(RKCOBJS))

$(RKCOBJS): $(DEPRKCOBJS)
	for i in $(RKCOBJS) ; do ($(RM) $$i; $(CP) $(RKCDIR)/$$i . ); done
#endif
#if DoSharedLib
#if ProjectX > 5
	if [ -d unshared ]; then (cd unshared ; \
		for i in $(RKCOBJS); do \
                  if [ -f ../$(RKCDIR)/unshared/$$i ]; then \
                    ($(RM) $$i; $(CP) ../$(RKCDIR)/unshared/$$i .) ; fi; \
                done ) ; fi
#else /* ProjectX */
	if [ -d shared ]; then (cd shared ; \
		for i in $(RKCOBJS); do \
                  if [ -f ../$(RKCDIR)/shared/$$i ]; then \
                    ($(RM) $$i; $(CP) ../$(RKCDIR)/shared/$$i .) ; fi; \
                done ) ; fi
#endif /* ProjectX */
#endif /* DoSharedLib */

sglobal.h: GSYM.awk globnames
	awk -f GSYM.awk < globnames > $@

clean::
	$(RM) *.c *.h GSYM.awk globnames

LinkSourceFile(canna.h,../canna)
/*LinkSourceFile(traceRK.h,../canna)*/
LinkSourceFile(jrbind.c,../canna)
LinkSourceFile(ebind.c,../canna)
LinkSourceFile(defaultmap.c,../canna)
LinkSourceFile(lisp.c,../canna)
LinkSourceFile(lisp.h,../canna)
LinkSourceFile(bushu.c,../canna)
LinkSourceFile(chikuji.c,../canna)
LinkSourceFile(commondata.c,../canna)
LinkSourceFile(empty.c,../canna)
LinkSourceFile(henkan.c,../canna)
LinkSourceFile(hex.c,../canna)
LinkSourceFile(ichiran.c,../canna)
LinkSourceFile(jishu.c,../canna)
LinkSourceFile(kctrl.c,../canna)
LinkSourceFile(keydef.c,../canna)
LinkSourceFile(kigo.c,../canna)
LinkSourceFile(mode.c,../canna)
LinkSourceFile(multi.c,../canna)
LinkSourceFile(onoff.c,../canna)
LinkSourceFile(parse.c,../canna)
LinkSourceFile(romaji.c,../canna)
LinkSourceFile(uiutil.c,../canna)
LinkSourceFile(uldefine.c,../canna)
LinkSourceFile(uldelete.c,../canna)
LinkSourceFile(ulhinshi.c,../canna)
LinkSourceFile(ulkigo.c,../canna)
LinkSourceFile(ulmount.c,../canna)
LinkSourceFile(ulserver.c,../canna)
LinkSourceFile(util.c,../canna)
LinkSourceFile(yesno.c,../canna)
LinkSourceFile(bunsetsu.c,../canna)
LinkSourceFile(RKroma.c,../canna)
LinkSourceFile(RKkana.c,../canna)
LinkSourceFile(GSYM.awk,../canna)
LinkSourceFile(globnames,../canna)
LinkSourceFile(chikujimap.h,../canna)
LinkSourceFile(emptymap.h,../canna)
LinkSourceFile(alphamap.h,../canna)
LinkSourceFile(tanmap.h,../canna)
LinkSourceFile(ichiranmap.h,../canna)
LinkSourceFile(jishumap.h,../canna)
LinkSourceFile(kigomap.h,../canna)
LinkSourceFile(onoffmap.h,../canna)
LinkSourceFile(yomimap.h,../canna)
LinkSourceFile(t_reimap.h,../canna)
LinkSourceFile(bunmap.h,../canna)
LinkSourceFile(engine.c,../canna)

depend:: $(SRCS) $(HEADERS) $(INCLUDEDMAPSRCS)
DependTarget()
