繁体   English   中英

如何获取Makefile中当前目录的父目录名称?

[英]How to get the name the parent directory of the current directory within a Makefile?

假设我在/myPDir/myCurrDir Makefile Makefile ,我可以将当前目录的名称检索为:

CURR_DIR_NAME  := $(notdir $(CURDIR))
$(warning CURR_DIR_NAME IS $(CURR_DIR_NAME))

或者

CURR_DIR_NAME  := $(shell basename $(CURDIR))
$(warning CURR_DIR_NAME IS $(CURR_DIR_NAME))

两种情况下的第二行都将打印myCurrDir

现在我想获取父目录的名称,即myPDir 我尝试使用而不是$(CURDIR)$(CURDIR)/..但它不起作用并打印...

如何引用父目录的名称,即在示例中获取字符串myCurrDir作为Makefile中的变量?

notdir或 shell 的basedir等命令是简单的文本字符串解析器。 因此,如果您说basename foo/..它只返回..因为这是路径上的最后一个元素。

如果你想要父目录,有多种方法可以做到这一点。 一种简单的方法是使用 make abspath function 将相对路径转换为绝对路径: $(abspath /foo/bar/biz/..)将返回/foo/bar 因此,您可以使用:

PARENT = $(notdir $(abspath $(CURDIR)/..))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM