~drgeo-developers/drgeo/trunk

« back to all changes in this revision

Viewing changes to VMs/iPad/source/unix/cmake/squeak.in

  • Committer: Hilaire Fernandes
  • Date: 2012-01-27 21:15:40 UTC
  • Revision ID: hilaire.fernandes@gmail.com-20120127211540-912spf97bhpx6mve
Initial additions

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/bin/sh
 
2
 
3
# Launch squeakvm from the command line or a menu script, with a good
 
4
# plugin path, text encodings and pulseaudio kludge
 
5
 
6
# Last edited: 2010-05-13 14:15:38 by piumarta on emilia-2.local
 
7
 
 
8
PATH=/usr/bin:/bin
 
9
 
 
10
realpath () {
 
11
    path="$1"
 
12
    while test -L "${path}"; do
 
13
        dir=`dirname "${path}"`
 
14
        dir=`cd "${dir}" && pwd -P`
 
15
        path=`basename "${path}"`
 
16
        path=`ls -l "${dir}/${path}" | sed 's,.* -> ,,'`
 
17
        if test `expr "${path}" : "/"` -eq 0; then
 
18
            path="${dir}/${path}"
 
19
        fi
 
20
    done
 
21
    if test -d "${path}"; then
 
22
        (cd "${path}" && pwd -P)
 
23
    else
 
24
        dir=`dirname "${path}"`
 
25
        base=`basename "${path}"`
 
26
        (cd "${dir}" && echo "`pwd -P`/${base}")
 
27
    fi
 
28
}
 
29
 
 
30
bindir=`realpath "${0}"`
 
31
bindir=`dirname  "${bindir}"`
 
32
prefix=`dirname  "${bindir}"`
 
33
libdir="${prefix}/lib/squeak"
 
34
plgdir="${libdir}/[version]"
 
35
useoss="[useoss]"
 
36
vm="squeakvm"
 
37
plugins=""
 
38
wrapper=""
 
39
 
 
40
for opt in $*; do
 
41
    case ${opt} in
 
42
        -vm-sound*)     useoss="false";;
 
43
        -vm)            case "$2" in sound*) useoss="false"; esac;;
 
44
    esac
 
45
done
 
46
 
 
47
# find the vm and set the plugin path
 
48
 
 
49
if test -x "${plgdir}/${vm}"; then      # bin/squeak -> lib/squeak/x.y-z/squeakvm
 
50
    vm="${plgdir}/${vm}"
 
51
    plugins="${plgdir}"
 
52
elif test -x "${bindir}/${vm}"; then    # bld/squeak -> bld/squeakvm
 
53
    vm="${bindir}/${vm}"
 
54
    plugins="${bindir}/%n"
 
55
elif test -x `which ${vm}`; then
 
56
    vm=`which ${vm}`
 
57
    plugins=""
 
58
else    
 
59
    echo "cannot find ${vm}" >&2
 
60
    exit 1
 
61
fi
 
62
 
 
63
# command-line overrides environment, so communicate anything we decide here via the environment
 
64
 
 
65
if test -z "${SQUEAK_PATHENC}";  then SQUEAK_PATHENC="UTF-8";  export SQUEAK_PATHENC;  fi
 
66
if test -z "${SQUEAK_ENCODING}"; then SQUEAK_ENCODING="UTF-8"; export SQUEAK_ENCODING; fi
 
67
 
 
68
if test -z "${SQUEAK_PLUGINS}"; then
 
69
    if test -n "${plugins}"; then
 
70
        SQUEAK_PLUGINS="${plugins}"
 
71
        export SQUEAK_PLUGINS
 
72
    fi
 
73
fi
 
74
 
 
75
# deal with pulseaudio if it is running
 
76
 
 
77
if test -z "${SQUEAK_VM}"; then
 
78
    if ${useoss}; then
 
79
        if pulseaudio --check 2>/dev/null; then
 
80
            if padsp true 2>/dev/null; then
 
81
                wrapper="padsp"
 
82
                SQUEAK_VM="sound-OSS"
 
83
                export SQUEAK_VM
 
84
            fi
 
85
        fi
 
86
    fi
 
87
fi
 
88
 
 
89
# fix broken locales
 
90
 
 
91
if test -z "$LC_ALL"; then
 
92
    LC_ALL="$LANG"
 
93
    export LC_ALL
 
94
fi
 
95
 
 
96
# debug output
 
97
 
 
98
if test "0$SQUEAK_DEBUG" -gt "0"; then
 
99
    set | fgrep SQUEAK_
 
100
    set -x
 
101
fi
 
102
 
 
103
# run the vm
 
104
 
 
105
exec ${wrapper} "${vm}" "$@"