makefile - Makefile:添加目录并修改路径中的扩展名
问题描述
我有以下两种形式之一的变量(通常反映目标的名称)(带和不带扩展名)
BUILD_DIR/DIR1/DIR2/DIR3/A
BUILD_DIR/DIR1/DIR2/DIR3/B.ext
对于给定变量,我想在DIR0
下面添加另一层()BUILD_DIR
并添加/更改.ext
为.new_ext
.
这样上面的变量都转换为
BUILD_DIR/DIR0/DIR1/DIR2/DIR3/A.new_ext
BUILD_DIR/DIR0/DIR1/DIR2/DIR3/B.new_ext
换句话说DIR0
,在之后BUILD_DIR
添加,如果存在则更改扩展名,如果不存在则添加。
有一个功能Makefile
来完成这项工作也应该足够了。
解决方案
这是一个似乎是迄今为止提出的最短的解决方案
FUNC = $(patsubst $(2)/%,$(2)/$(DIR0)/%.new_ext,$(1:%.ext=%))
$(call FUNC,$(VARIABLE),$(BUILD_DIR))
推荐阅读
- javascript - 尝试使用特定时区转换 UTC 时间
- azure - Azure 表服务:在 Perl 的 REST API 中授权
- javascript - React Link 和 React Route:试图清除页面但正在发生附加?很奇怪
- c - C如何知道某些代码是可执行的(特别是指向函数的指针)?
- spring-boot - 通过 IMAPS 异步读取电子邮件时无法请求 Spring-Boot 的 API
- java - 使用 Hibernate 的 @PostPersist 方法中的外键中不允许使用 NULL
- r - 使用 Rvest 在多个页面上抓取表格
- javascript - 如何将返回分配给前置元素?
- docker - ddev:从另一个容器调用web容器的某个端口的端点
- python - PYTHON:如何在不使用 pandas 或 numpy 的情况下计算数据帧的相关矩阵?