src/Pure/build-jars
changeset 43405 723a8af9d3f0
parent 43320 657635e0445a
child 43517 87ec9a1c0f98
--- a/src/Pure/build-jars	Wed Jun 15 21:11:53 2011 +0200
+++ b/src/Pure/build-jars	Wed Jun 15 21:22:51 2011 +0200
@@ -117,18 +117,31 @@
 
 ## main
 
+declare -a UPDATED=()
+
 if [ -n "$FRESH" ]; then
   OUTDATED=true
 else
   OUTDATED=false
-  for SOURCE in "${SOURCES[@]}"
+  for TARGET in "${TARGETS[@]}"
   do
-    [ ! -e "$SOURCE" ] && fail "Missing source file: $SOURCE"
-    for TARGET in "${TARGETS[@]}"
+    [ ! -e "$TARGET" ] && OUTDATED=true
+  done
+  if [ "$OUTDATED" = false ]; then
+    for DEP in "${SOURCES[@]}"
     do
-      [ ! -e "$TARGET" -o "$SOURCE" -nt "$TARGET" ] && OUTDATED=true
+      [ ! -e "$DEP" ] && fail "Missing file: $DEP"
+      UPDATE=""
+      for TARGET in "${TARGETS[@]}"
+      do
+        [ "$DEP" -nt "$TARGET" ] && {
+          OUTDATED=true
+          UPDATE=true
+        }
+      done
+      [ -n "$UPDATE" ] && UPDATED["${#UPDATED[@]}"]="$DEP"
     done
-  done
+  fi
 fi
 
 if [ "$OUTDATED" = true ]
@@ -137,6 +150,14 @@
   echo "### Building Isabelle/Scala layer ..."
   echo "###"
 
+  [ "${#UPDATED[@]}" -gt 0 ] && {
+    echo "Changed files:"
+    for FILE in "${UPDATED[@]}"
+    do
+      echo "  $FILE"
+    done
+  }
+
   rm -rf classes && mkdir classes
   "$SCALA_HOME/bin/scalac" -unchecked -deprecation -d classes -target:jvm-1.5 "${SOURCES[@]}" || \
     fail "Failed to compile sources"