• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#
2# Makefile for AmigaOS
3#
4
5.PHONY: help all check clean package
6.PHONY: clib2 newlib library so
7
8vpath %.c ../lib ../examples ../xmlwf ../tests ../tests/benchmark
9vpath %.h ../lib ../tests
10
11#############################################################################
12
13help:
14	@echo "Requires:"
15	@echo " AmigaOS 4.x"
16	@echo " SDK 53.13"
17	@echo ""
18	@echo "Targets:"
19	@echo " all     - make libraries, xmlwf, examples and runs tests"
20	@echo " install - install expat libraries and tools into SDK"
21	@echo " clean   - clean object files"
22	@echo " check   - run all the tests"
23	@echo " package - prepare distribution archive"
24
25all: clib2 newlib library so check
26
27clib2: clib2/libexpat.a clib2/xmlwf clib2/elements clib2/outline clib2/runtests clib2/benchmark
28
29newlib: newlib/libexpat.a newlib/xmlwf newlib/elements newlib/outline newlib/runtests newlib/benchmark
30
31library: libs/expat.library libs/xmlwf libs/elements libs/outline libs/runtests libs/benchmark
32
33so: so/libexpat.so so/xmlwf so/elements so/outline so/runtests so/benchmark
34
35check: clib2/runtests newlib/runtests libs/runtests so/runtests
36	clib2/runtests
37	newlib/runtests
38	libs/runtests
39	so/runtests
40
41clean:
42	-delete clib2/#?.o quiet
43	-delete newlib/#?.o quiet
44	-delete libs/#?.o quiet
45	-delete so/#?.o quiet
46
47package:
48	$(MAKE) all
49	-delete T:expat all force quiet
50	makedir all T:expat/Workbench/Libs
51	copy clone libs/expat.library T:expat/Workbench/Libs
52	makedir all T:expat/Workbench/SObjs
53	copy clone so/libexpat.so T:expat/Workbench/SObjs
54	makedir all T:expat/SDK/Local/C
55	copy clone libs/xmlwf T:expat/SDK/Local/C
56	makedir all T:expat/SDK/Local/clib2/lib
57	copy clone clib2/libexpat.a T:expat/SDK/Local/clib2/lib
58	makedir all T:expat/SDK/Local/newlib/lib
59	copy clone newlib/libexpat.a T:expat/SDK/Local/newlib/lib
60	makedir all T:expat/SDK/Local/common/include
61	copy clone /lib/expat.h /lib/expat_external.h T:expat/SDK/Local/common/include
62	makedir all T:expat/SDK/Include/include_h/inline4
63	copy clone include/inline4/expat.h T:expat/SDK/Include/include_h/inline4
64	makedir all T:expat/SDK/Include/include_h/interfaces
65	copy clone include/interfaces/expat.h T:expat/SDK/Include/include_h/interfaces
66	makedir all T:expat/SDK/Include/include_h/libraries
67	copy clone include/libraries/expat.h T:expat/SDK/Include/include_h/libraries
68	makedir all T:expat/SDK/Include/include_h/proto
69	copy clone include/proto/expat.h T:expat/SDK/Include/include_h/proto
70	makedir all T:expat/SDK/Documentation/Libs/Expat
71	copy clone /COPYING T:expat/SDK/Documentation/Libs/Expat
72	copy clone /README T:expat/SDK/Documentation/Libs/Expat
73	copy clone README.txt T:expat/SDK/Documentation/Libs/Expat/README.AmigaOS
74	-delete expat.lha
75	lha -r a expat.lha T:expat
76
77#############################################################################
78
79CC         := gcc
80LIBTOOL    := ar
81STRIP      := strip
82
83CFLAGS     := -DNDEBUG -O3
84LTFLAGS    := -crs
85STRIPFLAGS := -R.comment
86
87#############################################################################
88
89clib2/libexpat.a: clib2/xmlparse.o clib2/xmltok.o clib2/xmlrole.o
90	$(LIBTOOL) $(LTFLAGS) $@ $^
91	protect $@ -e
92
93clib2/xmlparse.o: xmlparse.c expat.h xmlrole.h xmltok.h \
94	expat_external.h internal.h amigaconfig.h
95
96clib2/xmlrole.o: xmlrole.c ascii.h xmlrole.h expat_external.h \
97	internal.h amigaconfig.h
98
99clib2/xmltok.o: xmltok.c xmltok_impl.c xmltok_ns.c ascii.h asciitab.h \
100	iasciitab.h latin1tab.h nametab.h utf8tab.h xmltok.h xmltok_impl.h \
101	expat_external.h internal.h amigaconfig.h
102
103#############################################################################
104
105clib2/xmlwf: clib2/xmlwf.o clib2/xmlfile.o clib2/codepage.o clib2/readfilemap.o
106	$(CC) -mcrt=clib2 $^ -o $@ clib2/libexpat.a
107	$(STRIP) $(STRIPFLAGS) $@
108
109clib2/xmlwf.o: xmlwf.c
110
111clib2/xmlfile.o: xmlfile.c
112
113clib2/codepage.o: codepage.c
114
115clib2/readfilemap.o: readfilemap.c
116
117#############################################################################
118
119clib2/elements: clib2/elements.o
120	$(CC) -mcrt=clib2 $^ -o $@ clib2/libexpat.a
121	$(STRIP) $(STRIPFLAGS) $@
122
123clib2/elements.o: elements.c
124
125#############################################################################
126
127clib2/outline: clib2/outline.o
128	$(CC) -mcrt=clib2 $^ -o $@ clib2/libexpat.a
129	$(STRIP) $(STRIPFLAGS) $@
130
131clib2/outline.o: outline.c
132
133#############################################################################
134
135clib2/runtests: clib2/runtests.o clib2/chardata.o clib2/minicheck.o
136	$(CC) -mcrt=clib2 $^ -o $@ clib2/libexpat.a
137
138clib2/chardata.o: chardata.c chardata.h
139
140clib2/minicheck.o: minicheck.c minicheck.h
141
142clib2/runtests.o: runtests.c chardata.h
143
144#############################################################################
145
146clib2/benchmark: clib2/benchmark.o
147	$(CC) -mcrt=clib2 $^ -o $@ clib2/libexpat.a -lm
148
149clib2/benchmark.o: benchmark.c
150
151#############################################################################
152
153newlib/libexpat.a: newlib/xmlparse.o newlib/xmltok.o newlib/xmlrole.o
154	$(LIBTOOL) $(LTFLAGS) $@ $^
155	protect $@ -e
156
157newlib/xmlparse.o: xmlparse.c expat.h xmlrole.h xmltok.h \
158	expat_external.h internal.h amigaconfig.h
159
160newlib/xmlrole.o: xmlrole.c ascii.h xmlrole.h expat_external.h \
161	internal.h amigaconfig.h
162
163newlib/xmltok.o: xmltok.c xmltok_impl.c xmltok_ns.c ascii.h asciitab.h \
164	iasciitab.h latin1tab.h nametab.h utf8tab.h xmltok.h xmltok_impl.h \
165	expat_external.h internal.h amigaconfig.h
166
167#############################################################################
168
169newlib/xmlwf: newlib/xmlwf.o newlib/xmlfile.o newlib/codepage.o newlib/readfilemap.o
170	$(CC) -mcrt=newlib $^ -o $@ newlib/libexpat.a
171	$(STRIP) $(STRIPFLAGS) $@
172
173newlib/xmlwf.o: xmlwf.c
174
175newlib/xmlfile.o: xmlfile.c
176
177newlib/codepage.o: codepage.c
178
179newlib/readfilemap.o: readfilemap.c
180
181#############################################################################
182
183newlib/elements: newlib/elements.o
184	$(CC) -mcrt=newlib $^ -o $@ newlib/libexpat.a
185	$(STRIP) $(STRIPFLAGS) $@
186
187newlib/elements.o: elements.c
188
189#############################################################################
190
191newlib/outline: newlib/outline.o
192	$(CC) -mcrt=newlib $^ -o $@ newlib/libexpat.a
193	$(STRIP) $(STRIPFLAGS) $@
194
195newlib/outline.o: outline.c
196
197#############################################################################
198
199newlib/runtests: newlib/runtests.o newlib/chardata.o newlib/minicheck.o
200	$(CC) -mcrt=newlib $^ -o $@ newlib/libexpat.a
201
202newlib/chardata.o: chardata.c chardata.h
203
204newlib/minicheck.o: minicheck.c minicheck.h
205
206newlib/runtests.o: runtests.c chardata.h
207
208#############################################################################
209
210newlib/benchmark: newlib/benchmark.o
211	$(CC) -mcrt=newlib $^ -o $@ newlib/libexpat.a
212
213newlib/benchmark.o: benchmark.c
214
215#############################################################################
216
217libs/expat.library: libs/expat_lib.o libs/expat_68k.o libs/expat_68k_handler_stubs.o libs/expat_vectors.o newlib/libexpat.a
218	$(CC) -mcrt=newlib -nostartfiles $^ -o $@ newlib/libexpat.a -Wl,--cref,-M,-Map=$@.map
219	protect $@ -e
220	$(STRIP) $(STRIPFLAGS) $@
221
222libs/expat_lib.o: expat_lib.c expat_base.h
223
224libs/expat_68k.o: expat_68k.c expat_68k.h expat_base.h
225
226libs/expat_68k_handler_stubs.o: expat_68k_handler_stubs.c expat_68k.h
227
228libs/expat_vectors.o: expat_vectors.c
229
230libs/launch.o: launch.c
231
232#############################################################################
233
234libs/xmlwf: libs/xmlwf.o libs/xmlfile.o libs/codepage.o libs/readfilemap.o libs/launch.o
235	$(CC) -mcrt=newlib $^ -o $@
236	$(STRIP) $(STRIPFLAGS) $@
237
238libs/xmlwf.o: xmlwf.c
239
240libs/xmlfile.o: xmlfile.c
241
242libs/codepage.o: codepage.c
243
244libs/readfilemap.o: readfilemap.c
245
246#############################################################################
247
248libs/elements: libs/elements.o libs/launch.o
249	$(CC) -mcrt=newlib $^ -o $@
250	$(STRIP) $(STRIPFLAGS) $@
251
252libs/elements.o: elements.c
253
254#############################################################################
255
256libs/outline: libs/outline.o libs/launch.o
257	$(CC) -mcrt=newlib $^ -o $@
258	$(STRIP) $(STRIPFLAGS) $@
259
260libs/outline.o: outline.c
261
262#############################################################################
263
264libs/runtests: libs/runtests.o libs/chardata.o libs/minicheck.o libs/launch.o
265	$(CC) -mcrt=newlib $^ -o $@
266
267libs/chardata.o: chardata.c chardata.h
268
269libs/minicheck.o: minicheck.c minicheck.h
270
271libs/runtests.o: runtests.c chardata.h
272
273#############################################################################
274
275libs/benchmark: libs/benchmark.o libs/launch.o
276	$(CC) -mcrt=newlib $^ -o $@
277
278libs/benchmark.o: benchmark.c
279
280#############################################################################
281
282so/libexpat.so: so/xmlparse.o so/xmltok.o so/xmlrole.o
283	$(CC) -mcrt=newlib -shared -o $@ $^
284	protect $@ -e
285
286so/xmlparse.o: xmlparse.c expat.h xmlrole.h xmltok.h \
287	expat_external.h internal.h amigaconfig.h
288
289so/xmlrole.o: xmlrole.c ascii.h xmlrole.h expat_external.h \
290	internal.h amigaconfig.h
291
292so/xmltok.o: xmltok.c xmltok_impl.c xmltok_ns.c ascii.h asciitab.h \
293	iasciitab.h latin1tab.h nametab.h utf8tab.h xmltok.h xmltok_impl.h \
294	expat_external.h internal.h amigaconfig.h
295
296#############################################################################
297
298so/xmlwf: newlib/xmlwf.o newlib/xmlfile.o newlib/codepage.o newlib/readfilemap.o
299	$(CC) -mcrt=newlib -use-dynld $^ -o $@ -Lso -lexpat
300	$(STRIP) $(STRIPFLAGS) $@
301
302#############################################################################
303
304so/elements: newlib/elements.o
305	$(CC) -mcrt=newlib -use-dynld $^ -o $@ -Lso -lexpat
306	$(STRIP) $(STRIPFLAGS) $@
307
308#############################################################################
309
310so/outline: newlib/outline.o
311	$(CC) -mcrt=newlib -use-dynld $^ -o $@ -Lso -lexpat
312	$(STRIP) $(STRIPFLAGS) $@
313
314#############################################################################
315
316so/runtests: newlib/runtests.o newlib/chardata.o newlib/minicheck.o
317	$(CC) -mcrt=newlib -use-dynld $^ -o $@ -Lso -lexpat
318
319#############################################################################
320
321so/benchmark: newlib/benchmark.o
322	$(CC) -mcrt=newlib -use-dynld $^ -o $@ -Lso -lexpat
323
324#############################################################################
325
326clib2/%.o: %.c
327	$(CC) -mcrt=clib2 $(CFLAGS) -I../lib -c $< -o $@
328
329newlib/%.o: %.c
330	$(CC) -mcrt=newlib $(CFLAGS) -I../lib -c $< -o $@
331
332libs/%.o: %.c
333	$(CC) -mcrt=newlib $(CFLAGS) -D__USE_INLINE__ -I. -Iinclude -Iinclude/libraries -I../lib -c $< -o $@
334
335so/%.o: %.c
336	$(CC) -mcrt=newlib $(CFLAGS) -fPIC -I../lib -c $< -o $@
337