路径的Makefile自动完成(例如defconfig)
我有一个配置为的项目,我使用几个*\u defconfig文件作为默认配置。这些defconfig文件针对每个项目进行分组:路径的Makefile自动完成(例如defconfig),makefile,autocomplete,Makefile,Autocomplete,我有一个配置为的项目,我使用几个*\u defconfig文件作为默认配置。这些defconfig文件针对每个项目进行分组: / - projects - projectA - configs - 32bit_defconfig - 64bit_defconfig - foo_defconfig - projectB - configs - 32bit_defconfig
/
- projects
- projectA
- configs
- 32bit_defconfig
- 64bit_defconfig
- foo_defconfig
- projectB
- configs
- 32bit_defconfig
- 64bit_defconfig
- bar_defconfig
现在,我想要一个makefile,在这里我可以获得这些DefConfig的自动完成:
$ make projects/pr<TAB>
projects/projectA
projects/projectB
目前唯一有效的是这个规则,我没有路径的自动完成:
# e.g. 'make projects/88000-000/configs/32bit_defconfig'
%_defconfig: FORCE
$(MAKE) -f tools/make/menuconfig.mk $@
PS:自动完成适用于常规生成目标。出于以下原因,您可以使用通配符:
DEFCONFIGS=$(wildcard projects/*/configs/*_defconfig)
test: FORCE
echo $(DEFCONFIG)
$(DEFCONFIGS): FORCE
$(MAKE) -f tools/make/menuconfig.mk $@
首先使用测试目标检查通配符是否正常工作,然后可以使用自动完成:
$ make <TAB>
all default install_toolchain
buildroot-menuconfig FORCE menuconfig
clean install projects/
$ make projects/<TAB>
92107-110/ BananaPro/
$
$make
所有默认安装工具链
buildroot菜单配置强制菜单配置
清洁安装项目/
$make项目/
92107-110/班纳帕罗/
$
$ make <TAB>
all default install_toolchain
buildroot-menuconfig FORCE menuconfig
clean install projects/
$ make projects/<TAB>
92107-110/ BananaPro/
$