164 |
164 |
165 # target |
165 # target |
166 |
166 |
167 TARGET="dist/jars/Isabelle-jEdit.jar" |
167 TARGET="dist/jars/Isabelle-jEdit.jar" |
168 |
168 |
|
169 declare -a UPDATED=() |
|
170 |
169 if [ "$BUILD_JARS" = jars_fresh ]; then |
171 if [ "$BUILD_JARS" = jars_fresh ]; then |
170 OUTDATED=true |
172 OUTDATED=true |
171 else |
173 else |
172 OUTDATED=false |
174 OUTDATED=false |
173 if [ ! -e "$TARGET" ]; then |
175 if [ ! -e "$TARGET" ]; then |
174 OUTDATED=true |
176 OUTDATED=true |
175 elif [ -n "$ISABELLE_JEDIT_BUILD_HOME" ]; then |
177 else |
176 for SOURCE in "${SOURCES[@]}" "${RESOURCES[@]}" "$JEDIT_JAR" "${JEDIT_JARS[@]}" |
178 if [ -n "$ISABELLE_JEDIT_BUILD_HOME" ]; then |
|
179 declare -a DEPS=("${SOURCES[@]}" "${RESOURCES[@]}" "$JEDIT_JAR" "${JEDIT_JARS[@]}") |
|
180 else |
|
181 declare -a DEPS=("${SOURCES[@]}" "${RESOURCES[@]}") |
|
182 fi |
|
183 for DEP in "${DEPS[@]}" |
177 do |
184 do |
178 [ ! -e "$SOURCE" ] && fail "Missing file: $SOURCE" |
185 [ ! -e "$DEP" ] && fail "Missing file: $DEP" |
179 [ "$SOURCE" -nt "$TARGET" ] && OUTDATED=true |
186 [ "$DEP" -nt "$TARGET" ] && { |
|
187 OUTDATED=true |
|
188 UPDATED["${#UPDATED[@]}"]="$DEP" |
|
189 } |
180 done |
190 done |
181 fi |
191 fi |
182 fi |
192 fi |
183 |
193 |
184 |
194 |
185 # build |
195 # build |
186 |
196 |
187 if [ "$OUTDATED" = true ] |
197 if [ "$OUTDATED" = true ] |
188 then |
198 then |
|
199 [ "${#UPDATED[@]}" -gt 0 ] && { |
|
200 echo "Rebuild due to updated file dependencies:" |
|
201 for FILE in "${UPDATED[@]}" |
|
202 do |
|
203 echo " $FILE" |
|
204 done |
|
205 } |
|
206 |
189 [ -z "$SCALA_HOME" ] && fail "Unknown SCALA_HOME -- Scala unavailable" |
207 [ -z "$SCALA_HOME" ] && fail "Unknown SCALA_HOME -- Scala unavailable" |
190 |
208 |
191 [ -z "$ISABELLE_JEDIT_BUILD_HOME" ] && \ |
209 [ -z "$ISABELLE_JEDIT_BUILD_HOME" ] && \ |
192 fail "Unknown ISABELLE_JEDIT_BUILD_HOME -- missing auxiliary component" |
210 fail "Unknown ISABELLE_JEDIT_BUILD_HOME -- missing auxiliary component" |
193 |
211 |