вы переходите libmy.a
в каталог lib
. в следующий раз, когда вы запустите make, он будет искать libmy.a
, а поскольку он не существует, он будет собран.
make всегда будет искать цели (libmy.a
в вашем случае) в текущем каталоге,поэтому, если вы перемещаете файл в другое место, make подумает, что файл не был создан.
Практическое правило таково: рецепт для цели всегда должен создавать файл, названный целью.
возможные решения:
- не перемещать файл
- квалифицировать имя цели с каталогом (
NAME = lib/libmy.a
) (возможно, самый простой в вашем случае) - createфиктивный файл вместо перемещенного файла для make, чтобы увидеть, что файл существует. но это сложно и склонно к недоразумениям, если не сделано хорошо.