lib/Tools/install
author wenzelm
Fri, 16 Jul 1999 22:24:42 +0200
changeset 7024 44bd3c094fd6
parent 6545 a8a235a8a4a3
child 7887 eedfff88ee40
permissions -rwxr-xr-x
tuned;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5362
29ce4f1fe72c install binaries with absolute references to ISABELLE_HOME/bin;
wenzelm
parents:
diff changeset
     1
#!/bin/bash
29ce4f1fe72c install binaries with absolute references to ISABELLE_HOME/bin;
wenzelm
parents:
diff changeset
     2
#
29ce4f1fe72c install binaries with absolute references to ISABELLE_HOME/bin;
wenzelm
parents:
diff changeset
     3
# $Id$
29ce4f1fe72c install binaries with absolute references to ISABELLE_HOME/bin;
wenzelm
parents:
diff changeset
     4
#
6417
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
     5
# DESCRIPTION: install standalone Isabelle executables
5362
29ce4f1fe72c install binaries with absolute references to ISABELLE_HOME/bin;
wenzelm
parents:
diff changeset
     6
29ce4f1fe72c install binaries with absolute references to ISABELLE_HOME/bin;
wenzelm
parents:
diff changeset
     7
29ce4f1fe72c install binaries with absolute references to ISABELLE_HOME/bin;
wenzelm
parents:
diff changeset
     8
PRG=$(basename $0)
29ce4f1fe72c install binaries with absolute references to ISABELLE_HOME/bin;
wenzelm
parents:
diff changeset
     9
29ce4f1fe72c install binaries with absolute references to ISABELLE_HOME/bin;
wenzelm
parents:
diff changeset
    10
function usage()
29ce4f1fe72c install binaries with absolute references to ISABELLE_HOME/bin;
wenzelm
parents:
diff changeset
    11
{
29ce4f1fe72c install binaries with absolute references to ISABELLE_HOME/bin;
wenzelm
parents:
diff changeset
    12
  echo
6417
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
    13
  echo "Usage: $PRG [OPTIONS]"
5362
29ce4f1fe72c install binaries with absolute references to ISABELLE_HOME/bin;
wenzelm
parents:
diff changeset
    14
  echo
5403
aa04ac8bfeae -d DISTDIR;
wenzelm
parents: 5398
diff changeset
    15
  echo "  Options are:"
6459
1d13a86bfa6c fixed ISABELLE_HOME/lib/logo/isabelle-tiny.xpm;
wenzelm
parents: 6450
diff changeset
    16
  echo "    -d DISTDIR   refer to DISTDIR as Isabelle distribution (default ISABELLE_HOME)"
6417
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
    17
  echo "    -k           install KDE application icon on Desktop"
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
    18
  echo "    -p DIR       install standalone binaries in DIR"
5403
aa04ac8bfeae -d DISTDIR;
wenzelm
parents: 5398
diff changeset
    19
  echo
6417
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
    20
  echo "  Install Isabelle executables with absolute references to the current"
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
    21
  echo "  distribution directory."
5362
29ce4f1fe72c install binaries with absolute references to ISABELLE_HOME/bin;
wenzelm
parents:
diff changeset
    22
  echo
29ce4f1fe72c install binaries with absolute references to ISABELLE_HOME/bin;
wenzelm
parents:
diff changeset
    23
  exit 1
29ce4f1fe72c install binaries with absolute references to ISABELLE_HOME/bin;
wenzelm
parents:
diff changeset
    24
}
29ce4f1fe72c install binaries with absolute references to ISABELLE_HOME/bin;
wenzelm
parents:
diff changeset
    25
29ce4f1fe72c install binaries with absolute references to ISABELLE_HOME/bin;
wenzelm
parents:
diff changeset
    26
function fail()
29ce4f1fe72c install binaries with absolute references to ISABELLE_HOME/bin;
wenzelm
parents:
diff changeset
    27
{
29ce4f1fe72c install binaries with absolute references to ISABELLE_HOME/bin;
wenzelm
parents:
diff changeset
    28
  echo "$1" >&2
29ce4f1fe72c install binaries with absolute references to ISABELLE_HOME/bin;
wenzelm
parents:
diff changeset
    29
  exit 2
29ce4f1fe72c install binaries with absolute references to ISABELLE_HOME/bin;
wenzelm
parents:
diff changeset
    30
}
29ce4f1fe72c install binaries with absolute references to ISABELLE_HOME/bin;
wenzelm
parents:
diff changeset
    31
29ce4f1fe72c install binaries with absolute references to ISABELLE_HOME/bin;
wenzelm
parents:
diff changeset
    32
5403
aa04ac8bfeae -d DISTDIR;
wenzelm
parents: 5398
diff changeset
    33
## process command line
aa04ac8bfeae -d DISTDIR;
wenzelm
parents: 5398
diff changeset
    34
aa04ac8bfeae -d DISTDIR;
wenzelm
parents: 5398
diff changeset
    35
# options
aa04ac8bfeae -d DISTDIR;
wenzelm
parents: 5398
diff changeset
    36
6450
990e6e2dee26 improved usage;
wenzelm
parents: 6417
diff changeset
    37
NO_OPTS=true
990e6e2dee26 improved usage;
wenzelm
parents: 6417
diff changeset
    38
5403
aa04ac8bfeae -d DISTDIR;
wenzelm
parents: 5398
diff changeset
    39
DISTDIR="$ISABELLE_HOME"
6417
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
    40
KDE=""
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
    41
BINDIR=""
5362
29ce4f1fe72c install binaries with absolute references to ISABELLE_HOME/bin;
wenzelm
parents:
diff changeset
    42
6417
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
    43
while getopts "d:kp:" OPT
5403
aa04ac8bfeae -d DISTDIR;
wenzelm
parents: 5398
diff changeset
    44
do
aa04ac8bfeae -d DISTDIR;
wenzelm
parents: 5398
diff changeset
    45
  case "$OPT" in
5404
wenzelm
parents: 5403
diff changeset
    46
    d)
5403
aa04ac8bfeae -d DISTDIR;
wenzelm
parents: 5398
diff changeset
    47
      DISTDIR="$OPTARG"
6450
990e6e2dee26 improved usage;
wenzelm
parents: 6417
diff changeset
    48
      NO_OPTS=""
5403
aa04ac8bfeae -d DISTDIR;
wenzelm
parents: 5398
diff changeset
    49
      ;;
6417
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
    50
    k)
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
    51
      KDE=true
6450
990e6e2dee26 improved usage;
wenzelm
parents: 6417
diff changeset
    52
      NO_OPTS=""
6417
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
    53
      ;;
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
    54
    p)
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
    55
      BINDIR="$OPTARG"
6450
990e6e2dee26 improved usage;
wenzelm
parents: 6417
diff changeset
    56
      NO_OPTS=""
6417
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
    57
      ;;
5403
aa04ac8bfeae -d DISTDIR;
wenzelm
parents: 5398
diff changeset
    58
    \?)
aa04ac8bfeae -d DISTDIR;
wenzelm
parents: 5398
diff changeset
    59
      usage
aa04ac8bfeae -d DISTDIR;
wenzelm
parents: 5398
diff changeset
    60
      ;;
aa04ac8bfeae -d DISTDIR;
wenzelm
parents: 5398
diff changeset
    61
  esac
aa04ac8bfeae -d DISTDIR;
wenzelm
parents: 5398
diff changeset
    62
done
5362
29ce4f1fe72c install binaries with absolute references to ISABELLE_HOME/bin;
wenzelm
parents:
diff changeset
    63
5403
aa04ac8bfeae -d DISTDIR;
wenzelm
parents: 5398
diff changeset
    64
shift $(($OPTIND - 1))
aa04ac8bfeae -d DISTDIR;
wenzelm
parents: 5398
diff changeset
    65
aa04ac8bfeae -d DISTDIR;
wenzelm
parents: 5398
diff changeset
    66
aa04ac8bfeae -d DISTDIR;
wenzelm
parents: 5398
diff changeset
    67
# args
aa04ac8bfeae -d DISTDIR;
wenzelm
parents: 5398
diff changeset
    68
6450
990e6e2dee26 improved usage;
wenzelm
parents: 6417
diff changeset
    69
[ $# -ne 0 -o -n "$NO_OPTS" ] && usage
5362
29ce4f1fe72c install binaries with absolute references to ISABELLE_HOME/bin;
wenzelm
parents:
diff changeset
    70
29ce4f1fe72c install binaries with absolute references to ISABELLE_HOME/bin;
wenzelm
parents:
diff changeset
    71
29ce4f1fe72c install binaries with absolute references to ISABELLE_HOME/bin;
wenzelm
parents:
diff changeset
    72
## main
29ce4f1fe72c install binaries with absolute references to ISABELLE_HOME/bin;
wenzelm
parents:
diff changeset
    73
6459
1d13a86bfa6c fixed ISABELLE_HOME/lib/logo/isabelle-tiny.xpm;
wenzelm
parents: 6450
diff changeset
    74
echo "referring to distribution at $DISTDIR"
6417
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
    75
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
    76
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
    77
# standalone binaries
5362
29ce4f1fe72c install binaries with absolute references to ISABELLE_HOME/bin;
wenzelm
parents:
diff changeset
    78
6082
590f9e3bf4d8 configure AUTO_BASH, AUTO_PERL;
wenzelm
parents: 5404
diff changeset
    79
#set by configure
590f9e3bf4d8 configure AUTO_BASH, AUTO_PERL;
wenzelm
parents: 5404
diff changeset
    80
AUTO_BASH=/bin/bash
5362
29ce4f1fe72c install binaries with absolute references to ISABELLE_HOME/bin;
wenzelm
parents:
diff changeset
    81
6417
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
    82
if [ -n "$BINDIR" ]; then
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
    83
  mkdir -p "$BINDIR" || fail "Bad directory: $BINDIR"
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
    84
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
    85
  for NAME in isatool isabelle Isabelle
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
    86
  do
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
    87
    BIN="$BINDIR/$NAME"
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
    88
    DIST="$DISTDIR/bin/$NAME"
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
    89
    echo "installing $BIN"
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
    90
    echo "#!$AUTO_BASH" >$BIN || fail "Cannot write file: $BIN"
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
    91
    echo >>$BIN
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
    92
    echo "exec $DIST \"\$@\"" >>$BIN
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
    93
    chmod +x $BIN
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
    94
  done
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
    95
fi
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
    96
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
    97
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
    98
# install KDE application icon
5403
aa04ac8bfeae -d DISTDIR;
wenzelm
parents: 5398
diff changeset
    99
6417
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
   100
KDEHOME=~/.kde
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
   101
KDEAPP=~/Desktop/Isabelle.kdelnk
6545
a8a235a8a4a3 improved icons;
wenzelm
parents: 6459
diff changeset
   102
KDEICONS=$KDEHOME/share/icons
6417
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
   103
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
   104
if [ "$KDE" = true ]; then
6545
a8a235a8a4a3 improved icons;
wenzelm
parents: 6459
diff changeset
   105
  mkdir -p $KDEICONS || fail "Bad directory: $KDEICONS"
a8a235a8a4a3 improved icons;
wenzelm
parents: 6459
diff changeset
   106
  mkdir -p $KDEICONS/mini || fail "Bad directory: $KDEICONS/mini"
6417
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
   107
6545
a8a235a8a4a3 improved icons;
wenzelm
parents: 6459
diff changeset
   108
  [ -f $KDEICONS/isabelle.xpm ] || cp $ISABELLE_HOME/lib/icons/isabelle.xpm $KDEICONS || \
a8a235a8a4a3 improved icons;
wenzelm
parents: 6459
diff changeset
   109
    fail "Cannot write file: $KDEICONS/isabelle.xpm"
a8a235a8a4a3 improved icons;
wenzelm
parents: 6459
diff changeset
   110
  [ -f $KDEICONS/mini/isabelle.xpm ] || \
a8a235a8a4a3 improved icons;
wenzelm
parents: 6459
diff changeset
   111
    cp $ISABELLE_HOME/lib/icons/isabelle-mini.xpm $KDEICONS/mini/isabelle.xpm || \
a8a235a8a4a3 improved icons;
wenzelm
parents: 6459
diff changeset
   112
    fail "Cannot write file: $KDEICONS/mini/isabelle.xpm"
6417
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
   113
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
   114
  echo "installing $KDEAPP"
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
   115
  echo "# KDE Config File" >$KDEAPP || fail "Cannot write file: $KDEAPP"
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
   116
  echo "[KDE Desktop Entry]" >>$KDEAPP
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
   117
  echo "Type=Application" >>$KDEAPP
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
   118
  echo "Exec=$DISTDIR/bin/Isabelle" >>$KDEAPP
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
   119
  echo "Icon=isabelle.xpm" >>$KDEAPP
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
   120
  echo "TerminalOptions=" >>$KDEAPP
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
   121
  echo "Path=" >>$KDEAPP
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
   122
  echo "Terminal=0" >>$KDEAPP
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
   123
  echo "Name=Isabelle" >>$KDEAPP
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
   124
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
   125
  type -p kfmclient >/dev/null && kfmclient refreshDesktop
39941b906910 -p option;
wenzelm
parents: 6082
diff changeset
   126
fi