1# -*- make -*-
2#
3# Makefile for libcharset.
4
5# This Makefile should be sufficient to build libcharset and its
6# demo application all on its own. However, it's also a valid
7# Makefile _fragment_ which can be linked in to another program
8# Makefile to allow libcharset to be built directly into its
9# binary.
10
11# To include this as part of another Makefile, you need to:
12#
13#  - Define $(LIBCHARSET_SRCDIR) to be a directory prefix (i.e.
14#    probably ending in a slash) which allows access to the
15#    libcharset source files.
16#
17#  - Define $(LIBCHARSET_OBJDIR) to be a directory prefix (i.e.
18#    probably ending in a slash) which allows access to the
19#    directory where the libcharset object files need to be put.
20#
21#  - Define $(LIBCHARSET_OBJPFX) to be a filename prefix to be
22#    applied to the libcharset object files (in case, for example,
23#    the file names clash with those of the main application, and
24#    you need to call them cs-*.o to resolve the clash).
25#
26#  - Define $(LIBCHARSET_GENPFX) to be a prefix to be added to
27#    targets such as `all' and `clean'. (Mostly the point of this
28#    is to get those targets out of the way for the Makefile
29#    fragment including us.)
30#
31#  - If you need your compiler to use the -MD flag, define $(MD) to
32#    be `-MD'.
33#
34# This Makefile fragment will then define rules for building each
35# object file, and will in turn define $(LIBCHARSET_OBJS) to be
36# what you need to add to your link line.
37
38$(LIBCHARSET_GENPFX)all: \
39	$(LIBCHARSET_OBJDIR)libcharset.a \
40	$(LIBCHARSET_OBJDIR)convcs \
41	$(LIBCHARSET_OBJDIR)cstable \
42	$(LIBCHARSET_OBJDIR)confuse \
43	$(LIBCHARSET_OBJDIR)csshow
44
45$(LIBCHARSET_OBJDIR)convcs: $(LIBCHARSET_SRCDIR)convcs.c \
46	$(LIBCHARSET_OBJDIR)libcharset.a
47	$(CC) $(CFLAGS) -o $(LIBCHARSET_OBJDIR)convcs \
48		$(LIBCHARSET_SRCDIR)convcs.c \
49		$(LIBCHARSET_OBJDIR)libcharset.a
50
51$(LIBCHARSET_OBJDIR)cstable: $(LIBCHARSET_SRCDIR)cstable.c \
52	$(LIBCHARSET_OBJDIR)libcharset.a \
53	$(LIBCHARSET_OBJDIR)sbcsdat.c
54	$(CC) $(CFLAGS) -I $(LIBCHARSET_OBJDIR). \
55		-o $(LIBCHARSET_OBJDIR)cstable \
56		$(LIBCHARSET_SRCDIR)cstable.c \
57		$(LIBCHARSET_OBJDIR)libcharset.a
58
59$(LIBCHARSET_OBJDIR)confuse: $(LIBCHARSET_SRCDIR)confuse.c \
60	$(LIBCHARSET_OBJDIR)libcharset.a
61	$(CC) $(CFLAGS) -o $(LIBCHARSET_OBJDIR)confuse \
62		$(LIBCHARSET_SRCDIR)confuse.c \
63		$(LIBCHARSET_OBJDIR)libcharset.a
64
65$(LIBCHARSET_OBJDIR)csshow: $(LIBCHARSET_SRCDIR)csshow.c \
66	$(LIBCHARSET_OBJDIR)libcharset.a
67	$(CC) $(CFLAGS) -o $(LIBCHARSET_OBJDIR)csshow \
68		$(LIBCHARSET_SRCDIR)csshow.c \
69		$(LIBCHARSET_OBJDIR)libcharset.a
70
71LIBCHARSET_OBJS = \
72	$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)big5enc.o \
73	$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)big5set.o \
74	$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)cns11643.o \
75	$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)cp949.o \
76	$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)emacsenc.o \
77	$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)euc.o \
78	$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)fromucs.o \
79	$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)gb2312.o \
80	$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)htmlcs.o \
81	$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)hz.o \
82	$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)iso2022.o \
83	$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)iso2022s.o \
84	$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)istate.o \
85	$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)jisx0208.o \
86	$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)jisx0212.o \
87	$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)ksx1001.o \
88	$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)locale.o \
89	$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)localenc.o \
90	$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)macenc.o \
91	$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)mimeenc.o \
92	$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)sbcs.o \
93	$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)sbcsdat.o \
94	$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)shiftjis.o \
95	$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)slookup.o \
96	$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)superset.o \
97	$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)toucs.o \
98	$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)utf16.o \
99	$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)utf7.o \
100	$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)utf8.o \
101	$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)xenc.o \
102	# end of list
103
104$(LIBCHARSET_OBJDIR)libcharset.a: $(LIBCHARSET_OBJS)
105	ar rcs $@ $(LIBCHARSET_OBJS)
106
107$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)big5enc.o: \
108	$(LIBCHARSET_SRCDIR)big5enc.c
109	$(CC) $(CFLAGS) $(MD) -I $(LIBCHARSET_SRCDIR). -c -o $@ $<
110
111$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)big5set.o: \
112	$(LIBCHARSET_SRCDIR)big5set.c
113	$(CC) $(CFLAGS) $(MD) -I $(LIBCHARSET_SRCDIR). -c -o $@ $<
114
115$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)cns11643.o: \
116	$(LIBCHARSET_SRCDIR)cns11643.c
117	$(CC) $(CFLAGS) $(MD) -I $(LIBCHARSET_SRCDIR). -c -o $@ $<
118
119$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)cp949.o: \
120	$(LIBCHARSET_SRCDIR)cp949.c
121	$(CC) $(CFLAGS) $(MD) -I $(LIBCHARSET_SRCDIR). -c -o $@ $<
122
123$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)emacsenc.o: \
124	$(LIBCHARSET_SRCDIR)emacsenc.c
125	$(CC) $(CFLAGS) $(MD) -I $(LIBCHARSET_SRCDIR). -c -o $@ $<
126
127$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)euc.o: \
128	$(LIBCHARSET_SRCDIR)euc.c
129	$(CC) $(CFLAGS) $(MD) -I $(LIBCHARSET_SRCDIR). -c -o $@ $<
130
131$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)fromucs.o: \
132	$(LIBCHARSET_SRCDIR)fromucs.c
133	$(CC) $(CFLAGS) $(MD) -I $(LIBCHARSET_SRCDIR). -c -o $@ $<
134
135$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)gb2312.o: \
136	$(LIBCHARSET_SRCDIR)gb2312.c
137	$(CC) $(CFLAGS) $(MD) -I $(LIBCHARSET_SRCDIR). -c -o $@ $<
138
139$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)htmlcs.o: \
140	$(LIBCHARSET_SRCDIR)htmlcs.c
141	$(CC) $(CFLAGS) $(MD) -I $(LIBCHARSET_SRCDIR). -c -o $@ $<
142
143$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)hz.o: \
144	$(LIBCHARSET_SRCDIR)hz.c
145	$(CC) $(CFLAGS) $(MD) -I $(LIBCHARSET_SRCDIR). -c -o $@ $<
146
147$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)iso2022.o: \
148	$(LIBCHARSET_SRCDIR)iso2022.c \
149	$(LIBCHARSET_OBJDIR)sbcsdat.h
150	$(CC) $(CFLAGS) $(MD) -I $(LIBCHARSET_SRCDIR). -I $(LIBCHARSET_OBJDIR). -c -o $@ $<
151
152$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)iso2022s.o: \
153	$(LIBCHARSET_SRCDIR)iso2022s.c \
154	$(LIBCHARSET_OBJDIR)sbcsdat.h
155	$(CC) $(CFLAGS) $(MD) -I $(LIBCHARSET_SRCDIR). -I $(LIBCHARSET_OBJDIR). -c -o $@ $<
156
157$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)istate.o: \
158	$(LIBCHARSET_SRCDIR)istate.c
159	$(CC) $(CFLAGS) $(MD) -I $(LIBCHARSET_SRCDIR). -c -o $@ $<
160
161$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)jisx0208.o: \
162	$(LIBCHARSET_SRCDIR)jisx0208.c
163	$(CC) $(CFLAGS) $(MD) -I $(LIBCHARSET_SRCDIR). -c -o $@ $<
164
165$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)jisx0212.o: \
166	$(LIBCHARSET_SRCDIR)jisx0212.c
167	$(CC) $(CFLAGS) $(MD) -I $(LIBCHARSET_SRCDIR). -c -o $@ $<
168
169$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)ksx1001.o: \
170	$(LIBCHARSET_SRCDIR)ksx1001.c
171	$(CC) $(CFLAGS) $(MD) -I $(LIBCHARSET_SRCDIR). -c -o $@ $<
172
173$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)locale.o: \
174	$(LIBCHARSET_SRCDIR)locale.c
175	$(CC) $(CFLAGS) $(MD) -I $(LIBCHARSET_SRCDIR). -c -o $@ $<
176
177$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)localenc.o: \
178	$(LIBCHARSET_SRCDIR)localenc.c
179	$(CC) $(CFLAGS) $(MD) -I $(LIBCHARSET_SRCDIR). -c -o $@ $<
180
181$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)macenc.o: \
182	$(LIBCHARSET_SRCDIR)macenc.c
183	$(CC) $(CFLAGS) $(MD) -I $(LIBCHARSET_SRCDIR). -c -o $@ $<
184
185$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)mimeenc.o: \
186	$(LIBCHARSET_SRCDIR)mimeenc.c
187	$(CC) $(CFLAGS) $(MD) -I $(LIBCHARSET_SRCDIR). -c -o $@ $<
188
189$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)sbcs.o: \
190	$(LIBCHARSET_SRCDIR)sbcs.c
191	$(CC) $(CFLAGS) $(MD) -I $(LIBCHARSET_SRCDIR). -c -o $@ $<
192
193$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)shiftjis.o: \
194	$(LIBCHARSET_SRCDIR)shiftjis.c
195	$(CC) $(CFLAGS) $(MD) -I $(LIBCHARSET_SRCDIR). -c -o $@ $<
196
197$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)slookup.o: \
198	$(LIBCHARSET_SRCDIR)slookup.c \
199	$(LIBCHARSET_OBJDIR)sbcsdat.c
200	$(CC) $(CFLAGS) $(MD) -I $(LIBCHARSET_SRCDIR). -I $(LIBCHARSET_OBJDIR). -c -o $@ $<
201
202$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)superset.o: \
203	$(LIBCHARSET_SRCDIR)superset.c
204	$(CC) $(CFLAGS) $(MD) -I $(LIBCHARSET_SRCDIR). -c -o $@ $<
205
206$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)toucs.o: \
207	$(LIBCHARSET_SRCDIR)toucs.c
208	$(CC) $(CFLAGS) $(MD) -I $(LIBCHARSET_SRCDIR). -c -o $@ $<
209
210$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)utf16.o: \
211	$(LIBCHARSET_SRCDIR)utf16.c
212	$(CC) $(CFLAGS) $(MD) -I $(LIBCHARSET_SRCDIR). -c -o $@ $<
213
214$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)utf7.o: \
215	$(LIBCHARSET_SRCDIR)utf7.c
216	$(CC) $(CFLAGS) $(MD) -I $(LIBCHARSET_SRCDIR). -c -o $@ $<
217
218$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)utf8.o: \
219	$(LIBCHARSET_SRCDIR)utf8.c
220	$(CC) $(CFLAGS) $(MD) -I $(LIBCHARSET_SRCDIR). -c -o $@ $<
221
222$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)xenc.o: \
223	$(LIBCHARSET_SRCDIR)xenc.c
224	$(CC) $(CFLAGS) $(MD) -I $(LIBCHARSET_SRCDIR). -c -o $@ $<
225
226# This object file is special, because its source file is itself
227# generated - and therefore goes in the object directory.
228
229$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)sbcsdat.o: \
230	$(LIBCHARSET_OBJDIR)sbcsdat.c
231	$(CC) $(CFLAGS) $(MD) -I $(LIBCHARSET_SRCDIR). -c -o $@ $<
232
233$(LIBCHARSET_OBJDIR)sbcsdat.c: \
234	$(LIBCHARSET_SRCDIR)sbcs.dat \
235	$(LIBCHARSET_SRCDIR)sbcsgen.pl
236	perl $(LIBCHARSET_SRCDIR)sbcsgen.pl \
237		$(LIBCHARSET_SRCDIR)sbcs.dat \
238		--source=$(LIBCHARSET_OBJDIR)sbcsdat.c
239
240$(LIBCHARSET_OBJDIR)sbcsdat.h: \
241	$(LIBCHARSET_SRCDIR)sbcs.dat \
242	$(LIBCHARSET_SRCDIR)sbcsgen.pl
243	perl $(LIBCHARSET_SRCDIR)sbcsgen.pl \
244		$(LIBCHARSET_SRCDIR)sbcs.dat \
245		--header=$(LIBCHARSET_OBJDIR)sbcsdat.h
246
247$(LIBCHARSET_GENPFX)clean:
248	rm -f $(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)*.o \
249		$(LIBCHARSET_OBJDIR)libcharset.a \
250		$(LIBCHARSET_OBJDIR)sbcsdat.c \
251		$(LIBCHARSET_OBJDIR)sbcsdat.h \
252		$(LIBCHARSET_OBJDIR)convcs
253