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