Makefile
3.4 KB
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
##########################################################################
#
# Makefile for RSP line graphics microcode
#
##########################################################################
PRDEPTH=../../../
include $(ROOT)/usr/include/make/PRdefs
# local defs
LCDEFS = $(HW_FLAGS) -DLINE3D
# local includes
LCINCS = -I. -I$(ROOT)/usr/include -I$(ROOT)/usr/include/PR
LDIRT = *.dat *.lst *.sym *.dbg *.elf *.tvd
GFX_INCL = gdmem.h gfx_regs.h
#
# this is the subset of the "common" graphics code we use here:
#
COMMON_GFX_CODE = ../gdmem.h ../gfx_regs.h ../gyield.s ../gdone.s \
../ginit.s ../gboot.s ../newt.s ../goutxbus.s \
../goutdram.s ../goutfifo.s \
../gmain.s ../gdma.s ../gimm.s ../grdp.s \
../gmtx.s ../gvtx.s ../gflight.s ../goverlays.s
LINE_CODE = gline.s gclipl.s
INST_LIB_TARGETS = gspLine3D.o gspLine3D.dram.o gspLine3D.fifo.o
TARGETS = gspLine3D gspLine3D.dram gspLine3D.fifo \
gspLine3D.tvd gspLine3D.dram.tvd \
gspLine3D.fifo.tvd \
${INST_LIB_TARGETS}
default: ${TARGETS} checksize
install exports: ${TARGETS} checksize
$(INSTALL) -m 555 -F /usr/lib/PR $(INST_LIB_TARGETS)
$(INSTALL) -m 555 -F /usr/src/PR/rspcode/graphics/Line3D Makefile $(LINE_CODE)
include $(ROOT)/usr/include/make/commonrules
##########################################################################
#
# use the RSP linker 'buildtask' to construct the tasks from the objects.
# use the rsp2elf program to construct the debug executables and library
# executables.
#
# 'dd' is used to chop the data section to the minimum required, in
# order to save ROM/RAM space.
#
#
# the 3D line ucode:
#
gspLine3D: gspLine3D.u newt.u
${BUILDTASK} -f 1 -o $@ gspLine3D.u newt.u
dd if=$@.dat of=tmp1.dat bs=1 count=2048
mv tmp1.dat $@.dat
gspLine3D.o: gspLine3D
${RSP2ELF} -p -r $?
gspLine3D.tvd: gspLine3D
${RSP2ELF} -p $?
#
# the 3D line ucode with output back to DRAM:
#
gspLine3D.dram: gspLine3D.dram.u newt.u
${BUILDTASK} -f 1 -o $@ gspLine3D.dram.u newt.u
dd if=$@.dat of=tmp2.dat bs=1 count=2048
mv tmp2.dat $@.dat
gspLine3D.dram.o: gspLine3D.dram
${RSP2ELF} -p -r $?
gspLine3D.dram.tvd: gspLine3D.dram
${RSP2ELF} -p $?
#
# the 3D line ucode with output to circular DRAM fifo:
#
gspLine3D.fifo: gspLine3D.fifo.u newt.u
${BUILDTASK} -f 1 -o $@ gspLine3D.fifo.u newt.u
dd if=$@.dat of=tmp3.dat bs=1 count=2048
mv tmp3.dat $@.dat
gspLine3D.fifo.o: gspLine3D.fifo
${RSP2ELF} -p -r $?
gspLine3D.fifo.tvd: gspLine3D.fifo
${RSP2ELF} -p $?
#
# Ensure IMEM size does not overflow
#
checksize: ${INST_LIB_TARGETS}
../sizecheck ${INST_LIB_TARGETS}
../labeltest
#############################################################################
#
# build the individual objects.
#
newt.u: gspLine3D.u ../newt.s ${COMMON_GFX_CODE}
@echo "****"
@echo "**** Building $@:"
@echo "****"
${RSPASM} ${LCINCS} ${LCDEFS} -DNEWT_ALONE -S gspLine3D.u -o $@ ../newt.s
gspLine3D.u: ${COMMON_GFX_CODE} ${LINE_CODE}
@echo "****"
@echo "**** Building $@:"
@echo "****"
${RSPASM} ${LCINCS} ${LCDEFS} -o $@ ../gmain.s
@echo " "
gspLine3D.dram.u: ${COMMON_GFX_CODE} ${LINE_CODE}
@echo "****"
@echo "**** Building $@:"
@echo "****"
${RSPASM} ${LCINCS} ${LCDEFS} -DOUTPUT_DRAM -o $@ ../gmain.s
@echo " "
gspLine3D.fifo.u: ${COMMON_GFX_CODE} ${LINE_CODE}
@echo "****"
@echo "**** Building $@:"
@echo "****"
${RSPASM} ${LCINCS} ${LCDEFS} -DOUTPUT_FIFO -o $@ ../gmain.s
@echo " "
# DO NOT DELETE THIS LINE -- make depend depends on it.