1#
2# CDDL HEADER START
3#
4# The contents of this file are subject to the terms of the
5# Common Development and Distribution License (the "License").
6# You may not use this file except in compliance with the License.
7#
8# You can obtain a copy of the license at src/OPENSOLARIS.LICENSE
9# or http://www.opensolaris.org/os/licensing.
10# See the License for the specific language governing permissions
11# and limitations under the License.
12#
13# When distributing Covered Code, include this CDDL HEADER in each
14# file and include the License file at src/OPENSOLARIS.LICENSE.
15# If applicable, add the following below this CDDL HEADER, with the
16# fields enclosed by brackets "[]" replaced with your own identifying
17# information: Portions Copyright [yyyy] [name of copyright owner]
18#
19# CDDL HEADER END
20#
21#
22# Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
23# Use is subject to license terms.
24#
25
26include $(SRC)/Makefile.master
27
28BTS_DIR			= $(ROOT)/usr/lib/iconv/geniconvtbl/binarytables
29
30# geniconvtbl loadmodule
31GENICONVTBL= /usr/bin/geniconvtbl
32#
33# Common sources come from following directory:
34COMMON			= ../common/
35GENI_SRCS		= ../common/binarytables/srcs
36
37include $(SRC)/lib/iconv_modules/Makefile.iconv
38include $(SRC)/lib/iconv_modules/utf-8/Makefile.iconv
39
40CLEANFILES =    *.o *.so core *.bt
41
42.NO_PARALLEL:
43
44.PARALLEL: $(DYNOBJS) $(BINARYTABLES)
45
46
47all: $(DYNOBJS) $(BINARYTABLES)
48
49install: all $(ICONV_DIR) $(BTS_DIR) $(ICONV_DIR)/alias
50	for f in  $(BINARYTABLES) ; do \
51		TMP=`echo $$f | $(TR) "+" "%"` ; \
52		echo installing $$TMP to $(BTS_DIR) ; \
53		$(RM) $(BTS_DIR)/$$TMP ; \
54		$(CP) $$f $(BTS_DIR)/$$TMP ; \
55		$(CHMOD) 444 $(BTS_DIR)/$$TMP ; \
56	done
57	for f in $(DYNOBJS) ; do \
58		TMP=`echo $$f | $(TR) "+" "%"` ; \
59		echo installing $$TMP to $(ICONV_DIR) ; \
60		$(RM) $(ICONV_DIR)/$$TMP ; \
61		$(CP) $$f $(ICONV_DIR)/$$TMP ; \
62		$(CHMOD) 755 $(ICONV_DIR)/$$TMP ; \
63	done
64	-@echo "done."
65
66
67$(BTS_DIR):
68	$(INS.dir) $@
69
70clobber: clean
71
72$(ICONV_DIR)/alias:=	FILEMODE=0444
73
74LDLIBS			= -lc
75
76LDFLAGS = $(DYNFLAGS) $(LDLIBS) $(CFLAG_OPT)
77
78$(DYNOBJS)		:= CFLAGS += $(XREGSFLAG) $(C_PICFLAGS) -D_REENTRANT \
79					-I$(COMMON) -I$(COMMON)/tbls \
80					-I$(ADJUNCT_PROTO)/usr/include
81
82$(UCS_2_SOS)		:= CFLAGS += -DUCS_2
83$(UCS_2BE_SOS)		:= CFLAGS += -DUCS_2BE
84$(UCS_2LE_SOS)		:= CFLAGS += -DUCS_2LE
85
86$(UTF_16_SOS)		:= CFLAGS += -DUTF_16
87$(UTF_16BE_SOS)		:= CFLAGS += -DUTF_16BE
88$(UTF_16LE_SOS)		:= CFLAGS += -DUTF_16LE
89
90$(UTF_32_SOS)		:= CFLAGS += -DUTF_32
91$(UTF_32BE_SOS)		:= CFLAGS += -DUTF_32BE
92$(UTF_32LE_SOS)		:= CFLAGS += -DUTF_32LE
93
94$(UCS_4_SOS)		:= CFLAGS += -DUCS_4
95$(UCS_4BE_SOS)		:= CFLAGS += -DUCS_4BE
96$(UCS_4LE_SOS)		:= CFLAGS += -DUCS_4LE
97
98$(UTF_8_SOS)		:= CFLAGS += -DUTF_8
99
100$(US_ASCII_SOS)		:= CFLAGS += -DUS_ASCII
101$(ISO_8859_1_SOS)	:= CFLAGS += -DISO_8859_1
102$(ISO_8859_2_SOS)	:= CFLAGS += -DISO_8859_2
103$(ISO_8859_3_SOS)	:= CFLAGS += -DISO_8859_3
104$(ISO_8859_4_SOS)	:= CFLAGS += -DISO_8859_4
105$(ISO_8859_5_SOS)	:= CFLAGS += -DISO_8859_5
106$(ISO_8859_6_SOS)	:= CFLAGS += -DISO_8859_6
107$(ISO_8859_7_SOS)	:= CFLAGS += -DISO_8859_7
108$(ISO_8859_8_SOS)	:= CFLAGS += -DISO_8859_8
109$(ISO_8859_9_SOS)	:= CFLAGS += -DISO_8859_9
110$(ISO_8859_10_SOS)	:= CFLAGS += -DISO_8859_10
111$(ISO_8859_13_SOS)	:= CFLAGS += -DISO_8859_13
112$(ISO_8859_14_SOS)	:= CFLAGS += -DISO_8859_14
113$(ISO_8859_15_SOS)	:= CFLAGS += -DISO_8859_15
114$(ISO_8859_16_SOS)	:= CFLAGS += -DISO_8859_16
115$(KOI8_R)		:= CFLAGS += -DKOI8_R
116$(KOI8_U)		:= CFLAGS += -DKOI8_U
117$(PTCP154)		:= CFLAGS += -DPTCP154
118$(CP437_SOS)		:= CFLAGS += -DCP437
119$(CP720_SOS)		:= CFLAGS += -DCP720
120$(CP737_SOS)		:= CFLAGS += -DCP737
121$(CP775_SOS)		:= CFLAGS += -DCP775
122$(CP850_SOS)		:= CFLAGS += -DCP850
123$(CP852_SOS)		:= CFLAGS += -DCP852
124$(CP855_SOS)		:= CFLAGS += -DCP855
125$(CP857_SOS)		:= CFLAGS += -DCP857
126$(CP860_SOS)		:= CFLAGS += -DCP860
127$(CP861_SOS)		:= CFLAGS += -DCP861
128$(CP862_SOS)		:= CFLAGS += -DCP862
129$(CP863_SOS)		:= CFLAGS += -DCP863
130$(CP864_SOS)		:= CFLAGS += -DCP864
131$(CP865_SOS)		:= CFLAGS += -DCP865
132$(CP866_SOS)		:= CFLAGS += -DCP866
133$(CP869_SOS)		:= CFLAGS += -DCP869
134$(CP874_SOS)		:= CFLAGS += -DCP874
135$(CP1250_SOS)		:= CFLAGS += -DCP1250
136$(CP1251_SOS)		:= CFLAGS += -DCP1251
137$(CP1252_SOS)		:= CFLAGS += -DCP1252
138$(CP1253_SOS)		:= CFLAGS += -DCP1253
139$(CP1254_SOS)		:= CFLAGS += -DCP1254
140$(CP1255_SOS)		:= CFLAGS += -DCP1255
141$(CP1256_SOS)		:= CFLAGS += -DCP1256
142$(CP1257_SOS)		:= CFLAGS += -DCP1257
143$(CP1258_SOS)		:= CFLAGS += -DCP1258
144
145$(ACE_TO_UTF_8_SO)	:= CFLAGS += -DICV_ACE_TO_UTF8
146$(ACE_ALLOW_UNAS_TO_UTF_8_SO)	:= CFLAGS += -DICV_ACE_TO_UTF8 \
147						-DICV_IDN_ALLOW_UNASSIGNED
148$(UTF_8_TO_ACE_SO)	:= CFLAGS += -DICV_UTF8_TO_ACE
149$(UTF_8_TO_ACE_ALLOW_UNAS_SO)	:= CFLAGS += -DICV_UTF8_TO_ACE \
150                                               -DICV_IDN_ALLOW_UNASSIGNED
151#
152# Dependencies and actual compilations are defined at below.
153$(SB_TO_UCS_SOS): $(COMMON)/common_defs.h $(COMMON)/sb_to_ucs.h $(COMMON)/sb_to_ucs.c
154	$(CC) $(CFLAGS) $(COMMON)/sb_to_ucs.c -c -o $@.o
155	$(CC) $(LDFLAGS) $(CFLAGS)  -o  $@ $@.o
156	$(POST_PROCESS_SO)
157
158$(UCS_TO_SB_SOS): $(COMMON)/common_defs.h $(COMMON)/ucs_to_sb.h $(COMMON)/ucs_to_sb.c
159	$(CC) $(CFLAGS) $(COMMON)/ucs_to_sb.c -c -o $@.o
160	$(CC) $(LDFLAGS) $(CFLAGS)  -o  $@ $@.o
161	$(POST_PROCESS_SO)
162
163$(SB_TO_UTF_8_SOS): $(COMMON)/common_defs.h $(COMMON)/sb_to_utf8.h $(COMMON)/sb_to_utf8.c
164	$(CC) $(CFLAGS) $(COMMON)/sb_to_utf8.c -c -o $@.o
165	$(CC) $(LDFLAGS) $(CFLAGS)  -o  $@ $@.o
166	$(POST_PROCESS_SO)
167
168$(UTF_8_TO_SB_SOS): $(COMMON)/common_defs.h $(COMMON)/utf8_to_sb.h $(COMMON)/utf8_to_sb.c
169	$(CC) $(CFLAGS) $(COMMON)/utf8_to_sb.c -c -o $@.o
170	$(CC) $(LDFLAGS) $(CFLAGS)  -o  $@ $@.o
171	$(POST_PROCESS_SO)
172
173$(UCS_4_TO_UCS_SOS): $(COMMON)/common_defs.h $(COMMON)/ucs4_to_ucs.h $(COMMON)/ucs4_to_ucs.c
174	$(CC) $(CFLAGS) $(COMMON)/ucs4_to_ucs.c -c -o $@.o
175	$(CC) $(LDFLAGS) $(CFLAGS)  -o  $@ $@.o
176	$(POST_PROCESS_SO)
177
178$(UCS_TO_UCS_4_SOS): $(COMMON)/common_defs.h $(COMMON)/ucs_to_ucs4.h $(COMMON)/ucs_to_ucs4.c
179	$(CC) $(CFLAGS) $(COMMON)/ucs_to_ucs4.c -c -o $@.o
180	$(CC) $(LDFLAGS) $(CFLAGS)  -o  $@ $@.o
181	$(POST_PROCESS_SO)
182
183$(UCS_4_TO_UTF_32_SOS): $(COMMON)/common_defs.h $(COMMON)/ucs4_to_ucs.h $(COMMON)/ucs4_to_ucs.c
184	$(CC) $(CFLAGS) $(COMMON)/ucs4_to_utf32.c -c -o $@.o
185	$(CC) $(LDFLAGS) $(CFLAGS)  -o  $@ $@.o
186	$(POST_PROCESS_SO)
187
188$(UTF_32_TO_UCS_4_SOS): $(COMMON)/common_defs.h $(COMMON)/ucs_to_ucs4.h $(COMMON)/ucs_to_ucs4.c
189	$(CC) $(CFLAGS) $(COMMON)/utf32_to_ucs4.c -c -o $@.o
190	$(CC) $(LDFLAGS) $(CFLAGS)  -o  $@ $@.o
191	$(POST_PROCESS_SO)
192
193$(UCS_TO_UTF_8_SOS): $(COMMON)/common_defs.h $(COMMON)/ucs_to_utf8.h $(COMMON)/ucs_to_utf8.c
194	$(CC) $(CFLAGS) $(COMMON)/ucs_to_utf8.c -c -o $@.o
195	$(CC) $(LDFLAGS) $(CFLAGS)  -o  $@ $@.o
196	$(POST_PROCESS_SO)
197
198$(UTF_8_TO_UCS_SOS): $(COMMON)/common_defs.h $(COMMON)/utf8_to_ucs.h $(COMMON)/utf8_to_ucs.c
199	$(CC) $(CFLAGS) $(COMMON)/utf8_to_ucs.c -c -o $@.o
200	$(CC) $(LDFLAGS) $(CFLAGS)  -o  $@ $@.o
201	$(POST_PROCESS_SO)
202
203$(UCS_TO_UTF_7_SOS): $(COMMON)/common_defs.h $(COMMON)/ucs_to_utf7.h $(COMMON)/ucs_to_utf7.c
204	$(CC) $(CFLAGS) $(COMMON)/ucs_to_utf7.c -c -o $@.o
205	$(CC) $(LDFLAGS) $(CFLAGS)  -o  $@ $@.o
206	$(POST_PROCESS_SO)
207
208$(UTF_7_TO_UCS_SOS): $(COMMON)/common_defs.h $(COMMON)/utf7_to_ucs.h $(COMMON)/utf7_to_ucs.c
209	$(CC) $(CFLAGS) $(COMMON)/utf7_to_ucs.c -c -o $@.o
210	$(CC) $(LDFLAGS) $(CFLAGS)  -o  $@ $@.o
211	$(POST_PROCESS_SO)
212
213$(UTF_8_TO_UTF_EBCDIC_SO): $(COMMON)/common_defs.h $(COMMON)/utf8_to_utf_ebcdic.h $(COMMON)/utf8_to_utf_ebcdic.c
214	$(CC) $(CFLAGS) $(COMMON)/utf8_to_utf_ebcdic.c -c -o $@.o
215	$(CC) $(LDFLAGS) $(CFLAGS)  -o  $@ $@.o
216	$(POST_PROCESS_SO)
217
218$(UTF_EBCDIC_TO_UTF_8_SO): $(COMMON)/common_defs.h $(COMMON)/utf_ebcdic_to_utf8.h $(COMMON)/utf_ebcdic_to_utf8.c
219	$(CC) $(CFLAGS) $(COMMON)/utf_ebcdic_to_utf8.c -c -o $@.o
220	$(CC) $(LDFLAGS) $(CFLAGS)  -o  $@ $@.o
221	$(POST_PROCESS_SO)
222
223$(ACE_TO_UTF_8_SO): $(COMMON)/ace.h $(COMMON)/ace_utf8.c
224	$(CC) $(CFLAGS) $(COMMON)/ace_utf8.c -c -o $@.o
225	$(CC) $(LDFLAGS) $(CFLAGS)  -o  $@ $@.o
226	$(POST_PROCESS_SO)
227
228$(ACE_ALLOW_UNAS_TO_UTF_8_SO): $(COMMON)/ace.h $(COMMON)/ace_utf8.c
229	$(CC) $(CFLAGS) $(COMMON)/ace_utf8.c -c -o $@.o
230	$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $@.o
231	$(POST_PROCESS_SO)
232
233$(UTF_8_TO_ACE_SO): $(COMMON)/ace.h $(COMMON)/ace_utf8.c
234	$(CC) $(CFLAGS) $(COMMON)/ace_utf8.c -c -o $@.o
235	$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $@.o
236	$(POST_PROCESS_SO)
237
238$(UTF_8_TO_ACE_ALLOW_UNAS_SO): $(COMMON)/ace.h $(COMMON)/ace_utf8.c
239	$(CC) $(CFLAGS) $(COMMON)/ace_utf8.c -c -o $@.o
240	$(CC) $(LDFLAGS) $(CFLAGS) -o $@ $@.o
241	$(POST_PROCESS_SO)
242
243$(UTF_8_TO_UTF_8_SO): $(COMMON)/common_defs.h $(COMMON)/utf8.c
244	$(CC) $(CFLAGS) $(COMMON)/utf8.c -c -o $@.o
245	$(CC) $(LDFLAGS) $(CFLAGS)  -o  $@ $@.o
246	$(POST_PROCESS_SO)
247
248
249#
250# Rules for binary tables:
251.SUFFIXES: $(SUFFIXES) .src
252.SUFFIXES: $(SUFFIXES) .bt
253
254%.bt: $(GENI_SRCS)/%.src
255	$(GENICONVTBL) -o $@ -f $<
256