_echo_debug_message "$target dependency check:"
# If any dependency does not exist, the target is out of date.
LANG=C stat -c%Y $(LANG=C cut -f1 "$REDO_DIR/$target".dependencies) > \
- "$REDO_DIR/".dependencies.ctimes 2>&- || return 1
- exec 3< "$REDO_DIR/".dependencies.ctimes
+ "$REDO_DIR/$target".dependencies.ctimes 2>&- || return 1
+ exec 3< "$REDO_DIR/$target".dependencies.ctimes
exec 4< "$REDO_DIR/$target".dependencies
while read ctime_actual <&3 && read dependency ctime_stored md5sum_stored <&4; do
# If a .always file exists, the dependency is out of date.
[ -e "$target.do" ] || _find_dofile "$target"
if [ ! -e "$dofile" ]; then
# If .do file does not exist and target exists, it is a source file.
- if [ -e "$target" ]; then
+ if [ -e "$target_abspath" ]; then
+ _add_dependency "$REDO_TARGET" "$target_abspath"
+ _add_ctime_md5sum "$target_abspath"
return 0
# If .do file does not exist and target does not exist, stop.
else
fi
printf '%sredo %s%s%s%s%s\n' \
"$green" "$REDO_DEPTH" "$bold" "$target_relpath" "$plain" >&2
- ( _run_dofile "$target" "$base" "$tmp.tmp" )
+ ( _run_dofile "$target" "${base##*/}" "$tmp.tmp" )
rv="$?"
# Add non existing .do file to non-existence dependencies so
# target is built when .do file in question is created.
"$REDO_DIR/$target_abspath".dependencies_ne >&2
fi
# Some do files (like all.do) do not usually generate output.
- if [ -e "$target" ]; then
+ if [ -e "$target_abspath" ]; then
# Record dependency on parent target.
_add_dependency "$REDO_TARGET" "$target_abspath"
_add_ctime_md5sum "$target_abspath"