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