当前位置: 代码迷 >> 综合 >> Makefile 中获取自身目录(pwd, lastword,dirname)
  详细解决方案

Makefile 中获取自身目录(pwd, lastword,dirname)

热度:126   发布时间:2023-10-10 00:27:23.0

命令解释

shell pwd

make_dir:=$(shell pwd) // := 的意思是将$(shell pwd) 表示为make_dir,类似于宏定义
make_dir2:=$(pwd) all:@echo $(make_dir)  //有输出@echo $(make_dir2) //无输出

lastword && MAKEFILE_LIST
MAKEFILE_LIST的变量, 它是个列表变量, 在每次make读入一个make文件时, 都把它添加到最后一项,gnu make 有效。
lastword 返回names中的最后一个字符串,names以空格进行分隔 $(lastword foo bar lose) 返回 lose

parent_dir_fname:=$(shell pwd)/$(lastword $(MAKEFILE_LIST))all:@echo $(parent_dir_fname)

Makefile 中获取自身目录(pwd, lastword,dirname)
dirname
dirname命令去除文件名中的非目录部分,仅显示与目录有关的内容。dirname命令读取指定路径名保留最后一个/及其后面的字符,删除其他部分,并写结果到标准输出。如果最后一个/后无字符,dirname 命令使用倒数第二个/,并忽略其后的所有字符。dirname 和 basename 通常在 shell 内部命令替换使用,以指定一个与指定输入文件名略有差异的输出文件名。
https://man.linuxde.net/dirname

dir2:=$(shell pwd)/$(lastword $(MAKEFILE_LIST))
name:=$(lastword $(MAKEFILE_LIST))
dir=$(shell dirname $(dir2))all:@echo $(dir)@echo $(dir2)@echo $(name)

Makefile 中获取自身目录(pwd, lastword,dirname)