From 91dd5524b762e2438cc6a949dd1440ee0998f5ef Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Thu, 17 Dec 2015 13:45:35 +0000 Subject: [build] Allow extra objects to be included in an all-drivers build The build system allows for additional drivers (or other objects) to be specified using build targets such as make bin/intel--realtek.usb make bin/8086100e--8086100f.mrom This currently fails if the base target is the "bin/ipxe.*" all-drivers target, e.g. make bin/ipxe--acm.usb Fix the build target parsing logic to allow additional drivers (or other objects) to be included on top of the base all-drivers target. This can be used to include USB network card drivers, which are not yet included by default in the all-drivers build. Reported-by: Andrew Sloma Signed-off-by: Michael Brown --- src/Makefile.housekeeping | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/Makefile.housekeeping') diff --git a/src/Makefile.housekeeping b/src/Makefile.housekeeping index 1b6f092b..70ec50c5 100644 --- a/src/Makefile.housekeeping +++ b/src/Makefile.housekeeping @@ -960,13 +960,13 @@ DRIVERS_ipxe = $(DRIVERS_net) $(DRIVERS_infiniband) \ # TGT_DRIVERS : the driver for each element (e.g. "rtl8139 prism2_pci") # TGT_ROM_NAME : the ROM name (e.g. "dfe538") # -CARD_DRIVER = $(firstword $(DRIVER_$(1)) $(1)) TGT_ELEMENTS = $(subst --, ,$(firstword $(subst ., ,$(notdir $@)))) TGT_ROM_NAME = $(firstword $(TGT_ELEMENTS)) -TGT_DRIVERS = $(strip $(if $(DRIVERS_$(TGT_ROM_NAME)), \ - $(DRIVERS_$(TGT_ROM_NAME)), \ - $(foreach TGT_ELEMENT,$(TGT_ELEMENTS), \ - $(call CARD_DRIVER,$(TGT_ELEMENT))) )) +TGT_DRIVERS = $(strip $(foreach TGT_ELEMENT,$(TGT_ELEMENTS), \ + $(if $(DRIVERS_$(TGT_ELEMENT)), \ + $(DRIVERS_$(TGT_ELEMENT)), \ + $(firstword $(DRIVER_$(TGT_ELEMENT)) \ + $(TGT_ELEMENT))))) TGT_PREFIX_NAME = $(word 2,$(subst ., ,$(notdir $@))) TGT_PREFIX = $(strip $(if $(filter rom,$(TGT_PREFIX_NAME)), \ $(ROM_TYPE_$(TGT_ROM_NAME))rom, \ -- cgit v1.2.3-55-g7522