]> git.sur5r.net Git - cc65/blob - libsrc/Makefile
Moved the 'disk' files from 'geos-cbm' to 'geos-common' which are believed to work...
[cc65] / libsrc / Makefile
1 # -*- make -*-
2 #
3 # Makefile for CC65 Libraries
4 #
5
6 .SUFFIXES: .o .obj .s .c
7
8 # Defines for executables. AR is used within this makefile, the others are
9 # passed to the submakes and contain paths relative to the subdirectories
10 # handled by the make subprocesses.
11 AR = ../src/ar65/ar65
12 AS = ../../src/ca65/ca65
13 CC = ../../src/cc65/cc65
14 LD = ../../src/ld65/ld65
15
16 # List of shared directories
17 SHAREDDIRS =    cbm             \
18                 common          \
19                 geos-common     \
20                 conio           \
21                 dbg             \
22                 em              \
23                 joystick        \
24                 mouse           \
25                 runtime         \
26                 serial          \
27                 tgi             \
28                 zlib
29
30 # List of all targets
31 ALLTARGETS =    apple2          \
32                 apple2enh       \
33                 atari           \
34                 atmos           \
35                 c128            \
36                 c16             \
37                 c64             \
38                 cbm510          \
39                 cbm610          \
40                 geos-cbm        \
41                 lynx            \
42                 nes             \
43                 pet             \
44                 plus4           \
45                 supervision     \
46                 vic20
47
48 #-----------------------------------------------------------------------------
49
50 .PHONY: all
51 all:
52         for tgt in $(ALLTARGETS); do                    \
53             $(MAKE) mostly-clean "$$tgt"lib || exit 1;  \
54         done
55
56 #-----------------------------------------------------------------------------
57 # Apple ][
58
59 .PHONY: apple2lib
60 apple2lib:
61         for i in runtime apple2 common conio dbg em joystick mouse serial tgi zlib; do \
62             $(MAKE) SYS=apple2 -C $$i || exit 1; \
63             $(AR) a apple2.lib $$i/*.o || exit 1; \
64         done
65         cp apple2/apple2-auxmem.emd a2.auxmem.emd
66         cp apple2/apple2-stdjoy.joy a2.stdjoy.joy
67         cp apple2/apple2-stdmou.mou a2.stdmou.mou
68         cp apple2/apple2-ssc.ser a2.ssc.ser
69         cp apple2/apple2-280-192-8.tgi a2.hi.tgi
70         cp apple2/apple2-40-48-16.tgi a2.lo.tgi
71         if [ -d apple2/extra ]; then \
72             for i in apple2/extra/*.o; do \
73                 cp $$i apple2-`basename $$i` || exit 1; \
74             done \
75         fi
76
77 #-----------------------------------------------------------------------------
78 # enhanced Apple //e
79
80 .PHONY: apple2enhlib
81 apple2enhlib:
82         for i in runtime apple2enh common conio dbg em joystick mouse serial tgi zlib; do \
83             $(MAKE) SYS=apple2enh -C $$i || exit 1; \
84             $(AR) a apple2enh.lib $$i/*.o || exit 1; \
85         done
86         cp apple2enh/apple2-auxmem.emd a2e.auxmem.emd
87         cp apple2enh/apple2-stdjoy.joy a2e.stdjoy.joy
88         cp apple2enh/apple2-stdmou.mou a2e.stdmou.mou
89         cp apple2enh/apple2-ssc.ser a2e.ssc.ser
90         cp apple2enh/apple2-280-192-8.tgi a2e.hi.tgi
91         cp apple2enh/apple2-40-48-16.tgi a2e.lo.tgi
92         if [ -d apple2enh/extra ]; then \
93             for i in apple2enh/extra/*.o; do \
94                 cp $$i apple2enh-`basename $$i` || exit 1; \
95             done \
96         fi
97
98 #-----------------------------------------------------------------------------
99 # Atari
100
101 .PHONY: atarilib
102 atarilib:
103         for i in runtime atari common conio dbg em joystick tgi zlib; do \
104             $(MAKE) SYS=atari -C $$i || exit 1; \
105             $(AR) a atari.lib $$i/*.o || exit 1; \
106         done
107         cp atari/atari-stdjoy.joy ataristd.joy
108         cp atari/atari-multijoy.joy atarimj8.joy
109         cp atari/atari-10.tgi atari10.tgi
110         cp atari/atari-10p2.tgi atr10p2.tgi
111         cp atari/atari-11.tgi atari11.tgi
112         cp atari/atari-14.tgi atari14.tgi
113         cp atari/atari-15.tgi atari15.tgi
114         cp atari/atari-15p2.tgi atr15p2.tgi
115         cp atari/atari-3.tgi atari3.tgi
116         cp atari/atari-4.tgi atari4.tgi
117         cp atari/atari-5.tgi atari5.tgi
118         cp atari/atari-6.tgi atari6.tgi
119         cp atari/atari-7.tgi atari7.tgi
120         cp atari/atari-8.tgi atari8.tgi
121         cp atari/atari-8p2.tgi atr8p2.tgi
122         cp atari/atari-9.tgi atari9.tgi
123         cp atari/atari-9p2.tgi atr9p2.tgi
124         if [ -d atari/extra ]; then \
125             for i in atari/extra/*.o; do \
126                 cp $$i atari-`basename $$i` || exit 1; \
127             done \
128         fi
129
130 #-----------------------------------------------------------------------------
131 # Oric Atmos
132
133 .PHONY: atmoslib
134 atmoslib:
135         for i in runtime atmos common conio em joystick tgi zlib; do \
136             $(MAKE) SYS=atmos -C $$i || exit 1; \
137             $(AR) a atmos.lib $$i/*.o || exit 1; \
138         done
139         cp atmos/*.joy .
140         cp atmos/*.tgi .
141         if [ -d atmos/extra ]; then \
142             for i in atmos/extra/*.o; do \
143                 cp $$i atmos-`basename $$i` || exit 1; \
144             done \
145         fi
146
147 #-----------------------------------------------------------------------------
148 # C16, C116
149
150 .PHONY: c16lib
151 c16lib:
152         for i in runtime c16 cbm common conio dbg em joystick mouse tgi zlib; do \
153             $(MAKE) SYS=c16 -C $$i || exit 1; \
154             $(AR) a c16.lib $$i/*.o || exit 1; \
155         done
156         cp c16/*.joy .
157         cp c16/*.emd .
158         if [ -d c16/extra ]; then \
159             for i in c16/extra/*.o; do \
160                 cp $$i c16-`basename $$i` || exit 1; \
161             done \
162         fi
163
164 #-----------------------------------------------------------------------------
165 # C64
166
167 .PHONY: c64lib
168 c64lib:
169         for i in runtime c64 cbm common conio dbg em joystick mouse serial tgi zlib; do \
170             $(MAKE) SYS=c64 -C $$i || exit 1; \
171             $(AR) a c64.lib $$i/*.o || exit 1; \
172         done
173         cp c64/*.emd .
174         cp c64/*.joy .
175         cp c64/c64-1351.mou .
176         cp c64/c64-joymouse.mou c64-joy.mou
177         cp c64/c64-potmouse.mou c64-pot.mou
178         cp c64/*.ser .
179         cp c64/c64-320-200-2.tgi c64-hi.tgi
180         if [ -d c64/extra ]; then \
181             for i in c64/extra/*.o; do \
182                 cp $$i c64-`basename $$i` || exit 1; \
183             done \
184         fi
185
186 #-----------------------------------------------------------------------------
187 # C128
188
189 .PHONY: c128lib
190 c128lib:
191         for i in runtime c128 cbm common conio dbg em joystick mouse serial tgi zlib; do \
192             $(MAKE) SYS=c128 -C $$i || exit 1; \
193             $(AR) a c128.lib $$i/*.o || exit 1; \
194         done
195         cp c128/*.emd .
196         cp c128/*.joy .
197         cp c128/c128-1351.mou .
198         cp c128/c128-joymouse.mou c128-joy.mou
199         cp c128/c128-potmouse.mou c128-pot.mou
200         cp c128/*.ser .
201         cp c128/c128-640-200-2.tgi c128-vdc.tgi
202         cp c128/c128-640-480-2.tgi c128-vdc2.tgi
203         if [ -d cbm/extra ]; then \
204             for i in cbm/extra/*.o; do \
205                 cp $$i cbm-`basename $$i` || exit 1; \
206             done \
207         fi
208         if [ -d c128/extra ]; then \
209             for i in c128/extra/*.o; do \
210                 cp $$i c128-`basename $$i` || exit 1; \
211             done \
212         fi
213
214 #-----------------------------------------------------------------------------
215 # Commodore P500 / CBM 5x0
216
217 .PHONY: cbm510lib
218 cbm510lib:
219         for i in runtime cbm510 cbm common conio dbg em joystick mouse serial tgi zlib; do \
220             $(MAKE) SYS=cbm510 -C $$i || exit 1; \
221             $(AR) a cbm510.lib $$i/*.o || exit 1; \
222         done
223         cp cbm510/*.emd .
224         cp cbm510/cbm510-stdjoy.joy cbm510-std.joy
225         cp cbm510/cbm510-stdser.ser cbm510-std.ser
226         if [ -d cbm510/extra ]; then \
227             for i in cbm510/extra/*.o; do \
228                 cp $$i cbm510-`basename $$i` || exit 1; \
229             done \
230         fi
231
232 #-----------------------------------------------------------------------------
233 # PET-II series
234
235 .PHONY: cbm610lib
236 cbm610lib:
237         for i in runtime cbm610 cbm common conio dbg em joystick serial tgi zlib; do \
238             $(MAKE) SYS=cbm610 -C $$i || exit 1; \
239             $(AR) a cbm610.lib $$i/*.o || exit 1; \
240         done
241         cp cbm610/*.emd .
242         cp cbm610/cbm610-stdser.ser cbm610-std.ser
243         if [ -d cbm610/extra ]; then \
244             for i in cbm610/extra/*.o; do \
245                 cp $$i cbm610-`basename $$i` || exit 1; \
246             done \
247         fi
248
249 #-----------------------------------------------------------------------------
250 # GEOS on the C64/128
251
252 .PHONY: geos-cbmlib
253 geos-cbmlib:
254         for i in runtime geos-cbm geos-common common conio em joystick tgi zlib; do \
255             $(MAKE) SYS=geos-cbm -C $$i || exit 1; \
256             $(AR) a geos-cbm.lib $$i/*.o || exit 1; \
257         done
258         cp geos-cbm/*.emd .
259         cp geos-cbm/*.joy .
260         cp geos-cbm/*.tgi .
261         if [ -d geos-cbm/extra ]; then \
262             for i in geos-cbm/extra/*.o; do \
263                 cp $$i geos-cbm-`basename $$i` || exit 1; \
264             done \
265         fi
266
267 #-----------------------------------------------------------------------------
268 # Lynx
269
270 .PHONY: lynxlib
271 lynxlib:
272         for i in runtime lynx common conio em joystick serial tgi zlib; do \
273             $(MAKE) SYS=lynx -C $$i || exit 1; \
274             $(AR) a lynx.lib $$i/*.o || exit 1; \
275         done
276         cp lynx/*.joy .
277         cp lynx/*.ser .
278         cp lynx/*.tgi .
279         if [ -d lynx/extra ]; then \
280             for i in lynx/extra/*.o; do \
281                 cp $$i lynx-`basename $$i` || exit 1; \
282             done \
283         fi
284
285 #-----------------------------------------------------------------------------
286 # NES
287
288 .PHONY: neslib
289 neslib:
290         for i in runtime nes common conio em joystick tgi zlib; do \
291             $(MAKE) SYS=nes -C $$i || exit 1; \
292             $(AR) a nes.lib $$i/*.o || exit 1; \
293         done
294         cp nes/*.joy .
295         cp nes/*.tgi .
296         if [ -d nes/extra ]; then \
297             for i in nes/extra/*.o; do \
298                 cp $$i nes-`basename $$i` || exit 1; \
299             done \
300         fi
301
302 #-----------------------------------------------------------------------------
303 # CBM PET machines
304
305 .PHONY: petlib
306 petlib:
307         for i in runtime pet cbm common conio dbg em joystick tgi zlib; do \
308             $(MAKE) SYS=pet -C $$i || exit 1; \
309             $(AR) a pet.lib $$i/*.o || exit 1; \
310         done
311         cp pet/*.joy .
312         if [ -d pet/extra ]; then \
313             for i in pet/extra/*.o; do \
314                 cp $$i pet-`basename $$i` || exit 1; \
315             done \
316         fi
317
318 #-----------------------------------------------------------------------------
319 # Commodore Plus/4
320
321 .PHONY: plus4lib
322 plus4lib:
323         for i in runtime plus4 cbm common conio dbg em joystick mouse serial tgi zlib; do \
324             $(MAKE) SYS=plus4 -C $$i || exit 1; \
325             $(AR) a plus4.lib $$i/*.o || exit 1; \
326         done
327         cp plus4/*.joy .
328         cp plus4/*.ser .
329         if [ -d plus4/extra ]; then \
330             for i in plus4/extra/*.o; do \
331                 cp $$i plus4-`basename $$i` || exit 1; \
332             done \
333         fi
334
335 #-----------------------------------------------------------------------------
336 # Supervision
337
338 .PHONY: supervisionlib
339 supervisionlib:
340         for i in runtime supervision common; do \
341             $(MAKE) SYS=supervision -C $$i || exit 1; \
342             $(AR) a supervision.lib $$i/*.o || exit 1; \
343         done
344         if [ -d supervision/extra ]; then \
345             for i in supervision/extra/*.o; do \
346                 cp $$i supervision-`basename $$i` || exit 1; \
347             done \
348         fi
349
350 #-----------------------------------------------------------------------------
351 # Vic20
352
353 .PHONY: vic20lib
354 vic20lib:
355         for i in runtime vic20 cbm common conio dbg em joystick mouse tgi zlib; do \
356             $(MAKE) SYS=vic20 -C $$i || exit 1; \
357             $(AR) a vic20.lib $$i/*.o || exit 1; \
358         done
359         cp vic20/*.joy .
360         if [ -d vic20/extra ]; then \
361             for i in vic20/extra/*.o; do \
362                 cp $$i vic20-`basename $$i` || exit 1; \
363             done \
364         fi
365
366 #-----------------------------------------------------------------------------
367 # Dummy targets
368
369 .PHONY: mostly-clean
370 mostly-clean:
371         @for i in $(SHAREDDIRS); do \
372            $(MAKE) --no-print-directory -C $$i clean || exit 1; \
373         done
374
375 .PHONY: clean
376 clean:  mostly-clean
377         @for i in $(ALLTARGETS); do \
378            $(MAKE) -C $$i $@ || exit 1; \
379         done
380
381 .PHONY: zap
382 zap:
383         @for i in $(SHAREDDIRS) $(ALLTARGETS); do \
384            $(MAKE) -C $$i $@ || exit 1; \
385         done
386         @$(RM) *.lib *.o *.emd *.joy *.mou *.ser *.tgi