]> git.ipfire.org Git - thirdparty/ipxe.git/commitdiff
[build] Allow extra objects to be included in an all-drivers build
authorMichael Brown <mcb30@ipxe.org>
Thu, 17 Dec 2015 13:45:35 +0000 (13:45 +0000)
committerMichael Brown <mcb30@ipxe.org>
Thu, 17 Dec 2015 13:54:51 +0000 (13:54 +0000)
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 <asloma@lenovo.com>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/Makefile.housekeeping

index 1b6f092bbdcc1a884c06193b7029a61fb3ed1379..70ec50c5e730b19b23515930a70d921d4f2566d0 100644 (file)
@@ -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, \