# This fails OUT_FILE/something : mkdir -p $(dirname $@) $(file > $@, X) # This works OUT_OLD/something : mkdir -p $(dirname $@) echo X > $@ bad : OUT_OLD/something good: OUT_FILE/something