
###########################################################################
# 環境変数
###########################################################################
CC=gcc
INSTALL=/usr/bin/install -c
CFLAGS=-std=c99 -I /include -L /lib -I /usr/local/include -L /usr/local/lib -I . -I/usr/local/include -L/usr/local/lib -O -fPIC
LIBS= -lncurses -lm -lonig -lreadline
OBJ=minato_debug.o minato_extra.o minato_hash.o minato_kanji.o minato_list.o minato_string.o minato_vector.o kitutuki.o minato_curses.o minato_buffer.o readline.o
CYGWIN_DLL=kitutuki.dll
SYSTEM_MIGEMODIR=/usr/share/cmigemo

###########################################################################
# インストールするディレクトリ位置
###########################################################################
prefix=/usr/local
exec_prefix=${prefix}
bindir=${exec_prefix}/bin
datadir=${prefix}/share
mandir=${prefix}/share/man
libdir=${exec_prefix}/lib
sharedstatedir=${prefix}/com
sysconfdir=${prefix}/etc
includedir=${prefix}/include
docdir=${prefix}/share/doc/${PACKAGE}kitutuki

###########################################################################
# make
###########################################################################
all: kitutuki $(CYGWIN_DLL) libkitutuki.so.1.0 kitutuki.kio
	rm -f install

kitutuki.kio: kitutuki.ksh kitutuki
	env LD_LIBRARY_PATH=$(shell pwd) ./kitutuki -rn -c 'compile kitutuki.ksh'

clean:
	rm -f kitutuki *.o $(CYGWIN_DLL) libkitutuki* kitutuki.kio kitutuki.exe

distclean:
	rm -f kitutuki *.o $(CYGWIN_DLL) libkitutuki* config.h Makefile kitutuki.kio kitutuki.exe

kitutuki: config.h main.c cmdline.o readline.o libkitutuki.so $(CYGWIN_DLL)
	$(CC) -o kitutuki main.c cmdline.o readline.o -DDATADIR=\"$(datadir)\" -DSYSCONFDIR=\"$(sysconfdir)\" -DSYSTEM_MIGEMODIR=\"$(SYSTEM_MIGEMODIR)\" -L . -lkitutuki $(LIBS) $(CFLAGS)

kitutuki.o: kitutuki.c
	$(CC) -c kitutuki.c -DDATADIR=\"$(datadir)\" -DSYSCONFDIR=\"$(sysconfdir)\" -DDOCDIR=\"$(docdir)\" $(CFLAGS)

###########################################################################
# kitutuki ライブラリ
###########################################################################
libkitutuki.so.1.0: $(OBJ)
	gcc -shared -Wl,-soname,libkitutuki.so.1 -o libkitutuki.so.1.0 $(OBJ) -lc $(LIBS)

libkitutuki.so: libkitutuki.so.1.0
	cp libkitutuki.so.1.0 libkitutuki.so.1
	cp libkitutuki.so.1.0 libkitutuki.so

###########################################################################
# cygwin dll
###########################################################################
$(CYGWIN_DLL): $(OBJ)
	gcc -shared -o kitutuki.dll $(OBJ) -lncurses -lm -lonig -liconv -lreadline

###########################################################################
# インストール
###########################################################################
install:
	mkdir -p "$(bindir)"
	mkdir -p "$(sysconfdir)"
	mkdir -p "$(libdir)"
	mkdir -p "$(includedir)"
	mkdir -p "$(docdir)"
	install minato_curses.h -m 644 "$(includedir)"
	install minato_debug.h -m 644 "$(includedir)"
	install minato_extra.h -m 644 "$(includedir)"
	install minato_hash.h -m 644 "$(includedir)"
	install minato_kanji.h -m 644 "$(includedir)"
	install minato_buffer.h -m 644 "$(includedir)"
	install minato_list.h -m 644 "$(includedir)"
	install minato_string.h -m 644 "$(includedir)"
	install minato_vector.h -m 644 "$(includedir)"
	install kitutuki.h -m 644 "$(includedir)"
	install usage.ja.txt -m 644 "$(docdir)"
	install usage.en.txt -m 644 "$(docdir)"
	install libkitutuki.so.1.0 -s -m 755 "$(libdir)"
	ln -s -f libkitutuki.so.1.0 "$(libdir)"/libkitutuki.so.1
	ln -s -f libkitutuki.so.1.0 "$(libdir)"/libkitutuki.so
	rm -f $(bindir)/kitutuki; install kitutuki -s -m 755 "$(bindir)"
	if [ -e "$(CYGWIN_DLL)" ]; then install kitutuki.dll -s -m 644 "$(libdir)"; install kitutuki.dll -s -m 644 "$(bindir)"; fi
	install kitutuki.ksh -m 644 $(sysconfdir)
	install kitutuki.kio -m 644 $(sysconfdir)
