]> git.sur5r.net Git - cc65/blob - libsrc/Makefile
Prepare VIC20 startup for different start addresses
[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 =    apple2lib       \
17                 atarilib        \
18                 atmoslib        \
19                 vic20lib        \
20                 c64lib          \
21                 c128lib         \
22                 cbm510lib       \
23                 cbm610lib       \
24                 geoslib         \
25                 petlib          \
26                 plus4lib
27
28 #-----------------------------------------------------------------------------
29
30 all:
31         for tgt in $(ALLTARGETS); do            \
32             $(MAKE) clean $$tgt || exit 1;      \
33         done
34
35 #-----------------------------------------------------------------------------
36 # Apple ][
37
38 apple2lib:
39         for i in apple2 common runtime conio dbg; do \
40             CC=$(CC) \
41             AS=$(AS) \
42             CFLAGS="-Osir -g -T -t apple2 -I../../include" \
43             AFLAGS="-t apple2 -I../../asminc" \
44             $(MAKE) -C $$i || exit 1; \
45         done
46         mv apple2/crt0.o apple2.o
47         for i in apple2 common runtime conio dbg; do \
48             $(AR) a apple2.lib $$i/*.o;\
49         done
50
51 #-----------------------------------------------------------------------------
52 # Atari
53
54 atarilib:
55         for i in atari common runtime conio dbg; do \
56             CC=$(CC) \
57             AS=$(AS) \
58             CFLAGS="-Osir -g -T -t atari -I../../include" \
59             AFLAGS="-t atari -I../../asminc" \
60             $(MAKE) -C $$i || exit 1; \
61         done
62         mv atari/crt0.o atari.o
63         for i in atari common runtime conio dbg; do \
64             $(AR) a atari.lib $$i/*.o;\
65         done
66
67 #-----------------------------------------------------------------------------
68 # Oric Atmos
69
70 atmoslib:
71         for i in atmos common runtime; do \
72             CC=$(CC) \
73             AS=$(AS) \
74             CFLAGS="-Osir -g -T -t atmos -I../../include" \
75             AFLAGS="-t atmos -I../../asminc" \
76             $(MAKE) -C $$i || exit 1; \
77         done
78         mv atmos/crt0.o atmos.o
79         for i in atmos common runtime; do \
80             $(AR) a atmos.lib $$i/*.o;\
81         done
82
83 #-----------------------------------------------------------------------------
84 # Vic20
85
86 vic20lib:
87         for i in vic20 cbm common runtime conio dbg; do \
88             CC=$(CC) \
89             AS=$(AS) \
90             AFLAGS="-t vic20 -I../../asminc" \
91             CFLAGS="-Osir -g -T -t vic20 -I../../include" \
92             $(MAKE) -C $$i || exit 1; \
93         done
94         mv vic20/crt0.o vic20.o
95         for i in vic20 cbm common runtime conio dbg; do \
96             $(AR) a vic20.lib $$i/*.o;\
97         done
98
99 #-----------------------------------------------------------------------------
100 # C64
101
102 c64lib:
103         for i in c64 cbm common runtime conio dbg tgi; do \
104             AS=$(AS) \
105             CC=$(CC) \
106             LD=$(LD) \
107             AFLAGS="-t c64 -I../../asminc" \
108             CFLAGS="-Osir -g -T -t c64 -I../../include" \
109             $(MAKE) -C $$i || exit 1; \
110         done
111         mv c64/crt0.o c64.o
112         cp c64/*.tgi .
113         for i in c64 cbm common runtime conio dbg tgi; do \
114             $(AR) a c64.lib $$i/*.o;\
115         done
116
117 #-----------------------------------------------------------------------------
118 # C128
119
120 c128lib:
121         for i in c128 cbm common runtime conio dbg; do \
122             CC=$(CC) \
123             AS=$(AS) \
124             CFLAGS="-Osir -g -T -t c128 -I../../include" \
125             AFLAGS="-t c128 -I../../asminc" \
126             $(MAKE) -C $$i || exit 1; \
127         done
128         mv c128/crt0.o c128.o
129         for i in c128 cbm common runtime conio dbg; do \
130             $(AR) a c128.lib $$i/*.o;\
131         done
132
133 #-----------------------------------------------------------------------------
134 # Commdore P500 / CBM 5x0
135
136 cbm510lib:
137         for i in cbm510 cbm common runtime conio dbg; do \
138             CC=$(CC) \
139             AS=$(AS) \
140             CFLAGS="-Osir -g -T -t cbm510 -I../../include" \
141             AFLAGS="-t cbm510 -I../../asminc" \
142             $(MAKE) -C $$i || exit 1; \
143         done
144         mv cbm510/crt0.o cbm510.o
145         for i in cbm510 cbm common runtime conio dbg; do \
146             $(AR) a cbm510.lib $$i/*.o;\
147         done
148
149 #-----------------------------------------------------------------------------
150 # PET-II series
151
152 cbm610lib:
153         for i in cbm610 cbm common runtime conio dbg; do \
154             CC=$(CC) \
155             AS=$(AS) \
156             CFLAGS="-Osir -g -T -t cbm610 -I../../include" \
157             AFLAGS="-t cbm610 -I../../asminc" \
158             $(MAKE) -C $$i || exit 1; \
159         done
160         mv cbm610/crt0.o cbm610.o
161         for i in cbm610 cbm common runtime conio dbg; do \
162             $(AR) a cbm610.lib $$i/*.o;\
163         done
164
165 #-----------------------------------------------------------------------------
166 # GEOS on the C64/128
167
168 geoslib:
169         CC=../$(CC) \
170         AS=../$(AS) \
171         AR=../$(AR) \
172         CFLAGS="-Osir -g -T -t geos -I../../../include" \
173         AFLAGS="-t geos -I../../../asminc" \
174         $(MAKE) -C geos || exit 1
175         for i in common runtime; do \
176             CC=$(CC) \
177             AS=$(AS) \
178             AR=$(AR) \
179             CFLAGS="-Osir -g -T -t geos -I../../include" \
180             AFLAGS="-t geos -I../../asminc" \
181             $(MAKE) -C $$i || exit 1; \
182         done
183         for i in common runtime; do \
184             for objfile in $$i/*.o; do \
185                 if [ -f geos/$$objfile ]; then \
186                     $(AR) a geos.lib geos/$$objfile; \
187                 else \
188                     $(AR) a geos.lib $$objfile; \
189                 fi; \
190             done \
191         done
192
193 #-----------------------------------------------------------------------------
194 # CBM PET machines
195
196 petlib:
197         for i in pet cbm common runtime conio dbg; do \
198             CC=$(CC) \
199             AS=$(AS) \
200             CFLAGS="-Osir -g -T -t pet -I../../include" \
201             AFLAGS="-t pet -I../../asminc" \
202             $(MAKE) -C $$i || exit 1; \
203         done
204         mv pet/crt0.o pet.o
205         for i in pet cbm common runtime conio dbg; do \
206             $(AR) a pet.lib $$i/*.o;\
207         done
208
209 #-----------------------------------------------------------------------------
210 # Commodore C116, C16 and Plus/4
211
212 plus4lib:
213         for i in plus4 cbm common runtime conio dbg; do \
214             CC=$(CC) \
215             AS=$(AS) \
216             CFLAGS="-Osir -g -T -t plus4 -I../../include" \
217             AFLAGS="-t plus4 -I../../asminc" \
218             $(MAKE) -C $$i || exit 1; \
219         done
220         mv plus4/crt0.o plus4.o
221         for i in plus4 cbm common runtime conio dbg; do \
222             $(AR) a plus4.lib $$i/*.o;\
223         done
224
225 #-----------------------------------------------------------------------------
226 # Dummy targets
227
228 .PHONY: clean
229 clean:
230         @for i in apple2 atari c128 c64 cbm cbm510 cbm610 common conio dbg geos pet plus4 runtime tgi; do       \
231            $(MAKE) -C $$i clean;                                                                        \
232         done
233
234 .PHONY: zap
235 zap:    clean
236         @rm -f *.o *.lib
237
238
239
240
241
242