# ͂܂WCu kd
#
# ---- ύX(ԂƘRĂ邯) ----
# 0.01 (EFF 0.04 \[XɓYt)
#
# 0.02 (KARL 1.02,1.03 \[XɓYt)
#	E}`Xbh libeffmt.a pӁB
#	Ecanna.cc  cannamt.a ĂԂ悤ύXB
#	Ewminput  eff ړ
#	EVBuffer ǉ(for eff)
#	ETokenizer,FileTokenizer ǉ(for ell)
# 0.03 (EFF 0.21)
#	Ecursor_on/off֐ǉ
# 0.04
#	ENYAOS  StrBuffer 𓱓B
# 0.05
#	EEAsIdo  ealib 𓱓
# 0.06 (EFF 0.32)
#	EVBuffer/ScrnSave  _tmalloc g悤ɂB
# 0.07 (EFF 0.33)
#	ELineInput ȉ̔hNXĕҐ
# 0.08 (effinput)
#	ETtyCannaInput  TtyCannaInput0 ̔hNXɕύX

CC=gcc
CFLAGS=-O2 -Wall -DNDEBUG
LDFLAGS=-lsocket -Zcrtdll -lwrap
AR=ar
RM=rm -f
LIBR=libr.cmd

# .ccc ́Alibr.cmd ɂĕāÃ\[XɂȂ肤t@C
# gqBڂ libr.cmd QƂ̂ƁB	 

.SUFFIXES : .cc .a .o .cmd .exe .ccc

mt : libeffmt.a
all : libeff.a libeffmt.a
st : libeff.a
omf : libeff.lib libeffmt.lib

LIBEFF=dbcs.o getkey.o getline.o ttygetline.o canna.o \
	ttycanna0.o ttycanna.o viocanna.o scrnsave.o \
	jobs.o tokenizer.o exploder.o wminput.o \
	files-sort.o  files-make83.o  files-insertDir.o \
	VBuffer.o FileTokenizer.o cursor.o \
	strbuffer.o ealib.o readkey.o

LIBEFFMT=$(LIBEFF:.o=-mt.o)

libeff.a :: pathstr.ccc thedir.ccc files.ccc
	$(LIBR)      $(CFLAGS) $@ $?

libeffmt.a :: pathstr.ccc thedir.ccc files.ccc
	$(LIBR) -Zmtd $(CFLAGS) $@ $?
	

libeff.lib : libeff.a
	emxomf -isocket $<

libeff.a :: $(LIBEFF) dbcstbl.o
	$(AR) r $@ $?

libeffmt.lib : libeffmt.a
	emxomf $<

libeffmt.a :: $(LIBEFFMT) dbcstbl-mt.o
	$(AR) r $@ $?

$(LIBEFF) : %.o : %.cc
	$(CC) $(CFLAGS) -c $< -o $@

$(LIBEFFMT) : %-mt.o : %.cc
	$(CC) $(CFLAGS) -Zmtd -DMULTITHREADS -c $< -o $@

dbcstbl.o : dbcstbl.c
	$(CC) $(CFLAGS)     -c dbcstbl.c -o dbcstbl.o

dbcstbl-mt.o : dbcstbl.c
	$(CC) $(CFLAGS) -Zmtd -c dbcstbl.c -o dbcstbl-mt.o

dbcstbl.c : mkdbcs.cmd
	$< > $@

tokenizer.o : tokenizer.cc tokenizer.h
uxfiletoken.o : uxfiletoken.cc uxfiletoken.h

exploder.o : exploder.cc files.h thedir.h
strbuffer.o : strbuffer.cc strbuffer.h
files-sort.o : files-sort.cc files.h mergesort.h
files-sort-mt.o : files-sort.cc files.h mergesort.h

clean :
	$(RM) *.o *.a *~ dbcstbl.c *--* *.lib

libeff.tar :
	cd .. && tar cvf libeff/libeff.tar \
		libeff/Makefile libeff/*.h \
		libeff/*.cc libeff/*.ccc libeff/libr.cmd libeff/mkdbcs.cmd


getline.o  : getline.cc getline.h
canna.o    : canna.cc getline.h
ttycanna.o : ttycanna.cc getline.h
viocanna.o : viocanna.cc getline.h
wminput.o  : wminput.cc getline.h
readkey.o  : readkey.cc effetc.h

getline-mt.o  : getline.cc getline.h
canna-mt.o    : canna.cc getline.h
ttycanna-mt.o : ttycanna.cc getline.h
viocanna-mt.o : viocanna.cc getline.h
wminput-mt.o  : wminput.cc getline.h
