Мне нужно автоматизировать выравнивание переменных в моем Makefile. полный путь к файлу моего Makefile является:Получение базового имени родительского каталога в make-файле
/home/e2/branchname/projectname/modulename/Makefile
В моем Makefile, у меня есть переменная BUILD_DIR
, часть которого должна быть равна branchname
в полном пути.
Так что я сделал это:
BRANCH_NAME= $(shell cd ../.. && basename "$PWD" && cd projectname/modulename)
BUILD_DIR=$(HOME)/$(BRANCH_NAME)/build
Видимо, я ожидал BUILD_DIR
быть ~/branchname/build
здесь, но после того, как я получил make
~/WD/build
вместо этого. Я думаю, что, скорее всего, я ошибся BRANCH_NAME
. Что-то не так с тем, что я сделал? И если да, я бы хотел получить несколько советов о том, как это сделать правильно.
Спасибо.
но, если я использую '$ (PWD)', то дает мне 'modulename' вместо' branchname'. – wangx1ng
@ wangx1ng Я исправил свой ответ, сначала это было неправильно. Сожалею. –
Спасибо, '$$ PWD' сделал работу! решение 'abspath' является случайным в этом конкретном случае и дает мне' ~/branchname/build'. Но я должен был бы получить часть «branchname» здесь, потому что «BRANCH_NAME» также требуется некоторым, где еще в моем Makefile. В этом случае 'abspath' не будет делать трюк. – wangx1ng