2017-03-09 67 views
1

我有一個menuconfig配置的項目,爲此我使用了幾個* _defconfig文件作爲默認配置。這些defconfig文件編組每個項目:Makefile自動完成路徑(例如defconfig)

/ 
    - projects 
    - projectA 
     - configs 
     - 32bit_defconfig 
     - 64bit_defconfig 
     - foo_defconfig 
    - projectB 
     - configs 
     - 32bit_defconfig 
     - 64bit_defconfig 
     - bar_defconfig 

現在我想有一個makefile,在這裏我得到了這些defconfigs自動完成:

$ make projects/pr<TAB> 
projects/projectA 
projects/projectB 

我想過寫一個Makefile是這樣的:

projects/%/configs/%_defconfig: FORCE 
    echo [email protected] 

目前,這是工作的唯一的事情就是這個規則,我在那裏有路徑中沒有自動完成:

# e.g. 'make projects/88000-000/configs/32bit_defconfig' 
%_defconfig: FORCE 
    $(MAKE) -f tools/make/menuconfig.mk [email protected] 

PS:Autocompletion適用於定期製作目標。

回答

0

可以使用通配符這個原因:

DEFCONFIGS=$(wildcard projects/*/configs/*_defconfig) 

test: FORCE 
    echo $(DEFCONFIG) 

$(DEFCONFIGS): FORCE 
    $(MAKE) -f tools/make/menuconfig.mk [email protected] 

首先使用被測試,以檢查您的通配符是否工作,那麼你可以使用自動完成:

$ make <TAB> 
all      default     install_toolchain 
buildroot-menuconfig  FORCE     menuconfig 
clean     install     projects/ 
$ make projects/<TAB> 
92107-110/ BananaPro/ 
$