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