# Makefile for libiconv/tests, OS2/EMX specific
#
#	requires EMX/GCC development environment and
#	GNU fileutils and GNU textutils installed
#

#### Start of system configuration section. ####

# Programs used by "make":
CC = gcc
CFLAGS = -O2 -Zmtd
INCLUDES = -I. -I../include -I../srclib -I../lib

#### End of system configuration section. ####

srcdir = .

.SUFFIXES: .obj .o

all :

check : all table-from.exe table-to.exe ../src/iconv.exe genutf8.exe
	$(srcdir)\check-stateless $(srcdir) ASCII
#	/* General multi-byte encodings */
	.\genutf8 > UTF-8.TXT
	$(srcdir)\check-stateless . UTF-8
	$(srcdir)\check-stateful $(srcdir) UCS-2BE
	$(srcdir)\check-stateful $(srcdir) UCS-2LE
	$(srcdir)\check-stateful $(srcdir) UCS-4BE
	$(srcdir)\check-stateful $(srcdir) UCS-4LE
	$(srcdir)\check-stateful $(srcdir) UTF-16
	$(srcdir)\check-stateful $(srcdir) UTF-16BE
	$(srcdir)\check-stateful $(srcdir) UTF-16LE
	$(srcdir)\check-stateful $(srcdir) UTF-32
	$(srcdir)\check-stateful $(srcdir) UTF-32BE
	$(srcdir)\check-stateful $(srcdir) UTF-32LE
	$(srcdir)\check-stateful $(srcdir) UTF-7
#	/* 8-bit encodings */
	$(srcdir)\check-stateless $(srcdir) ISO-8859-1
	$(srcdir)\check-stateless $(srcdir) ISO-8859-2
	$(srcdir)\check-stateless $(srcdir) ISO-8859-3
	$(srcdir)\check-stateless $(srcdir) ISO-8859-4
	$(srcdir)\check-stateless $(srcdir) ISO-8859-5
	$(srcdir)\check-stateless $(srcdir) ISO-8859-6
	$(srcdir)\check-stateless $(srcdir) ISO-8859-7
	$(srcdir)\check-stateless $(srcdir) ISO-8859-8
	$(srcdir)\check-stateless $(srcdir) ISO-8859-9
	$(srcdir)\check-stateless $(srcdir) ISO-8859-10
	$(srcdir)\check-stateless $(srcdir) ISO-8859-11
	$(srcdir)\check-stateless $(srcdir) ISO-8859-13
	$(srcdir)\check-stateless $(srcdir) ISO-8859-14
	$(srcdir)\check-stateless $(srcdir) ISO-8859-15
	$(srcdir)\check-stateless $(srcdir) ISO-8859-16
	$(srcdir)\check-stateless $(srcdir) KOI8-R
	$(srcdir)\check-stateless $(srcdir) KOI8-U
	$(srcdir)\check-stateless $(srcdir) KOI8-RU
	$(srcdir)\check-stateless $(srcdir) CP1250
	$(srcdir)\check-stateless $(srcdir) CP1251
	$(srcdir)\check-stateless $(srcdir) CP1252
	$(srcdir)\check-stateless $(srcdir) CP1253
	$(srcdir)\check-stateless $(srcdir) CP1254
	$(srcdir)\check-stateless $(srcdir) CP1255
	$(srcdir)\check-stateful $(srcdir) CP1255
	$(srcdir)\check-stateless $(srcdir) CP1256
	$(srcdir)\check-stateless $(srcdir) CP1257
	$(srcdir)\check-stateless $(srcdir) CP1258
	$(srcdir)\check-stateful $(srcdir) CP1258
	$(srcdir)\check-stateless $(srcdir) CP850
	$(srcdir)\check-stateless $(srcdir) CP862
	$(srcdir)\check-stateless $(srcdir) CP866
	$(srcdir)\check-stateless $(srcdir) MacRoman
	$(srcdir)\check-stateless $(srcdir) MacCentralEurope
	$(srcdir)\check-stateless $(srcdir) MacIceland
	$(srcdir)\check-stateless $(srcdir) MacCroatian
	$(srcdir)\check-stateless $(srcdir) MacRomania
	$(srcdir)\check-stateless $(srcdir) MacCyrillic
	$(srcdir)\check-stateless $(srcdir) MacUkraine
	$(srcdir)\check-stateless $(srcdir) MacGreek
	$(srcdir)\check-stateless $(srcdir) MacTurkish
	$(srcdir)\check-stateless $(srcdir) MacHebrew
	$(srcdir)\check-stateless $(srcdir) MacArabic
	$(srcdir)\check-stateless $(srcdir) MacThai
	$(srcdir)\check-stateless $(srcdir) HP-ROMAN8
	$(srcdir)\check-stateless $(srcdir) NEXTSTEP
	$(srcdir)\check-stateless $(srcdir) ARMSCII-8
	$(srcdir)\check-stateless $(srcdir) Georgian-Academy
	$(srcdir)\check-stateless $(srcdir) Georgian-PS
	$(srcdir)\check-stateless $(srcdir) KOI8-T
	$(srcdir)\check-stateless $(srcdir) PT154
	$(srcdir)\check-stateless $(srcdir) MuleLao-1
	$(srcdir)\check-stateless $(srcdir) CP1133
	$(srcdir)\check-stateless $(srcdir) TIS-620
	$(srcdir)\check-stateless $(srcdir) CP874
	$(srcdir)\check-stateless $(srcdir) VISCII
	$(srcdir)\check-stateless $(srcdir) TCVN
	$(srcdir)\check-stateful $(srcdir) TCVN
