首页 > 解决方案 > 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来完成这项工作也应该足够了。

标签: makefile

解决方案


这是一个似乎是迄今为止提出的最短的解决方案

FUNC = $(patsubst $(2)/%,$(2)/$(DIR0)/%.new_ext,$(1:%.ext=%))

$(call FUNC,$(VARIABLE),$(BUILD_DIR))

推荐阅读