aboutsummaryrefslogtreecommitdiff
path: root/Makefile
blob: a1f5c92874e2a7c49c97d1f028e1bdbc6d1cf7c8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# Makefile for dla-asm.
# See https://slackware.uk/~urchlay/repos/dla-asm

CL65=cl65
CL65FLAGS=

PERL=perl

CC=cc
CFLAGS=-O2 -Wall

.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

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"

# 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

autorun.sys: autorun.s about.dat
	$(CL65) $(CL65FLAGS) -l autorun.list -t none -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
	$(CL65) $(CL65FLAGS) --start-addr 0x2800 -t atari -W -unused-param -o $@ $<