2 top_srcdir = @top_srcdir@
6 # host compiler and flags
11 SH4INC = -I$(srcdir)/include
12 SH4CFLAGS = $(SH4INC) -D_arch_dreamcast -D_arch_sub_pristine \
13 -O2 -fno-builtin -fno-strict-aliasing -ml -m4-single-only \
14 -fno-optimize-sibling-calls
16 SH4LDFLAGS = -fno-builtin -fno-strict-aliasing -ml -m4-single-only \
17 -Wl,-T$(srcdir)/dc.x -nostartfiles -nostdlib -L$(srcdir)/lib
18 SH4LIBS = -Wl,--start-group -lc -lgcc -lm -Wl,--end-group
19 SH4OBJCOPY = @SHOBJCOPY@ -O binary
21 SHARED_OBJECTS = dmac.so asic.so lib.so timer.so testdata.so interrupt.so
24 ARMCFLAGS = -O2 -fno-builtin -fno-strict-aliasing -mlittle-endian
26 ARMLDFLAGS = -Wl,-T$(srcdir)/aica.x -nostartfiles -mlittle-endian \
27 -nostdlib -L$(srcdir)/lib-arm
28 ARMLIBS = -Wl,--start-group -lc -lgcc -lm -Wl,--end-group
29 ARMOBJCOPY = @ARMOBJCOPY@ -O binary
31 RUNTEST = ../src/lxdream -c $(srcdir)/lxdream.rc -puH -A null
32 RUNTESTX = ../src/lxdream -c $(srcdir)/lxdream.rc -xpuH -A null
35 $(ARMCC) $(ARMCFLAGS) -o $@ -c $<
38 $(ARMCC) $(ARMCFLAGS) -o $@ -c $<
41 $(SH4CC) $(SH4CFLAGS) -o $@ -c $<
44 $(SH4CC) $(SH4CFLAGS) -o $@ -c $<
47 $(SH4CC) $(SH4CFLAGS) -o $@ -c $< -Wa,-I$(srcdir)
50 $(SH4CC) $(SH4CFLAGS) -o $@ -c $<
53 $(HOSTCC) $(HOSTCFLAGS) -o $@ -c $<
55 %.arm: %.ao arm_crt0.ao
56 $(ARMCC) -Wl,-Ttext,0x00000000 -nostartfiles -nostdlib -e reset -o $@ arm_crt0.ao $< -lgcc
60 $(ARMOBJCOPY) -O binary $< $@
64 $(SH4CC) $(SH4CFLAGS) -o $@ -c $<.c
73 cat $(srcdir)/testta.data $(srcdir)/testta2.data $(srcdir)/testta3.data $(srcdir)/testta4.data $(srcdir)/testta5.data | $(RUNTEST) testta
74 cat $(srcdir)/testsort.data | $(RUNTEST) testta
75 # $(RUNTEST) testide -d ../disc/test.nrg
78 build-tests: testsh4 testmath testide testta testregs testrend testdisp testspu testmmu
80 lib/crt0.so: lib/crt0.s
82 $(SH4CC) $(SH4CFLAGS) -o $@ -c $<
84 lib-arm/crt0.ao: lib-arm/crt0.s
86 $(ARMCC) $(ARMCFLAGS) -o $@ -c $<
89 testsh4: lib/crt0.so sh4/testsh4.so timer.so interrupt.so \
90 sh4/add.so sh4/addc.so sh4/addv.so sh4/and.so sh4/andi.so \
91 sh4/bf.so sh4/bsr.so sh4/bt.so sh4/cmp.so sh4/cmpstr.so \
92 sh4/div0.so sh4/div1.so sh4/float.so sh4/fmov.so sh4/ftrc.so \
93 sh4/ldc.so sh4/mac.so \
94 sh4/rot.so sh4/shl.so sh4/shld.so sh4/sub.so sh4/subc.so \
95 sh4/trapa.so sh4/tas.so sh4/xtrct.so \
96 sh4/excslot.so sh4/undef.so sh4/tlb.so sh4/vmexit.so
97 $(SH4CC) $(SH4LDFLAGS) $^ -o $@ $(SH4LIBS)
98 $(SH4OBJCOPY) testsh4 testsh4.bin
100 testide: lib/crt0.so $(SHARED_OBJECTS) testide.so ide.so
101 $(SH4CC) $(SH4LDFLAGS) $^ -o $@ $(SH4LIBS)
102 $(SH4OBJCOPY) testide testide.bin
104 testmmu: lib/crt0.so $(SHARED_OBJECTS) testmmu.so
105 $(SH4CC) $(SH4LDFLAGS) $^ -o $@ $(SH4LIBS)
106 $(SH4OBJCOPY) testmmu testmmu.bin
108 testmath: lib/crt0.so $(SHARED_OBJECTS) testmath.so math.so
109 $(SH4CC) $(SH4LDFLAGS) $^ -o $@ $(SH4LIBS)
111 testregs: lib/crt0.so $(SHARED_OBJECTS) testregs.so ide.so
112 $(SH4CC) $(SH4LDFLAGS) $^ -o $@ $(SH4LIBS)
113 $(SH4OBJCOPY) testregs testregs.bin
115 testta: lib/crt0.so $(SHARED_OBJECTS) testta.so pvr.so
116 $(SH4CC) $(SH4LDFLAGS) $^ -o $@ $(SH4LIBS)
117 $(SH4OBJCOPY) testta testta.bin
119 testaica: lib/crt0.so $(SHARED_OBJECTS) testaica.so
120 $(SH4CC) $(SH4LDFLAGS) $^ -o $@ $(SH4LIBS)
121 $(SH4OBJCOPY) testaica testaica.bin
123 testrend: lib/crt0.so $(SHARED_OBJECTS) testrend.so pvr.so
124 $(SH4CC) $(SH4LDFLAGS) $^ -o $@ $(SH4LIBS)
125 $(SH4OBJCOPY) testrend testrend.bin
127 testblend: lib/crt0.so $(SHARED_OBJECTS) testblend.so pvr.so
128 $(SH4CC) $(SH4LDFLAGS) $^ -o $@ $(SH4LIBS)
129 $(SH4OBJCOPY) testblend testblend.bin
131 testdisp: lib/crt0.so $(SHARED_OBJECTS) testdisp.so pvr.so
132 $(SH4CC) $(SH4LDFLAGS) $^ -o $@ $(SH4LIBS)
133 $(SH4OBJCOPY) testdisp testdisp.bin
135 testyuv: lib/crt0.so $(SHARED_OBJECTS) testyuv.so pvr.so
136 $(SH4CC) $(SH4LDFLAGS) $^ -o $@ $(SH4LIBS)
137 $(SH4OBJCOPY) testyuv testyuv.bin
139 testspu: lib/crt0.so $(SHARED_OBJECTS) testspu.so
140 $(SH4CC) $(SH4LDFLAGS) $^ -o $@ $(SH4LIBS)
141 $(SH4OBJCOPY) testspu testspu.bin
143 testg2: lib/crt0.so $(SHARED_OBJECTS) testg2.so
144 $(SH4CC) $(SH4LDFLAGS) $^ -o $@ $(SH4LIBS)
145 $(SH4OBJCOPY) testg2 testg2.bin
147 readdata: lib/crt0.so $(SHARED_OBJECTS) readdata.so
148 $(SH4CC) $(SH4LDFLAGS) $^ -o $@ $(SH4LIBS)
150 rend: lib/crt0.so $(SHARED_OBJECTS) rendload.so pvr.so
151 $(SH4CC) $(SH4LDFLAGS) $^ -o $@ $(SH4LIBS)
152 $(SH4OBJCOPY) rend rend.bin
154 testFF10: lib/crt0.so $(SHARED_OBJECTS) testFF10.so
155 $(SH4CC) $(SH4LDFLAGS) $^ -o $@ $(SH4LIBS)
156 $(SH4OBJCOPY) testFF10 testFF10.bin
160 rm -f *.o *.so *.ao *.ac *.bin sh4/*.so lib/*.so lib-arm/*.ao mapleid \
161 readmem dumpasic testsh4 testta testdisp testregs testide testmath \
162 testmmu testaica testrend testspu ide dcflash.rom
173 DISTFILES = asic.c asic.h bin2c.c dma.h dmac.c ide.c ide.h interrupt.s \
174 lib.c lib.h math.s pvr.c pvr.h rendload.c sh4/add.s sh4/addc.s \
175 sh4/addv.s sh4/and.s sh4/andi.s sh4/bf.s sh4/bsr.s sh4/bt.s sh4/cmp.s \
176 sh4/cmpstr.s sh4/div0.s sh4/div1.s sh4/excslot.s sh4/float.s sh4/fmov.s \
177 sh4/ftrc.s sh4/inc.s sh4/mac.s sh4/ldc.s sh4/rot.s sh4/shl.s sh4/shld.s sh4/sub.s \
178 sh4/subc.s sh4/tas.s sh4/testsh4.c sh4/tlb.s sh4/vmexit.s sh4/trapa.s sh4/undef.s \
179 sh4/xtrct.s testdata.c testdata.h testdisp.c testide.c testmath.c testaica.c \
180 testmmu.c testregs.c testrend.c testspu.c testta.c testyuv.c timer.c timer.h \
181 testta.data testta2.data testta3.data testta4.data testta5.data testsort.data \
182 lxdream.rc dc.x lib/crt0.s lib/libc.a lib/libm.a lib/newlib-1.8.2-dc.patch \
183 aica.x lib-arm/libc.a lib-arm/libm.a lib-arm/crt0.s \
184 include/_ansi.h include/_syslist.h include/ar.h include/assert.h include/ctype.h \
185 include/dirent.h include/errno.h include/fastmath.h include/fcntl.h include/grp.h \
186 include/ieeefp.h include/locale.h include/machine/fastmath.h include/machine/ieeefp.h \
187 include/machine/setjmp-dj.h include/machine/setjmp.h include/machine/time.h \
188 include/machine/types.h include/malloc.h include/math.h include/paths.h \
189 include/process.h include/pwd.h include/reent.h include/regdef.h include/setjmp.h \
190 include/signal.h include/stdio.h include/stdlib.h include/string.h include/sys/_types.h \
191 include/sys/config.h include/sys/dirent.h include/sys/errno.h include/sys/fcntl.h \
192 include/sys/file.h include/sys/param.h include/sys/reent.h include/sys/resource.h \
193 include/sys/signal.h include/sys/stat-dj.h include/sys/stat.h include/sys/time.h \
194 include/sys/timeb.h include/sys/times.h include/sys/types.h include/sys/unistd.h \
195 include/sys/utime.h include/sys/wait.h include/termios.h include/time.h \
196 include/unctrl.h include/unistd.h include/utime.h include/utmp.h \
197 testsh4 testregs testmmu testta testaica
201 distdir: $(DISTFILES)
202 $(mkdir_p) $(distdir)/sh4 $(distdir)/lib $(distdir)/include
203 @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
204 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
205 list='$(DISTFILES)'; for file in $$list; do \
207 $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
208 $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
210 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
211 dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
212 if test "$$dir" != "$$file" && test "$$dir" != "."; then \
214 $(mkdir_p) "$(distdir)$$dir"; \
218 if test -d $$d/$$file; then \
219 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
220 cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
222 cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
224 test -f $(distdir)/$$file \
225 || cp -p $$d/$$file $(distdir)/$$file \
.