2010-03-31 4 views
1

Пусть говорят, у меня есть следующие папки:Makefiles, слинкован папки и относительные пути

/A/C

/D/B/E

/D/B/C (это symlink to/A/C, созданный ln -s)

Когда один из файлов make-файлов пытается использовать путь /D/B/C/../E, он получает ошибку «без файла или каталога». Я понимаю, почему это происходит;/A/E не существует. Однако я должен использовать символические ссылки для заполнения папки B и создания дерева сборки (очень длинная история).

Любые идеи?

ответ

0

Я не могу представить, как вы построили путь, подобный «D/B/C /../ E», но вы можете выполнить некоторую обработку текста, чтобы очистить его.

Выполнение этого с помощью функций «Сделать» возможно, но вроде уродливое. Я рекомендую делегирование его оболочку:

PATH := $(shell echo $(PATH) | sed '|/[^/]*/\.\.||g') 
0

Я изменил способ связать папки:

/D/B/C теперь ссылка на ../../A/C Insted of/A/C