2014-09-09 2 views
0

Ошибка при экспорте переменной в мой make-файл. У меня есть Makefile.mk в каталоге /home/user/sarwan/DMAgent.Экспортировать переменную в Makefile

Там я следующее заявление:

export VZW_BASE_DIR=$(PWD) 

Тогда у меня есть еще один Makefile в /home/user/sarwan/DMAgent/agent каталоге, который содержит:

include ../Makefile.mk 
export VZW_BASE_DIR 

проблема, я ожидаю VZW_BASE_DIR быть /home/user/sarwan/DMAgent а его принятие в качестве /home/user/sarwan/DMAgent/agent ,

Как я могу написать так, чтобы он работал так, как ожидалось?

ответ

1

PWD дает вам текущий рабочий каталог, а не каталог, в который входит данный файл.

Поскольку вы уже закодировав относительные пути (см include заявления), я не вижу никакой проблемы с продолжает делать это по другим причинам. Во-первых, Makefile в каталоге сборки:

export REL_DIR=.. 
include $(REL_DIR)/Makefile.mk 

Затем в вашем включены Makefile:

export VZW_BASE_DIR=$(PWD)/$(REL_DIR) 

Это ограничивает сферу изменений, которые вы должны сделать в одном месте, настройки REL_DIR. Затем он использует эту переменную для ссылки на прилагаемый файл и устанавливает базовый каталог.

+0

не работает. Он говорит, что рекурсивная переменная 'VZW_BASE_DIR 'ссылается сама (в конце концов). Стоп. – Sarwan

+0

@Sarwan, проверьте обновление, которое должно избавиться от бесконечной рекурсии. – paxdiablo

+0

, тогда мне не нужно будет включать файл Makefile.mk. – Sarwan

Смежные вопросы