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