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