diff options
-rw-r--r-- | Makefile | 36 |
1 files changed, 25 insertions, 11 deletions
@@ -1,20 +1,39 @@ # 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= +CL65FLAGS=-g -PERL=perl +# 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 +# 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 - $(CL65) $(CL65FLAGS) -l dla.list -Ln dla.labels -t none -o dla.xex dla.s + $(CA65) $(CL65FLAGS) $(CA65FLAGS) -l dla.list -Ln dla.labels -o dla.xex dla.s dla2img.sh: VERSION $(PERL) d2iver.pl dla2img.sh @@ -32,16 +51,11 @@ dla2csv: dla2csv.c dlaver.h $(CC) $(CFLAGS) -o dla2csv dla2csv.c \ || echo "Couldn't build host dla2csv; continuing without it" -# 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... dla2csv.xex: dla2csv.c dlaver.h - $(CL65) $(CL65FLAGS) -t atari -W -unused-param -m dla2csv.map --start-addr 0x2800 -o $@ dla2csv.c + $(CC65) $(CL65FLAGS) $(CC65FLAGS) -Ln dla2csv.labels -l dla2csv.list -m dla2csv.map -o $@ dla2csv.c autorun.sys: autorun.s about.dat - $(CL65) $(CL65FLAGS) -l autorun.list -t none -o autorun.sys autorun.s + $(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 @@ -78,4 +92,4 @@ distclean: clean # handy for writing little "test.c" programs and being able to # say "make test.xex". %.xex: %.c - $(CL65) $(CL65FLAGS) --start-addr 0x2800 -t atari -W -unused-param -o $@ $< + $(CC65) $(CL65FLAGS) $(CC65FLAGS) -o $@ $< |