# Makefile for dla-asm. # See https://slackware.uk/~urchlay/repos/dla-asm # We are pretending that cl65 is 2 different things: an assembler # and a C compiler. CL65FLAGS should only be flags that apply to both. CL65=cl65 CL65FLAGS=-g # CA65FLAGS only applies to cl65 when it's run as an assembler. CA65=$(CL65) CA65FLAGS=-t none # CC65FLAGS only applies to cl65 when it's run as a C compiler. # Turn off unused parameter warnings because cc65 insists on complaining # that argc and argv are unused. # Note that using 0x2d00 for the start address makes the Atari crash # when exiting dla2csv.xex in MyDOS 4.50, but 0x2800 is fine. 0x2000 # also works, but not all DOSes have MEMLO set that low... must investigate # why this happens. CC65=$(CL65) CC65FLAGS=-t atari -W -unused-param --start-addr 0x2800 -Or # Host C compiler (usually a symlink to gcc or clang). CC=cc CFLAGS=-O2 -Wall # Most OSes that have perl, have it in /usr/bin (and in $PATH). PERL=perl # Don't forget to list all phony targets here! .PHONY: all disk test disktest realtest tnfs clean distclean all: dla.xex dla2csv dla2csv.xex dla2img.sh dla.xex: dla.s io.s dlatbl.s xex.inc printint.s render.s drunkwalk.s dlaver.h $(CA65) $(CL65FLAGS) $(CA65FLAGS) -l dla.list -Ln dla.labels -o dla.xex dla.s dla2img.sh: VERSION $(PERL) d2iver.pl dla2img.sh dlatbl.s: mkdlatbl.pl $(PERL) mkdlatbl.pl > dlatbl.s #dlaver.inc: dlaver.h dlaver.h: mkver.pl VERSION $(PERL) mkver.pl dla2csv: dla2csv.c dlaver.h @echo $(CC) $(CFLAGS) -o dla2csv dla2csv.c ; \ $(CC) $(CFLAGS) -o dla2csv dla2csv.c \ || echo "Couldn't build host dla2csv; continuing without it" dla2csv.xex: dla2csv.c dlaver.h $(CC65) $(CL65FLAGS) $(CC65FLAGS) -Ln dla2csv.labels -l dla2csv.list -m dla2csv.map -o $@ dla2csv.c autorun.sys: autorun.s about.dat $(CA65) $(CL65FLAGS) $(CA65FLAGS) -Ln autorun.labels -l autorun.list -o autorun.sys autorun.s about.dat: text2screen.pl ABOUT.txt perl text2screen.pl < ABOUT.txt > about.dat # dla.atr.in is just a DOS 2.0s disk image. dla.atr: dla.xex dla2csv.xex autorun.sys dla.atr.in cp dla.atr.in dla.atr axe -w autorun.sys dla.atr axe -w dla.xex dla.atr axe -w dla2csv.xex dla.atr disk: dla.atr test: all atari800 dla.xex disktest: disk atari800 dla.atr realtest: disk atariserver dla.atr # tnfs.sh is not in git, it wouldn't work for anyone but me anyway. tnfs: all sh tnfs.sh dla.xex dla2csv.xex dla.atr clean: rm -f dla.xex dla2csv dla2csv.xex autorun.sys dla.list dla.labels *.o dla.atr distclean: clean rm -f dlatbl.s dlaver.inc dlaver.h about.dat # this rule isn't actually used by the other targets, it's just # handy for writing little "test.c" programs and being able to # say "make test.xex". %.xex: %.c $(CC65) $(CL65FLAGS) $(CC65FLAGS) -o $@ $<