#
#	Makefile for ChaSen
#
#	by k-chinen@is.aist-nara.ac.jp, Jun. 1994
#	last modified by akira-k@is.aist-nara.ac.jp, Sep. 1996
#
# Note:
#	you must execute make in ChaSen's top directory.
#

# --- commands & flags
CC	 = gcc
CFLAGS	 = -O2
LDFLAGS  =
RM       = rm -f
CP       = cp

# --- install directories
BINDIR = /usr/local/bin
LIBDIR = /usr/local/lib/chasen
MKDICDIR = $(LIBDIR)/mkchadic
DICDIR = $(LIBDIR)/dic

# --- user definitions
#NO_MMAP = -DNO_MMAP        # your OS does not have mmap()
#CHASEN_PORT = -DCHASEN_PORT=31000

VGRAM   = -DVGRAM          # variable-gram support
#KOCHA   = -DKOCHA2 -DVGRAM # Korean language version
#SJIS	 = -DSJIS

RCPATH   = $(LIBDIR)/$(RC)
CHASEN   = chasen
SYSVER   = 2.0b6
DICNAME  = ipadic
DICVER   = 1.0
RC       = chasenrc
CONFIG_H = lib/config.h
SHELL    = /bin/sh
DEFS     = $(KOCHA) $(VGRAM) $(SJIS)
MAKE     = make
MFLAGS   = CC="$(CC)" CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" RM="$(RM)" \
	   YACC="$(YACC)" CHASEN="$(CHASEN)" NO_MMAP="$(NO_MMAP)" \
	   CHASEN_PORT=$(CHASEN_PORT)

all: $(CONFIG_H) lib mkchadic chasen

$(CONFIG_H): Makefile
	echo '#define RCPATH "$(RCPATH)"' > $(CONFIG_H)
	./prottest.sh "$(CC)" "$(RM)" $(CONFIG_H)

vgram:
	make VGRAM=-DVGRAM

bigram:
	make VGRAM=

lib::
	cd lib;      $(MAKE) $(MFLAGS) DEFS="$(DEFS)" all

mkchadic::
	cd mkchadic; $(MAKE) $(MFLAGS) DEFS="$(DEFS)" all

chasen::
	cd chasen;   $(MAKE) $(MFLAGS) DEFS="$(DEFS)" all

dic::
	cd dic;      $(MAKE) $(MFLAGS) DICDIR="$(DICDIR)" all

install:
	-mkdir -p $(LIBDIR)
	@if [ -f $(RCPATH) ]; then \
	  echo "$(RM) $(RCPATH)"; \
	  $(RM) $(RCPATH); fi
	ln -s dic/$(RC) $(LIBDIR)
	cd chasen;   $(MAKE) CP="$(CP)" BINDIR="$(BINDIR)" install
	cd mkchadic; $(MAKE) CP="$(CP)" MKDICDIR="$(MKDICDIR)" install
	cd dic;      $(MAKE) CP="$(CP)" RC="$(RC)" LIBDIR="$(LIBDIR)" MKDICDIR="$(MKDICDIR)" DICDIR="$(DICDIR)" install

clean:
	$(RM) $(CONFIG_H)
	cd lib;      $(MAKE) RM="$(RM)" clean
	cd mkchadic; $(MAKE) RM="$(RM)" clean
	cd chasen;   $(MAKE) RM="$(RM)" clean

SYSFILES = Makefile README README.jp CHANGES prottest.sh \
	chasen/chklibs.sh chasen/Makefile chasen/*.[ch] chasen/chasen.el \
	lib/Makefile lib/mkranlib.sh lib/*.[ch] \
	mkchadic/Makefile mkchadic/*.[chy] \
        prolog dic/Makefile dic/mkgrep.sh \
	doc/FAQ doc/*.tex doc/*.pdf doc/*.eps
# doc/tech/*.tex doc/tech/*.eps
DICFILES = dic/*.cha dic/connect.cha.c \
	dic/*.dic dic/CHANGES dic/README.jp dic/$(RC).dst
WINFILES = README.txt Makefile.WIN chasen/Makefile.WIN lib/Makefile.WIN \
	mkchadic/Makefile.WIN wincha/*
LZHTMP = chasen.lzh.tmp

tar:
	mkdir chasen-$(SYSVER)
	-/usr/local/bin/cp -Ppr $(SYSFILES) $(DICFILES) chasen-$(SYSVER)
	/usr/local/bin/tar czf chasen-sys$(SYSVER)-$(DICNAME)$(DICVER).tar.gz chasen-$(SYSVER)
	rm -rf chasen-$(SYSVER)

tar.sys:
	mkdir chasen-$(SYSVER)
	/usr/local/bin/cp -Ppr $(SYSFILES) chasen-$(SYSVER)
	/usr/local/bin/tar czf chasen-sys$(SYSVER).tar.gz chasen-$(SYSVER)
	rm -rf chasen-$(SYSVER)

tar.dic:
	tar cf chasen-$(DICNAME)$(DICVER).tar $(DICFILES)

tar.src:
	tar cf chasen-`date +%y%m%d`.src.tar $(SYSFILES) \
	CHANGES.memo TODO

lzh.src:
	-mkdir $(LZHTMP)
	tar cf - $(SYSFILES) $(WINFILES) | tar xf - -C $(LZHTMP)
	(cd $(LZHTMP); \
	bison -y mkchadic/transdic.y; \
	mv y.tab.c mkchadic/transdic.c; \
	qkc -ms * */* */*/*.tech; \
	lha a chasen-`date +%y%m%d`.lzh $(SYSFILES) $(WINFILES) mkchadic/transdic.c)
	mv $(LZHTMP)/chasen-`date +%y%m%d`.lzh .
	rm -rf $(LZHTMP)
