# 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-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) 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 :
