mirror of https://github.com/ipxe/ipxe.git
[build] Construct all-drivers list based on driver class
The USB bus drivers (ehci.c and xhci.c) have PCI device ID tables and hence PCI_ROM() lines, but should probably not be included in the all-drivers build on this basis, since they do nothing useful unless a USB network driver is also present. Fix by constructing the all-drivers list based on the driver class (i.e. the portion of the source path immediately after "drivers/"). Signed-off-by: Michael Brown <mcb30@ipxe.org>pull/36/head
parent
2154af0077
commit
dc19e630cb
|
@ -915,6 +915,8 @@ BOBJS += $(patsubst %,$(BIN)/%.ids.o,$(DRIVERS))
|
||||||
#
|
#
|
||||||
bobjs :
|
bobjs :
|
||||||
@$(ECHO) $(BOBJS)
|
@$(ECHO) $(BOBJS)
|
||||||
|
drivers_% :
|
||||||
|
@$(ECHO) $(DRIVERS_$*)
|
||||||
drivers :
|
drivers :
|
||||||
@$(ECHO) $(DRIVERS)
|
@$(ECHO) $(DRIVERS)
|
||||||
.PHONY : drivers
|
.PHONY : drivers
|
||||||
|
@ -945,6 +947,12 @@ $(BIN)/NIC : $(AUTO_DEPS)
|
||||||
@perl -ne 'chomp; print "$$1\n" if /\# NIC\t(.*)$$/' $^ >> $@
|
@perl -ne 'chomp; print "$$1\n" if /\# NIC\t(.*)$$/' $^ >> $@
|
||||||
CLEANUP += $(BIN)/NIC # Doesn't match the $(BIN)/*.* pattern
|
CLEANUP += $(BIN)/NIC # Doesn't match the $(BIN)/*.* pattern
|
||||||
|
|
||||||
|
# Select drivers to be included in the all-drivers build
|
||||||
|
#
|
||||||
|
DRIVERS = $(DRIVERS_net) $(DRIVERS_infiniband) \
|
||||||
|
$(DRIVERS_xen) $(DRIVERS_hyperv)
|
||||||
|
DRIVERS_ipxe = $(DRIVERS)
|
||||||
|
|
||||||
# Analyse a target name (e.g. "bin/dfe538--prism2_pci.rom.tmp") and
|
# Analyse a target name (e.g. "bin/dfe538--prism2_pci.rom.tmp") and
|
||||||
# derive the variables:
|
# derive the variables:
|
||||||
#
|
#
|
||||||
|
@ -953,7 +961,6 @@ CLEANUP += $(BIN)/NIC # Doesn't match the $(BIN)/*.* pattern
|
||||||
# TGT_DRIVERS : the driver for each element (e.g. "rtl8139 prism2_pci")
|
# TGT_DRIVERS : the driver for each element (e.g. "rtl8139 prism2_pci")
|
||||||
# TGT_ROM_NAME : the ROM name (e.g. "dfe538")
|
# TGT_ROM_NAME : the ROM name (e.g. "dfe538")
|
||||||
#
|
#
|
||||||
DRIVERS_ipxe = $(DRIVERS)
|
|
||||||
CARD_DRIVER = $(firstword $(DRIVER_$(1)) $(1))
|
CARD_DRIVER = $(firstword $(DRIVER_$(1)) $(1))
|
||||||
TGT_ELEMENTS = $(subst --, ,$(firstword $(subst ., ,$(notdir $@))))
|
TGT_ELEMENTS = $(subst --, ,$(firstword $(subst ., ,$(notdir $@))))
|
||||||
TGT_ROM_NAME = $(firstword $(TGT_ELEMENTS))
|
TGT_ROM_NAME = $(firstword $(TGT_ELEMENTS))
|
||||||
|
|
|
@ -19,4 +19,4 @@ CFLAGS += -DNVALGRIND
|
||||||
|
|
||||||
# Include Hyper-V driver in the all-drivers build
|
# Include Hyper-V driver in the all-drivers build
|
||||||
#
|
#
|
||||||
DRIVERS += hyperv
|
DRIVERS_hyperv += hyperv
|
||||||
|
|
|
@ -17,7 +17,7 @@ NON_AUTO_MEDIA += efirom
|
||||||
|
|
||||||
# Include SNP driver in the all-drivers build
|
# Include SNP driver in the all-drivers build
|
||||||
#
|
#
|
||||||
DRIVERS += snp
|
DRIVERS_net += snp
|
||||||
|
|
||||||
# Rules for building EFI files
|
# Rules for building EFI files
|
||||||
#
|
#
|
||||||
|
|
|
@ -161,7 +161,7 @@ sub print_make_rules {
|
||||||
unless ( $state->{'is_header_printed'} ) {
|
unless ( $state->{'is_header_printed'} ) {
|
||||||
print "# NIC\t\n";
|
print "# NIC\t\n";
|
||||||
print "# NIC\tfamily\t$state->{family}\n";
|
print "# NIC\tfamily\t$state->{family}\n";
|
||||||
print "DRIVERS += $state->{driver_name}\n";
|
print "DRIVERS_$state->{driver_class} += $state->{driver_name}\n";
|
||||||
print "\n";
|
print "\n";
|
||||||
$state->{'is_header_printed'} = 1;
|
$state->{'is_header_printed'} = 1;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue