author | Alexander Kargl <akargl@brgkepler.net> |
Fri, 22 Jul 2011 17:09:35 +0200 | |
branch | decompose-isar |
changeset 42171 | 4156f9e75464 |
parent 42149 | 87fd7d13e814 |
child 48756 | 7443906996a8 |
permissions | -rw-r--r-- |
wenzelm@25434 | 1 |
# -*- shell-script -*- :mode=shellscript: |
wenzelm@29145 | 2 |
# |
wenzelm@9789 | 3 |
# Author: Markus Wenzel, TU Muenchen |
wenzelm@2299 | 4 |
# |
wenzelm@2348 | 5 |
# getsettings - bash source script to augment current env. |
wenzelm@2299 | 6 |
|
wenzelm@7770 | 7 |
if [ -z "$ISABELLE_SETTINGS_PRESENT" ] |
wenzelm@7770 | 8 |
then |
wenzelm@7770 | 9 |
|
wenzelm@3185 | 10 |
set -o allexport |
wenzelm@3185 | 11 |
|
wenzelm@7770 | 12 |
ISABELLE_SETTINGS_PRESENT=true |
wenzelm@7770 | 13 |
|
wenzelm@15972 | 14 |
export ISABELLE_HOME |
wenzelm@12598 | 15 |
if { echo -n "$ISABELLE_HOME" | fgrep " " >/dev/null; } |
wenzelm@12598 | 16 |
then |
wenzelm@12598 | 17 |
echo 1>&2 "### White space in ISABELLE_HOME may cause strange problems later on!" |
wenzelm@12598 | 18 |
echo 1>&2 "### ISABELLE_HOME=\"$ISABELLE_HOME\"" |
wenzelm@12598 | 19 |
fi |
wenzelm@2736 | 20 |
|
wenzelm@11553 | 21 |
#key executables |
wenzelm@28499 | 22 |
ISABELLE_PROCESS="$ISABELLE_HOME/bin/isabelle-process" |
wenzelm@28504 | 23 |
ISABELLE_TOOL="$ISABELLE_HOME/bin/isabelle" |
wenzelm@2299 | 24 |
|
wenzelm@34254 | 25 |
function isabelle () |
wenzelm@34254 | 26 |
{ |
wenzelm@34254 | 27 |
"$ISABELLE_TOOL" "$@" |
wenzelm@34254 | 28 |
} |
wenzelm@34254 | 29 |
|
wenzelm@36196 | 30 |
#platform |
wenzelm@36196 | 31 |
. "$ISABELLE_HOME/lib/scripts/isabelle-platform" |
wenzelm@36196 | 32 |
|
wenzelm@25434 | 33 |
#Isabelle distribution identifier -- filled in automatically! |
akargl@42171 | 34 |
ISABELLE_ID="" |
akargl@42171 | 35 |
ISABELLE_IDENTIFIER="" |
wenzelm@21490 | 36 |
|
wenzelm@41759 | 37 |
#sometimes users put strange things in here ... |
wenzelm@2621 | 38 |
unset ENV |
wenzelm@2621 | 39 |
unset BASH_ENV |
wenzelm@2621 | 40 |
|
wenzelm@9680 | 41 |
#support easy settings |
wenzelm@9680 | 42 |
function choosefrom () |
wenzelm@9680 | 43 |
{ |
wenzelm@9680 | 44 |
local RESULT="" |
wenzelm@9680 | 45 |
local FILE="" |
wenzelm@9680 | 46 |
|
wenzelm@9680 | 47 |
for FILE in "$@" |
wenzelm@9680 | 48 |
do |
wenzelm@9680 | 49 |
[ -z "$RESULT" -a -e "$FILE" ] && RESULT="$FILE" |
wenzelm@9680 | 50 |
done |
wenzelm@9680 | 51 |
|
wenzelm@9680 | 52 |
[ -z "$RESULT" ] && RESULT="$FILE" |
wenzelm@9680 | 53 |
echo "$RESULT" |
wenzelm@9680 | 54 |
} |
wenzelm@9680 | 55 |
|
wenzelm@27914 | 56 |
#JVM path wrapper |
wenzelm@25650 | 57 |
if [ "$OSTYPE" = cygwin ]; then |
wenzelm@27908 | 58 |
CLASSPATH="$(cygpath -u -p "$CLASSPATH")" |
wenzelm@41871 | 59 |
function jvmpath() { cygpath -C UTF8 -w -p "$@"; } |
wenzelm@36194 | 60 |
THIS_CYGWIN="$(jvmpath "/")" |
wenzelm@25650 | 61 |
else |
wenzelm@27908 | 62 |
function jvmpath() { echo "$@"; } |
wenzelm@25650 | 63 |
fi |
wenzelm@28055 | 64 |
HOME_JVM="$HOME" |
wenzelm@25650 | 65 |
|
wenzelm@41862 | 66 |
#shared library convenience |
wenzelm@41862 | 67 |
function librarypath () { |
wenzelm@41862 | 68 |
for X in "$@" |
wenzelm@41862 | 69 |
do |
wenzelm@41862 | 70 |
case "$ISABELLE_PLATFORM" in |
wenzelm@41862 | 71 |
*-darwin) |
wenzelm@41862 | 72 |
if [ -z "$DYLD_LIBRARY_PATH" ]; then |
wenzelm@41862 | 73 |
DYLD_LIBRARY_PATH="$X" |
wenzelm@41862 | 74 |
else |
wenzelm@41862 | 75 |
DYLD_LIBRARY_PATH="$X:$DYLD_LIBRARY_PATH" |
wenzelm@41862 | 76 |
fi |
wenzelm@41862 | 77 |
export DYLD_LIBRARY_PATH |
wenzelm@41862 | 78 |
;; |
wenzelm@41862 | 79 |
*) |
wenzelm@41862 | 80 |
if [ -z "$LD_LIBRARY_PATH" ]; then |
wenzelm@41862 | 81 |
LD_LIBRARY_PATH="$X" |
wenzelm@41862 | 82 |
else |
wenzelm@41862 | 83 |
LD_LIBRARY_PATH="$X:$LD_LIBRARY_PATH" |
wenzelm@41862 | 84 |
fi |
wenzelm@41862 | 85 |
export LD_LIBRARY_PATH |
wenzelm@41862 | 86 |
;; |
wenzelm@41862 | 87 |
esac |
wenzelm@41862 | 88 |
done |
wenzelm@41862 | 89 |
} |
wenzelm@41862 | 90 |
|
wenzelm@27908 | 91 |
#CLASSPATH convenience |
wenzelm@27908 | 92 |
function classpath () { |
wenzelm@27908 | 93 |
for X in "$@" |
wenzelm@27908 | 94 |
do |
wenzelm@27908 | 95 |
if [ -z "$CLASSPATH" ]; then |
wenzelm@27908 | 96 |
CLASSPATH="$X" |
wenzelm@27908 | 97 |
else |
wenzelm@41863 | 98 |
CLASSPATH="$X:$CLASSPATH" |
wenzelm@27908 | 99 |
fi |
wenzelm@27908 | 100 |
done |
wenzelm@40826 | 101 |
export CLASSPATH |
wenzelm@27908 | 102 |
} |
wenzelm@27908 | 103 |
|
wenzelm@32390 | 104 |
#arrays |
wenzelm@32390 | 105 |
function splitarray () |
wenzelm@32390 | 106 |
{ |
wenzelm@32390 | 107 |
SPLITARRAY=() |
wenzelm@32390 | 108 |
local IFS="$1"; shift |
wenzelm@32390 | 109 |
for X in $* |
wenzelm@32390 | 110 |
do |
wenzelm@32390 | 111 |
SPLITARRAY["${#SPLITARRAY[@]}"]="$X" |
wenzelm@32390 | 112 |
done |
wenzelm@32390 | 113 |
} |
wenzelm@32390 | 114 |
|
wenzelm@32305 | 115 |
#nested components |
wenzelm@32305 | 116 |
ISABELLE_COMPONENTS="" |
wenzelm@32305 | 117 |
function init_component () |
wenzelm@32305 | 118 |
{ |
wenzelm@32305 | 119 |
local COMPONENT="$1" |
wenzelm@40828 | 120 |
case "$COMPONENT" in |
wenzelm@40828 | 121 |
/*) ;; |
wenzelm@40828 | 122 |
*) |
wenzelm@40828 | 123 |
echo >&2 "Absolute component path required: \"$COMPONENT\"" |
wenzelm@40828 | 124 |
exit 2 |
wenzelm@40828 | 125 |
;; |
wenzelm@40828 | 126 |
esac |
wenzelm@32305 | 127 |
|
wenzelm@32305 | 128 |
if [ ! -d "$COMPONENT" ]; then |
wenzelm@33295 | 129 |
echo >&2 "Bad Isabelle component: \"$COMPONENT\"" |
wenzelm@32305 | 130 |
exit 2 |
wenzelm@32305 | 131 |
elif [ -z "$ISABELLE_COMPONENTS" ]; then |
wenzelm@32305 | 132 |
ISABELLE_COMPONENTS="$COMPONENT" |
wenzelm@32305 | 133 |
else |
wenzelm@32305 | 134 |
ISABELLE_COMPONENTS="$ISABELLE_COMPONENTS:$COMPONENT" |
wenzelm@32305 | 135 |
fi |
wenzelm@32305 | 136 |
if [ -f "$COMPONENT/etc/settings" ]; then |
wenzelm@32305 | 137 |
source "$COMPONENT/etc/settings" || exit 2 |
wenzelm@32305 | 138 |
fi |
wenzelm@32305 | 139 |
if [ -f "$COMPONENT/etc/components" ]; then |
wenzelm@32305 | 140 |
{ |
wenzelm@33512 | 141 |
while { unset REPLY; read -r; test "$?" = 0 -o -n "$REPLY"; } |
wenzelm@33512 | 142 |
do |
wenzelm@32305 | 143 |
case "$REPLY" in |
wenzelm@32305 | 144 |
\#* | "") ;; |
wenzelm@32305 | 145 |
/*) init_component "$REPLY" ;; |
wenzelm@32305 | 146 |
*) init_component "$COMPONENT/$REPLY" ;; |
wenzelm@32305 | 147 |
esac |
wenzelm@32305 | 148 |
done |
wenzelm@33295 | 149 |
} < "$COMPONENT/etc/components" |
wenzelm@32305 | 150 |
fi |
wenzelm@32305 | 151 |
} |
wenzelm@32305 | 152 |
|
wenzelm@32305 | 153 |
#main components |
wenzelm@32305 | 154 |
init_component "$ISABELLE_HOME" |
wenzelm@9789 | 155 |
|
wenzelm@9789 | 156 |
[ "$ISABELLE_HOME" -ef "$ISABELLE_HOME_USER" ] && \ |
wenzelm@32321 | 157 |
{ echo >&2 "### ISABELLE_HOME and ISABELLE_HOME_USER must not be the same directory!"; } |
wenzelm@32321 | 158 |
[ -d "$ISABELLE_HOME_USER" ] && init_component "$ISABELLE_HOME_USER" |
wenzelm@2299 | 159 |
|
wenzelm@21490 | 160 |
#ML system identifier |
wenzelm@6413 | 161 |
if [ -z "$ML_PLATFORM" ]; then |
wenzelm@6413 | 162 |
ML_IDENTIFIER="$ML_SYSTEM" |
wenzelm@6413 | 163 |
else |
wenzelm@6413 | 164 |
ML_IDENTIFIER="${ML_SYSTEM}_${ML_PLATFORM}" |
wenzelm@6413 | 165 |
fi |
wenzelm@21468 | 166 |
|
wenzelm@6413 | 167 |
ISABELLE_OUTPUT="$ISABELLE_OUTPUT/$ML_IDENTIFIER" |
wenzelm@3118 | 168 |
|
wenzelm@2299 | 169 |
set +o allexport |
wenzelm@7770 | 170 |
|
wenzelm@7770 | 171 |
fi |