~ubuntu-branches/debian/squeeze/erlang/squeeze

« back to all changes in this revision

Viewing changes to erts/etc/unix/cerl.src

  • Committer: Bazaar Package Importer
  • Author(s): Erlang Packagers, Sergei Golovan
  • Date: 2006-12-03 17:07:44 UTC
  • mfrom: (2.1.11 feisty)
  • Revision ID: james.westby@ubuntu.com-20061203170744-rghjwupacqlzs6kv
Tags: 1:11.b.2-4
[ Sergei Golovan ]
Fixed erlang-base and erlang-base-hipe prerm scripts.

Show diffs side-by-side

added added

removed removed

Lines of Context:
19
19
#   -purify     Run emulator compiled for purify
20
20
#   -quantify   Run emulator compiled for quantify
21
21
#   -purecov    Run emulator compiled for purecov
 
22
#   -valgrind   Run emulator compiled for valgrind
22
23
#   -nox        Unset the DISPLAY variable to disable us of X Windows
23
24
#
24
25
# FIXME For GDB you can also set the break point using "-break FUNCTION".
31
32
export BINDIR
32
33
export PATH
33
34
 
 
35
cargs=
 
36
xargs=
34
37
cxargs_add() {
35
38
    while [ $# -gt 0 ]; do
36
 
      cargs="$cargs $1"
37
 
      xargs="$xargs $1"
38
 
      shift
 
39
        cargs="$cargs $1"
 
40
        xargs="$xargs $1"
 
41
        shift
39
42
    done
40
43
}
41
44
 
42
 
GDB=no
 
45
core=
 
46
 
 
47
GDB=
43
48
GDBBP=
44
49
TYPE=
 
50
EMU_TYPE=
 
51
debug=
 
52
run_valgrind=no
45
53
 
46
54
# Default rootdir
47
55
ROOTDIR=%SRC_ROOTDIR%
48
 
BINDIR=$ROOTDIR/bin/%TARGET%
 
56
BINDIR="$ROOTDIR/bin/`$ROOTDIR/erts/autoconf/config.guess`"
 
57
#BINDIR="$ROOTDIR/bin/%TARGET%"
49
58
PROGNAME=$ROOTDIR/bin/cerl
50
59
EMU=beam
51
60
 
52
 
cargs=""
53
 
xargs=""
54
 
 
55
 
if [ "x$EMACS" = "x" ]; then
56
 
  EMACS=emacs
57
 
fi
58
 
 
59
 
while [ $# -gt 0 ]
60
 
do
61
 
case "$1" in
62
 
  +*)
 
61
 
 
62
while [ $# -gt 0 ]; do
 
63
    case "$1" in
 
64
        +*)
63
65
      # A system parameter!
64
 
      cxargs_add $1
65
 
      shift
 
66
            cxargs_add $1
 
67
            shift
66
68
      # If next argument does not begin with a hyphen or a plus,
67
69
      # it is used as the value of the system parameter.
68
 
      if [ $# -gt 0 ]; then
69
 
        case $1 in
70
 
            -*|+*)
71
 
                ;;
72
 
            *)
73
 
                cxargs_add $1
74
 
                shift;;
75
 
        esac
76
 
     fi;;
77
 
  "-instr")
78
 
      cxargs_add $1
79
 
      shift
80
 
      ;;
81
 
  "-rootdir")
82
 
      shift
83
 
      cargs="$cargs -rootdir $1"
84
 
      ROOTDIR="$1"
85
 
      BINDIR=$ROOTDIR/erts-%VSN%/bin
86
 
      shift
87
 
      ;;
88
 
  "-display")
89
 
      shift
90
 
      DISPLAY="$1"
91
 
      export DISPLAY
92
 
      shift
93
 
      ;;
94
 
  "-nox")
95
 
      shift
96
 
      unset DISPLAY
97
 
      ;;
98
 
  "-debug")
99
 
      shift
100
 
      cargs="$cargs -debug"
101
 
      TYPE=.debug
102
 
      ;;
103
 
  "-gdb")
104
 
      shift
105
 
      cargs="$cargs -debug"
106
 
      TYPE=.debug
107
 
      GDB=gdb
108
 
      ;;
109
 
  "-break")
110
 
      shift
