# # makefile for CC65 Atari runtime library # # NUMDRVS - number of supported drives (max. 16) # 4 bytes for each device are statically allocated # LINEBUF - support line buffered reads from E: (the number specifies # the length of the buffer) # UCASE_FILENAME - all filenames get uppercased # DEFAULT_DEVICE - if the string passed to the uppercase function doesn't # include a device (":" at position 2 or 3), provide "Dn:" # as a default disk device # n is the value of DEFAULT_DEVICE, unless DYNAMIC_DD is # also set, in which case it's overridden by a runtime # check (on SpartaDOS only) # needs UCASE_FILENAME to be defined, otherwise no effect # DYNAMIC_DD - determine default disk device at runtime (SpartaDOS only) # needs DEFAULT_DEVICE to be defined, otherwise no effect ATARIDEFS = -DNUMDRVS=4 -DUCASE_FILENAME=1 -DDEFAULT_DEVICE=1 -DLINEBUF=80 ATARIDEFS += -DDYNAMIC_DD=1 .SUFFIXES: .o .s .c #-------------------------------------------------------------------------- # Programs and flags SYS = atari AS = ../../src/ca65/ca65 CC = ../../src/cc65/cc65 CO = ../../src/co65/co65 LD = ../../src/ld65/ld65 AFLAGS = -t $(SYS) --forget-inc-paths -I../../asminc CFLAGS = -Osir -g -T -t $(SYS) --forget-inc-paths -I . -I ../../include #-------------------------------------------------------------------------- # Rules %.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) -o $@ -t module $^ %.joy: %.o ../runtime/zeropage.o @$(LD) -o $@ -t module $^ %.tgi: %.o ../runtime/zeropage.o atari_tgi_common.inc @$(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 \ 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 = atari-130xe.emd JOYS = atari-stdjoy.joy atari-multijoy.joy TGIS = atari-3.tgi atari-4.tgi atari-5.tgi atari-6.tgi atari-7.tgi atari-8.tgi \ atari-9.tgi atari-10.tgi atari-11.tgi atari-14.tgi atari-15.tgi atari-8p2.tgi \ atari-9p2.tgi atari-10p2.tgi atari-15p2.tgi #-------------------------------------------------------------------------- # Targets all: $(OBJS) $(EMDS) $(JOYS) $(TGIS) ../runtime/zeropage.o: $(MAKE) -C $(dir $@) $(notdir $@) clean: @$(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)