initial version
[android_pandora.git] / pvr / gfx_rel_es2.x_android / install.sh
CommitLineData
34a1da07 1#!/bin/sh
2
3# PowerVR SGX DDK for Embedded Linux - installation script
4#
5# Copyright 2004-2006 by Imagination Technologies Limited.
6# All rights reserved. No part of this software, either
7# material or conceptual may be copied or distributed,
8# transmitted, transcribed, stored in a retrieval system
9# or translated into any human or computer language in any
10# form by any means, electronic, mechanical, manual or
11# other-wise, or disclosed to third parties without the
12# express written permission of Imagination Technologies
13# Limited, Unit 8, HomePark Industrial Estate,
14# King's Langley, Hertfordshire, WD4 8LZ, U.K.
15
16# Auto-generated for omap3430_android from embedded.pj 1.5.15.2766
17#
18
19# PVR Consumer services version number
20#
21PVRVERSION=1.5.15.2766
22
23# Where we record what we did so we can undo it.
24#
25DDK_INSTALL_LOG=/powervr_ddk_install.log
26
27# basic installation function
28# $1=blurb
29#
30bail()
31{
32 echo "$1" >&2
33 echo "" >&2
34 echo "Installation failed" >&2
35 exit 1
36}
37
38# basic installation function
39# $1=fromfile, $2=destfilename, $3=blurb $4=chmod-flags
40#
41install_file()
42{
43 DESTFILE=${DISCIMAGE}$2
44 DESTDIR=`dirname $DESTFILE`
45
46 if [ ! -e $1 ]; then
47 [ -n "$VERBOSE" ] && echo "skipping file $1 -> $2"
48 return
49 fi
50
51 # Destination directory - make sure it's there and writable
52 #
53 if [ -d "${DESTDIR}" ]; then
54 if [ ! -w "${DESTDIR}" ]; then
55 bail "${DESTDIR} is not writable."
56 fi
57 else
58 $DOIT mkdir -p ${DESTDIR} || bail "Couldn't mkdir -p ${DESTDIR}"
59 [ -n "$VERBOSE" ] && echo "Created directory `dirname $2`"
60 fi
61
62 # If it already exists then back it up if there isn't a back-up already.
63 #
64 #if [ -f $DESTFILE ]; then
65 # if [ ! -f ${DESTFILE}.old ]; then
66 # $DOIT mv $DESTFILE ${DESTFILE}.old ||
67 # bail "Couldn't back up $DESTFILE";
68 # [ -n "$VERBOSE" ] && echo "Backed up $DESTFILE";
69 # fi
70 #fi
71
72 # Delete the original so that permissions don't persist.
73 #
74 $DOIT rm -f $DESTFILE
75
76 $DOIT cp -f $1 $DESTFILE || bail "Couldn't copy $1 to $DESTFILE"
77 $DOIT chmod 644 ${DESTFILE}
78 if [ "$4" ]; then
79 $DOIT chmod $4 ${DESTFILE};
80 fi
81 echo "$3 `basename $1` -> $2"
82 $DOIT echo "file $2" >>${DISCIMAGE}${DDK_INSTALL_LOG}
83}
84
85# Install a symbolic link
86# $1=fromfile, $2=destfilename
87#
88install_link()
89{
90 DESTFILE=${DISCIMAGE}$2
91 DESTDIR=`dirname $DESTFILE`
92
93 if [ ! -e ${DESTDIR}/$1 ]; then
94 [ -n "$VERBOSE" ] && echo $DOIT "skipping link ${DESTDIR}/$1"
95 return
96 fi
97
98 # Destination directory - make sure it's there and writable
99 #
100 if [ -d "${DESTDIR}" ]; then
101 if [ ! -w "${DESTDIR}" ]; then
102 bail "${DESTDIR} is not writable."
103 fi
104 else
105 $DOIT mkdir -p ${DESTDIR} || bail "Couldn't mkdir -p ${DESTDIR}"
106 [ -n "$VERBOSE" ] && echo "Created directory `dirname $2`"
107 fi
108
109 # Delete the original so that permissions don't persist.
110 #
111 $DOIT rm -f $DESTFILE
112
113 $DOIT ln -s $1 $DESTFILE || bail "Couldn't link $1 to $DESTFILE"
114 $DOIT echo "link $2" >>${DISCIMAGE}${DDK_INSTALL_LOG}
115 [ -n "$VERBOSE" ] && echo " linked `basename $1` -> $2"
116}
117
118# Tree-based installation function
119# $1 = fromdir $2=destdir $3=blurb
120#
121install_tree()
122{
123 # Make the destination directory if it's not there
124 #
125 if [ ! -d ${DISCIMAGE}$2 ]; then
126 $DOIT mkdir -p ${DISCIMAGE}$2 || bail "Couldn't mkdir -p ${DISCIMAGE}$2"
127 fi
128 if [ "$DONTDOIT" ]; then
129 echo "### tar -C $1 -cf - . | tar -C ${DISCIMAGE}$2 -x${VERBOSE}f -"
130 else
131 tar -C $1 -cf - . | tar -C ${DISCIMAGE}$2 -x${VERBOSE}f -
132 fi
133 if [ $? = 0 ]; then
134 echo "Installed $3 in ${DISCIMAGE}$2"
135 $DOIT echo "tree $2" >>${DISCIMAGE}${DDK_INSTALL_LOG}
136 else
137 echo "Failed copying $3 from $1 to ${DISCIMAGE}$2"
138 fi
139}
140
141# Uninstall something.
142#
143uninstall()
144{
145 if [ ! -f ${DISCIMAGE}${DDK_INSTALL_LOG} ]; then
146 echo "Nothing to un-install."
147 return;
148 fi
149
150 BAD=0
151 VERSION=""
152 while read type data; do
153 case $type in
154 version) # do nothing
155 echo "Uninstalling existing version $data"
156 VERSION="$data"
157 ;;
158 link|file)
159 if [ -z "$VERSION" ]; then
160 BAD=1;
161 echo "No version record at head of ${DISCIMAGE}${DDK_INSTALL_LOG}"
162 elif ! $DOIT rm -f ${DISCIMAGE}${data}; then
163 BAD=1;
164 else
165 [ -n "$VERBOSE" ] && echo "Deleted $type $data"
166 fi
167 ;;
168 tree) # so far, do nothing
169 ;;
170 esac
171 done < ${DISCIMAGE}${DDK_INSTALL_LOG};
172
173 if [ $BAD = 0 ]; then
174 echo "Uninstallation completed."
175 $DOIT rm -f ${DISCIMAGE}${DDK_INSTALL_LOG}
176 else
177 echo "Uninstallation failed!!!"
178 fi
179}
180
181# Help on how to invoke
182#
183usage()
184{
185 echo "usage: $0 [options...]"
186 echo ""
187 echo "Options: -v verbose mode"
188 echo " -n dry-run mode"
189 echo " -u uninstall-only mode"
190 echo " --no-pvr don't install PowerVR driver components"
191 echo " --no-x don't install X window system"
192 echo " --no-display don't install integrated PowerVR display module"
193 echo " --no-bcdevice don't install buffer class device module"
194 echo " --root path use path as the root of the install file system"
195 exit 1
196}
197
198install_pvr()
199{
200 $DOIT echo "version 1.5.15.2766" >${DISCIMAGE}${DDK_INSTALL_LOG}
201 # Install the standard scripts
202 #
203 install_file rc.pvr /system/bin/sgx/rc.pvr "boot script" a+x
204
205 # Check the kernel module directory is there
206 #
207 if [ ! -d "${DISCIMAGE}" ]; then
208 echo ""
209 echo "Can't find on file system installation root"
210 echo -n "There is no kernel module area setup yet. "
211 if [ "$from" = target ]; then
212 echo "On your build machine you should invoke:"
213 echo
214 echo " $ cd \$KERNELDIR"
215 echo " $ make INSTALL_MOD_PATH=\$DISCIMAGE modules_install"
216 else
217 echo "You should invoke:"
218 echo
219 echo " $ cd $KERNELDIR"
220 echo " $ make INSTALL_MOD_PATH=$DISCIMAGE modules_install"
221 fi
222 echo
223 exit 1;
224 fi
225
226 # Install the standard kernel modules
227 # Touch some files that might not exist so that busybox/modprobe don't complain
228 #
229 install_file pvrsrvkm.ko /system/bin/sgx/pvrsrvkm.ko "kernel module"
230
231
232
233if [ -z "$NO_DISPLAYMOD" ]; then
234 install_file omaplfb.ko /system/bin/sgx/omaplfb.ko "kernel module"
235
236fi
237
238if [ -z "$NO_BCDEVICE" ]; then
239 install_file bc_example.ko /system/bin/sgx/bc_example.ko "kernel module"
240
241fi
242
243# $DOIT touch ${DISCIMAGE}/lib/modules/modprobe.conf
244# $DOIT touch ${DISCIMAGE}/etc/modules.conf
245# $DOIT rm -f /tmp/modules.$$.tmp
246
247 # Install the standard libraries
248 #
249
250 install_file libGLESv1_CM_POWERVR_SGX530_121.so /system/lib/egl/libGLESv1_CM_POWERVR_SGX530_121.so.1.1.15.2766 "shared library"
251 install_link libGLESv1_CM_POWERVR_SGX530_121.so.1.1.15.2766 /system/lib/egl/libGLESv1_CM_POWERVR_SGX530_121.so
252
253 install_file libGLESv2_POWERVR_SGX530_121.so /system/lib/egl/libGLESv2_POWERVR_SGX530_121.so.1.1.15.2766 "shared library"
254 install_link libGLESv2_POWERVR_SGX530_121.so.1.1.15.2766 /system/lib/egl/libGLESv2_POWERVR_SGX530_121.so
255
256 install_file libglslcompiler.so /system/lib/libglslcompiler.so.1.1.15.2766 "shared library"
257 install_link libglslcompiler.so.1.1.15.2766 /system/lib/libglslcompiler.so
258
259
260 install_file libIMGegl.so /system/lib/libIMGegl.so.1.1.15.2766 "shared library"
261 install_link libIMGegl.so.1.1.15.2766 /system/lib/libIMGegl.so
262 install_file libEGL_POWERVR_SGX530_121.so /system/lib/egl/libEGL_POWERVR_SGX530_121.so.1.1.15.2766 "shared library"
263 install_link libEGL_POWERVR_SGX530_121.so.1.1.15.2766 /system/lib/egl/libEGL_POWERVR_SGX530_121.so
264 install_file libpvr2d.so /system/lib/libpvr2d.so.1.1.15.2766 "shared library"
265 install_link libpvr2d.so.1.1.15.2766 /system/lib/libpvr2d.so
266
267
268
269 install_file libsrv_um.so /system/lib/libsrv_um.so.1.1.15.2766 "shared library"
270 install_link libsrv_um.so.1.1.15.2766 /system/lib/libsrv_um.so
271 install_file libPVRScopeServices.so /system/lib/libPVRScopeServices.so.1.1.15.2766 "shared library"
272 install_link libPVRScopeServices.so.1.1.15.2766 /system/lib/libPVRScopeServices.so
273
274
275
276 install_file gralloc.omap3.so /system/lib/hw/gralloc.omap3.so.1.1.15.2766 "shared library"
277 install_link gralloc.omap3.so.1.1.15.2766 /system/lib/hw/gralloc.omap3.so
278
279 install_file libfakehal.so /system/lib/libfakehal.so.1.1.15.2766 "shared library"
280 install_link libfakehal.so.1.1.15.2766 /system/lib/libfakehal.so
281
282 install_file libpvrANDROID_WSEGL.so /system/lib/libpvrANDROID_WSEGL.so.1.1.15.2766 "shared library"
283 install_link libpvrANDROID_WSEGL.so.1.1.15.2766 /system/lib/libpvrANDROID_WSEGL.so
284
285 install_file libsfutil.so /system/lib/libsfutil.so.1.1.15.2766 "shared library"
286 install_link libsfutil.so.1.1.15.2766 /system/lib/libsfutil.so
287
288
289 # Install the standard executables
290 #
291
292 install_file pvrsrvinit /system/bin/pvrsrvinit "binary" a+x
293 install_file sgx_init_test /system/bin/sgx_init_test "binary" a+x
294
295
296
297 # Install the standard unittests
298 #
299 install_file gles2test1 /system/bin/gles2test1 "binary" a+x
300 install_file glsltest1_vertshader.txt /system/bin/glsltest1_vertshader.txt "shader" a+x
301 install_file glsltest1_fragshaderA.txt /system/bin/glsltest1_fragshaderA.txt "shader" a+x
302 install_file glsltest1_fragshaderB.txt /system/bin/glsltest1_fragshaderB.txt "shader" a+x
303 install_file gles2_texture_stream /system/bin/gles2_texture_stream "binary" a+x
304
305 install_file gles1test1 /system/bin/gles1test1 "binary" a+x
306 install_file gles1_texture_stream /system/bin/gles1_texture_stream "binary" a+x
307
308 install_file services_test /system/bin/services_test "binary" a+x
309 install_file sgx_blit_test /system/bin/sgx_blit_test "binary" a+x
310 install_file sgx_flip_test /system/bin/sgx_flip_test "binary" a+x
311 install_file sgx_render_flip_test /system/bin/sgx_render_flip_test "binary" a+x
312 install_file pvr2d_test /system/bin/pvr2d_test "binary" a+x
313 install_file eglinfo /system/bin/eglinfo "binary" a+x
314##GLESUNITTEST(egl_test)dnl
315##GLES2UNITTEST(gl2info)dnl
316##ifelse(SUPPORT_PVR2D,1,[[UNITTEST(pvr2dtest)]])dnl
317##ifdef([[_BUFFER_CLASS_DEVICE_]],
318## if [ -z "$NO_BCDEVICE" ]; then
319## UNITTEST(sw_camera_ctrl)dnl
320## UNITTEST(ogles_camera_ext)dnl
321##fi)
322
323 install_file hal_client_test /system/bin/hal_client_test "binary" a+x
324 install_file hal_server_test /system/bin/hal_server_test "binary" a+x
325 install_file framebuffer_test /system/bin/framebuffer_test "binary" a+x
326 install_file texture_benchmark /system/bin/texture_benchmark "binary" a+x
327 install_file xmultiegltest /system/bin/xmultiegltest "binary" a+x
328 VENDOR_LIB_NAME=`echo libEGL_POWERVR_SGX530_121.so | sed 's,libEGL_\|\.so,,g'`
329 $DOIT cat >${DISCIMAGE}/system/lib/egl/egl.cfg <<EOF
3300 0 android
3310 1 ${VENDOR_LIB_NAME}
332EOF
333 $DOIT echo "file /system/lib/egl/egl.cfg" >>${DISCIMAGE}${DDK_INSTALL_LOG}
334}
335
336
337# Work out if there are any special instructions.
338#
339while [ "$1" ]; do
340 case "$1" in
341 -v|--verbose)
342 VERBOSE=v;
343 ;;
344 -r|--root)
345 DISCIMAGE=$2;
346 shift; shift;
347 ;;
348 -u|--uninstall)
349 UNINSTALL=y
350 ;;
351 -n) DOIT=echo
352 ;;
353 --no-pvr)
354 NO_PVR=y
355 ;;
356 --no-x)
357 NO_X=y
358 ;;
359 --no-display)
360 NO_DISPLAYMOD=y
361 ;;
362 --no-bcdevice)
363 NO_BCDEVICE=y
364 ;;
365 -h | --help | *)
366 usage
367 ;;
368 esac
369 shift
370done
371
372# Find out where we are? On the target? On the host?
373#
374case `uname -m` in
375arm*) host=0;
376 from=target;
377 DISCIMAGE=/;
378 ;;
379sh*) host=0;
380 from=target;
381 DISCIMAGE=/;
382 ;;
383i?86*) host=1;
384 from=host;
385 if [ -z "$DISCIMAGE" ]; then
386 echo "DISCIMAGE must be set for installation to be possible." >&2
387 exit 1
388 fi
389 ;;
390x86_64*) host=1;
391 from=host;
392 if [ -z "$DISCIMAGE" ]; then
393 echo "DISCIMAGE must be set for installation to be possible." >&2
394 exit 1
395 fi
396 ;;
397*) echo "Don't know host to perform on machine type `uname -m`" >&2;
398 exit 1
399 ;;
400esac
401
402if [ ! -d "$DISCIMAGE" ]; then
403 echo "$0: $DISCIMAGE does not exist." >&2
404 exit 1
405fi
406
407echo
408echo "Installing PowerVR Consumer/Embedded DDK 1.5.15.2766 on $from"
409echo
410echo "File system installation root is $DISCIMAGE"
411echo
412
413# Uninstall whatever's there already.
414#
415uninstall
416[ -n "$UNINSTALL" ] && exit
417
418# Now start installing things we want.
419#
420[ -z "$NO_PVR" ] && install_pvr
421
422# All done...
423#
424echo
425echo "Installation complete!"
426if [ "$host" = 0 ]; then
427 echo "You may now reboot your target."
428fi
429echo