如何在 GNU make 中获取 makefile 的父目录的基本名称?

ste*_*nct 5 makefile gnu-make

假设您想要一个 makefile 来生成一个以父目录命名的文件。一种方法是对目标名称进行硬编码,但这不是很“通用”,例如

TARGET := dirname.pdf

$(TARGET): $(TARGET:.pdf=.tex)
    pdflatex $(@:.pdf=.tex)
Run Code Online (Sandbox Code Playgroud)

通过 make 函数检索目录名称会更好。SA 上有关于如何检索 makefile 的完整路径的各种问题(和答案)(例如,/sf/answers/1269593951/)但不是父目录的名称的各种问题(和答案)...

在 GNU make 中最有效和可移植的方法是什么?

Mad*_*ist 5

为什么不直接使用内置的文件名函数

TARGET := $(notdir $(CURDIR))
Run Code Online (Sandbox Code Playgroud)

我想我不确定“父目录”是什么意思;有点模棱两可。带有路径名和您想要的结果的具体示例会让它更容易理解。