Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

IB: Allow build of hw/ and ulp/ subdirectories independently

It is not possible to build only the drivers/infiniband/hw/ (or ulp/)
subdirectory with command such as:

$ make ARCH=x86_64 O=./obj-x86_64/ drivers/infiniband/hw/

This fails with following error messages:

make[2]: Nothing to be done for `all'.
make[2]: Nothing to be done for `relocs'.
CHK include/config/kernel.release
Using /home/ydroneaud/src/linux as source for kernel
GEN /home/ydroneaud/src/linux/obj-x86_64/Makefile
CHK include/generated/uapi/linux/version.h
CHK include/generated/utsrelease.h
CALL /home/ydroneaud/src/linux/scripts/checksyscalls.sh
/home/ydroneaud/src/linux/scripts/Makefile.build:44: /home/ydroneaud/src/linux/drivers/infiniband/hw/Makefile: No such file or directory
make[2]: *** No rule to make target `/home/ydroneaud/src/linux/drivers/infiniband/hw/Makefile'. Stop.
make[1]: *** [drivers/infiniband/hw/] Error 2
make: *** [sub-make] Error 2

This patch creates a Makefile in hw/ and ulp/ and moves each
corresponding parts of drivers/infiniband/Makefile in the new
Makefiles.

It should not break build except if some hw/ drivers or ulp/ were
allowed previously to be built while CONFIG_INFINIBAND is set to 'n',
but according to drivers/infiniband/Kconfig, it's not possible. So it
should be safe to apply.

Signed-off-by: Yann Droneaud <ydroneaud@opteya.com>
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Roland Dreier <roland@purestorage.com>

authored by

Yann Droneaud and committed by
Roland Dreier
729ee4ef d6d211db

+19 -17
+2 -17
drivers/infiniband/Makefile
··· 1 1 obj-$(CONFIG_INFINIBAND) += core/ 2 - obj-$(CONFIG_INFINIBAND_MTHCA) += hw/mthca/ 3 - obj-$(CONFIG_INFINIBAND_IPATH) += hw/ipath/ 4 - obj-$(CONFIG_INFINIBAND_QIB) += hw/qib/ 5 - obj-$(CONFIG_INFINIBAND_EHCA) += hw/ehca/ 6 - obj-$(CONFIG_INFINIBAND_AMSO1100) += hw/amso1100/ 7 - obj-$(CONFIG_INFINIBAND_CXGB3) += hw/cxgb3/ 8 - obj-$(CONFIG_INFINIBAND_CXGB4) += hw/cxgb4/ 9 - obj-$(CONFIG_MLX4_INFINIBAND) += hw/mlx4/ 10 - obj-$(CONFIG_MLX5_INFINIBAND) += hw/mlx5/ 11 - obj-$(CONFIG_INFINIBAND_NES) += hw/nes/ 12 - obj-$(CONFIG_INFINIBAND_OCRDMA) += hw/ocrdma/ 13 - obj-$(CONFIG_INFINIBAND_USNIC) += hw/usnic/ 14 - obj-$(CONFIG_INFINIBAND_IPOIB) += ulp/ipoib/ 15 - obj-$(CONFIG_INFINIBAND_SRP) += ulp/srp/ 16 - obj-$(CONFIG_INFINIBAND_SRPT) += ulp/srpt/ 17 - obj-$(CONFIG_INFINIBAND_ISER) += ulp/iser/ 18 - obj-$(CONFIG_INFINIBAND_ISERT) += ulp/isert/ 2 + obj-$(CONFIG_INFINIBAND) += hw/ 3 + obj-$(CONFIG_INFINIBAND) += ulp/
+12
drivers/infiniband/hw/Makefile
··· 1 + obj-$(CONFIG_INFINIBAND_MTHCA) += mthca/ 2 + obj-$(CONFIG_INFINIBAND_IPATH) += ipath/ 3 + obj-$(CONFIG_INFINIBAND_QIB) += qib/ 4 + obj-$(CONFIG_INFINIBAND_EHCA) += ehca/ 5 + obj-$(CONFIG_INFINIBAND_AMSO1100) += amso1100/ 6 + obj-$(CONFIG_INFINIBAND_CXGB3) += cxgb3/ 7 + obj-$(CONFIG_INFINIBAND_CXGB4) += cxgb4/ 8 + obj-$(CONFIG_MLX4_INFINIBAND) += mlx4/ 9 + obj-$(CONFIG_MLX5_INFINIBAND) += mlx5/ 10 + obj-$(CONFIG_INFINIBAND_NES) += nes/ 11 + obj-$(CONFIG_INFINIBAND_OCRDMA) += ocrdma/ 12 + obj-$(CONFIG_INFINIBAND_USNIC) += usnic/
+5
drivers/infiniband/ulp/Makefile
··· 1 + obj-$(CONFIG_INFINIBAND_IPOIB) += ipoib/ 2 + obj-$(CONFIG_INFINIBAND_SRP) += srp/ 3 + obj-$(CONFIG_INFINIBAND_SRPT) += srpt/ 4 + obj-$(CONFIG_INFINIBAND_ISER) += iser/ 5 + obj-$(CONFIG_INFINIBAND_ISERT) += isert/