makefile - MAKE:makefile 中的路径操作
问题描述
我的项目目录结构遵循 foo/bar/baz/boo/ 的模式我想找到所有 foo,其中 boo=TEST
mylist=$(dir $(shell find $(PRJPATH) -name TEST))
给了我一个列表$(PRJPATH)/foo/bar/baz/
超出这一点,我无法取得任何进展。如何从 mylist 的每个元素中删除最后两个文件夹名称?
注意我的最终目标是:每个 foo 文件夹都包含一个 makefile,我只想make -C $(FOO folder)
为那些有/ /TEST 子文件夹的文件夹运行
IE
$(mylist):
make -C $@
verify: $(mylist)
junit ....
编辑1
一个典型的文件夹结构可能
uart/basic/verif/TEST spi/feature1/rtl_sim/TEST pcie/dma/regression/TEST
mylist 然后将评估到列表(uart spi pcie)
解决方案
如何从 mylist 的每个元素中删除最后两个文件夹名称?
PRJPATH := /abs/path/to/project/root
mylist := $(PRJPATH)/foo1/bar1/baz1/ $(PRJPATH)/foo2/bar2/baz2/
# use abspath for dirty work
mychop2abs := $(abspath $(addsuffix /../..,$(mylist)))
# could transform to relative paths if needed
mychop2rel := $(patsubst $(PRJPATH)/%,%,$(mychop2abs))
推荐阅读
- java - 什么是正确的正则表达式模式?
- c# - Newtonsoft.Json 在长树中的用法
- pine-script - 如何在较小的时间范围内计算较大时间范围内的指标值
- c# - 如何在 asp.net core 2.0 中更改路由控制器
- react-native - 反应原生视频不显示 iOS 上视频列表的预览
- android - 单击 FB Post 和 FB Messenger 的深层链接未重定向到我的应用
- html - 固定页眉、可滚动内容、固定页脚布局
- git - 如何在 git 中处理不可靠但必要的文件?
- jquery - 为什么我的对象没有隐藏在 scrollTo jQuery 中?
- mysql - 如何在 MySQL 中设置 10 分钟的时间段