equal
deleted
inserted
replaced
7 # Requires proper Isabelle settings environment. |
7 # Requires proper Isabelle settings environment. |
8 |
8 |
9 |
9 |
10 ## diagnostics |
10 ## diagnostics |
11 |
11 |
|
12 PRG="$(basename "$0")" |
|
13 |
|
14 function usage() |
|
15 { |
|
16 echo |
|
17 echo "Usage: isabelle $PRG [OPTIONS]" |
|
18 echo |
|
19 echo " Options are:" |
|
20 echo " -f fresh build" |
|
21 echo |
|
22 exit 1 |
|
23 } |
|
24 |
12 function fail() |
25 function fail() |
13 { |
26 { |
14 echo "$1" >&2 |
27 echo "$1" >&2 |
15 exit 2 |
28 exit 2 |
16 } |
29 } |
17 |
30 |
18 [ -z "$ISABELLE_HOME" ] && fail "Missing Isabelle settings environment" |
31 [ -z "$ISABELLE_HOME" ] && fail "Missing Isabelle settings environment" |
19 [ -z "$SCALA_HOME" ] && fail "Unknown SCALA_HOME -- Scala unavailable" |
32 [ -z "$SCALA_HOME" ] && fail "Unknown SCALA_HOME -- Scala unavailable" |
|
33 |
|
34 |
|
35 ## process command line |
|
36 |
|
37 # options |
|
38 |
|
39 FRESH="" |
|
40 |
|
41 while getopts "f" OPT |
|
42 do |
|
43 case "$OPT" in |
|
44 f) |
|
45 FRESH=true |
|
46 ;; |
|
47 \?) |
|
48 usage |
|
49 ;; |
|
50 esac |
|
51 done |
|
52 |
|
53 shift $(($OPTIND - 1)) |
|
54 |
|
55 |
|
56 # args |
|
57 |
|
58 [ "$#" -ne 0 ] && usage |
|
59 |
20 |
60 |
21 |
61 |
22 ## dependencies |
62 ## dependencies |
23 |
63 |
24 declare -a SOURCES=( |
64 declare -a SOURCES=( |
73 declare -a TARGETS=("$PURE_JAR" "$FULL_JAR") |
113 declare -a TARGETS=("$PURE_JAR" "$FULL_JAR") |
74 |
114 |
75 |
115 |
76 ## main |
116 ## main |
77 |
117 |
78 OUTDATED=false |
118 if [ -n "$FRESH" ]; then |
79 |
119 OUTDATED=true |
80 for SOURCE in "${SOURCES[@]}" |
120 else |
81 do |
121 OUTDATED=false |
82 [ ! -e "$SOURCE" ] && fail "Missing source file: $SOURCE" |
122 for SOURCE in "${SOURCES[@]}" |
83 for TARGET in "${TARGETS[@]}" |
|
84 do |
123 do |
85 [ ! -e "$TARGET" -o "$SOURCE" -nt "$TARGET" ] && OUTDATED=true |
124 [ ! -e "$SOURCE" ] && fail "Missing source file: $SOURCE" |
|
125 for TARGET in "${TARGETS[@]}" |
|
126 do |
|
127 [ ! -e "$TARGET" -o "$SOURCE" -nt "$TARGET" ] && OUTDATED=true |
|
128 done |
86 done |
129 done |
87 done |
130 fi |
88 |
131 |
89 if [ "$OUTDATED" = true ] |
132 if [ "$OUTDATED" = true ] |
90 then |
133 then |
91 echo "###" |
134 echo "###" |
92 echo "### Building Isabelle/Scala layer ..." |
135 echo "### Building Isabelle/Scala layer ..." |
94 |
137 |
95 rm -rf classes && mkdir classes |
138 rm -rf classes && mkdir classes |
96 "$SCALA_HOME/bin/scalac" -unchecked -deprecation -d classes -target:jvm-1.5 "${SOURCES[@]}" || \ |
139 "$SCALA_HOME/bin/scalac" -unchecked -deprecation -d classes -target:jvm-1.5 "${SOURCES[@]}" || \ |
97 fail "Failed to compile sources" |
140 fail "Failed to compile sources" |
98 mkdir -p "$TARGET_DIR" || fail "Failed to create directory $TARGET_DIR" |
141 mkdir -p "$TARGET_DIR" || fail "Failed to create directory $TARGET_DIR" |
99 ( |
|
100 cd classes |
|
101 jar cfe "$(jvmpath "$PURE_JAR")" isabelle.GUI_Setup isabelle || \ |
|
102 fail "Failed to produce $PURE_JAR" |
|
103 |
142 |
104 cp "$SCALA_HOME/lib/scala-swing.jar" . |
143 pushd classes |
105 jar xf scala-swing.jar |
|
106 |
144 |
107 cp "$SCALA_HOME/lib/scala-library.jar" "$FULL_JAR" |
145 jar cfe "$(jvmpath "$PURE_JAR")" isabelle.GUI_Setup isabelle || \ |
108 jar ufe "$(jvmpath "$FULL_JAR")" isabelle.GUI_Setup isabelle scala || \ |
146 fail "Failed to produce $PURE_JAR" |
109 fail "Failed to produce $FULL_JAR" |
147 |
110 ) |
148 cp "$SCALA_HOME/lib/scala-swing.jar" . |
|
149 jar xf scala-swing.jar |
|
150 |
|
151 cp "$SCALA_HOME/lib/scala-library.jar" "$FULL_JAR" |
|
152 jar ufe "$(jvmpath "$FULL_JAR")" isabelle.GUI_Setup isabelle scala || \ |
|
153 fail "Failed to produce $FULL_JAR" |
|
154 |
|
155 popd >/dev/null |
|
156 |
111 rm -rf classes |
157 rm -rf classes |
112 fi |
158 fi |