AS = ../../src/ca65/ca65
CC = ../../src/cc65/cc65
+CO = ../../src/co65/co65
LD = ../../src/ld65/ld65
AFLAGS = -t $(SYS) --forget-inc-paths -I../../asminc
#--------------------------------------------------------------------------
# Rules
-%.o: %.c
+%.o: %.c
@$(CC) $(CFLAGS) $(ATARIDEFS) $<
@$(AS) -o $@ $(AFLAGS) $(*).s
%.o: %.s
@$(AS) -g -o $@ $(AFLAGS) $(ATARIDEFS) $<
+%-emd.o: %.emd
+ @$(CO) -o $(*)-emd.s --code-label _$(subst -,_,$(*)) $<
+ @$(AS) -o $@ $(AFLAGS) $(*)-emd.s
+
+%-joy.o: %.joy
+ @$(CO) -o $(*)-joy.s --code-label _$(subst -,_,$(*)) $<
+ @$(AS) -o $@ $(AFLAGS) $(*)-joy.s
+
+%-tgi.o: %.tgi
+ @$(CO) -o $(*)-tgi.s --code-label _$(subst -,_,$(*)) $<
+ @$(AS) -o $@ $(AFLAGS) $(*)-tgi.s
+
%.emd: %.o ../runtime/zeropage.o
- @$(LD) -t module -o $@ $^
+ @$(LD) -o $@ -t module $^
%.joy: %.o ../runtime/zeropage.o
- @$(LD) -t module -o $@ $^
+ @$(LD) -o $@ -t module $^
%.tgi: %.o ../runtime/zeropage.o atari_tgi_common.inc
- @$(LD) -t module -o $@ $< ../runtime/zeropage.o
+ @$(LD) -o $@ -t module $< ../runtime/zeropage.o
#--------------------------------------------------------------------------
# Object files
-OBJS = _scrsize.o \
- break.o \
- cclear.o \
- cgetc.o \
- chline.o \
- clock.o \
- close.o \
- clrscr.o \
- color.o \
- cputc.o \
- crt0.o \
- ctype.o \
- cvline.o \
- dio_cts.o \
- dio_stc.o \
- diopncls.o \
- dioqsize.o \
- dioread.o \
- diowrite.o \
- diowritev.o \
- dosdetect.o \
- fdtable.o \
- getargs.o \
- getdefdev.o \
- getfd.o \
- gotox.o \
- gotoy.o \
- gotoxy.o \
- graphics.o \
- joy_stddrv.o \
- kbhit.o \
- lseek.o \
- mouse.o \
- mul40.o \
- open.o \
- oserrlist.o \
- oserror.o \
- ostype.o \
- randomize.o \
- read.o \
- revers.o \
- rs232.o \
- rwcommon.o \
- savevec.o \
- scroll.o \
- setcolor.o \
- siocall.o \
- sysmkdir.o \
- sysremove.o \
- sysrmdir.o \
- systime.o \
- sysuname.o \
- tgi_mode_table.o\
- tvtype.o \
- ucase_fn.o \
- wherex.o \
- wherey.o \
- write.o
+OBJS = _scrsize.o \
+ break.o \
+ cclear.o \
+ cgetc.o \
+ chline.o \
+ clock.o \
+ close.o \
+ clrscr.o \
+ color.o \
+ cputc.o \
+ crt0.o \
+ ctype.o \
+ cvline.o \
+ dio_cts.o \
+ dio_stc.o \
+ diopncls.o \
+ dioqsize.o \
+ dioread.o \
+ diowrite.o \
+ diowritev.o \
+ do_oserr.o \
+ dosdetect.o \
+ fdtable.o \
+ fdtab.o \
+ fdtoiocb.o \
+ getargs.o \
+ getdefdev.o \
+ getfd.o \
+ gotox.o \
+ gotoy.o \
+ gotoxy.o \
+ graphics.o \
+ initcwd.o \
+ inviocb.o \
+ irq.o \
+ joy_stat_stddrv.o \
+ joy_stddrv.o \
+ kbhit.o \
+ lseek.o \
+ mul40.o \
+ open.o \
+ oserrlist.o \
+ oserror.o \
+ ostype.o \
+ posixdirent.o \
+ randomize.o \
+ read.o \
+ revers.o \
+ rwcommon.o \
+ savevec.o \
+ scroll.o \
+ setcolor.o \
+ siocall.o \
+ syschdir.o \
+ sysmkdir.o \
+ sysremove.o \
+ sysrmdir.o \
+ systime.o \
+ sysuname.o \
+ tgi_colors.o \
+ tgi_stat_stddrv.o \
+ tgi_stddrv.o \
+ toascii.o \
+ tvtype.o \
+ ucase_fn.o \
+ wherex.o \
+ wherey.o \
+ write.o \
+ $(EMDS:.emd=-emd.o) \
+ $(JOYS:.joy=-joy.o) \
+ $(TGIS:.tgi=-tgi.o)
#--------------------------------------------------------------------------
# Drivers
-EMDS =
+EMDS = atari-130xe.emd
JOYS = atari-stdjoy.joy atari-multijoy.joy
#--------------------------------------------------------------------------
# Targets
-all: $(OBJS) $(EMDS) $(JOYS) $(TGIS)
+all: $(OBJS) $(EMDS) $(JOYS) $(TGIS)
../runtime/zeropage.o:
$(MAKE) -C $(dir $@) $(notdir $@)
clean:
- @$(RM) $(OBJS) $(EMDS:.emd=.o) $(JOYS:.joy=.o) $(TGIS:.tgi=.o)
+ @$(RM) $(OBJS) \
+ $(EMDS:.emd=.o) $(EMDS:.emd=-emd.s) \
+ $(JOYS:.joy=.o) $(JOYS:.joy=-joy.s) \
+ $(TGIS:.tgi=.o) $(TGIS:.tgi=-tgi.s)
zap: clean
@$(RM) $(EMDS) $(JOYS) $(TGIS)
-