| author | wenzelm | 
| Sat, 29 Aug 2009 14:31:39 +0200 | |
| changeset 32450 | 375db037f4d2 | 
| parent 32390 | 468eff174a77 | 
| child 33286 | 1807921b6268 | 
| permissions | -rw-r--r-- | 
| 
25434
 
746677c843a7
ISABELLE_IDENTIFIER is filled in automatically, not taken from the *long* form of isatool version!
 
wenzelm 
parents: 
21490 
diff
changeset
 | 
1  | 
# -*- shell-script -*- :mode=shellscript:  | 
| 29145 | 2  | 
#  | 
| 9789 | 3  | 
# Author: Markus Wenzel, TU Muenchen  | 
| 
2299
 
ed9720047d53
getsettings: bash source script to augment current env.
 
wenzelm 
parents:  
diff
changeset
 | 
4  | 
#  | 
| 2348 | 5  | 
# getsettings - bash source script to augment current env.  | 
| 
2299
 
ed9720047d53
getsettings: bash source script to augment current env.
 
wenzelm 
parents:  
diff
changeset
 | 
6  | 
|
| 
7770
 
0497323c1f0b
ISABELLE_SETTINGS_PRESENT: avoid multiple invocation;
 
wenzelm 
parents: 
6413 
diff
changeset
 | 
7  | 
if [ -z "$ISABELLE_SETTINGS_PRESENT" ]  | 
| 
 
0497323c1f0b
ISABELLE_SETTINGS_PRESENT: avoid multiple invocation;
 
wenzelm 
parents: 
6413 
diff
changeset
 | 
8  | 
then  | 
| 
 
0497323c1f0b
ISABELLE_SETTINGS_PRESENT: avoid multiple invocation;
 
wenzelm 
parents: 
6413 
diff
changeset
 | 
9  | 
|
| 3185 | 10  | 
set -o allexport  | 
11  | 
||
| 
7770
 
0497323c1f0b
ISABELLE_SETTINGS_PRESENT: avoid multiple invocation;
 
wenzelm 
parents: 
6413 
diff
changeset
 | 
12  | 
ISABELLE_SETTINGS_PRESENT=true  | 
| 
 
0497323c1f0b
ISABELLE_SETTINGS_PRESENT: avoid multiple invocation;
 
wenzelm 
parents: 
6413 
diff
changeset
 | 
13  | 
|
| 15972 | 14  | 
export ISABELLE_HOME  | 
| 12598 | 15  | 
if { echo -n "$ISABELLE_HOME" | fgrep " " >/dev/null; }
 | 
16  | 
then  | 
|
17  | 
echo 1>&2 "### White space in ISABELLE_HOME may cause strange problems later on!"  | 
|
18  | 
echo 1>&2 "### ISABELLE_HOME=\"$ISABELLE_HOME\""  | 
|
19  | 
fi  | 
|
| 2736 | 20  | 
|
| 11553 | 21  | 
#key executables  | 
| 
28499
 
eff93bc3c14f
ISABELLE_PROCESS replaces ISABELLE and ISABELLE_TOOL replaces ISATOOL -- old bindings stay for a while (legacy feature);
 
wenzelm 
parents: 
28055 
diff
changeset
 | 
22  | 
ISABELLE_PROCESS="$ISABELLE_HOME/bin/isabelle-process"  | 
| 
28504
 
7ad7d7d6df47
simplified main Isabelle executables: removed Isabelle and isabelle (replaced by isabelle-process), renamed isatool to isabelle;
 
wenzelm 
parents: 
28499 
diff
changeset
 | 
23  | 
ISABELLE_TOOL="$ISABELLE_HOME/bin/isabelle"  | 
| 
28499
 
eff93bc3c14f
ISABELLE_PROCESS replaces ISABELLE and ISABELLE_TOOL replaces ISATOOL -- old bindings stay for a while (legacy feature);
 
wenzelm 
parents: 
28055 
diff
changeset
 | 
24  | 
#legacy settings  | 
| 
 
eff93bc3c14f
ISABELLE_PROCESS replaces ISABELLE and ISABELLE_TOOL replaces ISATOOL -- old bindings stay for a while (legacy feature);
 
wenzelm 
parents: 
28055 
diff
changeset
 | 
25  | 
ISABELLE="$ISABELLE_PROCESS"  | 
| 
 
eff93bc3c14f
ISABELLE_PROCESS replaces ISABELLE and ISABELLE_TOOL replaces ISATOOL -- old bindings stay for a while (legacy feature);
 
