src/Pure/build-jars
changeset 43280 e5dd0ae1b054
parent 42899 108e815fdc8e
child 43285 966f359dc724
equal deleted inserted replaced
43279:6af741899bf6 43280:e5dd0ae1b054
     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