]> git.sur5r.net Git - cc65/blob - libsrc/apple2enh/Makefile
630e24fdc3b897fd5bdaf4bf9aab7859ef611790
[cc65] / libsrc / apple2enh / Makefile
1 #
2 # makefile for CC65 runtime library
3 #
4
5 .SUFFIXES: .o .s .c
6
7 #--------------------------------------------------------------------------
8 # Programs and flags
9
10 SYS     = apple2enh
11
12 AS      = ../../src/ca65/ca65
13 CC      = ../../src/cc65/cc65
14 CO      = ../../src/co65/co65
15 LD      = ../../src/ld65/ld65
16
17 AFLAGS  = -t $(SYS) --forget-inc-paths -I../apple2 -I../../asminc
18 CFLAGS  = -Osir -g -T -t $(SYS) --forget-inc-paths -I ../apple2 -I ../../include
19
20 #--------------------------------------------------------------------------
21 # Rules
22
23 %.o:    ../apple2/%.c
24         @$(CC) -o $(notdir $(*).s) $(CFLAGS) $<
25         @$(AS) -o $@ $(AFLAGS) $(*).s
26
27 %.o:    ../apple2/%.s
28         @$(AS) -g -o $@ $(AFLAGS) $<
29
30 extra/%.o: ../apple2/extra/%.s
31         @$(AS) -g -o $@ $(AFLAGS) $<
32
33 %-emd.o: %.emd
34         @$(CO) -o $(*)-emd.s --code-name _$(subst -,_,$(*)) $<
35         @$(AS) -o $@ $(AFLAGS) $(*)-emd.s
36
37 %-joy.o: %.joy
38         @$(CO) -o $(*)-joy.s --code-name _$(subst -,_,$(*)) $<
39         @$(AS) -o $@ $(AFLAGS) $(*)-joy.s
40
41 %-mou.o: %.mou
42         @$(CO) -o $(*)-mou.s --code-name _$(subst -,_,$(*)) $<
43         @$(AS) -o $@ $(AFLAGS) $(*)-mou.s
44
45 %-ser.o: %.ser
46         @$(CO) -o $(*)-ser.s --code-name _$(subst -,_,$(*)) $<
47         @$(AS) -o $@ $(AFLAGS) $(*)-ser.s
48
49 %-tgi.o: %.tgi
50         @$(CO) -o $(*)-tgi.s --code-name _$(subst -,_,$(*)) $<
51         @$(AS) -o $@ $(AFLAGS) $(*)-tgi.s
52
53 %.emd:  %.o ../runtime/zeropage.o
54         @$(LD) -o $@ -t module $^
55
56 %.joy:  %.o ../runtime/zeropage.o
57         @$(LD) -o $@ -t module $^
58
59 %.mou:  %.o ../runtime/zeropage.o
60         @$(LD) -o $@ -t module $^
61
62 %.ser:  %.o ../runtime/zeropage.o
63         @$(LD) -o $@ -t module $^
64
65 %.tgi:  %.o ../runtime/zeropage.o
66         @$(LD) -o $@ -t module $^
67
68 #--------------------------------------------------------------------------
69 # Object files
70
71 C_OBJS= closedir.o              \
72         opendir.o               \
73         readdir.o               \
74         rewinddir.o
75
76 S_OBJS= _scrsize.o              \
77         break.o                 \
78         cclear.o                \
79         cgetc.o                 \
80         chline.o                \
81         close.o                 \
82         clrscr.o                \
83         color.o                 \
84         cout.o                  \
85         cputc.o                 \
86         crt0.o                  \
87         ctype.o                 \
88         curdevice.o             \
89         cvline.o                \
90         devicedir.o             \
91         dioclose.o              \
92         diocommon.o             \
93         dioopen.o               \
94         dioread.o               \
95         diosectcount.o          \
96         diosectsize.o           \
97         diowrite.o              \
98         dosdetect.o             \
99         exec.o                  \
100         exehdr.o                \
101         filedes.o               \
102         filename.o              \
103         get_ostype.o            \
104         getdevice.o             \
105         gotoxy.o                \
106         gotoy.o                 \
107         home.o                  \
108         initcwd.o               \
109         iobuf.o                 \
110         isdevice.o              \
111         joy_stddrv.o            \
112         kbhit.o                 \
113         mainargs.o              \
114         mcbdefault.o            \
115         mli.o                   \
116         mouse_stddrv.o          \
117         open.o                  \
118         oserrlist.o             \
119         oserror.o               \
120         randomize.o             \
121         rdkey.o                 \
122         read.o                  \
123         reboot.o                \
124         revers.o                \
125         rwcommon.o              \
126         syschdir.o              \
127         sysmkdir.o              \
128         sysremove.o             \
129         sysrename.o             \
130         sysrmdir.o              \
131         systime.o               \
132         sysuname.o              \
133         textframe.o             \
134         tgi_colors.o            \
135         tgi_stddrv.o            \
136         toascii.o               \
137         videomode.o             \
138         vtabz.o                 \
139         wherex.o                \
140         wherey.o                \
141         write.o                 \
142         $(EMDS:.emd=-emd.o)     \
143         $(JOYS:.joy=-joy.o)     \
144         $(MOUS:.mou=-mou.o)     \
145         $(SERS:.ser=-ser.o)     \
146         $(TGIS:.tgi=-tgi.o)
147
148 S_EXTRA_OBJS=                   \
149         extra/iobuf-0800.o
150
151 #--------------------------------------------------------------------------
152 # Drivers
153
154 EMDS = apple2-auxmem.emd
155
156 JOYS = apple2-stdjoy.joy
157
158 MOUS = apple2-stdmou.mou
159
160 SERS = apple2-ssc.ser
161
162 TGIS = apple2-280-192-8.tgi apple2-40-48-16.tgi
163
164 #--------------------------------------------------------------------------
165 # Targets
166
167 .PHONY: all clean zap
168
169 all:    $(C_OBJS) $(S_OBJS) $(S_EXTRA_OBJS) $(EMDS) $(JOYS) $(MOUS) $(SERS) $(TGIS)
170
171 ../runtime/zeropage.o:
172         $(MAKE) -C $(dir $@) $(notdir $@)
173
174 clean:
175         @$(RM) $(C_OBJS:.o=.s) $(C_OBJS) $(S_OBJS) $(S_EXTRA_OBJS) \
176                $(EMDS:.emd=.o) $(EMDS:.emd=-emd.s) \
177                $(JOYS:.joy=.o) $(JOYS:.joy=-joy.s) \
178                $(MOUS:.mou=.o) $(MOUS:.mou=-mou.s) \
179                $(SERS:.ser=.o) $(SERS:.ser=-ser.s) \
180                $(TGIS:.tgi=.o) $(TGIS:.tgi=-tgi.s)
181
182 zap:    clean
183         @$(RM) $(EMDS) $(JOYS) $(MOUS) $(SERS) $(TGIS)