#
# Makefile for ChaSen's dictionary
#

CC            = gcc
RM            = rm -f
CP            = cp
MKDICDIR      = ../mkchadic
CONNECT_JM    = JUMAN.connect.c
CONNTMP_JM    = JUMAN.connect
CONNECT_CHA   = chasen.connect.c
CONNTMP_CHA   = chasen.connect
CONNECT_VCHA  = connect.cha
CONNTMP_VCHA  = _connect.cha
CONNTMP2_VCHA = _conncha.c
TABLE         = table.cha
MATRIX        = matrix.cha
SHELL         = /bin/sh
LIBDIR        = /usr/local/lib/chasen
DICDIR        = $(LIBDIR)/dic
MAKEINT       = makeint
MAKE          = make

all:
	@if [ -f $(CONNECT_VCHA) ]; then set -x; \
	  $(MAKE) CC="$(CC)" RM="$(RM)" CP="$(CP)" dic; \
	elif [ -f $(CONNECT_CHA) -o -f $(CONNECT_JM) ]; then set -x; \
	  $(MAKE) TABLE="chasen.table" MATRIX="chasen.matrix" CC="$(CC)" RM="$(RM)" CP="$(CP)" dic; \
	else set -x; \
	  $(MAKE) TABLE="" MATRIX="" CC="$(CC)" RM="$(RM)" CP="$(CP)" dic; \
	fi

dic: pat ary

$(CONNECT_JM):

$(CONNECT_CHA):

$(CONNECT_VCHA):

chasen.table chasen.matrix: $(CONNECT_CHA) $(CONNECT_JM)
	@if [ -f $(CONNECT_CHA) -o -f $(CONNECT_JM) ]; then set -x; \
	  $(CC) -E $? > $(CONNTMP_CHA); \
	  $(MKDICDIR)/makemat; \
	  $(RM) $(CONNTMP_CHA); \
	else exit 0; fi

table.cha matrix.cha: $(CONNECT_VCHA)
	@if [ -f $? ]; then set -x; \
	  $(CP) $? $(CONNTMP2_VCHA); \
	  $(CC) -E $(CONNTMP2_VCHA) > $(CONNTMP_VCHA); \
	  $(RM) $(CONNTMP2_VCHA); \
	  $(MKDICDIR)/makemat; \
	  $(RM) $(CONNTMP_VCHA); \
	else exit 0; fi

chadic.int: *.dic $(TABLE) $(MATRIX)
	$(MKDICDIR)/$(MAKEINT) *.dic > chadic.txt
	$(MKDICDIR)/sortdic chadic.txt > chadic.int
	$(RM) chadic.txt

pat: chadic.pat

chadic.pat: chadic.int
	$(MKDICDIR)/pattool -F chadic

ary: chadic.ary

chadic.ary: chadic.int
	$(MKDICDIR)/mkary -l -o chadic.ary chadic.int

install:
	-mkdir -p $(DICDIR)
	sed 's#^MKDICDIR.*$$#MKDICDIR=$(MKDICDIR)#' Makefile > $(DICDIR)/Makefile
	-$(CP) chasen.* *.cha chadic.* chasenrc $(DICDIR)

clean:
	$(RM) $(CONNTMP_JM) $(CONNTMP_CHA) $(CONNTMP_VCHA) $(CONNTMP2_VCHA) \
	table.cha matrix.cha chasen.table chasen.matrix chadic.*
