2017-03-09 24 views
1

menuconfig構成のプロジェクトがありますが、これにはいくつかの* _defconfigファイルをデフォルト構成として使用しています。これらのdefconfigのファイルは、プロジェクトごとにグループ化されています:パスのMakefile自動補完

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

今、私はこれらの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:オートコンプリートは、通常のmakeターゲットで動作します。

答えて

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/ 
$