1#-------------------------------------------------------------------------
2#
3# Makefile--
4#    Makefile for utils/mb/conversion_procs
5#
6# IDENTIFICATION
7#    src/backend/utils/mb/conversion_procs/Makefile
8#
9#-------------------------------------------------------------------------
10
11subdir = src/backend/utils/mb/conversion_procs
12top_builddir = ../../../../..
13include $(top_builddir)/src/Makefile.global
14
15SQLSCRIPT = conversion_create.sql
16
17SUBDIRS = \
18	ascii_and_mic cyrillic_and_mic euc_cn_and_mic euc_jp_and_sjis \
19	euc_kr_and_mic euc_tw_and_big5 latin2_and_win1250 latin_and_mic \
20	utf8_and_ascii utf8_and_big5 utf8_and_cyrillic utf8_and_euc_cn \
21	utf8_and_euc_jp utf8_and_euc_kr utf8_and_euc_tw utf8_and_gb18030 \
22	utf8_and_gbk utf8_and_iso8859 utf8_and_iso8859_1 utf8_and_johab \
23	utf8_and_sjis utf8_and_win utf8_and_uhc \
24	utf8_and_euc2004 utf8_and_sjis2004 euc2004_sjis2004
25
26$(recurse)
27
28# conversion_name source_encoding destination_encoding function object
29CONVERSIONS = \
30		ascii_to_mic	SQL_ASCII MULE_INTERNAL ascii_to_mic ascii_and_mic \
31		mic_to_ascii	MULE_INTERNAL SQL_ASCII mic_to_ascii ascii_and_mic \
32		koi8_r_to_mic	KOI8R MULE_INTERNAL koi8r_to_mic cyrillic_and_mic \
33		mic_to_koi8_r	MULE_INTERNAL KOI8R mic_to_koi8r cyrillic_and_mic \
34		iso_8859_5_to_mic	ISO-8859-5 MULE_INTERNAL iso_to_mic cyrillic_and_mic \
35		mic_to_iso_8859_5	MULE_INTERNAL ISO-8859-5 mic_to_iso cyrillic_and_mic \
36		windows_1251_to_mic	WIN1251 MULE_INTERNAL win1251_to_mic cyrillic_and_mic \
37		mic_to_windows_1251	MULE_INTERNAL WIN1251 mic_to_win1251 cyrillic_and_mic \
38		windows_866_to_mic	WIN866 MULE_INTERNAL win866_to_mic cyrillic_and_mic \
39		mic_to_windows_866	MULE_INTERNAL WIN866 mic_to_win866 cyrillic_and_mic \
40		koi8_r_to_windows_1251   KOI8R WIN1251 koi8r_to_win1251 cyrillic_and_mic \
41		windows_1251_to_koi8_r   WIN1251 KOI8R win1251_to_koi8r cyrillic_and_mic \
42		koi8_r_to_windows_866	KOI8R WIN866 koi8r_to_win866 cyrillic_and_mic \
43		windows_866_to_koi8_r	WIN866 KOI8R win866_to_koi8r cyrillic_and_mic \
44		windows_866_to_windows_1251	WIN866 WIN1251 win866_to_win1251 cyrillic_and_mic \
45		windows_1251_to_windows_866	WIN1251	WIN866 win1251_to_win866 cyrillic_and_mic \
46		iso_8859_5_to_koi8_r	ISO-8859-5 KOI8R iso_to_koi8r cyrillic_and_mic \
47		koi8_r_to_iso_8859_5	KOI8R ISO-8859-5 koi8r_to_iso cyrillic_and_mic \
48		iso_8859_5_to_windows_1251	ISO-8859-5 WIN1251 iso_to_win1251 cyrillic_and_mic \
49		windows_1251_to_iso_8859_5	WIN1251 ISO-8859-5 win1251_to_iso cyrillic_and_mic \
50		iso_8859_5_to_windows_866	ISO-8859-5 WIN866 iso_to_win866 cyrillic_and_mic \
51		windows_866_to_iso_8859_5	WIN866 ISO-8859-5 win866_to_iso cyrillic_and_mic \
52		euc_cn_to_mic	EUC_CN MULE_INTERNAL euc_cn_to_mic euc_cn_and_mic \
53		mic_to_euc_cn	MULE_INTERNAL EUC_CN mic_to_euc_cn euc_cn_and_mic \
54		euc_jp_to_sjis	EUC_JP SJIS euc_jp_to_sjis euc_jp_and_sjis \
55		sjis_to_euc_jp	SJIS EUC_JP sjis_to_euc_jp euc_jp_and_sjis \
56		euc_jp_to_mic	EUC_JP MULE_INTERNAL euc_jp_to_mic euc_jp_and_sjis \
57		sjis_to_mic	SJIS MULE_INTERNAL sjis_to_mic euc_jp_and_sjis \
58		mic_to_euc_jp	MULE_INTERNAL EUC_JP mic_to_euc_jp euc_jp_and_sjis \
59		mic_to_sjis	MULE_INTERNAL SJIS mic_to_sjis euc_jp_and_sjis \
60		euc_kr_to_mic	EUC_KR MULE_INTERNAL euc_kr_to_mic euc_kr_and_mic \
61		mic_to_euc_kr	MULE_INTERNAL EUC_KR mic_to_euc_kr euc_kr_and_mic \
62		euc_tw_to_big5	EUC_TW BIG5 euc_tw_to_big5 euc_tw_and_big5 \
63		big5_to_euc_tw	BIG5 EUC_TW big5_to_euc_tw euc_tw_and_big5 \
64		euc_tw_to_mic	EUC_TW MULE_INTERNAL euc_tw_to_mic euc_tw_and_big5 \
65		big5_to_mic	BIG5 MULE_INTERNAL big5_to_mic euc_tw_and_big5 \
66		mic_to_euc_tw	MULE_INTERNAL EUC_TW mic_to_euc_tw euc_tw_and_big5 \
67		mic_to_big5	MULE_INTERNAL BIG5 mic_to_big5 euc_tw_and_big5 \
68		iso_8859_2_to_mic	LATIN2 MULE_INTERNAL latin2_to_mic latin2_and_win1250 \
69		mic_to_iso_8859_2	MULE_INTERNAL LATIN2 mic_to_latin2 latin2_and_win1250 \
70		windows_1250_to_mic	WIN1250 MULE_INTERNAL win1250_to_mic latin2_and_win1250 \
71		mic_to_windows_1250	MULE_INTERNAL WIN1250 mic_to_win1250 latin2_and_win1250 \
72		iso_8859_2_to_windows_1250  LATIN2 WIN1250 latin2_to_win1250 latin2_and_win1250 \
73		windows_1250_to_iso_8859_2  WIN1250 LATIN2 win1250_to_latin2 latin2_and_win1250 \
74		iso_8859_1_to_mic	LATIN1 MULE_INTERNAL latin1_to_mic latin_and_mic \
75		mic_to_iso_8859_1	MULE_INTERNAL LATIN1 mic_to_latin1 latin_and_mic \
76		iso_8859_3_to_mic	LATIN3 MULE_INTERNAL latin3_to_mic latin_and_mic \
77		mic_to_iso_8859_3	MULE_INTERNAL LATIN3 mic_to_latin3 latin_and_mic \
78		iso_8859_4_to_mic	LATIN4 MULE_INTERNAL latin4_to_mic latin_and_mic \
79		mic_to_iso_8859_4	MULE_INTERNAL LATIN4 mic_to_latin4 latin_and_mic \
80		ascii_to_utf8 SQL_ASCII UTF8 ascii_to_utf8 utf8_and_ascii \
81		utf8_to_ascii UTF8 SQL_ASCII utf8_to_ascii utf8_and_ascii \
82		big5_to_utf8 BIG5 UTF8 big5_to_utf8 utf8_and_big5 \
83		utf8_to_big5 UTF8 BIG5 utf8_to_big5 utf8_and_big5 \
84		utf8_to_koi8_r	UTF8 KOI8R utf8_to_koi8r utf8_and_cyrillic \
85		koi8_r_to_utf8	KOI8R UTF8 koi8r_to_utf8 utf8_and_cyrillic \
86		utf8_to_koi8_u	UTF8 KOI8U utf8_to_koi8u utf8_and_cyrillic \
87		koi8_u_to_utf8	KOI8U UTF8 koi8u_to_utf8 utf8_and_cyrillic \
88		utf8_to_windows_866 UTF8 WIN866 utf8_to_win utf8_and_win \
89		windows_866_to_utf8 WIN866 UTF8 win_to_utf8 utf8_and_win \
90		utf8_to_windows_874 UTF8 WIN874 utf8_to_win utf8_and_win \
91		windows_874_to_utf8 WIN874 UTF8 win_to_utf8 utf8_and_win \
92		utf8_to_windows_1250 UTF8 WIN1250 utf8_to_win utf8_and_win \
93		windows_1250_to_utf8 WIN1250 UTF8 win_to_utf8 utf8_and_win \
94		utf8_to_windows_1251 UTF8 WIN1251 utf8_to_win utf8_and_win \
95		windows_1251_to_utf8 WIN1251 UTF8 win_to_utf8 utf8_and_win \
96		utf8_to_windows_1252 UTF8 WIN1252 utf8_to_win utf8_and_win \
97		windows_1252_to_utf8 WIN1252 UTF8 win_to_utf8 utf8_and_win \
98		utf8_to_windows_1253 UTF8 WIN1253 utf8_to_win utf8_and_win \
99		windows_1253_to_utf8 WIN1253 UTF8 win_to_utf8 utf8_and_win \
100		utf8_to_windows_1254 UTF8 WIN1254 utf8_to_win utf8_and_win \
101		windows_1254_to_utf8 WIN1254 UTF8 win_to_utf8 utf8_and_win \
102		utf8_to_windows_1255 UTF8 WIN1255 utf8_to_win utf8_and_win \
103		windows_1255_to_utf8 WIN1255 UTF8 win_to_utf8 utf8_and_win \
104		utf8_to_windows_1256 UTF8 WIN1256 utf8_to_win utf8_and_win \
105		windows_1256_to_utf8 WIN1256 UTF8 win_to_utf8 utf8_and_win \
106		utf8_to_windows_1257 UTF8 WIN1257 utf8_to_win utf8_and_win \
107		windows_1257_to_utf8 WIN1257 UTF8 win_to_utf8 utf8_and_win \
108		utf8_to_windows_1258 UTF8 WIN1258 utf8_to_win utf8_and_win \
109		windows_1258_to_utf8 WIN1258 UTF8 win_to_utf8 utf8_and_win \
110		euc_cn_to_utf8 EUC_CN UTF8 euc_cn_to_utf8 utf8_and_euc_cn \
111		utf8_to_euc_cn UTF8 EUC_CN utf8_to_euc_cn utf8_and_euc_cn \
112		euc_jp_to_utf8 EUC_JP UTF8 euc_jp_to_utf8 utf8_and_euc_jp \
113		utf8_to_euc_jp UTF8 EUC_JP utf8_to_euc_jp utf8_and_euc_jp \
114		euc_kr_to_utf8 EUC_KR UTF8 euc_kr_to_utf8 utf8_and_euc_kr \
115		utf8_to_euc_kr UTF8 EUC_KR utf8_to_euc_kr utf8_and_euc_kr \
116		euc_tw_to_utf8 EUC_TW UTF8 euc_tw_to_utf8 utf8_and_euc_tw \
117		utf8_to_euc_tw UTF8 EUC_TW utf8_to_euc_tw utf8_and_euc_tw \
118		gb18030_to_utf8 GB18030 UTF8 gb18030_to_utf8 utf8_and_gb18030 \
119		utf8_to_gb18030 UTF8 GB18030 utf8_to_gb18030 utf8_and_gb18030 \
120		gbk_to_utf8 GBK UTF8 gbk_to_utf8 utf8_and_gbk \
121		utf8_to_gbk UTF8 GBK utf8_to_gbk utf8_and_gbk \
122		utf8_to_iso_8859_2 UTF8 LATIN2 utf8_to_iso8859 utf8_and_iso8859 \
123		iso_8859_2_to_utf8 LATIN2 UTF8 iso8859_to_utf8 utf8_and_iso8859 \
124		utf8_to_iso_8859_3 UTF8 LATIN3 utf8_to_iso8859 utf8_and_iso8859 \
125		iso_8859_3_to_utf8 LATIN3 UTF8 iso8859_to_utf8 utf8_and_iso8859 \
126		utf8_to_iso_8859_4 UTF8 LATIN4 utf8_to_iso8859 utf8_and_iso8859 \
127		iso_8859_4_to_utf8 LATIN4 UTF8 iso8859_to_utf8 utf8_and_iso8859 \
128		utf8_to_iso_8859_9 UTF8 LATIN5 utf8_to_iso8859 utf8_and_iso8859 \
129		iso_8859_9_to_utf8 LATIN5 UTF8 iso8859_to_utf8 utf8_and_iso8859 \
130		utf8_to_iso_8859_10 UTF8 LATIN6 utf8_to_iso8859 utf8_and_iso8859 \
131		iso_8859_10_to_utf8 LATIN6 UTF8 iso8859_to_utf8 utf8_and_iso8859 \
132		utf8_to_iso_8859_13 UTF8 LATIN7 utf8_to_iso8859 utf8_and_iso8859 \
133		iso_8859_13_to_utf8 LATIN7 UTF8 iso8859_to_utf8 utf8_and_iso8859 \
134		utf8_to_iso_8859_14 UTF8 LATIN8 utf8_to_iso8859 utf8_and_iso8859 \
135		iso_8859_14_to_utf8 LATIN8 UTF8 iso8859_to_utf8 utf8_and_iso8859 \
136		utf8_to_iso_8859_15 UTF8 LATIN9 utf8_to_iso8859 utf8_and_iso8859 \
137		iso_8859_15_to_utf8 LATIN9 UTF8 iso8859_to_utf8 utf8_and_iso8859 \
138		utf8_to_iso_8859_16 UTF8 LATIN10 utf8_to_iso8859 utf8_and_iso8859 \
139		iso_8859_16_to_utf8 LATIN10 UTF8 iso8859_to_utf8 utf8_and_iso8859 \
140		utf8_to_iso_8859_5 UTF8 ISO-8859-5 utf8_to_iso8859 utf8_and_iso8859 \
141		iso_8859_5_to_utf8 ISO-8859-5 UTF8 iso8859_to_utf8 utf8_and_iso8859 \
142		utf8_to_iso_8859_6 UTF8 ISO-8859-6 utf8_to_iso8859 utf8_and_iso8859 \
143		iso_8859_6_to_utf8 ISO-8859-6 UTF8 iso8859_to_utf8 utf8_and_iso8859 \
144		utf8_to_iso_8859_7 UTF8 ISO-8859-7 utf8_to_iso8859 utf8_and_iso8859 \
145		iso_8859_7_to_utf8 ISO-8859-7 UTF8 iso8859_to_utf8 utf8_and_iso8859 \
146		utf8_to_iso_8859_8 UTF8 ISO-8859-8 utf8_to_iso8859 utf8_and_iso8859 \
147		iso_8859_8_to_utf8 ISO-8859-8 UTF8 iso8859_to_utf8 utf8_and_iso8859 \
148		iso_8859_1_to_utf8 LATIN1 UTF8 iso8859_1_to_utf8 utf8_and_iso8859_1 \
149		utf8_to_iso_8859_1 UTF8 LATIN1 utf8_to_iso8859_1 utf8_and_iso8859_1 \
150		johab_to_utf8 JOHAB UTF8 johab_to_utf8 utf8_and_johab \
151		utf8_to_johab UTF8 JOHAB utf8_to_johab utf8_and_johab \
152		sjis_to_utf8 SJIS UTF8 sjis_to_utf8 utf8_and_sjis \
153		utf8_to_sjis UTF8 SJIS utf8_to_sjis utf8_and_sjis \
154		uhc_to_utf8 UHC UTF8 uhc_to_utf8 utf8_and_uhc \
155		utf8_to_uhc UTF8 UHC utf8_to_uhc utf8_and_uhc \
156		euc_jis_2004_to_utf8 EUC_JIS_2004 UTF8 euc_jis_2004_to_utf8 utf8_and_euc2004 \
157		utf8_to_euc_jis_2004 UTF8 EUC_JIS_2004 utf8_to_euc_jis_2004 utf8_and_euc2004 \
158		shift_jis_2004_to_utf8 SHIFT_JIS_2004 UTF8 shift_jis_2004_to_utf8 utf8_and_sjis2004 \
159		utf8_to_shift_jis_2004 UTF8 SHIFT_JIS_2004 utf8_to_shift_jis_2004 utf8_and_sjis2004 \
160		euc_jis_2004_to_shift_jis_2004 EUC_JIS_2004 SHIFT_JIS_2004 euc_jis_2004_to_shift_jis_2004 euc2004_sjis2004 \
161		shift_jis_2004_to_euc_jis_2004 SHIFT_JIS_2004 EUC_JIS_2004 shift_jis_2004_to_euc_jis_2004 euc2004_sjis2004
162
163all: $(SQLSCRIPT)
164
165$(SQLSCRIPT): Makefile
166	@set -e; \
167	set $(CONVERSIONS) ; \
168	while [ "$$#" -gt 0 ] ; \
169	do \
170		name=$$1;shift; \
171		se=$$1;shift; \
172		de=$$1; shift; \
173		func=$$1; shift; \
174		obj=$$1; shift; \
175		echo "-- $$se --> $$de"; \
176		echo "CREATE OR REPLACE FUNCTION $$func (INTEGER, INTEGER, CSTRING, INTERNAL, INTEGER) RETURNS VOID AS '$$"libdir"/$$obj', '$$func' LANGUAGE C STRICT PARALLEL SAFE;"; \
177	        echo "COMMENT ON FUNCTION $$func(INTEGER, INTEGER, CSTRING, INTERNAL, INTEGER) IS 'internal conversion function for $$se to $$de';"; \
178		echo "DROP CONVERSION pg_catalog.$$name;"; \
179		echo "CREATE DEFAULT CONVERSION pg_catalog.$$name FOR '$$se' TO '$$de' FROM $$func;"; \
180	        echo "COMMENT ON CONVERSION pg_catalog.$$name IS 'conversion for $$se to $$de';"; \
181		echo; \
182	done > $@
183
184install: $(SQLSCRIPT) installdirs
185	$(INSTALL_DATA) $(SQLSCRIPT) '$(DESTDIR)$(datadir)'
186
187installdirs:
188	$(MKDIR_P) '$(DESTDIR)$(datadir)' '$(DESTDIR)$(pkglibdir)'
189
190uninstall:
191	rm -f '$(DESTDIR)$(datadir)/$(SQLSCRIPT)'
192
193clean distclean maintainer-clean:
194	rm -f $(SQLSCRIPT)
195