Port histogram window to 2.x
[lttv.git] / runlttv
1 #!/bin/sh
2 # Released under the GPL
3 # pmf - 2008/07/31
4
5 # This script runs LTTV in place in the compile directory without need for
6 # installing it with make install.
7 #
8 # In order for icons to display correctly, it might be necessary to create a
9 # symlink:
10 # $ ln -s ./lttv/modules/gui/lttvwindow/pixmaps
11 # while in the same directory as this script.
12
13 PROGNAME=$0
14 BUILDPATH=$(dirname $0)
15 RCFILE="$(dirname $0)/.runlttvrc"
16 TEXTLIBS="-L ${BUILDPATH}/lttv/modules/text/.libs -m textDump"
17 EVALLIBS="-L ${BUILDPATH}/lttv/modules/text/.libs -m sync_chain_batch"
18 GRAPHLIBS="-L ${BUILDPATH}/lttv/modules/gui/lttvwindow/lttvwindow/.libs -m lttvwindow "\
19 "-L ${BUILDPATH}/lttv/modules/gui/detailedevents/.libs -m guievents "\
20 "-L ${BUILDPATH}/lttv/modules/gui/histogram/.libs -m guihistogram"
21 #"-L ${BUILDPATH}/lttv/modules/gui/controlflow/.libs -m guicontrolflow "\
22 #"-L ${BUILDPATH}/lttv/modules/gui/tracecontrol/.libs -m guitracecontrol "\
23 #"-L ${BUILDPATH}/lttv/modules/gui/statistics/.libs -m guistatistics "\
24 #"-L ${BUILDPATH}/lttv/modules/gui/resourceview/.libs -m resourceview "\
25 #"-L ${BUILDPATH}/lttv/modules/gui/filter/.libs -m guifilter "\
26 #"-L ${BUILDPATH}/lttv/modules/gui/interrupts/.libs -m interrupts "
27
28 DEFAULTMODE="gui"
29
30 usage () {
31 echo "Usage: $0 [OPTION]... [TRACE]..." >/dev/stderr
32 echo "" >/dev/stderr
33 echo "Options:" >/dev/stderr
34 printf "\t-m MODE Output mode (modes: text, eval, gui)\n" >/dev/stderr
35 printf "\t-H HELPER Invoke LTTV through a helper program\n" >/dev/stderr
36 printf "\t (helpers: gdb, valgrind, massif, strace)\n" >/dev/stderr
37 printf "\t-b OPTIONS LTTV options to specify before the module list\n" >/dev/stderr
38 printf "\t-a OPTIONS LTTV options to specify after the module list\n" >/dev/stderr
39 echo "" >/dev/stderr
40 }
41
42 if [ -e "${BUILDPATH}/lttv/lttv/.libs/lttv.real" ]; then
43 LTTV_EXEC="${BUILDPATH}/lttv/lttv/.libs/lttv.real"
44 elif [ -e "${BUILDPATH}/lttv/lttv/lttv.real" ]; then
45 LTTV_EXEC="${BUILDPATH}/lttv/lttv/lttv.real"
46 else
47 echo "error: LTTV should be compiled before running this script." >/dev/stderr
48 exit 1
49 fi
50
51 while getopts "H:m:b:a:h" options; do
52 case $options in
53 H) HELPER=$OPTARG;;
54 m) MODE=$OPTARG;;
55 b) BOPTIONS="$BOPTIONS $OPTARG";;
56 a) AOPTIONS="$AOPTIONS $OPTARG";;
57 h) usage;
58 exit 0;;
59 \?) usage;
60 exit 1;;
61 esac
62 done
63 shift $(($OPTIND - 1))
64
65 for trace in $@
66 do
67 TRACEFILES="$TRACEFILES -t $trace "
68 done
69
70 if [ -e "$RCFILE" ]; then
71 . "$RCFILE";
72 fi
73
74 if [ -z "$MODE" ]; then
75 MODE=$DEFAULTMODE
76 fi
77
78 if [ "$MODE" = "text" ]; then
79 LIBS="$TEXTLIBS"
80 elif [ "$MODE" = "eval" ]; then
81 LIBS="$EVALLIBS"
82 elif [ "$MODE" = "gui" ]; then
83 LIBS="$GRAPHLIBS"
84 else
85 echo "$PROGNAME: unknown mode -- $MODE" >/dev/stderr
86 exit 1
87 fi
88
89 LTTV_ARGS="$BOPTIONS $LIBS $TRACEFILES $AOPTIONS"
90 if [ "$HELPER" = "gdb" ]; then
91 LD_LIBRARY_PATH=${BUILDPATH}/ltt/.libs gdb --args $LTTV_EXEC $LTTV_ARGS
92 elif [ "$HELPER" = "valgrind" ]; then
93 LD_LIBRARY_PATH=${BUILDPATH}/ltt/.libs G_SLICE=always-malloc G_DEBUG=gc-friendly valgrind --show-reachable=yes --leak-check=full --tool=memcheck --suppressions=debug/gtk.suppression --track-origins=yes --error-limit=no $LTTV_EXEC $LTTV_ARGS
94 elif [ "$HELPER" = "callgrind" ]; then
95 LD_LIBRARY_PATH=${BUILDPATH}/ltt/.libs G_SLICE=always-malloc G_DEBUG=gc-friendly valgrind --tool=callgrind $LTTV_EXEC $LTTV_ARGS
96 elif [ "$HELPER" = "massif" ]; then
97 LD_LIBRARY_PATH=${BUILDPATH}/ltt/.libs valgrind --tool=massif $LTTV_EXEC $LTTV_ARGS
98 elif [ "$HELPER" = "strace" ]; then
99 LD_LIBRARY_PATH=${BUILDPATH}/ltt/.libs strace $LTTV_EXEC $LTTV_ARGS
100 else
101 LD_LIBRARY_PATH=${BUILDPATH}/ltt/.libs $LTTV_EXEC $LTTV_ARGS
102 fi
This page took 0.032102 seconds and 4 git commands to generate.