From e8333057894bb0aef8275990410dc507102e6d2f Mon Sep 17 00:00:00 2001 From: Hans Petter Selasky Date: Fri, 24 Nov 2017 09:01:08 +0000 Subject: [PATCH] Simplify the build dependencies when building the OFED libraries. Suggested by: bdrewery@ Sponsored by: Mellanox Technologies --- Makefile.inc1 | 37 +++++++++----------------- contrib/ofed/Makefile | 47 ++++----------------------------- contrib/ofed/usr.bin/Makefile | 11 ++++++++ contrib/ofed/usr.lib/0/Makefile | 8 ++++++ contrib/ofed/usr.lib/1/Makefile | 9 +++++++ contrib/ofed/usr.lib/2/Makefile | 14 ++++++++++ contrib/ofed/usr.lib/3/Makefile | 9 +++++++ contrib/ofed/usr.lib/Makefile | 8 ++++++ 8 files changed, 76 insertions(+), 67 deletions(-) create mode 100644 contrib/ofed/usr.bin/Makefile create mode 100644 contrib/ofed/usr.lib/0/Makefile create mode 100644 contrib/ofed/usr.lib/1/Makefile create mode 100644 contrib/ofed/usr.lib/2/Makefile create mode 100644 contrib/ofed/usr.lib/3/Makefile create mode 100644 contrib/ofed/usr.lib/Makefile diff --git a/Makefile.inc1 b/Makefile.inc1 index 62a019b8b2e0..3d9171815d8b 100644 --- a/Makefile.inc1 +++ b/Makefile.inc1 @@ -2410,33 +2410,20 @@ _lib_libradius= lib/libradius .endif .if ${MK_OFED} != "no" +# +# The OFED libraries are built in four steps +# as reflected below, due to interdependencies. +# _ofed_lib= \ -contrib/ofed/include \ -contrib/ofed/libcxgb4 \ -contrib/ofed/libibcm \ -contrib/ofed/libibmad \ -contrib/ofed/libibnetdisc \ -contrib/ofed/libibumad \ -contrib/ofed/libibverbs \ -contrib/ofed/libmlx4 \ -contrib/ofed/libmlx5 \ -contrib/ofed/librdmacm \ -contrib/ofed/opensm/complib \ -contrib/ofed/opensm/libopensm \ -contrib/ofed/opensm/libvendor +contrib/ofed/usr.lib/0 \ +contrib/ofed/usr.lib/1 \ +contrib/ofed/usr.lib/2 \ +contrib/ofed/usr.lib/3 -contrib/ofed/libcxgb4__L: contrib/ofed/libibverbs__L lib/libthr__L contrib/ofed/include__L -contrib/ofed/libibcm__L: contrib/ofed/libibverbs__L contrib/ofed/include__L -contrib/ofed/libibmad__L: contrib/ofed/libibumad__L contrib/ofed/include__L -contrib/ofed/libibnetdisc__L: contrib/ofed/opensm/complib__L contrib/ofed/libibmad__L contrib/ofed/libibumad__L contrib/ofed/include__L -contrib/ofed/libibumad__L: contrib/ofed/include__L -contrib/ofed/libibverbs__L: contrib/ofed/include__L -contrib/ofed/libmlx4__L: contrib/ofed/libibverbs__L lib/libthr__L contrib/ofed/include__L -contrib/ofed/libmlx5__L: contrib/ofed/libibverbs__L lib/libthr__L contrib/ofed/include__L -contrib/ofed/librdmacm__L: contrib/ofed/libibverbs__L contrib/ofed/include__L -contrib/ofed/opensm/complib__L: lib/libthr__L contrib/ofed/include__L -contrib/ofed/opensm/libopensm__L: lib/libthr__L contrib/ofed/include__L -contrib/ofed/opensm/libvendor__L: contrib/ofed/libibumad__L lib/libthr__L contrib/ofed/include__L +contrib/ofed/usr.lib/0__L: lib/libthr__L +contrib/ofed/usr.lib/1__L: contrib/ofed/usr.lib/0__L +contrib/ofed/usr.lib/2__L: contrib/ofed/usr.lib/1__L +contrib/ofed/usr.lib/3__L: contrib/ofed/usr.lib/2__L .endif .if ${MK_CASPER} != "no" diff --git a/contrib/ofed/Makefile b/contrib/ofed/Makefile index 3e987ab499b7..f7a1d5508718 100644 --- a/contrib/ofed/Makefile +++ b/contrib/ofed/Makefile @@ -1,47 +1,10 @@ # $FreeBSD$ -SUBDIR_A_DEPEND= -SUBDIR_A= \ -include +# NOTE: Make sure WITH_OFED=YES is set when building this top-level directory. -SUBDIR_B_DEPEND= ${SUBDIR_A} -SUBDIR_B= \ -libibverbs - -SUBDIR_C_DEPEND= ${SUBDIR_B} -SUBDIR_C= \ -libibcm \ -libibumad - -SUBDIR_D_DEPEND= ${SUBDIR_C} -SUBDIR_D= \ -librdmacm \ -libibmad \ -opensm/complib \ -opensm/libvendor \ -libcxgb4 \ -libmlx4 \ -libmlx5 - -SUBDIR_E_DEPEND= ${SUBDIR_D} -SUBDIR_E= \ -libibverbs/examples/build \ -librdmacm/examples/build \ -libibnetdisc \ -opensm/libopensm - -SUBDIR_F_DEPEND= ${SUBDIR_E} -SUBDIR_F= \ -opensm/opensm \ -infiniband-diags/build - -.for L in A B C D E F -.for S in ${SUBDIR_${L}} -SUBDIR_DEPEND_${S}+= ${SUBDIR_${L}_DEPEND} -.endfor -SUBDIR+= ${SUBDIR_${L}} -.endfor - -SUBDIR_PARALLEL= +SUBDIR= \ +include \ +usr.lib \ +usr.bin .include diff --git a/contrib/ofed/usr.bin/Makefile b/contrib/ofed/usr.bin/Makefile new file mode 100644 index 000000000000..105ad8213644 --- /dev/null +++ b/contrib/ofed/usr.bin/Makefile @@ -0,0 +1,11 @@ +# $FreeBSD$ + +SUBDIR= \ +../libibverbs/examples/build \ +../librdmacm/examples/build \ +../opensm/opensm \ +../infiniband-diags/build + +SUBDIR_PARALLEL= + +.include diff --git a/contrib/ofed/usr.lib/0/Makefile b/contrib/ofed/usr.lib/0/Makefile new file mode 100644 index 000000000000..2f7360a32f30 --- /dev/null +++ b/contrib/ofed/usr.lib/0/Makefile @@ -0,0 +1,8 @@ +# $FreeBSD$ + +SUBDIR= \ +../../libibverbs + +SUBDIR_PARALLEL= + +.include diff --git a/contrib/ofed/usr.lib/1/Makefile b/contrib/ofed/usr.lib/1/Makefile new file mode 100644 index 000000000000..3203cc96f9ba --- /dev/null +++ b/contrib/ofed/usr.lib/1/Makefile @@ -0,0 +1,9 @@ +# $FreeBSD$ + +SUBDIR= \ +../../libibcm \ +../../libibumad + +SUBDIR_PARALLEL= + +.include diff --git a/contrib/ofed/usr.lib/2/Makefile b/contrib/ofed/usr.lib/2/Makefile new file mode 100644 index 000000000000..bc865b1a4991 --- /dev/null +++ b/contrib/ofed/usr.lib/2/Makefile @@ -0,0 +1,14 @@ +# $FreeBSD$ + +SUBDIR= \ +../../librdmacm \ +../../libibmad \ +../../opensm/complib \ +../../opensm/libvendor \ +../../libcxgb4 \ +../../libmlx4 \ +../../libmlx5 + +SUBDIR_PARALLEL= + +.include diff --git a/contrib/ofed/usr.lib/3/Makefile b/contrib/ofed/usr.lib/3/Makefile new file mode 100644 index 000000000000..c512a036d2dc --- /dev/null +++ b/contrib/ofed/usr.lib/3/Makefile @@ -0,0 +1,9 @@ +# $FreeBSD$ + +SUBDIR= \ +../../libibnetdisc \ +../../opensm/libopensm + +SUBDIR_PARALLEL= + +.include diff --git a/contrib/ofed/usr.lib/Makefile b/contrib/ofed/usr.lib/Makefile new file mode 100644 index 000000000000..6481b405e323 --- /dev/null +++ b/contrib/ofed/usr.lib/Makefile @@ -0,0 +1,8 @@ +# $FreeBSD$ + +# NOTE: If building outside the buildworld target, install each subdirectory +# before building the next one. + +SUBDIR=0 1 2 3 + +.include