wenzelm 
parents: 
28055 
diff
changeset
 | 
26  | 
ISATOOL="$ISABELLE_TOOL"  | 
| 
2299
 
ed9720047d53
getsettings: bash source script to augment current env.
 
wenzelm 
parents:  
diff
changeset
 | 
27  | 
|
| 
25434
 
746677c843a7
ISABELLE_IDENTIFIER is filled in automatically, not taken from the *long* form of isatool version!
 
wenzelm 
parents: 
21490 
diff
changeset
 | 
28  | 
#Isabelle distribution identifier -- filled in automatically!  | 
| 
 
746677c843a7
ISABELLE_IDENTIFIER is filled in automatically, not taken from the *long* form of isatool version!
 
wenzelm 
parents: 
21490 
diff
changeset
 | 
29  | 
ISABELLE_IDENTIFIER=""  | 
| 21490 | 30  | 
|
| 2643 | 31  | 
#users tend to put strange things in here ...  | 
| 2621 | 32  | 
unset ENV  | 
33  | 
unset BASH_ENV  | 
|
34  | 
||
| 9680 | 35  | 
#support easy settings  | 
36  | 
function choosefrom ()  | 
|
37  | 
{
 | 
|
38  | 
local RESULT=""  | 
|
39  | 
local FILE=""  | 
|
40  | 
||
41  | 
for FILE in "$@"  | 
|
42  | 
do  | 
|
43  | 
[ -z "$RESULT" -a -e "$FILE" ] && RESULT="$FILE"  | 
|
44  | 
done  | 
|
45  | 
||
46  | 
[ -z "$RESULT" ] && RESULT="$FILE"  | 
|
47  | 
echo "$RESULT"  | 
|
48  | 
}  | 
|
49  | 
||
| 27914 | 50  | 
#JVM path wrapper  | 
| 25650 | 51  | 
if [ "$OSTYPE" = cygwin ]; then  | 
| 
27908
 
97f8b7c0f420
refined JVM path wrappers: Isabelle environment holds Unix version of CLASSPATH, javawrapper/scalawrapper convert it back;
 
wenzelm 
parents: 
25650 
diff
changeset
 | 
52  | 
CLASSPATH="$(cygpath -u -p "$CLASSPATH")"  | 
| 
 
97f8b7c0f420
refined JVM path wrappers: Isabelle environment holds Unix version of CLASSPATH, javawrapper/scalawrapper convert it back;
 
wenzelm 
parents: 
25650 
diff
changeset
 | 
53  | 
  function jvmpath() { cygpath -w -p "$@"; }
 | 
| 25650 | 54  | 
else  | 
| 
27908
 
97f8b7c0f420
refined JVM path wrappers: Isabelle environment holds Unix version of CLASSPATH, javawrapper/scalawrapper convert it back;
 
wenzelm 
parents: 
25650 
diff
changeset
 | 
55  | 
  function jvmpath() { echo "$@"; }
 | 
| 25650 | 56  | 
fi  | 
| 
28055
 
eb855c3db657
provide HOME_JVM=HOME to prevent implicit cygpath mangling;
 
wenzelm 
parents: 
27940 
diff
changeset
 | 
57  | 
HOME_JVM="$HOME"  | 
| 25650 | 58  | 
|
| 
27908
 
97f8b7c0f420
refined JVM path wrappers: Isabelle environment holds Unix version of CLASSPATH, javawrapper/scalawrapper convert it back;
 
wenzelm 
parents: 
25650 
diff
changeset
 | 
59  | 
#CLASSPATH convenience  | 
| 
 
97f8b7c0f420
refined JVM path wrappers: Isabelle environment holds Unix version of CLASSPATH, javawrapper/scalawrapper convert it back;
 
wenzelm 
parents: 
25650 
diff
changeset
 | 
