如何获取Makefile中当前目录的父目录的名称?
假设我在如何获取Makefile中当前目录的父目录的名称?,makefile,directory,compilation,Makefile,Directory,Compilation,假设我在/myPDir/myCurrDir中有Makefile。在Makefile中,我可以检索当前目录的名称,如下所示: CURR_DIR_NAME := $(notdir $(CURDIR)) $(warning CURR_DIR_NAME IS $(CURR_DIR_NAME)) 或 两种情况下的第二行都将打印myCurrDir 现在我想获取父目录的名称,即myPDir。我尝试使用而不是$(CURDIR),$(CURDIR)/…,但它不起作用并打印… 如何引用父目录的名称,即在示例中获
/myPDir/myCurrDir
中有Makefile
。在Makefile
中,我可以检索当前目录的名称,如下所示:
CURR_DIR_NAME := $(notdir $(CURDIR))
$(warning CURR_DIR_NAME IS $(CURR_DIR_NAME))
或
两种情况下的第二行都将打印myCurrDir
现在我想获取父目录的名称,即myPDir
。我尝试使用而不是$(CURDIR)
,$(CURDIR)/…
,但它不起作用并打印…
如何引用父目录的名称,即在示例中获取字符串
myCurrDir
,作为Makefile
中的变量?像notdir
或shell的basedir
这样的命令都是简单的文本字符串解析器。因此,如果您说basename foo/。
它只返回。
,因为这是路径上的最后一个元素
如果需要父目录,有多种方法可以实现。一种简单的方法是使用makeabspath
函数将相对路径转换为绝对路径:$(abspath/foo/bar/biz/)
将返回/foo/bar
。因此,您可以使用:
PARENT = $(notdir $(abspath $(CURDIR)/..))
PARENT = $(notdir $(abspath $(CURDIR)/..))