111
 
      cargs="$cargs -debug"   # FIXME will give multiple -debug....
112
 
      TYPE=.debug
113
 
      GDB=gdb
114
 
      GDBBP="$GDBBP (insert-string \"break $1\") (comint-send-input)"
115
 
      shift
116
 
      ;;
117
 
#  "-xxgdb")
118
 
#      shift
119
 
#      cargs="$cargs -debug"
120
 
#      TYPE=.debug
121
 
#      GDB=xxgdb
122
 
#      ;;
123
 
  "-shared")
124
 
      shift
125
 
      cargs="$cargs -shared"
126
 
      TYPE=.shared
127
 
      ;;
128
 
  "-purify")
129
 
      shift
130
 
      cargs="$cargs -purify"
131
 
      TYPE=.purify
132
 
      ;;
133
 
  "-quantify")
134
 
      shift
135
 
      cargs="$cargs -quantify"
136
 
      TYPE=.quantify
137
 
      ;;
138
 
  "-purecov")
139
 
      shift
140
 
      cargs="$cargs -purecov"
141
 
      TYPE=.purecov
142
 
      ;;
143
 
  *)
144
 
      break
145
 
      ;;
146
 
esac
 
70
            if [ $# -gt 0 ]; then
 
71
                case $1 in
 
72
                    -*|+*)
 
73
                        ;;
 
74
                    *)
 
75
                        cxargs_add $1
 
76
                        shift;;
 
77
                esac
 
78
            fi;;
 
79
        "-instr")
 
80
            cxargs_add $1
 
81
            shift
 
82
            ;;
 
83
        "-target")
 
84
            shift
 
85
            BINDIR="$ROOTDIR/bin/$1"
 
86
            shift
 
87
            ;;
 
88
        "-rootdir")
 
89
            shift
 
90
            cargs="$cargs -rootdir $1"
 
91
            ROOTDIR="$1"
 
92
            BINDIR=$ROOTDIR/erts-%VSN%/bin
 
93
            shift
 
94
            ;;
 
95
        "-display")
 
96
            shift
 
97
            DISPLAY="$1"
 
98
            export DISPLAY
 
99
            shift
 
100
            ;;
 
101
        "-nox")
 
102
            shift
 
103
            unset DISPLAY
 
104
            ;;
 
105
        "-smp")
 
106
            shift
 
107
            cargs="$cargs -smp"
 
108
            EMU_TYPE=.smp
 
109
            ;;
 
110
        "-gprof")
 
111
            shift
 
112
            cargs="$cargs -gprof"
 
113
            TYPE=.gprof
 
114
            ;;
 
115
        "-hybrid")
 
116
            shift
 
117
            cargs="$cargs -hybrid"
 
118
            EMU_TYPE=.hybrid
 
119
            ;;
 
120
        "-debug")
 
121
            shift
 
122
            cargs="$cargs -debug"
 
123
            TYPE=.debug
 
124
            ;;
 
125
        "-gdb")
 
126
            shift
 
127
            GDB=gdb
 
128
            ;;
 
129
        "-break")
 
130
            shift
 
131
            GDB=gdb
 
132
            GDBBP="$GDBBP (insert-string \"break $1\") (comint-send-input)"
 
133
            shift
 
134
            ;;
 
135
        "-core")
 
136
            shift
 
137
            GDB=gdb
 
138
            core="$1"
 
139
            shift
 
140
            ;;
 
141
#       "-xxgdb")
 
142
#           shift
 
143
#           GDB=xxgdb
 
144
#           ;;
 
145
        "-shared")
 
146
            shift
 
147
            cargs="$cargs -shared"
 
148
            TYPE=.shared
 
149
            ;;
 
150
        "-purify")
 
151
            shift
 
152
            cargs="$cargs -purify"
 
153
            TYPE=.purify
 
154
            ;;
 
155
        "-quantify")
 
156
            shift
 
157
            cargs="$cargs -quantify"
 
158
            TYPE=.quantify
 
159
            ;;
 
160
        "-purecov")
 
161
            shift
 
162
            cargs="$cargs -purecov"
 
163
            TYPE=.purecov
 
164
            ;;
 
165
        "-valgrind")
 
166
            shift
 
167
            cargs="$cargs -valgrind"
 
168
            TYPE=.valgrind
 