60  | 
function classpath () {
 | 
| 
 
97f8b7c0f420
refined JVM path wrappers: Isabelle environment holds Unix version of CLASSPATH, javawrapper/scalawrapper convert it back;
 
wenzelm 
parents: 
25650 
diff
changeset
 | 
61  | 
for X in "$@"  | 
| 
 
97f8b7c0f420
refined JVM path wrappers: Isabelle environment holds Unix version of CLASSPATH, javawrapper/scalawrapper convert it back;
 
wenzelm 
parents: 
25650 
diff
changeset
 | 
62  | 
do  | 
| 
 
97f8b7c0f420
refined JVM path wrappers: Isabelle environment holds Unix version of CLASSPATH, javawrapper/scalawrapper convert it back;
 
wenzelm 
parents: 
25650 
diff
changeset
 | 
63  | 
if [ -z "$CLASSPATH" ]; then  | 
| 
 
97f8b7c0f420
refined JVM path wrappers: Isabelle environment holds Unix version of CLASSPATH, javawrapper/scalawrapper convert it back;
 
wenzelm 
parents: 
25650 
diff
changeset
 | 
64  | 
CLASSPATH="$X"  | 
| 
 
97f8b7c0f420
refined JVM path wrappers: Isabelle environment holds Unix version of CLASSPATH, javawrapper/scalawrapper convert it back;
 
wenzelm 
parents: 
25650 
diff
changeset
 | 
65  | 
else  | 
| 
 
97f8b7c0f420
refined JVM path wrappers: Isabelle environment holds Unix version of CLASSPATH, javawrapper/scalawrapper convert it back;
 
wenzelm 
parents: 
25650 
diff
changeset
 | 
66  | 
CLASSPATH="$CLASSPATH:$X"  | 
| 
 
97f8b7c0f420
refined JVM path wrappers: Isabelle environment holds Unix version of CLASSPATH, javawrapper/scalawrapper convert it back;
 
wenzelm 
parents: 
25650 
diff
changeset
 | 
67  | 
fi  | 
| 
 
97f8b7c0f420
refined JVM path wrappers: Isabelle environment holds Unix version of CLASSPATH, javawrapper/scalawrapper convert it back;
 
wenzelm 
parents: 
25650 
diff
changeset
 | 
68  | 
done  | 
| 
 
97f8b7c0f420
refined JVM path wrappers: Isabelle environment holds Unix version of CLASSPATH, javawrapper/scalawrapper convert it back;
 
wenzelm 
parents: 
25650 
diff
changeset
 | 
69  | 
}  | 
| 
 
97f8b7c0f420
refined JVM path wrappers: Isabelle environment holds Unix version of CLASSPATH, javawrapper/scalawrapper convert it back;
 
wenzelm 
parents: 
25650 
diff
changeset
 | 
70  | 
|
| 
32390
 
468eff174a77
function splitarray: splightly more abstract version that accomodates older bashes;
 
wenzelm 
parents: 
32321 
diff
changeset
 | 
71  | 
#arrays  | 
| 
 
468eff174a77
function splitarray: splightly more abstract version that accomodates older bashes;
 
wenzelm 
parents: 
32321 
diff
changeset
 | 
72  | 
function splitarray ()  | 
| 
 
468eff174a77
function splitarray: splightly more abstract version that accomodates older bashes;
 
wenzelm 
parents: 
32321 
diff
changeset
 | 
73  | 
{
 | 
| 
 
468eff174a77
function splitarray: splightly more abstract version that accomodates older bashes;
 
wenzelm 
parents: 
32321 
diff
changeset
 | 
74  | 
SPLITARRAY=()  | 
| 
 
468eff174a77
function splitarray: splightly more abstract version that accomodates older bashes;
 
wenzelm 
parents: 
32321 
diff
changeset
 | 
75  | 
local IFS="$1"; shift  | 
| 
 
468eff174a77
function splitarray: splightly more abstract version that accomodates older bashes;
 
wenzelm 
parents: 
32321 
diff
changeset
 | 
76  | 
for X in $*  | 
| 
 
468eff174a77
function splitarray: splightly more abstract version that accomodates older bashes;
 
wenzelm 
parents: 
32321 
diff
changeset
 | 
77  | 
do  | 
| 
 
468eff174a77
function splitarray: splightly more abstract version that accomodates older bashes;
 
wenzelm 
parents: 
32321 
diff
changeset
 | 
78  | 
    SPLITARRAY["${#SPLITARRAY[@]}"]="$X"
 | 
| 
 
468eff174a77
function splitarray: splightly more abstract version that accomodates older bashes;
 
wenzelm 
parents: 
32321 
diff
changeset
 | 
79  | 
done  | 
| 
 
468eff174a77
function splitarray: splightly more abstract version that accomodates older bashes;
 
wenzelm 
parents: 
32321 
diff
changeset
 | 
80  | 
}  | 
| 
 
468eff174a77
function splitarray: splightly more abstract version that accomodates older bashes;
 
wenzelm 
parents: 
32321 
diff
changeset
 | 
81  | 
|
| 
32305
 
c5523ded51d9
basic support for components (which imitate the usual Isabelle directory layout);
 
wenzelm 
parents: 
31520 
diff
changeset
 | 
82  | 
#nested components  | 
| 
 