#	/* CJK character sets */
	$(srcdir)\check-stateless $(srcdir) ISO646-JP
	$(srcdir)\check-stateless $(srcdir) JIS_X0201
#	$(srcdir)\check-stateless $(srcdir) JIS_X0208 # redundant, see EUC-JP
#	$(srcdir)\check-stateless $(srcdir) JIS_X0212 # redundant, see EUC-JP
	$(srcdir)\check-stateless $(srcdir) ISO646-CN
#	$(srcdir)\check-stateless $(srcdir) GB_2312-80 # redundant, see EUC-CN
	$(srcdir)\check-stateless $(srcdir) ISO-IR-165
#	$(srcdir)\check-stateless $(srcdir) KSC_5601 # redundant, see EUC-KR
#	/* CJK encodings */
	$(srcdir)\check-stateless $(srcdir) EUC-JP
	$(srcdir)\check-stateless $(srcdir) SHIFT_JIS
	$(srcdir)\check-stateless $(srcdir) CP932
	$(srcdir)\check-stateful $(srcdir) ISO-2022-JP
	$(srcdir)\check-stateful $(srcdir) ISO-2022-JP-2
	$(srcdir)\check-stateful $(srcdir) ISO-2022-JP-1
	$(srcdir)\check-stateless $(srcdir) EUC-CN
	$(srcdir)\check-stateless $(srcdir) GBK
	$(srcdir)\check-stateless $(srcdir) GB18030
	$(srcdir)\check-stateful $(srcdir) ISO-2022-CN
	$(srcdir)\check-stateful $(srcdir) ISO-2022-CN-EXT
	$(srcdir)\check-stateful $(srcdir) HZ
	$(srcdir)\check-stateless $(srcdir) EUC-TW
	$(srcdir)\check-stateless $(srcdir) BIG5
	$(srcdir)\check-stateless $(srcdir) CP950
	$(srcdir)\check-stateless $(srcdir) BIG5-HKSCS
	$(srcdir)\check-stateless $(srcdir) EUC-KR
	$(srcdir)\check-stateless $(srcdir) CP949
	$(srcdir)\check-stateless $(srcdir) JOHAB
	$(srcdir)\check-stateful $(srcdir) ISO-2022-KR
#	/* transliteration */
	$(srcdir)\check-translit $(srcdir) Quotes UTF-8 ISO-8859-1
	$(srcdir)\check-translit $(srcdir) Quotes UTF-8 ASCII
	$(srcdir)\check-translit $(srcdir) Translit1 ISO-8859-1 ASCII

table-from.exe : table-from.c 
	$(CC) $(INCLUDES) $(CFLAGS) table-from.c ../lib/iconv.a
	copy ..\lib\iconv.dll iconv.dll

table-to.exe : table-to.c
	$(CC) $(INCLUDES) $(CFLAGS) table-to.c ../lib/iconv.a
	copy ..\lib\iconv.dll iconv.dll

genutf8.exe : genutf8.c
	$(CC) $(INCLUDES) $(CFLAGS) genutf8.c

mostlyclean : clean

clean : force
	rm -f *.obj *.dll *.exe tmp* UTF-8.TXT core

distclean : clean
	rm -f Makefile

maintainer-clean : distclean

force :
