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