c5523ded51d9
basic support for components (which imitate the usual Isabelle directory layout);
 
wenzelm 
parents: 
31520 
diff
changeset
 | 
83  | 
ISABELLE_COMPONENTS=""  | 
| 
 
c5523ded51d9
basic support for components (which imitate the usual Isabelle directory layout);
 
wenzelm 
parents: 
31520 
diff
changeset
 | 
84  | 
function init_component ()  | 
| 
 
c5523ded51d9
basic support for components (which imitate the usual Isabelle directory layout);
 
wenzelm 
parents: 
31520 
diff
changeset
 | 
85  | 
{
 | 
| 
 
c5523ded51d9
basic support for components (which imitate the usual Isabelle directory layout);
 
wenzelm 
parents: 
31520 
diff
changeset
 | 
86  | 
local COMPONENT="$1"  | 
| 
 
c5523ded51d9
basic support for components (which imitate the usual Isabelle directory layout);
 
wenzelm 
parents: 
31520 
diff
changeset
 | 
87  | 
|
| 
 
c5523ded51d9
basic support for components (which imitate the usual Isabelle directory layout);
 
wenzelm 
parents: 
31520 
diff
changeset
 | 
88  | 
if [ ! -d "$COMPONENT" ]; then  | 
| 
 
c5523ded51d9
basic support for components (which imitate the usual Isabelle directory layout);
 
wenzelm 
parents: 
31520 
diff
changeset
 | 
89  | 
echo >&2 "Bad Isabelle component: $COMPONENT"  | 
| 
 
c5523ded51d9
basic support for components (which imitate the usual Isabelle directory layout);
 
wenzelm 
parents: 
31520 
diff
changeset
 | 
90  | 
exit 2  | 
| 
 
c5523ded51d9
basic support for components (which imitate the usual Isabelle directory layout);
 
wenzelm 
parents: 
31520 
diff
changeset
 | 
91  | 
elif [ -z "$ISABELLE_COMPONENTS" ]; then  | 
| 
 
c5523ded51d9
basic support for components (which imitate the usual Isabelle directory layout);
 
wenzelm 
parents: 
31520 
diff
changeset
 | 
92  | 
ISABELLE_COMPONENTS="$COMPONENT"  | 
| 
 
c5523ded51d9
basic support for components (which imitate the usual Isabelle directory layout);
 
wenzelm 
parents: 
31520 
diff
changeset
 | 
93  | 
else  | 
| 
 
c5523ded51d9
basic support for components (which imitate the usual Isabelle directory layout);
 
wenzelm 
parents: 
31520 
diff
changeset
 | 
94  | 
ISABELLE_COMPONENTS="$ISABELLE_COMPONENTS:$COMPONENT"  | 
| 
 
c5523ded51d9
basic support for components (which imitate the usual Isabelle directory layout);
 
wenzelm 
parents: 
31520 
diff
changeset
 | 
95  | 
fi  | 
| 
 
c5523ded51d9
basic support for components (which imitate the usual Isabelle directory layout);
 
wenzelm 
parents: 
31520 
diff
changeset
 | 
96  | 
if [ -f "$COMPONENT/etc/settings" ]; then  | 
| 
 
c5523ded51d9
basic support for components (which imitate the usual Isabelle directory layout);
 
wenzelm 
parents: 
31520 
diff
changeset
 | 
97  | 
source "$COMPONENT/etc/settings" || exit 2  | 
| 
 
c5523ded51d9
basic support for components (which imitate the usual Isabelle directory layout);
 
wenzelm 
parents: 
31520 
diff
changeset
 | 
98  | 
fi  | 
| 
 
c5523ded51d9
basic support for components (which imitate the usual Isabelle directory layout);
 
wenzelm 
parents: 
31520 
diff
changeset
 | 
99  | 
if [ -f "$COMPONENT/etc/components" ]; then  | 
| 
 
c5523ded51d9
basic support for components (which imitate the usual Isabelle directory layout);
 
wenzelm 
parents: 
31520 
diff
changeset
 | 
100  | 
    {
 | 
| 
 
c5523ded51d9
basic support for components (which imitate the usual Isabelle directory layout);
 
wenzelm 
parents: 
31520 
diff
changeset
 | 
101  | 
while read; do  | 
| 
 
c5523ded51d9
basic support for components (which imitate the usual Isabelle directory layout);
 
wenzelm 
parents: 
31520 
diff
changeset
 | 
102  | 
case "$REPLY" in  | 
| 
 
c5523ded51d9
basic support for components (which imitate the usual Isabelle directory layout);
 
wenzelm 
parents: 
31520 
diff
changeset
 | 
103  | 
\#* | "") ;;  | 
| 
 
c5523ded51d9
basic support for components (which imitate the usual Isabelle directory layout);
 
wenzelm 
parents: 
31520 
diff
changeset
 | 
104  | 
/*) init_component "$REPLY" ;;  | 
| 
 
c5523ded51d9
basic support for components (which imitate the usual Isabelle directory layout);
 
wenzelm 
parents: 
31520 
diff
changeset
 | 
105  | 
*) init_component "$COMPONENT/$REPLY" ;;  | 
| 
 
c5523ded51d9
basic support for components (which imitate the usual Isabelle directory layout);
 
wenzelm 
parents: 
31520 
diff
changeset
 | 
106  | 
esac  | 
| 
 
c5523ded51d9
basic support for components (which imitate the usual Isabelle directory layout);
 
wenzelm 
parents: 
31520 
diff
changeset
 | 
107  | 
done  | 
| 
 
c5523ded51d9
basic support for components (which imitate the usual Isabelle directory layout);
 
wenzelm 
parents: 
31520 
diff
changeset
 | 
108  | 
} < "$COMPONENT/etc/components"  | 
| 
 
c5523ded51d9
basic support for components (which imitate the usual Isabelle directory layout);
 
wenzelm 
parents: 
31520 
diff
changeset
 | 
109  | 
fi  | 
| 
 
c5523ded51d9
basic support for components (which imitate the usual Isabelle directory layout);
 
wenzelm 
parents: 
31520 
diff
changeset
 | 
110  | 
}  | 
| 
 
c5523ded51d9
basic support for components (which imitate the usual Isabelle directory layout);
 
wenzelm 
parents: 
31520 
diff
changeset
 | 
111  | 
|
| 
 
c5523ded51d9
basic support for components (which imitate the usual Isabelle directory layout);
 
wenzelm 
parents: 
31520 
diff
changeset
 | 
112  | 
#main components  | 
| 
 
c5523ded51d9
basic support for components (which imitate the usual Isabelle directory layout);
 
wenzelm 
parents: 
31520 
diff
changeset
 | 
113  | 
init_component "$ISABELLE_HOME"  | 
| 9789 | 114  | 
|
115  | 
[ "$ISABELLE_HOME" -ef "$ISABELLE_HOME_USER" ] && \  | 
|
| 
32321
 
13920dbe4547
more uniform handling of ISABELLE_HOME_USER component;
 
wenzelm 
parents: 
32305 
diff
changeset
 | 
116  | 
  { echo >&2 "### ISABELLE_HOME and ISABELLE_HOME_USER must not be the same directory!"; }
 | 
| 
 
13920dbe4547
more uniform handling of ISABELLE_HOME_USER component;
 
wenzelm 
parents: 
32305 
diff
changeset
 | 
117  | 
[ -d "$ISABELLE_HOME_USER" ] && init_component "$ISABELLE_HOME_USER"  | 
| 
2299
 
ed9720047d53
getsettings: bash source script to augment current env.
 
wenzelm 
parents:  
diff
changeset
 | 
118  | 
|
| 21490 | 119  | 
#ML system identifier  | 
| 6413 | 120  | 
if [ -z "$ML_PLATFORM" ]; then  | 
121  | 
ML_IDENTIFIER="$ML_SYSTEM"  | 
|
122  | 
else  | 
|
123  | 
  ML_IDENTIFIER="${ML_SYSTEM}_${ML_PLATFORM}"
 | 
|
124  | 
fi  | 
|
| 
21468
 
c7892915ed10
add ISABELLE_VERSION to ML_IDENTIFIER, unless this is repository or build;
 
wenzelm 
parents: 
16293 
diff
changeset
 | 
125  | 
|
| 6413 | 126  | 
ISABELLE_OUTPUT="$ISABELLE_OUTPUT/$ML_IDENTIFIER"  | 
| 3118 | 127  | 
|
| 
2299
 
ed9720047d53
getsettings: bash source script to augment current env.
 
wenzelm 
parents:  
diff
changeset
 | 
128  | 
set +o allexport  | 
| 
7770
 
0497323c1f0b
ISABELLE_SETTINGS_PRESENT: avoid multiple invocation;
 
wenzelm 
parents: 
6413 
diff
changeset
 | 
129  | 
|
| 
 
0497323c1f0b
ISABELLE_SETTINGS_PRESENT: avoid multiple invocation;
 
wenzelm 
parents: 
6413 
diff
changeset
 | 
130  | 
fi  |