]> git.sur5r.net Git - cc65/blob - libsrc/Makefile
2118b65f81b4e40039efec5cf97005ec2d8f7c60
[cc65] / libsrc / Makefile
1 #
2 # makefile for CC65 runtime library
3 #
4
5 .SUFFIXES: .o .obj .s .c
6
7 # Defines for executables. AR is used within this makefile, the others are
8 # passed to the submakes and contain paths relative to the subdirectories
9 # handled by the make subprocesses.
10 AR = ../src/ar65/ar65
11 AS = ../../src/ca65/ca65
12 CC = ../../src/cc65/cc65
13 LD = ../../src/ld65/ld65
14
15 # List of all targets
16 ALLTARGETS =    apple2  \
17                 atari   \
18                 atmos   \
19                 vic20   \
20                 c16     \
21                 c64     \
22                 c128    \
23                 cbm510  \
24                 cbm610  \
25                 geos    \
26                 pet     \
27                 plus4
28
29 #-----------------------------------------------------------------------------
30
31 .PHONY: all
32 all:
33         for tgt in $(ALLTARGETS); do            \
34             $(MAKE) clean "$$tgt"lib || exit 1; \
35         done
36
37 #-----------------------------------------------------------------------------
38 # Apple ][
39
40 apple2lib:
41         for i in apple2 common runtime conio dbg em joystick tgi; do \
42             AS=$(AS) \
43             CC=$(CC) \
44             LD=$(LD) \
45             AFLAGS="-t apple2 -I../../asminc" \
46             CFLAGS="-Osir -g -T -t apple2 -I../../include" \
47             $(MAKE) -C $$i || exit 1; \
48             $(AR) a apple2.lib $$i/*.o;\
49         done
50         mv apple2/crt0.o apple2.o
51         cp apple2/apple2-stdjoy.joy a2-stdjoy.joy
52
53 #-----------------------------------------------------------------------------
54 # Atari
55
56 atarilib:
57         for i in atari common runtime conio dbg em joystick tgi; do \
58             AS=$(AS) \
59             CC=$(CC) \
60             LD=$(LD) \
61             AFLAGS="-t atari -I../../asminc" \
62             CFLAGS="-Osir -g -T -t atari -I../../include" \
63             $(MAKE) -C $$i || exit 1; \
64             $(AR) a atari.lib $$i/*.o;\
65         done
66         mv atari/crt0.o atari.o
67
68 #-----------------------------------------------------------------------------
69 # Oric Atmos
70
71 atmoslib:
72         for i in atmos common conio runtime em joystick tgi; do \
73             AS=$(AS) \
74             CC=$(CC) \
75             LD=$(LD) \
76             AFLAGS="-t atmos -I../../asminc" \
77             CFLAGS="-Osir -g -T -t atmos -I../../include" \
78             $(MAKE) -C $$i || exit 1; \
79             $(AR) a atmos.lib $$i/*.o;\
80         done
81         mv atmos/crt0.o atmos.o
82
83 #-----------------------------------------------------------------------------
84 # Vic20
85
86 vic20lib:
87         for i in vic20 cbm common runtime conio dbg em joystick tgi; do \
88             AS=$(AS) \
89             CC=$(CC) \
90             LD=$(LD) \
91             AFLAGS="-t vic20 -I../../asminc" \
92             CFLAGS="-Osir -g -T -t vic20 -I../../include" \
93             $(MAKE) -C $$i || exit 1; \
94             $(AR) a vic20.lib $$i/*.o;\
95         done
96         mv vic20/crt0.o vic20.o
97         cp vic20/*.joy .
98
99 #-----------------------------------------------------------------------------
100 # C16, C116
101
102 c16lib:
103         for i in c16 cbm common runtime conio dbg em joystick tgi; do \
104             AS=$(AS) \
105             CC=$(CC) \
106             LD=$(LD) \
107             AFLAGS="-t c16 -I../../asminc" \
108             CFLAGS="-Osir -g -T -t c16 -I../../include" \
109             $(MAKE) -C $$i || exit 1; \
110             $(AR) a c16.lib $$i/*.o;\
111         done
112         mv c16/crt0.o c16.o
113         cp c16/*.joy .
114
115 #-----------------------------------------------------------------------------
116 # C64
117
118 c64lib:
119         for i in c64 cbm common runtime conio dbg em joystick serial tgi; do \
120             AS=$(AS) \
121             CC=$(CC) \
122             LD=$(LD) \
123             CFLAGS="-Osir -g -T -t c64 -I../../include" \
124             AFLAGS="-t c64 -I../../asminc" \
125             $(MAKE) -C $$i || exit 1; \
126             $(AR) a c64.lib $$i/*.o;\
127         done
128         mv c64/crt0.o c64.o
129         cp c64/*.emd .
130         cp c64/*.joy .
131         cp c64/c64-320-200-2.tgi c64-hi.tgi
132
133 #-----------------------------------------------------------------------------
134 # C128
135
136 c128lib:
137         for i in c128 cbm common runtime conio dbg em joystick tgi; do \
138             AS=$(AS) \
139             CC=$(CC) \
140             LD=$(LD) \
141             AFLAGS="-t c128 -I../../asminc" \
142             CFLAGS="-Osir -g -T -t c128 -I../../include" \
143             $(MAKE) -C $$i || exit 1; \
144             $(AR) a c128.lib $$i/*.o;\
145         done
146         mv c128/crt0.o c128.o
147         cp c128/*.emd .
148         cp c128/*.joy .
149         cp c128/c128-640-200-2.tgi c128-vdc.tgi
150         cp c128/c128-640-480-2.tgi c128-vdc2.tgi
151
152 #-----------------------------------------------------------------------------
153 # Commdore P500 / CBM 5x0
154
155 cbm510lib:
156         for i in cbm510 cbm common runtime conio dbg em joystick tgi; do \
157             CC=$(CC) \
158             AS=$(AS) \
159             LD=$(LD) \
160             AFLAGS="-t cbm510 -I../../asminc" \
161             CFLAGS="-Osir -g -T -t cbm510 -I../../include" \
162             $(MAKE) -C $$i || exit 1; \
163             $(AR) a cbm510.lib $$i/*.o;\
164         done
165         mv cbm510/crt0.o cbm510.o
166         cp cbm510/*.emd .
167         cp cbm510/*.joy .
168
169 #-----------------------------------------------------------------------------
170 # PET-II series
171
172 cbm610lib:
173         for i in cbm610 cbm common runtime conio dbg em joystick tgi; do \
174             CC=$(CC) \
175             AS=$(AS) \
176             LD=$(LD) \
177             AFLAGS="-t cbm610 -I../../asminc" \
178             CFLAGS="-Osir -g -T -t cbm610 -I../../include" \
179             $(MAKE) -C $$i || exit 1; \
180             $(AR) a cbm610.lib $$i/*.o;\
181         done
182         mv cbm610/crt0.o cbm610.o
183         cp cbm610/*.emd .
184
185 #-----------------------------------------------------------------------------
186 # GEOS on the C64/128
187
188 geoslib:
189         CC=../$(CC) \
190         AS=../$(AS) \
191         AR=../$(AR) \
192         LD=../$(LD) \
193         AFLAGS="-t geos -I../../../asminc" \
194         CFLAGS="-Osir -g -T -t geos -I../../../include" \
195         $(MAKE) -C geos || exit 1
196         for i in em joystick tgi conio common runtime; do \
197             CC=$(CC) \
198             AS=$(AS) \
199             LD=$(LD) \
200             AR=$(AR) \
201             AFLAGS="-t geos -I../../asminc" \
202             CFLAGS="-Osir -g -T -t geos -I../../include" \
203             $(MAKE) -C $$i || exit 1; \
204             for objfile in $$i/*.o; do \
205                 if [ -f geos/$$objfile ]; then \
206                     $(AR) a geos.lib geos/$$objfile; \
207                 else \
208                     $(AR) a geos.lib $$objfile; \
209                 fi; \
210             done \
211         done
212         cp geos/devel/*.emd .
213         cp geos/devel/*.joy .
214         cp geos/devel/geos-tgi.tgi geos-tgi.tgi
215
216 #-----------------------------------------------------------------------------
217 # NES
218
219 neslib:
220         for i in nes common runtime conio em joystick tgi; do \
221             CC=$(CC) \
222             AS=$(AS) \
223             LD=$(LD) \
224             AFLAGS="-t nes -I../../asminc" \
225             CFLAGS="-Osir -g -T -t nes -I../../include" \
226             $(MAKE) -C $$i || exit 1; \
227             $(AR) a nes.lib $$i/*.o;\
228         done
229         mv nes/crt0.o nes.o
230
231 #-----------------------------------------------------------------------------
232 # CBM PET machines
233
234 petlib:
235         for i in pet cbm common runtime conio dbg em joystick tgi; do \
236             CC=$(CC) \
237             AS=$(AS) \
238             LD=$(LD) \
239             AFLAGS="-t pet -I../../asminc" \
240             CFLAGS="-Osir -g -T -t pet -I../../include" \
241             $(MAKE) -C $$i || exit 1; \
242             $(AR) a pet.lib $$i/*.o;\
243         done
244         mv pet/crt0.o pet.o
245
246 #-----------------------------------------------------------------------------
247 # Commodore Plus/4
248
249 plus4lib:
250         for i in plus4 cbm common runtime conio dbg em joystick tgi; do \
251             CC=$(CC) \
252             AS=$(AS) \
253             LD=$(LD) \
254             AFLAGS="-t plus4 -I../../asminc" \
255             CFLAGS="-Osir -g -T -t plus4 -I../../include" \
256             $(MAKE) -C $$i || exit 1; \
257             $(AR) a plus4.lib $$i/*.o;\
258         done
259         mv plus4/crt0.o plus4.o
260         cp plus4/*.joy .
261
262 #-----------------------------------------------------------------------------
263 # Dummy targets
264
265 .PHONY: clean
266 clean:
267         @for i in cbm common conio dbg em joystick runtime tgi $(ALLTARGETS); do\
268            $(MAKE) -C $$i clean;                                                \
269         done
270
271 .PHONY: zap
272 zap:    clean
273         @for i in cbm common conio dbg em joystick runtime tgi $(ALLTARGETS); do\
274            $(MAKE) -C $$i zap;                                                  \
275         done
276         @rm -f *.o *.emd *.joy *.lib *.tgi
277
278
279