Silly of me to overlook it: another obvious way you might like to
[sgt/charset] / Makefile
CommitLineData
c6d25d8d 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#
b69eb492 31# - If you need your compiler to use the -MD flag, define $(MD) to
32# be `-MD'.
33#
c6d25d8d 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 \
01081d4e 40 $(LIBCHARSET_OBJDIR)convcs \
38558cf1 41 $(LIBCHARSET_OBJDIR)cstable \
42 $(LIBCHARSET_OBJDIR)confuse
c6d25d8d 43
01081d4e 44$(LIBCHARSET_OBJDIR)convcs: $(LIBCHARSET_SRCDIR)test.c \
45 $(LIBCHARSET_OBJDIR)libcharset.a
c6d25d8d 46 $(CC) $(CFLAGS) -o $(LIBCHARSET_OBJDIR)convcs \
47 $(LIBCHARSET_SRCDIR)test.c \
48 $(LIBCHARSET_OBJDIR)libcharset.a
49
01081d4e 50$(LIBCHARSET_OBJDIR)cstable: $(LIBCHARSET_SRCDIR)cstable.c \
51 $(LIBCHARSET_OBJDIR)libcharset.a
52 $(CC) $(CFLAGS) -o $(LIBCHARSET_OBJDIR)cstable \
53 $(LIBCHARSET_SRCDIR)cstable.c \
54 $(LIBCHARSET_OBJDIR)libcharset.a
55
38558cf1 56$(LIBCHARSET_OBJDIR)confuse: $(LIBCHARSET_SRCDIR)confuse.c \
57 $(LIBCHARSET_OBJDIR)libcharset.a
58 $(CC) $(CFLAGS) -o $(LIBCHARSET_OBJDIR)confuse \
59 $(LIBCHARSET_SRCDIR)confuse.c \
60 $(LIBCHARSET_OBJDIR)libcharset.a
61
c6d25d8d 62LIBCHARSET_OBJS = \
63 $(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)big5enc.o \
64 $(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)big5set.o \
707b8810 65 $(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)cns11643.o \
c6d25d8d 66 $(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)cp949.o \
32361bda 67 $(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)emacsenc.o \
c6d25d8d 68 $(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)euc.o \
69 $(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)fromucs.o \
70 $(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)gb2312.o \
71 $(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)hz.o \
b97e5427 72 $(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)iso2022.o \
c6d25d8d 73 $(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)iso2022s.o \
74 $(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)istate.o \
75 $(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)jisx0208.o \
76 $(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)jisx0212.o \
77 $(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)ksx1001.o \
8a731dfa 78 $(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)locale.o \
c6d25d8d 79 $(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)localenc.o \
80 $(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)macenc.o \
81 $(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)mimeenc.o \
82 $(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)sbcs.o \
83 $(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)sbcsdat.o \
84 $(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)shiftjis.o \
85 $(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)slookup.o \
86 $(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)superset.o \
87 $(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)toucs.o \
88 $(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)utf16.o \
89 $(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)utf7.o \
90 $(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)utf8.o \
91 $(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)xenc.o \
92 # end of list
93
94$(LIBCHARSET_OBJDIR)libcharset.a: $(LIBCHARSET_OBJS)
95 ar rcs $@ $(LIBCHARSET_OBJS)
96
97$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)big5enc.o: \
98 $(LIBCHARSET_SRCDIR)big5enc.c
b69eb492 99 $(CC) $(CFLAGS) $(MD) -c -o $@ $<
c6d25d8d 100
101$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)big5set.o: \
102 $(LIBCHARSET_SRCDIR)big5set.c
b69eb492 103 $(CC) $(CFLAGS) $(MD) -c -o $@ $<
c6d25d8d 104
707b8810 105$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)cns11643.o: \
106 $(LIBCHARSET_SRCDIR)cns11643.c
107 $(CC) $(CFLAGS) $(MD) -c -o $@ $<
108
c6d25d8d 109$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)cp949.o: \
110 $(LIBCHARSET_SRCDIR)cp949.c
b69eb492 111 $(CC) $(CFLAGS) $(MD) -c -o $@ $<
c6d25d8d 112
8acdc8cb 113$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)emacsenc.o: \
114 $(LIBCHARSET_SRCDIR)emacsenc.c
115 $(CC) $(CFLAGS) $(MD) -c -o $@ $<
116
c6d25d8d 117$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)euc.o: \
118 $(LIBCHARSET_SRCDIR)euc.c
b69eb492 119 $(CC) $(CFLAGS) $(MD) -c -o $@ $<
c6d25d8d 120
121$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)fromucs.o: \
122 $(LIBCHARSET_SRCDIR)fromucs.c
b69eb492 123 $(CC) $(CFLAGS) $(MD) -c -o $@ $<
c6d25d8d 124
125$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)gb2312.o: \
126 $(LIBCHARSET_SRCDIR)gb2312.c
b69eb492 127 $(CC) $(CFLAGS) $(MD) -c -o $@ $<
c6d25d8d 128
129$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)hz.o: \
130 $(LIBCHARSET_SRCDIR)hz.c
b69eb492 131 $(CC) $(CFLAGS) $(MD) -c -o $@ $<
c6d25d8d 132
b97e5427 133$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)iso2022.o: \
134 $(LIBCHARSET_SRCDIR)iso2022.c \
135 $(LIBCHARSET_OBJDIR)sbcsdat.h
136 $(CC) $(CFLAGS) $(MD) -c -o $@ $<
137
c6d25d8d 138$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)iso2022s.o: \
01081d4e 139 $(LIBCHARSET_SRCDIR)iso2022s.c \
140 $(LIBCHARSET_OBJDIR)sbcsdat.h
b69eb492 141 $(CC) $(CFLAGS) $(MD) -c -o $@ $<
c6d25d8d 142
143$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)istate.o: \
144 $(LIBCHARSET_SRCDIR)istate.c
b69eb492 145 $(CC) $(CFLAGS) $(MD) -c -o $@ $<
c6d25d8d 146
147$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)jisx0208.o: \
148 $(LIBCHARSET_SRCDIR)jisx0208.c
b69eb492 149 $(CC) $(CFLAGS) $(MD) -c -o $@ $<
c6d25d8d 150
151$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)jisx0212.o: \
152 $(LIBCHARSET_SRCDIR)jisx0212.c
b69eb492 153 $(CC) $(CFLAGS) $(MD) -c -o $@ $<
c6d25d8d 154
155$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)ksx1001.o: \
156 $(LIBCHARSET_SRCDIR)ksx1001.c
b69eb492 157 $(CC) $(CFLAGS) $(MD) -c -o $@ $<
c6d25d8d 158
8a731dfa 159$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)locale.o: \
160 $(LIBCHARSET_SRCDIR)locale.c
161 $(CC) $(CFLAGS) $(MD) -c -o $@ $<
162
c6d25d8d 163$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)localenc.o: \
164 $(LIBCHARSET_SRCDIR)localenc.c
b69eb492 165 $(CC) $(CFLAGS) $(MD) -c -o $@ $<
c6d25d8d 166
167$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)macenc.o: \
168 $(LIBCHARSET_SRCDIR)macenc.c
b69eb492 169 $(CC) $(CFLAGS) $(MD) -c -o $@ $<
c6d25d8d 170
171$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)mimeenc.o: \
172 $(LIBCHARSET_SRCDIR)mimeenc.c
b69eb492 173 $(CC) $(CFLAGS) $(MD) -c -o $@ $<
c6d25d8d 174
175$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)sbcs.o: \
176 $(LIBCHARSET_SRCDIR)sbcs.c
b69eb492 177 $(CC) $(CFLAGS) $(MD) -c -o $@ $<
c6d25d8d 178
179$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)shiftjis.o: \
180 $(LIBCHARSET_SRCDIR)shiftjis.c
b69eb492 181 $(CC) $(CFLAGS) $(MD) -c -o $@ $<
c6d25d8d 182
183$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)slookup.o: \
184 $(LIBCHARSET_SRCDIR)slookup.c
b69eb492 185 $(CC) $(CFLAGS) $(MD) -c -o $@ $<
c6d25d8d 186
187$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)superset.o: \
188 $(LIBCHARSET_SRCDIR)superset.c
b69eb492 189 $(CC) $(CFLAGS) $(MD) -c -o $@ $<
c6d25d8d 190
191$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)toucs.o: \
192 $(LIBCHARSET_SRCDIR)toucs.c
b69eb492 193 $(CC) $(CFLAGS) $(MD) -c -o $@ $<
c6d25d8d 194
195$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)utf16.o: \
196 $(LIBCHARSET_SRCDIR)utf16.c
b69eb492 197 $(CC) $(CFLAGS) $(MD) -c -o $@ $<
c6d25d8d 198
199$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)utf7.o: \
200 $(LIBCHARSET_SRCDIR)utf7.c
b69eb492 201 $(CC) $(CFLAGS) $(MD) -c -o $@ $<
c6d25d8d 202
203$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)utf8.o: \
204 $(LIBCHARSET_SRCDIR)utf8.c
b69eb492 205 $(CC) $(CFLAGS) $(MD) -c -o $@ $<
c6d25d8d 206
207$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)xenc.o: \
208 $(LIBCHARSET_SRCDIR)xenc.c
b69eb492 209 $(CC) $(CFLAGS) $(MD) -c -o $@ $<
c6d25d8d 210
211# This object file is special, because its source file is itself
212# generated - and therefore goes in the object directory.
213
214$(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)sbcsdat.o: \
215 $(LIBCHARSET_OBJDIR)sbcsdat.c
b69eb492 216 $(CC) $(CFLAGS) $(MD) -c -o $@ $<
c6d25d8d 217
01081d4e 218$(LIBCHARSET_OBJDIR)sbcsdat.c $(LIBCHARSET_OBJDIR)sbcsdat.h: \
c6d25d8d 219 $(LIBCHARSET_SRCDIR)sbcs.dat \
220 $(LIBCHARSET_SRCDIR)sbcsgen.pl
221 perl $(LIBCHARSET_SRCDIR)sbcsgen.pl \
01081d4e 222 $(LIBCHARSET_SRCDIR)sbcs.dat \
223 $(LIBCHARSET_OBJDIR)sbcsdat.c \
224 $(LIBCHARSET_OBJDIR)sbcsdat.h
c6d25d8d 225
226$(LIBCHARSET_GENPFX)clean:
227 rm -f $(LIBCHARSET_OBJDIR)$(LIBCHARSET_OBJPFX)*.o \
228 $(LIBCHARSET_OBJDIR)libcharset.a \
229 $(LIBCHARSET_OBJDIR)sbcsdat.c \
01081d4e 230 $(LIBCHARSET_OBJDIR)sbcsdat.h \
c6d25d8d 231 $(LIBCHARSET_OBJDIR)convcs