Конечно, это может сработать. Make рассматривает все как файл, включая символическую ссылку. Он проверит, существует ли файл (поскольку вы не указываете никаких предварительных условий, сравнение меток времени отсутствует). В случае с символической ссылкой действительно проверяется то, на что указывает ссылка, конечно, а не сама ссылка.
Вы не показываете, что происходит, когда вы это делаете, но на основе вашего описания происходит одно из двух: либо (а) каталог contrib/openlayers не существует, поэтому команда ln генерирует ошибку и не создает символическую ссылку, поэтому конечно, make попытается воссоздать его при следующем запуске, или (b) ваша символическая ссылка создается неправильно и ни на что не указывает, что означает, что когда make пытается увидеть, существует ли она, она терпит неудачу, и make пытается ее воссоздать.
Если, например, ваш каталог src
является братом вашего каталога contrib
, то ваши символические ссылки просто неверны; ты получишь:
contrib/openlayers/theme -> src/openlayers/theme
Или, когда ядро пытается его разрешить:
contrib/openlayers/src/openlayers/theme
Маловероятно, что вы этого хотите. Я предлагаю вам использовать что-то вроде этого:
contrib/openlayers/theme:
mkdir -p contrib/openlayers
ln -s ../../src/openlayers/theme contrib/openlayers/theme
Затем убедитесь, что созданная символическая ссылка действительно указывает туда, куда вы хотите.
person
MadScientist
schedule
16.04.2012