2017-03-09 10 views
1

Ich habe ein Projekt mit einer menuconfig Konfiguration für die ich diese verwenden mehrere _defconfig-Dateien als Standardkonfigurationen. Diese defconfig Dateien werden für jedes Projekt gruppiert:Makefile Autokomplettierung für Pfade (z. B. für Defconfig)

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

Nun würde Ich mag eine Make-Datei haben, wo ich die Auto-Vervollständigung für diese defconfigs erhalten:

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

Ich dachte über ein Makefile wie folgt zu schreiben:

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

Derzeit ist das einzige, was ist diese Regel funktioniert, wo ich keine automatische Vervollständigung für den Pfad haben:

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

PS: Autovervollständigung funktioniert für regelmäßige Ziele zu machen.

Antwort

0

Sie können Platzhalter aus diesem Grund verwenden:

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

test: FORCE 
    echo $(DEFCONFIG) 

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

Erster Einsatz der Test-Ziel zu überprüfen, ob Ihre Wildcard funktioniert, dann können Sie mit Auto-Vervollständigung:

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