diff options
author | Michael Brown <mcb30@ipxe.org> | 2015-04-22 12:14:16 +0100 |
---|---|---|
committer | Michael Brown <mcb30@ipxe.org> | 2015-04-22 12:21:14 +0100 |
commit | dc19e630cb44b8ee313ac4b3852d92fcdf050dfc (patch) | |
tree | 6a33fb379d43f2b3cbcba8af65dee58d04c4d1dc | |
parent | 2154af0077b9257f63e433ba1f07a84f9ce546eb (diff) | |
download | ipxe-dc19e630cb44b8ee313ac4b3852d92fcdf050dfc.tar.gz |
[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>
-rw-r--r-- | src/Makefile.housekeeping | 9 | ||||
-rw-r--r-- | src/arch/x86/Makefile | 2 | ||||
-rw-r--r-- | src/arch/x86/Makefile.efi | 2 | ||||
-rwxr-xr-x | src/util/parserom.pl | 2 |
4 files changed, 11 insertions, 4 deletions
diff --git a/src/Makefile.housekeeping b/src/Makefile.housekeeping index 51d71f13..be9ad7c4 100644 --- a/src/Makefile.housekeeping +++ b/src/Makefile.housekeeping @@ -915,6 +915,8 @@ BOBJS += $(patsubst %,$(BIN)/%.ids.o,$(DRIVERS)) # bobjs : @$(ECHO) $(BOBJS) +drivers_% : + @$(ECHO) $(DRIVERS_$*) drivers : @$(ECHO) $(DRIVERS) .PHONY : drivers @@ -945,6 +947,12 @@ $(BIN)/NIC : $(AUTO_DEPS) @perl -ne 'chomp; print "$$1\n" if /\# NIC\t(.*)$$/' $^ >> $@ 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 # 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_ROM_NAME : the ROM name (e.g. "dfe538") # -DRIVERS_ipxe = $(DRIVERS) CARD_DRIVER = $(firstword $(DRIVER_$(1)) $(1)) TGT_ELEMENTS = $(subst --, ,$(firstword $(subst ., ,$(notdir $@)))) TGT_ROM_NAME = $(firstword $(TGT_ELEMENTS)) diff --git a/src/arch/x86/Makefile b/src/arch/x86/Makefile index 1751c0cd..98c49b98 100644 --- a/src/arch/x86/Makefile +++ b/src/arch/x86/Makefile @@ -19,4 +19,4 @@ CFLAGS += -DNVALGRIND # Include Hyper-V driver in the all-drivers build # -DRIVERS += hyperv +DRIVERS_hyperv += hyperv diff --git a/src/arch/x86/Makefile.efi b/src/arch/x86/Makefile.efi index 13a69d9f..f73bc7d5 100644 --- a/src/arch/x86/Makefile.efi +++ b/src/arch/x86/Makefile.efi @@ -17,7 +17,7 @@ NON_AUTO_MEDIA += efirom # Include SNP driver in the all-drivers build # -DRIVERS += snp +DRIVERS_net += snp # Rules for building EFI files # diff --git a/src/util/parserom.pl b/src/util/parserom.pl index 678e5c81..2c59f486 100755 --- a/src/util/parserom.pl +++ b/src/util/parserom.pl @@ -161,7 +161,7 @@ sub print_make_rules { unless ( $state->{'is_header_printed'} ) { print "# NIC\t\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"; $state->{'is_header_printed'} = 1; } |