File: Makefile

package info (click to toggle)
atari800 5.2.0-2
  • links: PTS, VCS
  • area: contrib
  • in suites: forky, sid, trixie
  • size: 7,196 kB
  • sloc: ansic: 86,829; asm: 18,694; sh: 3,173; cpp: 2,798; java: 2,453; xml: 957; makefile: 727; perl: 334; pascal: 178
file content (121 lines) | stat: -rw-r--r-- 2,984 bytes parent folder | download
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
# Altirra - Atari 800/800XL emulator
# Kernel ROM replacement
# Copyright (C) 2008-2020 Avery Lee
#
# Copying and distribution of this file, with or without modification,
# are permitted in any medium without royalty provided the copyright
# notice and this notice are preserved.  This file is offered as-is,
# without any warranty.

MADS=mads
OUT=build

CDIR=../src/roms/

SRC_BIOS_SHARED=\
 src/atarifont.inc \
 src/boot.s \
 src/cassette.s \
 src/cio.inc \
 src/cio.s \
 src/disk.s \
 src/editor.s \
 src/hardware.inc \
 src/init.s \
 src/interrupt.s \
 src/irq.s \
 src/kerneldb.inc \
 src/keyboard.s \
 src/keytable.s \
 src/mathpack.s \
 src/misc.s \
 src/printer.s \
 src/screenext.s \
 src/screen.s \
 src/sio.inc \
 src/sio.s \
 src/vbi.s \
 src/version.inc \

SRC_BIOS_800=\
 src/blackboard.s \

SRC_BIOS_XL=\
 src/atariifont.inc \
 src/bootscreen.s \
 src/driveimage.inc \
 src/pbi.s \
 src/phandler.s \
 src/selftestentry.s \

SRC_BASIC=\
 src_basic/data.s \
 src_basic/error.s \
 src_basic/evaluator.s \
 src_basic/exec.s \
 src_basic/functions.s \
 src_basic/io.s \
 src_basic/list.s \
 src_basic/math.s \
 src_basic/memory.s \
 src_basic/parser.s \
 src_basic/parserbytecode.s \
 src_basic/statements.s \
 src_basic/system.inc \
 src_basic/tokens.inc \
 src_basic/util.s \
 src_basic/variables.s

SRC_BIOS_5200=\
 src_5200/main.xasm

all:\
 $(CDIR)/altirraos_xl.c \
 $(CDIR)/altirraos_800.c \
 $(CDIR)/altirra_basic.c \
 $(CDIR)/altirra_5200_os.c \
 $(CDIR)/altirra_5200_charset.c

# Rules to assemble ROMs
$(OUT)/altirraos_xl.rom: main.xasm $(SRC_BIOS_XL) $(SRC_BIOS_SHARED) | $(OUT)
	$(MADS) -d:_KERNEL_XLXE=1 -s -p -i:src -i:fnt -b:49152 -l:$(@:.rom=.lst) -t:$(@:.rom=.lab) -o:$@ $<

$(OUT)/altirraos_800.rom: main.xasm $(SRC_BIOS_800) $(SRC_BIOS_SHARED) | $(OUT)
	$(MADS) -d:_KERNEL_XLXE=0 -s -p -i:src -i:fnt -b:55296 -l:$(@:.rom=.lst) -t:$(@:.rom=.lab) -o:$@ $<

$(OUT)/altirra_basic.rom: src_basic/atbasic.s $(SRC_BASIC) | $(OUT)
	$(MADS) -d:CART=1 -s -p -i:src_basic -b:40960 -l:$(@:.rom=.lst) -t:$(@:.rom=.lab) -o:$@ $<

$(OUT)/altirra_5200_os.rom: $(SRC_BIOS_5200) | $(OUT)
	$(MADS) -s -p -i:src -b:63488 -l:$(@:.rom=.lst) -o:$@ $<

$(OUT)/altirra_5200_charset.rom: src/atarifont.bin | $(OUT)
	cp $< $@

# Rules to convert ROM into HEX file
$(OUT)/%.hex: $(OUT)/%.rom
	hexdump  -ve '"\t" 8/1 "0x%02x," "\n"' < $< | sed -e '$$ s/,$$//' > $@

# Join the HEX file with the headers to get the C source files
$(CDIR)/%.c: %_head.in $(OUT)/%.hex template_tail.in
	cat $^ > $@

$(OUT):
	mkdir -p $(OUT)

clean:
	-rm -f $(OUT)/altirra_basic.lab
	-rm -f $(OUT)/altirra_basic.lst
	-rm -f $(OUT)/altirra_basic.rom
	-rm -f $(OUT)/altirraos_800.lab
	-rm -f $(OUT)/altirraos_800.lst
	-rm -f $(OUT)/altirraos_800.rom
	-rm -f $(OUT)/altirraos_xl.lab
	-rm -f $(OUT)/altirraos_xl.lst
	-rm -f $(OUT)/altirraos_xl.rom
	-rm -f $(OUT)/altirra_5200_os.lab
	-rm -f $(OUT)/altirra_5200_os.lst
	-rm -f $(OUT)/altirra_5200_os.rom
	-rm -f $(OUT)/altirra_5200_charset.rom
	-rmdir $(OUT)