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