169
            run_valgrind=yes
 
170
            ;;
 
171
        *)
 
172
            break
 
173
            ;;
 
174
    esac
147
175
done
148
176
 
149
177
 
151
179
EXEC=$BINDIR/erlexec
152
180
 
153
181
PROGNAME="$PROGNAME $cargs"
154
 
EMU=$EMU$TYPE
155
 
 
156
 
if [ $GDB != "no" ]; then
157
 
 
158
 
  # We create a command to fire up emacs with
159
 
  beam_args=`$EXEC -emu_args_exit ${1+"$@"}`
160
 
  exec $EMACS --eval \
161
 
    "(progn (gdb \"gdb $EMU\") \
162
 
      (insert-string \"set args $beam_args\") \
163
 
      (comint-send-input) \
164
 
      $GDBBP \
165
 
     )"
166
 
 
167
 
# Leftovers, look at later....
168
 
#  GF=/tmp/erlgdb.$$
169
 
#  trap 'rm -f $GF; exit 0' 0 1 2 3 15
170
 
#  echo "break $BREAK_POINT" >> $GF
171
 
#  echo "run -- -root $ROOTDIR -progname \"$PROGNAME\" -- -home $HOME $@" >> $GF
172
 
#  $GDB -command=$GF $EMU
173
 
 
174
 
  #echo "(load \"/usr/share/emacs/21.2/lisp/gud.elc\")">autorun_gdb.el
175
 
  #echo "(gdb \"$1\")" >> autorun_gdb.el
176
 
  #$EMACS -l autorun_gdb.el &
177
 
  #echo   usage e.g.:  ejj.sh  my_prog test.cir
178
 
 
 
182
EMU=$EMU$TYPE$EMU_TYPE
 
183
 
 
184
if [ "x$GDB" = "x" ]; then
 
185
    if [ $run_valgrind = yes ]; then
 
186
        emu_xargs=`echo $xargs | sed "s|+|-|g"`
 
187
        if [ "x$VALGRIND_LOG_DIR" = "x" ]; then
 
188
            valgrind_log=
 
189
        else
 
190
            valgrind_log="--log-file=$VALGRIND_LOG_DIR/$EMU.log"
 
191
        fi
 
192
        beam_args=`$EXEC -emu_args_exit ${1+"$@"}`
 
193
        # Ahhhh... Need to quote $PROGNAME...
 
194
        early_beam_args=`echo $beam_args | sed "s|^\(.*-progname\).*$|\1|g"`
 
195
        late_beam_args=`echo $beam_args | sed "s|^$pre_beam_args.*\(--.*\)$|\1|g"`
 
196
        
 
197
        exec valgrind $valgrind_log $BINDIR/$EMU $emu_xargs $early_beam_args "$PROGNAME" $late_beam_args
 
198
    else
 
199
        exec $EXEC $xargs ${1+"$@"}
 
200
    fi
179
201
else
180
 
 
181
 
  exec $EXEC $xargs ${1+"$@"}
182
 
 
 
202
    if [ "x$EMACS" = "x" ]; then
 
203
        EMACS=emacs
 
204
    fi
 
205
    
 
206
    case "x$core" in
 
207
        x)
 
208
            # Get emu args to use from erlexec...
 
209
            beam_args=`$EXEC -emu_args_exit ${1+"$@"}`
 
210
            gdbcmd="(insert-string \"set args $beam_args\") \
 
211
                    (comint-send-input)"
 
212
            ;;
 
213
        x/*)
 
214
            gdbcmd="(insert-string \"core ${core}\") (comint-send-input)"
 
215
            GDBBP=
 
216
            ;;
 
217
        *)
 
218
            dir=`pwd`
 
219
            gdbcmd="(insert-string \"core ${dir}/${core}\") \
 
220
                    (comint-send-input)"
 
221
            GDBBP=
 
222
            ;;
 
223
    esac
 
224
 
 
225
    gdbcmd="$gdbcmd $GDBBP \
 
226
            (insert-string \"source $ROOTDIR/erts/etc/unix/etp-commands\") \
 
227
            (comint-send-input)"
 
228
    # Fire up gdb in emacs...
 
229
    exec $EMACS --eval "(progn (gdb \"gdb $EMU\") $gdbcmd)"
183
230
fi