annotate src/video/ps3/spulibs/Makefile @ 4165:3b8ac3d311a2 SDL-1.2

Hello. This patch provides basic support for video on the Sony PS3 Linux framebuffer. Scaling, format-conversion, and drawing is done from the SPEs, so there is little performance impact to PPE applications. This is by no means production quality code, but it is a very good start and a good example of how to use the PS3's hardware capabilities to accelerate video playback on the box. The driver has been verified to work with ffplay, mplayer and xine. This piece of software has been developed at the IBM R&D Lab in Boeblingen, Germany and is now returned to the community. Enjoy ! Signed-off-by: D.Herrendoerfer < d.herrendoerfer [at] de [dot] ibm [dot] com >
author Sam Lantinga <slouken@libsdl.org>
date Thu, 02 Apr 2009 04:06:55 +0000
parents
children
rev   line source
4165
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
1 # This Makefile is for building the CELL BE SPU libs
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
2 # libfb_writer_spu.so, libyuv2rgb_spu.so, libbilin_scaler_spu.so
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
3
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
4 # Toolchain
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
5 SPU_GCC=/usr/bin/spu-gcc
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
6 PPU_GCC=/usr/bin/gcc
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
7 PPU_EMBEDSPU=/usr/bin/embedspu
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
8 PPU_AR=/usr/bin/ar
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
9 PPU_LD=/usr/bin/ld
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
10 INSTALL=/usr/bin/install
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
11
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
12 SPU_CFLAGS=-W -Wall -Winline -Wno-main -I. -I /usr/spu/include -I /opt/cell/sdk/usr/spu/include -finline-limit=10000 -Winline -ftree-vectorize -funroll-loops -fmodulo-sched -ffast-math -fPIC -O2
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
13
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
14 # Usually /usr/lib, depending on your distribution
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
15 PREFIX=/usr/lib
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
16
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
17
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
18 all: libfb_writer_spu.a libfb_writer_spu.so \
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
19 libyuv2rgb_spu.so libyuv2rgb_spu.a \
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
20 libbilin_scaler_spu.so libbilin_scaler_spu.a
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
21
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
22
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
23 # fb_writer
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
24 fb_writer_spu-embed.o: fb_writer.c spu_common.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
25 $(SPU_GCC) $(SPU_CFLAGS) -o fb_writer_spu fb_writer.c -lm
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
26 $(PPU_EMBEDSPU) -m32 fb_writer_spu fb_writer_spu fb_writer_spu-embed.o
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
27
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
28 libfb_writer_spu.so: fb_writer_spu-embed.o
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
29 $(PPU_LD) -o libfb_writer_spu.so -shared -soname=libfb_writer_spu.so fb_writer_spu-embed.o
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
30
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
31 libfb_writer_spu.a: fb_writer_spu-embed.o
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
32 $(PPU_AR) -qcs libfb_writer_spu.a fb_writer_spu-embed.o
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
33
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
34
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
35 # yuv2rgb_converter
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
36 yuv2rgb_spu-embed.o: yuv2rgb_converter.c spu_common.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
37 $(SPU_GCC) $(SPU_CFLAGS) -o yuv2rgb_spu yuv2rgb_converter.c -lm
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
38 $(PPU_EMBEDSPU) -m32 yuv2rgb_spu yuv2rgb_spu yuv2rgb_spu-embed.o
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
39
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
40 libyuv2rgb_spu.a: yuv2rgb_spu-embed.o
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
41 $(PPU_AR) -qcs libyuv2rgb_spu.a yuv2rgb_spu-embed.o
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
42
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
43 libyuv2rgb_spu.so: yuv2rgb_spu-embed.o
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
44 $(PPU_LD) -o libyuv2rgb_spu.so -shared -soname=libyuv2rgb_spu.so yuv2rgb_spu-embed.o
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
45
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
46
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
47 # bilin_scaler
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
48 bilin_scaler_spu-embed.o: bilin_scaler.c spu_common.h
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
49 $(SPU_GCC) $(SPU_CFLAGS) -o bilin_scaler_spu bilin_scaler.c -lm
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
50 $(PPU_EMBEDSPU) -m32 bilin_scaler_spu bilin_scaler_spu bilin_scaler_spu-embed.o
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
51
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
52 libbilin_scaler_spu.a: bilin_scaler_spu-embed.o
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
53 $(PPU_AR) -qcs libbilin_scaler_spu.a bilin_scaler_spu-embed.o
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
54
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
55 libbilin_scaler_spu.so: bilin_scaler_spu-embed.o
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
56 $(PPU_LD) -o libbilin_scaler_spu.so -shared -soname=libbilin_scaler_spu.so bilin_scaler_spu-embed.o
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
57
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
58 install: libfb_writer_spu.a libfb_writer_spu.so \
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
59 libyuv2rgb_spu.so libyuv2rgb_spu.a \
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
60 libbilin_scaler_spu.so libbilin_scaler_spu.a
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
61 $(INSTALL) -c -m 0755 libfb_writer_spu.so $(PREFIX)/.
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
62 $(INSTALL) -c -m 0655 libfb_writer_spu.a $(PREFIX)/.
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
63 $(INSTALL) -c -m 0755 libyuv2rgb_spu.so $(PREFIX)/.
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
64 $(INSTALL) -c -m 0655 libyuv2rgb_spu.a $(PREFIX)/.
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
65 $(INSTALL) -c -m 0755 libbilin_scaler_spu.so $(PREFIX)/.
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
66 $(INSTALL) -c -m 0655 libbilin_scaler_spu.a $(PREFIX)/.
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
67
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
68
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
69 uninstall: $(PREFIX)/libfb_writer_spu.so $(PREFIX)/libfb_writer_spu.a \
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
70 $(PREFIX)/libyuv2rgb_spu.so $(PREFIX)/libyuv2rgb_spu.a \
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
71 $(PREFIX)/libbilin_scaler_spu.so $(PREFIX)/libbilin_scaler_spu.a
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
72 rm -f $(PREFIX)/libfb_writer_spu.a
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
73 rm -f $(PREFIX)/libfb_writer_spu.so
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
74 rm -f $(PREFIX)/libyuv2rgb_spu.so
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
75 rm -f $(PREFIX)/libyuv2rgb_spu.a
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
76 rm -f $(PREFIX)/libbilin_scaler_spu.so
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
77 rm -f $(PREFIX)/libbilin_scaler_spu.a
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
78
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
79
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
80 clean:
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
81 rm -f bilin_scaler_spu-embed.o libbilin_scaler_spu.so libbilin_scaler_spu.a bilin_scaler_spu
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
82 rm -f yuv2rgb_spu-embed.o libyuv2rgb_spu.so libyuv2rgb_spu.a yuv2rgb_spu
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
83 rm -f fb_writer_spu-embed.o libfb_writer_spu.so libfb_writer_spu.a fb_writer_spu