5 # build-jars - build Isabelle/Scala
7 # Requires proper Isabelle settings environment.
12 Concurrent/counter.scala
13 Concurrent/future.scala
14 Concurrent/simple_thread.scala
15 Concurrent/volatile.scala
18 General/linear_set.scala
21 General/position.scala
27 General/xml_data.scala
30 Isar/outer_syntax.scala
36 PIDE/isar_document.scala
37 PIDE/markup_tree.scala
41 System/event_bus.scala
42 System/gui_setup.scala
43 System/isabelle_charset.scala
44 System/isabelle_process.scala
45 System/isabelle_syntax.scala
46 System/isabelle_system.scala
49 System/session_manager.scala
50 System/standard_system.scala
51 System/swing_thread.scala
65 PRG="$(basename "$0")"
70 echo "Usage: isabelle $PRG [OPTIONS]"
73 echo " -f fresh build"
84 [ -z "$ISABELLE_HOME" ] && fail "Missing Isabelle settings environment"
85 [ -z "$SCALA_HOME" ] && fail "Unknown SCALA_HOME -- Scala unavailable"
88 ## process command line
106 shift $(($OPTIND - 1))
111 [ "$#" -ne 0 ] && usage
117 TARGET_DIR="$ISABELLE_HOME/lib/classes"
118 TARGET="$TARGET_DIR/ext/Pure.jar"
120 declare -a UPDATED=()
122 if [ -n "$FRESH" ]; then
126 if [ ! -e "$TARGET" ]; then
129 for DEP in "${SOURCES[@]}"
131 [ ! -e "$DEP" ] && fail "Missing file: $DEP"
132 [ "$DEP" -nt "$TARGET" ] && {
134 UPDATED["${#UPDATED[@]}"]="$DEP"
140 if [ "$OUTDATED" = true ]
142 echo "### Building Isabelle/Scala layer ..."
144 [ "${#UPDATED[@]}" -gt 0 ] && {
145 echo "Changed files:"
146 for FILE in "${UPDATED[@]}"
152 rm -rf classes && mkdir classes
153 "$SCALA_HOME/bin/scalac" -unchecked -deprecation -d classes -target:jvm-1.5 "${SOURCES[@]}" || \
154 fail "Failed to compile sources"
155 mkdir -p "$TARGET_DIR/ext" || fail "Failed to create directory $TARGET_DIR/ext"
157 pushd classes >/dev/null
159 CHARSET_SERVICE="META-INF/services/java.nio.charset.spi.CharsetProvider"
160 mkdir -p "$(dirname "$CHARSET_SERVICE")"
161 echo isabelle.Isabelle_Charset_Provider > "$CHARSET_SERVICE"
163 jar cfe "$(jvmpath "$TARGET")" isabelle.GUI_Setup META-INF isabelle || \
164 fail "Failed to produce $TARGET"
166 cp "$SCALA_HOME/lib/scala-swing.jar" "$SCALA_HOME/lib/scala-library.jar" "$TARGET_DIR/ext"