]> git.openfabrics.org - ~aditr/compat-rdma.git/commitdiff
configure: Autogenerate makefile
authorVladimir Sokolovsky <vlad@mellanox.com>
Tue, 24 Apr 2018 21:25:46 +0000 (17:25 -0400)
committerVladimir Sokolovsky <vlad@mellanox.com>
Fri, 27 Apr 2018 22:01:40 +0000 (18:01 -0400)
Added support for '--with*' and '--without*' parameters based on kernel CONFIG_* values

Signed-off-by: Vladimir Sokolovsky <vlad@mellanox.com>
configure
makefile [deleted file]
makefile.in [new file with mode: 0644]

index 55202b83385f176ad7c8522030c08c76488d84b7..339874008aeb629b60e29fd8a1f088af9b6249d7 100755 (executable)
--- a/configure
+++ b/configure
 
 usage()
 {
-cat << EOF
-\`configure' configures variables for kernel modules compilation
+       cat << EOF
+       \`configure' configures variables for kernel modules compilation
 
-Usage:  `basename $0` [options]
+       Usage:  `basename $0` [options]
 
-    --prefix=PREFIX  for userspace components []
-    --build_root=BUILD_ROOT  root directory to build RPM packages
-    --kernel-version=VERSION  make for this kernel [$(uname -r)]
-    --modules-dir=DIR  modules directory [/lib/modules/$(uname -r)]
-    --kernel-sources=DIR  make for this kernel [/lib/modules/$(uname -r)/source]
-    --with-linux=DIR  kernel sources directory [/lib/modules/$(uname -r)/source]
-    --with-linux-obj=DIR  kernel obj directory [/lib/modules/$(uname -r)/build]
-    --skip-autoconf
+       --prefix=PREFIX  for userspace components []
+       --build_root=BUILD_ROOT  root directory to build RPM packages
+       --kernel-version=VERSION  make for this kernel [$(uname -r)]
+       --modules-dir=DIR  modules directory [/lib/modules/$(uname -r)]
+       --kernel-sources=DIR  make for this kernel [/lib/modules/$(uname -r)/source]
+       --with-linux=DIR  kernel sources directory [/lib/modules/$(uname -r)/source]
+       --with-linux-obj=DIR  kernel obj directory [/lib/modules/$(uname -r)/build]
+       --skip-autoconf
 
-    Kernel modules configuration:
+       Kernel modules configuration:
 
-    --with-core-mod    make CONFIG_INFINIBAND=m [no]
-    --without-core-mod   [yes]
+       --with-core-mod    make CONFIG_INFINIBAND=m [no]
+       --without-core-mod   [yes]
 
-    --with-ipoib-mod    make CONFIG_INFINIBAND_IPOIB=m [no]
-    --without-ipoib-mod   [yes]
+       --with-ipoib-mod    make CONFIG_INFINIBAND_IPOIB=m [no]
+       --without-ipoib-mod   [yes]
 
-    --with-ipoib-cm    make CONFIG_INFINIBAND_IPOIB_CM=y [yes]
-    --without-ipoib-cm   [no]
+       --with-ipoib-cm    make CONFIG_INFINIBAND_IPOIB_CM=y [yes]
+       --without-ipoib-cm   [no]
 
-    --with-ipoib_debug-mod    make CONFIG_INFINIBAND_IPOIB_DEBUG=y [yes]
-    --without-ipoib_debug-mod    [no]
+       --with-ipoib_debug-mod    make CONFIG_INFINIBAND_IPOIB_DEBUG=y [yes]
+       --without-ipoib_debug-mod    [no]
 
-    --with-ipoib_debug_data-mod    make CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=y [no]
-    --without-ipoib_debug_data-mod    [yes]
+       --with-ipoib_debug_data-mod    make CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=y [no]
+       --without-ipoib_debug_data-mod    [yes]
 
-    --with-srp-mod    make CONFIG_INFINIBAND_SRP=m [no]
-    --without-srp-mod    [yes]
+       --with-srp-mod    make CONFIG_INFINIBAND_SRP=m [no]
+       --without-srp-mod    [yes]
 
-    --with-srp-target-mod    make CONFIG_INFINIBAND_SRPT=m [no]
-    --without-srp-target-mod    [yes]
+       --with-srp-target-mod    make CONFIG_INFINIBAND_SRPT=m [no]
+       --without-srp-target-mod    [yes]
 
-    --with-user_mad-mod    make CONFIG_INFINIBAND_USER_MAD=m [no]
-    --without-user_mad-mod    [yes]
+       --with-user_mad-mod    make CONFIG_INFINIBAND_USER_MAD=m [no]
+       --without-user_mad-mod    [yes]
 
-    --with-user_access-mod    make CONFIG_INFINIBAND_USER_ACCESS=m [no]
-    --without-user_access-mod    [yes]
+       --with-user_access-mod    make CONFIG_INFINIBAND_USER_ACCESS=m [no]
+       --without-user_access-mod    [yes]
 
-    --with-addr_trans-mod    make CONFIG_INFINIBAND_ADDR_TRANS=y [no]
-    --without-addr_trans-mod    [yes]
+       --with-addr_trans-mod    make CONFIG_INFINIBAND_ADDR_TRANS=y [no]
+       --without-addr_trans-mod    [yes]
 
-    --with-mthca-mod    make CONFIG_INFINIBAND_MTHCA=m [no]
-    --without-mthca-mod    [yes]
+       --with-mthca-mod    make CONFIG_INFINIBAND_MTHCA=m [no]
+       --without-mthca-mod    [yes]
 
-    --with-mthca_debug-mod    make CONFIG_INFINIBAND_MTHCA_DEBUG=y [yes]
-    --without-mthca_debug-mod    [no]
+       --with-mthca_debug-mod    make CONFIG_INFINIBAND_MTHCA_DEBUG=y [yes]
+       --without-mthca_debug-mod    [no]
 
-    --with-mlx4-mod         make CONFIG_MLX4_CORE=y CONFIG_MLX4_INFINIBAND=y [no]
-    --without-mlx4-mod      [yes]
+       --with-mlx4-mod         make CONFIG_MLX4_CORE=y CONFIG_MLX4_INFINIBAND=y [no]
+       --without-mlx4-mod      [yes]
 
-    --with-mlx5-mod         make CONFIG_MLX5_CORE=y CONFIG_MLX5_INFINIBAND=y [no]
-    --without-mlx5-mod      [yes]
+       --with-mlx5-mod         make CONFIG_MLX5_CORE=y CONFIG_MLX5_INFINIBAND=y [no]
+       --without-mlx5-mod      [yes]
 
-    --with-mlx4_core-mod         make CONFIG_MLX4_CORE=y [no]
-    --without-mlx4_core-mod      [yes]
+       --with-mlx4_core-mod         make CONFIG_MLX4_CORE=y [no]
+       --without-mlx4_core-mod      [yes]
 
-    --with-mlx5_core-mod         make CONFIG_MLX5_CORE=y [no]
-    --without-mlx5_core-mod      [yes]
+       --with-mlx5_core-mod         make CONFIG_MLX5_CORE=y [no]
+       --without-mlx5_core-mod      [yes]
 
-    --with-mlx4_en-mod         make CONFIG_MLX4_EN=y [no]
-    --without-mlx4_en-mod      [yes]
+       --with-mlx4_en-mod         make CONFIG_MLX4_EN=y [no]
+       --without-mlx4_en-mod      [yes]
 
-    --with-mlx4_inf-mod         make CONFIG_MLX4_INFINIBAND=y [no]
-    --without-mlx4_inf-mod      [yes]
+       --with-mlx4_inf-mod         make CONFIG_MLX4_INFINIBAND=y [no]
+       --without-mlx4_inf-mod      [yes]
 
-    --with-mlx5_inf-mod         make CONFIG_MLX5_INFINIBAND=y [no]
-    --without-mlx5_inf-mod      [yes]
+       --with-mlx5_inf-mod         make CONFIG_MLX5_INFINIBAND=y [no]
+       --without-mlx5_inf-mod      [yes]
 
-    --with-mlx4_debug-mod         make CONFIG_MLX4_DEBUG=y [yes]
-    --without-mlx4_debug-mod      [no]
+       --with-mlx4_debug-mod         make CONFIG_MLX4_DEBUG=y [yes]
+       --without-mlx4_debug-mod      [no]
 
-    --with-mlx5_debug-mod         make CONFIG_MLX5_DEBUG=y [yes]
-    --without-mlx5_debug-mod      [no]
+       --with-mlx5_debug-mod         make CONFIG_MLX5_DEBUG=y [yes]
+       --without-mlx5_debug-mod      [no]
 
-    --with-ibscif-mod    make CONFIG_INFINIBAND_SCIF=m [no]
-    --without-ibscif-mod    [yes]
+       --with-ibscif-mod    make CONFIG_INFINIBAND_SCIF=m [no]
+       --without-ibscif-mod    [yes]
 
-    --with-ibp-server-mod    make CONFIG_IBP_SERVER=m [no]
-    --without-ibp-server-mod    [yes]
+       --with-ibp-server-mod    make CONFIG_IBP_SERVER=m [no]
+       --without-ibp-server-mod    [yes]
 
-    --with-ibp-debug-mod    make CONFIG_IBP_DEBUG=y [no]
-    --without-ibp-debug-mod    [yes]
+       --with-ibp-debug-mod    make CONFIG_IBP_DEBUG=y [no]
+       --without-ibp-debug-mod    [yes]
 
-    --with-ipath_inf-mod    make CONFIG_INFINIBAND_IPATH=m [no]
-    --without-ipath_inf-mod    [yes]
+       --with-ipath_inf-mod    make CONFIG_INFINIBAND_IPATH=m [no]
+       --without-ipath_inf-mod    [yes]
 
-    --with-qib-mod    make CONFIG_INFINIBAND_QIB=m [no]
-    --without-qib-mod    [yes]
+       --with-qib-mod    make CONFIG_INFINIBAND_QIB=m [no]
+       --without-qib-mod    [yes]
 
-    --with-rxe-mod    make CONFIG_RDMA_RXE=m [no]
-    --without-rxe-mod    [yes]
+       --with-rxe-mod    make CONFIG_RDMA_RXE=m [no]
+       --without-rxe-mod    [yes]
 
-    --with-rdmavt-mod    make CONFIG_INFINIBAND_RDMAVT=m [no]
-    --without-rdmavt-mod    [yes]
+       --with-rdmavt-mod    make CONFIG_INFINIBAND_RDMAVT=m [no]
+       --without-rdmavt-mod    [yes]
 
-    --with-iser-mod    make CONFIG_INFINIBAND_ISER=m [no]
-    --without-iser-mod    [yes]
+       --with-iser-mod    make CONFIG_INFINIBAND_ISER=m [no]
+       --without-iser-mod    [yes]
 
-    --with-isert-mod    make CONFIG_INFINIBAND_ISERT=m [no]
-    --without-isert-mod    [yes]
+       --with-isert-mod    make CONFIG_INFINIBAND_ISERT=m [no]
+       --without-isert-mod    [yes]
 
-    --with-ehca-mod    make CONFIG_INFINIBAND_EHCA=m [no]
-    --without-ehca-mod    [yes]
+       --with-ehca-mod    make CONFIG_INFINIBAND_EHCA=m [no]
+       --without-ehca-mod    [yes]
 
-    --with-rds-mod    make CONFIG_RDS=m [no]
-    --without-rds-mod   [no]
+       --with-rds-mod    make CONFIG_RDS=m [no]
+       --without-rds-mod   [no]
 
-    --with-rds_debug-mod    make CONFIG_RDS_DEBUG=y [no]
-    --without-rds_debug-mod    [yes]
+       --with-rds_debug-mod    make CONFIG_RDS_DEBUG=y [no]
+       --without-rds_debug-mod    [yes]
 
-    --with-madeye-mod   make CONFIG_INFINIBAND_MADEYE=m [no]
-    --without-madeye-mod    [yes]
+       --with-madeye-mod   make CONFIG_INFINIBAND_MADEYE=m [no]
+       --without-madeye-mod    [yes]
 
-    --with-qlgc_vnic-mod    make CONFIG_INFINIBAND_QLGC_VNIC=m [no]
-    --without-qlgc_vnic-mod    [yes]
+       --with-qlgc_vnic-mod    make CONFIG_INFINIBAND_QLGC_VNIC=m [no]
+       --without-qlgc_vnic-mod    [yes]
 
-    --with-qlgc_vnic_stats-mod    make CONFIG_INFINIBAND_QLGC_VNIC_STATS=y [no]
-    --without-qlgc_vnic_stats-mod    [yes]
+       --with-qlgc_vnic_stats-mod    make CONFIG_INFINIBAND_QLGC_VNIC_STATS=y [no]
+       --without-qlgc_vnic_stats-mod    [yes]
 
-    --with-cxgb3-mod    make CONFIG_INFINIBAND_CXGB3=m [no]
-    --without-cxgb3-mod    [yes]
+       --with-cxgb3-mod    make CONFIG_INFINIBAND_CXGB3=m [no]
+       --without-cxgb3-mod    [yes]
 
-    --with-cxgb3_debug-mod    make CONFIG_INFINIBAND_CXGB3_DEBUG=y [no]
-    --without-cxgb3_debug-mod    [yes]
+       --with-cxgb3_debug-mod    make CONFIG_INFINIBAND_CXGB3_DEBUG=y [no]
+       --without-cxgb3_debug-mod    [yes]
 
-    --with-cxgb4-mod    make CONFIG_INFINIBAND_CXGB4=m [no]
-    --without-cxgb4-mod    [yes]
+       --with-cxgb4-mod    make CONFIG_INFINIBAND_CXGB4=m [no]
+       --without-cxgb4-mod    [yes]
 
-    --with-i40iw-mod    make CONFIG_INFINIBAND_I40IW=m [no]
-    --without-i40iw-mod    [yes]
+       --with-i40iw-mod    make CONFIG_INFINIBAND_I40IW=m [no]
+       --without-i40iw-mod    [yes]
 
-    --with-nes-mod    make CONFIG_INFINIBAND_NES=m [no]
-    --without-nes-mod    [yes]
+       --with-nes-mod    make CONFIG_INFINIBAND_NES=m [no]
+       --without-nes-mod    [yes]
 
-    --with-ocrdma-mod    make CONFIG_INFINIBAND_OCRDMA=m [no]
-    --without-ocrdma-mod    [yes]
-    
-    --with-be2net-mod    make CONFIG_BE2NET=m [no]
-    --without-be2net-mod    [yes]
+       --with-ocrdma-mod    make CONFIG_INFINIBAND_OCRDMA=m [no]
+       --without-ocrdma-mod    [yes]
 
-    --with-bnxt_en-mod    make CONFIG_BNXT=m [no]
-    --without-bnxt_en-mod    [yes]
+       --with-be2net-mod    make CONFIG_BE2NET=m [no]
+       --without-be2net-mod    [yes]
 
-    --with-bnxt_re-mod    make CONFIG_INFINIBAND_BNXT_RE=m [no]
-    --without-bnxt_re-mod    [yes]
+       --with-bnxt_en-mod    make CONFIG_BNXT=m [no]
+       --without-bnxt_en-mod    [yes]
 
-    --with-nes_debug-mod    make CONFIG_INFINIBAND_NES_DEBUG=y [no]
-    --without-nes_debug-mod    [yes]
+       --with-bnxt_re-mod    make CONFIG_INFINIBAND_BNXT_RE=m [no]
+       --without-bnxt_re-mod    [yes]
 
-    --with-memtrack  enable momory tracking [no]
-    --without-memtrack disable memory tracking [yes]
+       --with-nes_debug-mod    make CONFIG_INFINIBAND_NES_DEBUG=y [no]
+       --without-nes_debug-mod    [yes]
 
-    --with-debug-info  make CONFIG_DEBUG_INFO=y [yes]
-    --without-debug-info [no]
+       --with-memtrack  enable momory tracking [no]
+       --without-memtrack disable memory tracking [yes]
 
-    --with-nfsrdma-mod    make CONFIG_SUNRPC_XPRT_RDMA=m [no]
-    --without-nfsrdma-mod    [yes]
+       --with-debug-info  make CONFIG_DEBUG_INFO=y [yes]
+       --without-debug-info [no]
 
-    --with-vmw_pvrdma-mod    make CONFIG_INFINIBAND_VMWARE_PVRDMA=m [no]
-    --without-vmw_pvrdma-mod    [yes]
+       --with-nfsrdma-mod    make CONFIG_SUNRPC_XPRT_RDMA=m [no]
+       --without-nfsrdma-mod    [yes]
 
-    --with-qedr-mod    make CONFIG_INFINIBAND_QEDR [no]
-    --without-qedr-mod    [yes]
+       --with-vmw_pvrdma-mod    make CONFIG_INFINIBAND_VMWARE_PVRDMA=m [no]
+       --without-vmw_pvrdma-mod    [yes]
 
-    --with-nvme-mod    make CONFIG_NVME_CORE=m [no]
-    --without-nvme-mod    [yes]
+       --with-qedr-mod    make CONFIG_INFINIBAND_QEDR [no]
+       --without-qedr-mod    [yes]
 
-    --with-nvme-host-mod    make CONFIG_NVME_CORE=m [no]
-    --without-nvme-host-mod    [yes]
+       --with-nvme-mod    make CONFIG_NVME_CORE=m [no]
+       --without-nvme-mod    [yes]
 
-    --with-nvme-target-mod    make CONFIG_NVME_TARGET_RDMA=m [no]
-    --without-nvme-target-mod    [yes]
+       --with-nvme-host-mod    make CONFIG_NVME_CORE=m [no]
+       --without-nvme-host-mod    [yes]
 
-    --help - print out options
+       --with-nvme-target-mod    make CONFIG_NVME_TARGET_RDMA=m [no]
+       --without-nvme-target-mod    [yes]
+
+       --help - print out options
 
 
 EOF
@@ -218,796 +218,716 @@ EOF
 # Execute command w/ echo and exit if it fail
 ex()
 {
-        echo "$@"
-        if ! "$@"; then
-                printf "\nFailed executing $@\n\n"
-                exit 1
-        fi
+       echo "$@"
+       if ! "$@"; then
+               printf "\nFailed executing $@\n\n"
+               exit 1
+       fi
 }
 
 # Compare 2 kernel versions
 check_kerver()
 {
-        local kver=$1
-        local min_kver=$2
-        shift 2
+       local kver=$1
+       local min_kver=$2
+       shift 2
 
-        kver_a=$(echo -n ${kver} | cut -d '.' -f 1)
-        kver_b=$(echo -n ${kver} | cut -d '.' -f 2)
-        kver_c=$(echo -n ${kver} | cut -d '.' -f 3 | cut -d '-' -f 1 | tr -d [:alpha:][:punct:])
+       kver_a=$(echo -n ${kver} | cut -d '.' -f 1)
+       kver_b=$(echo -n ${kver} | cut -d '.' -f 2)
+       kver_c=$(echo -n ${kver} | cut -d '.' -f 3 | cut -d '-' -f 1 | tr -d [:alpha:][:punct:])
 
-        min_kver_a=$(echo -n ${min_kver} | cut -d '.' -f 1)
-        min_kver_b=$(echo -n ${min_kver} | cut -d '.' -f 2)
-        min_kver_c=$(echo -n ${min_kver} | cut -d '.' -f 3 | cut -d '-' -f 1 | tr -d [:alpha:][:punct:])
+       min_kver_a=$(echo -n ${min_kver} | cut -d '.' -f 1)
+       min_kver_b=$(echo -n ${min_kver} | cut -d '.' -f 2)
+       min_kver_c=$(echo -n ${min_kver} | cut -d '.' -f 3 | cut -d '-' -f 1 | tr -d [:alpha:][:punct:])
 
-        if [ ${kver_a} -lt ${min_kver_a} ] ||
-                [[ ${kver_a} -eq ${min_kver_a} && ${kver_b} -lt ${min_kver_b} ]] ||
-                [[ ${kver_a} -eq ${min_kver_a} && ${kver_b} -eq ${min_kver_b} && ${kver_c} -lt ${min_kver_c} ]]; then
-                return 1
-        fi
+       if [ ${kver_a} -lt ${min_kver_a} ] ||
+               [[ ${kver_a} -eq ${min_kver_a} && ${kver_b} -lt ${min_kver_b} ]] ||
+               [[ ${kver_a} -eq ${min_kver_a} && ${kver_b} -eq ${min_kver_b} && ${kver_c} -lt ${min_kver_c} ]]; then
+       return 1
+fi
 
-        return 0
+return 0
 }
 
 function check_autofconf {
-       VAR=$1
-       VALUE=$(tac ${KSRC_OBJ}/include/*/autoconf.h | grep -m1 ${VAR} | sed -ne 's/.*\([01]\)$/\1/gp')
+VAR=$1
+VALUE=$(tac ${KSRC_OBJ}/include/*/autoconf.h | grep -m1 ${VAR} | sed -ne 's/.*\([01]\)$/\1/gp')
 
-       eval "export $VAR=$VALUE"
+eval "export $VAR=$VALUE"
 }
 
 function add_conf {
-    COMMENT=$1
-    PARAM=${2%=*}
-    VALUE=${2#*=}
-    OICONF=${PWD}/ofed_scripts/openib.conf.tmp
-
-    touch $OICONF
-    if ! (grep -wq "^$PARAM" $OICONF > /dev/null 2>&1); then
-        echo >> "${OICONF}"
-        echo "${COMMENT}" >> "${OICONF}"
-        echo "${PARAM}=${VALUE}" >> "${OICONF}"
-    fi
+COMMENT=$1
+PARAM=${2%=*}
+VALUE=${2#*=}
+OICONF=${PWD}/ofed_scripts/openib.conf.tmp
+
+touch $OICONF
+if ! (grep -wq "^$PARAM" $OICONF > /dev/null 2>&1); then
+       echo >> "${OICONF}"
+       echo "${COMMENT}" >> "${OICONF}"
+       echo "${PARAM}=${VALUE}" >> "${OICONF}"
+fi
 }
 
 main()
 {
-        ofed_patch_params=
-        # Parsing parameters
-        while [ ! -z "$1" ]
-        do
-                case $1 in
-                        -prefix | --prefix | --prefi | --pref | --pre | --pr | --p | -p)
-                                shift
-                                prefix=$1
-                                PREFIX="--prefix ${prefix}"
-                        ;;
-                        -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=* | -p=*)
-                                prefix=`expr "x$1" : 'x[^=]*=\(.*\)'`
-                                PREFIX="--prefix ${prefix}"
-                        ;;
-                        -kernel-version | --kernel-version | --kern-ver | --ker-ver)
-                                ofed_patch_params="$ofed_patch_params $1"
-                                shift
-                                ofed_patch_params="$ofed_patch_params $1"
-                                KVERSION=$1
-                        ;;
-                        -kernel-version=* | --kernel-version=* | --kern-ver=* | --ker-ver=*)
-                                ofed_patch_params="$ofed_patch_params $1"
-                                KVERSION=`expr "x$1" : 'x[^=]*=\(.*\)'`
-                        ;;
-                        -modules-dir | --modules-dir | --mod-dir)
-                                shift
-                                MODULES_DIR=$1
-                        ;;
-                        -modules-dir=* | --modules-dir=* | --mod-dir=*)
-                                MODULES_DIR=`expr "x$1" : 'x[^=]*=\(.*\)'`
-                        ;;
-                        --skip-autoconf)
-                        SKIP_AUTOCONF=1
-                        ;;
-                        --force-autogen)
-                        FORCE_AUTOGEN=1
-                        ;;
-                        -kernel-sources | --kernel-sources | --kernel-src | --kern-src | --ker-src)
-                                shift
-                                KSRC=$1
-                        ;;
-                        -kernel-sources=* | --kernel-sources=* | --kernel-src=* | --kern-src=* | --ker-src=*)
-                                KSRC=`expr "x$1" : 'x[^=]*=\(.*\)'`
-                        ;;
-                        --with-linux)
-                                shift
-                                KSRC=$1
-                        ;;
-                        --with-linux=*)
-                                KSRC=`expr "x$1" : 'x[^=]*=\(.*\)'`
-                        ;;
-                        --with-linux-obj)
-                                shift
-                                KSRC_OBJ=$1
-                        ;;
-                        --with-linux-obj=*)
-                                KSRC_OBJ=`expr "x$1" : 'x[^=]*=\(.*\)'`
-                        ;;
-                        -with-quilt | --with-quilt)
-                                ofed_patch_params="$ofed_patch_params $1"
-                                if [ ! -z "$2" ] && [ "`echo -n $2 | cut -c 1`" != '-' ]; then
-                                        shift
-                                        ofed_patch_params="$ofed_patch_params $1"
-                                fi
-                        ;;
-                        -with-quilt=* | --with-quilt=*)
-                                ofed_patch_params="$ofed_patch_params $1"
-                        ;;
-                        --without-quilt)
-                                ofed_patch_params="$ofed_patch_params $1"
-                        ;;
-                        -with-patchdir | --with-patchdir)
-                                ofed_patch_params="$ofed_patch_params $1"
-                                shift
-                                ofed_patch_params="$ofed_patch_params $1"
-                        ;;
-                        -with-patchdir=* | --with-patchdir=*)
-                                ofed_patch_params="$ofed_patch_params $1"
-                        ;;
-                        --without-patch)
-                                ofed_patch_params="$ofed_patch_params $1"
-                        ;;
-                        --with-kernel-fixes)
-                                ofed_patch_params="$ofed_patch_params $1"
-                        ;;
-                        --without-kernel-fixes)
-                                ofed_patch_params="$ofed_patch_params $1"
-                        ;;
-                        --with-hpage-patch)
-                                ofed_patch_params="$ofed_patch_params $1"
-                        ;;
-                        --without-hpage-patch)
-                                ofed_patch_params="$ofed_patch_params $1"
-                        ;;
-                        --with-backport-patches)
-                                ofed_patch_params="$ofed_patch_params $1"
-                        ;;
-                        --without-backport-patches)
-                                ofed_patch_params="$ofed_patch_params $1"
-                        ;;
-                        --with-memtrack)
-                            CONFIG_MEMTRACK="m"
-                        ;;
-                        --without-memtrack)
-                            CONFIG_MEMTRACK=
-                        ;;
-                        --with-debug-info)
-                            CONFIG_DEBUG_INFO="y"
-                        ;;
-                        --without-debug-info)
-                            CONFIG_DEBUG_INFO=
-                        ;;
-                        --with-core-mod)
-                            CONFIG_INFINIBAND="m"
-                        ;;
-                        --without-core-mod)
-                            CONFIG_INFINIBAND=
-                        ;;
-                        --with-ipoib-mod)
-                            CONFIG_INFINIBAND_IPOIB="m"
-                            CONFIG_INFINIBAND_IPOIB_CM="y"
-                            CONFIG_INFINIBAND_IPOIB_DEBUG="y"
-                            add_conf "# Load IPoIB" "IPOIB_LOAD=yes"
-                            add_conf "# Enable IPoIB Connected Mode" "SET_IPOIB_CM=yes"
-                        ;;
-                        --without-ipoib-mod)
-                            CONFIG_INFINIBAND_IPOIB=
-                        ;;
-                        --with-ipoib-cm)
-                            CONFIG_INFINIBAND_IPOIB_CM="y"
-                        ;;
-                        --without-ipoib-cm)
-                            CONFIG_INFINIBAND_IPOIB_CM=
-                        ;;
-                        --with-ipoib_debug-mod)
-                            CONFIG_INFINIBAND_IPOIB_DEBUG="y"
-                        ;;
-                        --without-ipoib_debug-mod)
-                            CONFIG_INFINIBAND_IPOIB_DEBUG=
-                        ;;
-                        --with-ipoib_debug_data-mod)
-                            CONFIG_INFINIBAND_IPOIB_DEBUG_DATA="y"
-                        ;;
-                        --without-ipoib_debug_data-mod)
-                            CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=
-                        ;;
-                        --with-srp-mod)
-                            CONFIG_INFINIBAND_SRP="m"
-                            CONFIG_SCSI_SRP_ATTRS="m"
-                            add_conf "# Load SRP module" "SRP_LOAD=no"
-                        ;;
-                        --without-srp-mod)
-                            CONFIG_INFINIBAND_SRP=
-                            CONFIG_SCSI_SRP_ATTRS=
-                        ;;
-                        --with-srp-target-mod)
-                            CONFIG_INFINIBAND_SRPT="m"
-                            add_conf "# Load SRP Target module" "SRPT_LOAD=no"
-                        ;;
-                        --without-srp-target-mod)
-                            CONFIG_INFINIBAND_SRPT=
-                        ;;
-                        --with-user_mad-mod)
-                            CONFIG_INFINIBAND_USER_MAD="m"
-                            add_conf "# Load UMAD module" "UMAD_LOAD=yes"
-                        ;;
-                        --without-user_mad-mod)
-                            CONFIG_INFINIBAND_USER_MAD=
-                        ;;
-                        --with-user_access-mod)
-                            CONFIG_INFINIBAND_USER_ACCESS="m"
-                            CONFIG_INFINIBAND_USER_MEM=y
-                            add_conf "# Load UVERBS module" "UVERBS_LOAD=yes"
-                            add_conf "# Load UCM module" "UCM_LOAD=yes"
-                        ;;
-                        --without-user_access-mod)
-                            CONFIG_INFINIBAND_USER_ACCESS=
-                            CONFIG_INFINIBAND_USER_MEM=
-                        ;;
-                        --with-user_memory-mod)
-                            CONFIG_INFINIBAND_USER_MEM=y
-                        ;;
-                        --without-user_memory-mod)
-                            CONFIG_INFINIBAND_USER_MEM=
-                        ;;
-                        --with-addr_trans-mod)
-                            CONFIG_INFINIBAND_ADDR_TRANS=y
-                            add_conf "# Load RDMA_CM module" "RDMA_CM_LOAD=yes"
-                            add_conf "# Load RDMA_UCM module" "RDMA_UCM_LOAD=yes"
-                        ;;
-                        --without-addr_trans-mod)
-                            CONFIG_INFINIBAND_ADDR_TRANS=
-                        ;;
-                        --with-mthca-mod)
-                            CONFIG_INFINIBAND_MTHCA="m"
-                            CONFIG_INFINIBAND_MTHCA_DEBUG="y"
-                            add_conf "# Load MTHCA" "MTHCA_LOAD=no"
-                        ;;
-                        --without-mthca-mod)
-                            CONFIG_INFINIBAND_MTHCA=
-                        ;;
-                        --with-mthca_debug-mod)
-                            CONFIG_INFINIBAND_MTHCA_DEBUG="y"
-                        ;;
-                        --without-mthca_debug-mod)
-                            CONFIG_INFINIBAND_MTHCA_DEBUG=
-                        ;;
-                        --with-mlx4-mod)
-                            CONFIG_MLX4_CORE="m"
-                            CONFIG_MLX4_INFINIBAND="m"
-                            CONFIG_MLX4_DEBUG="y"
-                            add_conf "# Load MLX4 modules" "MLX4_LOAD=yes"
-                        ;;
-                        --with-mlx5-mod)
-                            CONFIG_MLX5_CORE="m"
-                            CONFIG_MLX5_CORE_EN="y"
-                            CONFIG_MLX5_CORE_EN_DCB="y"
-                            CONFIG_MLX5_INFINIBAND="m"
-                            CONFIG_BACKPORT_LRO="m"
-                            CONFIG_MLX5_DEBUG="y"
-                            add_conf "# Load MLX5 modules" "MLX5_LOAD=yes"
-                        ;;
-                        --with-mlx4_core-mod)
-                            CONFIG_MLX4_CORE="m"
-                        ;;
-                        --without-mlx4_core-mod)
-                            CONFIG_MLX4_CORE=
-                        ;;
-                        --with-mlx5_core-mod)
-                            CONFIG_MLX5_CORE="m"
-                            CONFIG_MLX5_CORE_EN="y"
-                            CONFIG_MLX5_CORE_EN_DCB="y"
-                        ;;
-                        --without-mlx5_core-mod)
-                            CONFIG_MLX5_CORE=
-                            CONFIG_MLX5_CORE_EN=
-                            CONFIG_MLX5_CORE_EN_DCB=
-                        ;;
-                        --without-mlx4-mod)
-                            CONFIG_MLX4_CORE=
-                            CONFIG_MLX4_INFINIBAND=
-                            CONFIG_MLX4_DEBUG=
-                        ;;
-                        --without-mlx5-mod)
-                            CONFIG_MLX5_CORE=
-                            CONFIG_MLX5_CORE_EN=
-                            CONFIG_MLX5_CORE_EN_DCB=
-                            CONFIG_MLX5_INFINIBAND=
-                            CONFIG_MLX5_DEBUG=
-                        ;;
-                        --with-mlx4_en-mod)
-                            CONFIG_MLX4_CORE="m"
-                            CONFIG_MLX4_EN="m"
-                            add_conf "# Load MLX4_EN module" "MLX4_EN_LOAD=yes"
-                        ;;
-                        --without-mlx4_en-mod)
-                            CONFIG_MLX4_EN=
-                        ;;
-                        --with-mlx4_inf-mod)
-                            CONFIG_MLX4_CORE="m"
-                            CONFIG_MLX4_INFINIBAND="m"
-                        ;;
-                        --without-mlx4_inf-mod)
-                            CONFIG_MLX4_INFINIBAND=
-                        ;;
-                        --with-mlx5_inf-mod)
-                            CONFIG_MLX5_CORE="m"
-                            CONFIG_MLX5_CORE_EN="y"
-                            CONFIG_MLX5_CORE_EN_DCB="y"
-                            CONFIG_MLX5_INFINIBAND="m"
-                        ;;
-                        --without-mlx5_inf-mod)
-                            CONFIG_MLX5_INFINIBAND=
-                            CONFIG_MLX5_CORE_EN=
-                            CONFIG_MLX5_CORE_EN_DCB=
-                        ;;
-                        --with-mlx4_debug-mod)
-                            CONFIG_MLX4_DEBUG="y"
-                        ;;
-                        --without-mlx4_debug-mod)
-                            CONFIG_MLX4_DEBUG=
-                        ;;
-                        --with-mlx5_debug-mod)
-                            CONFIG_MLX5_DEBUG="y"
-                        ;;
-                        --without-mlx5_debug-mod)
-                            CONFIG_MLX5_DEBUG=
-                        ;;
-                        --with-ibscif-mod)
-                            CONFIG_INFINIBAND_SCIF="m"
-                        ;;
-                        --with-ibp-server-mod)
-                            CONFIG_IBP_SERVER="m"
-                        ;;
-                        --with-ibp-debug-mod)
-                            CONFIG_IBP_DEBUG="y"
-                        ;;
-                        --with-ipath_inf-mod)
-                            CONFIG_INFINIBAND_IPATH="m"
-                            add_conf "# Load IPATH" "IPATH_LOAD=yes"
-                        ;;
-                        --without-ipath_inf-mod)
-                            CONFIG_INFINIBAND_IPATH=
-                        ;;
-                        --with-rxe-mod)
-                            CONFIG_RDMA_RXE="m"
-                        ;;
-                        --without-rxe-mod)
-                            CONFIG_RDMA_RXE=
-                        ;;
-                        --with-rdmavt-mod)
-                            CONFIG_INFINIBAND_RDMAVT="m"
-                        ;;
-                        --without-rdmavt-mod)
-                            CONFIG_INFINIBAND_RDMAVT=
-                        ;;
-                        --with-qib-mod)
-                            CONFIG_INFINIBAND_QIB="m"
-                            add_conf "# Load QIB" "QIB_LOAD=yes"
-                            add_conf "# QIB QME BP VER" "QIB_QME_BPVER=1"
-                        ;;
-                        --without-qib-mod)
-                            CONFIG_INFINIBAND_QIB=
-                        ;;
-                        --with-iser-mod)
-                            CONFIG_INFINIBAND_ISER="m"
-                            add_conf "# Load ISER module" "ISER_LOAD=no"
-                        ;;
-                        --without-isert-mod)
-                            CONFIG_INFINIBAND_ISERT=
-                        ;;
-                        --with-iscsi-mod)
-                            CONFIG_SCSI_ISCSI_ATTRS="m"
-                            CONFIG_ISCSI_TCP="m"
-                        ;;
-                        --without-iser-mod)
-                            CONFIG_INFINIBAND_ISER=
-                            CONFIG_SCSI_ISCSI_ATTRS=
-                            CONFIG_ISCSI_TCP=
-                        ;;
-                        --without-isert-mod)
-                            CONFIG_INFINIBAND_ISERT=
-                        ;;
-                        --with-ehca-mod)
-                            CONFIG_INFINIBAND_EHCA="m"
-                            CONFIG_INFINIBAND_EHCA_SCALING="y"
-                            add_conf "$ Load eHCA" "EHCA_LAOD=yes"
-                        ;;
-                        --without-ehca-mod)
-                            CONFIG_INFINIBAND_EHCA=
-                            CONFIG_INFINIBAND_EHCA_SCALING=
-                        ;;
-                        --with-rds-mod)
-                            CONFIG_RDS="m"
-                            CONFIG_RDS_RDMA="m"
-                            CONFIG_RDS_TCP="m"
-                            add_conf "# Load RDS module" "RDS_LOAD=no"
-                        ;;
-                        --without-rds-mod)
-                            CONFIG_RDS=
-                            CONFIG_RDS_RDMA=
-                            CONFIG_RDS_TCP=
-                        ;;
-                        --with-rds_debug-mod)
-                            CONFIG_RDS_DEBUG="y"
-                        ;;
-                        --without-rds_debug-mod)
-                            CONFIG_RDS_DEBUG=
-                        ;;
-                        --with-madeye-mod)
-                            CONFIG_INFINIBAND_MADEYE=m
-                        ;;
-                        --without-madeye-mod)
-                            CONFIG_INFINIBAND_MADEYE=
-                        ;;
-                        --with-qlgc_vnic-mod)
-                            CONFIG_INFINIBAND_QLGC_VNIC="m"
-                            add_conf "# Load QLogic VNIC module" "QLGC_VNIC_LOAD=yes"
-                        ;;
-                        --without-qlgc_vnic-mod)
-                            CONFIG_INFINIBAND_QLGC_VNIC=
-                        ;;
-                        --with-qlgc_vnic_stats-mod)
-                            CONFIG_INFINIBAND_QLGC_VNIC_STATS="y"
-                        ;;
-                        --without-qlgc_vnic_stats-mod)
-                            CONFIG_INFINIBAND_QLGC_VNIC_STATS=
-                        ;;
-                        --with-cxgb3-mod)
-                            CONFIG_INFINIBAND_CXGB3="m"
-                            CONFIG_CHELSIO_T3="m"
-                            add_conf "# Load CXGB3 modules" "CXGB3_LOAD=yes"
-                        ;;
-                        --without-cxgb3-mod)
-                            CONFIG_INFINIBAND_CXGB3=
-                            CONFIG_CHELSIO_T3=
-                        ;;
-                        --with-cxgb3_debug-mod)
-                            CONFIG_INFINIBAND_CXGB3_DEBUG="y"
-                        ;;
-                        --without-cxgb3_debug-mod)
-                            CONFIG_INFINIBAND_CXGB3_DEBUG=
-                        ;;
-                        --with-cxgb4-mod)
-                            CONFIG_INFINIBAND_CXGB4="m"
-                            CONFIG_CHELSIO_T4="m"
-                            add_conf "# Load CXGB4 modules" "CXGB4_LOAD=yes"
-                        ;;
-                        --without-cxgb4-mod)
-                            CONFIG_INFINIBAND_CXGB4=
-                            CONFIG_CHELSIO_T4=
-                        ;;
-                        --with-cxgb3i-mod)
-                            CONFIG_SCSI_CXGB3_ISCSI="m"
-                        ;;
-                        --without-cxgb3i-mod)
-                            CONFIG_SCSI_CXGB3_ISCSI=
-                        ;;
-                        --with-cxgb4i-mod)
-                            CONFIG_SCSI_CXGB4_ISCSI="m"
-                        ;;
-                        --without-cxgb4i-mod)
-                            CONFIG_SCSI_CXGB4_ISCSI=
-                        ;;
-                        --with-i40iw-mod)
-                            CONFIG_INFINIBAND_I40IW="m"
-                            CONFIG_I40E="m"
-                            add_conf "# Load I40IW modules" "I40IW_LOAD=yes"
-                        ;;
-                        --without-i40iw-mod)
-                            CONFIG_INFINIBAND_I40IW=
-                            CONFIG_I40E=
-                            add_conf "# Load I40IW modules" "I40IW_LOAD=no"
-                        ;;
-                        --with-nes-mod)
-                            CONFIG_INFINIBAND_NES="m"
-                            add_conf "# Load NES modules" "NES_LOAD=yes"
-                        ;;
-                        --without-nes-mod)
-                            CONFIG_INFINIBAND_NES=
-                        ;;
-                        --with-nes_debug-mod)
-                            CONFIG_INFINIBAND_NES_DEBUG="y"
-                        ;;
-                        --without-nes_debug-mod)
-                            CONFIG_INFINIBAND_NES_DEBUG=
-                        ;;
-                        --with-ocrdma-mod)
-                            CONFIG_INFINIBAND_OCRDMA="m"
-                            CONFIG_BE2NET="m"
-                            add_conf "# Load OCRDMA modules" "OCRDMA_LOAD=yes"
-                        ;;
-                        --without-ocrdma-mod)
-                            CONFIG_INFINIBAND_OCRDMA=
-                        ;;
-                        --with-be2net-mod)
-                            CONFIG_BE2NET="m"
-                        ;;
-                        --without-be2net-mod)
-                            CONFIG_BE2NET=
-                        ;;
+       ofed_patch_params=
+       # Parsing parameters
+       while [ ! -z "$1" ]
+       do
+               case $1 in
+                       -prefix | --prefix | --prefi | --pref | --pre | --pr | --p | -p)
+                               shift
+                               prefix=$1
+                               PREFIX="--prefix ${prefix}"
+                               ;;
+                       -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=* | -p=*)
+                               prefix=`expr "x$1" : 'x[^=]*=\(.*\)'`
+                               PREFIX="--prefix ${prefix}"
+                               ;;
+                       -kernel-version | --kernel-version | --kern-ver | --ker-ver)
+                               ofed_patch_params="$ofed_patch_params $1"
+                               shift
+                               ofed_patch_params="$ofed_patch_params $1"
+                               KVERSION=$1
+                               ;;
+                       -kernel-version=* | --kernel-version=* | --kern-ver=* | --ker-ver=*)
+                               ofed_patch_params="$ofed_patch_params $1"
+                               KVERSION=`expr "x$1" : 'x[^=]*=\(.*\)'`
+                               ;;
+                       -modules-dir | --modules-dir | --mod-dir)
+                               shift
+                               MODULES_DIR=$1
+                               ;;
+                       -modules-dir=* | --modules-dir=* | --mod-dir=*)
+                               MODULES_DIR=`expr "x$1" : 'x[^=]*=\(.*\)'`
+                               ;;
+                       --skip-autoconf)
+                               SKIP_AUTOCONF=1
+                               ;;
+                       --force-autogen)
+                               FORCE_AUTOGEN=1
+                               ;;
+                       -kernel-sources | --kernel-sources | --kernel-src | --kern-src | --ker-src)
+                               shift
+                               KSRC=$1
+                               ;;
+                       -kernel-sources=* | --kernel-sources=* | --kernel-src=* | --kern-src=* | --ker-src=*)
+                               KSRC=`expr "x$1" : 'x[^=]*=\(.*\)'`
+                               ;;
+                       --with-linux)
+                               shift
+                               KSRC=$1
+                               ;;
+                       --with-linux=*)
+                               KSRC=`expr "x$1" : 'x[^=]*=\(.*\)'`
+                               ;;
+                       --with-linux-obj)
+                               shift
+                               KSRC_OBJ=$1
+                               ;;
+                       --with-linux-obj=*)
+                               KSRC_OBJ=`expr "x$1" : 'x[^=]*=\(.*\)'`
+                               ;;
+                       -with-quilt | --with-quilt)
+                               ofed_patch_params="$ofed_patch_params $1"
+                               if [ ! -z "$2" ] && [ "`echo -n $2 | cut -c 1`" != '-' ]; then
+                                       shift
+                                       ofed_patch_params="$ofed_patch_params $1"
+                               fi
+                               ;;
+                       -with-quilt=* | --with-quilt=*)
+                               ofed_patch_params="$ofed_patch_params $1"
+                               ;;
+                       --without-quilt)
+                               ofed_patch_params="$ofed_patch_params $1"
+                               ;;
+                       -with-patchdir | --with-patchdir)
+                               ofed_patch_params="$ofed_patch_params $1"
+                               shift
+                               ofed_patch_params="$ofed_patch_params $1"
+                               ;;
+                       -with-patchdir=* | --with-patchdir=*)
+                               ofed_patch_params="$ofed_patch_params $1"
+                               ;;
+                       --without-patch)
+                               ofed_patch_params="$ofed_patch_params $1"
+                               ;;
+                       --with-kernel-fixes)
+                               ofed_patch_params="$ofed_patch_params $1"
+                               ;;
+                       --without-kernel-fixes)
+                               ofed_patch_params="$ofed_patch_params $1"
+                               ;;
+                       --with-hpage-patch)
+                               ofed_patch_params="$ofed_patch_params $1"
+                               ;;
+                       --without-hpage-patch)
+                               ofed_patch_params="$ofed_patch_params $1"
+                               ;;
+                       --with-backport-patches)
+                               ofed_patch_params="$ofed_patch_params $1"
+                               ;;
+                       --without-backport-patches)
+                               ofed_patch_params="$ofed_patch_params $1"
+                               ;;
+                       --with-memtrack)
+                               CONFIG_MEMTRACK="m"
+                               ;;
+                       --without-memtrack)
+                               CONFIG_MEMTRACK=
+                               ;;
+                       --with-debug-info)
+                               CONFIG_DEBUG_INFO="y"
+                               ;;
+                       --without-debug-info)
+                               CONFIG_DEBUG_INFO=
+                               ;;
+                       --with-core-mod)
+                               CONFIG_INFINIBAND="m"
+                               ;;
+                       --without-core-mod)
+                               CONFIG_INFINIBAND=
+                               ;;
+                       --with-ipoib-mod)
+                               CONFIG_INFINIBAND_IPOIB="m"
+                               CONFIG_INFINIBAND_IPOIB_CM="y"
+                               CONFIG_INFINIBAND_IPOIB_DEBUG="y"
+                               add_conf "# Load IPoIB" "IPOIB_LOAD=yes"
+                               add_conf "# Enable IPoIB Connected Mode" "SET_IPOIB_CM=yes"
+                               ;;
+                       --without-ipoib-mod)
+                               CONFIG_INFINIBAND_IPOIB=
+                               ;;
+                       --with-ipoib-cm)
+                               CONFIG_INFINIBAND_IPOIB_CM="y"
+                               ;;
+                       --without-ipoib-cm)
+                               CONFIG_INFINIBAND_IPOIB_CM=
+                               ;;
+                       --with-ipoib_debug-mod)
+                               CONFIG_INFINIBAND_IPOIB_DEBUG="y"
+                               ;;
+                       --without-ipoib_debug-mod)
+                               CONFIG_INFINIBAND_IPOIB_DEBUG=
+                               ;;
+                       --with-ipoib_debug_data-mod)
+                               CONFIG_INFINIBAND_IPOIB_DEBUG_DATA="y"
+                               ;;
+                       --without-ipoib_debug_data-mod)
+                               CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=
+                               ;;
+                       --with-srp-mod)
+                               CONFIG_INFINIBAND_SRP="m"
+                               CONFIG_SCSI_SRP_ATTRS="m"
+                               add_conf "# Load SRP module" "SRP_LOAD=no"
+                               ;;
+                       --without-srp-mod)
+                               CONFIG_INFINIBAND_SRP=
+                               CONFIG_SCSI_SRP_ATTRS=
+                               ;;
+                       --with-srp-target-mod)
+                               CONFIG_INFINIBAND_SRPT="m"
+                               add_conf "# Load SRP Target module" "SRPT_LOAD=no"
+                               ;;
+                       --without-srp-target-mod)
+                               CONFIG_INFINIBAND_SRPT=
+                               ;;
+                       --with-user_mad-mod)
+                               CONFIG_INFINIBAND_USER_MAD="m"
+                               add_conf "# Load UMAD module" "UMAD_LOAD=yes"
+                               ;;
+                       --without-user_mad-mod)
+                               CONFIG_INFINIBAND_USER_MAD=
+                               ;;
+                       --with-user_access-mod)
+                               CONFIG_INFINIBAND_USER_ACCESS="m"
+                               CONFIG_INFINIBAND_USER_MEM=y
+                               add_conf "# Load UVERBS module" "UVERBS_LOAD=yes"
+                               add_conf "# Load UCM module" "UCM_LOAD=yes"
+                               ;;
+                       --without-user_access-mod)
+                               CONFIG_INFINIBAND_USER_ACCESS=
+                               CONFIG_INFINIBAND_USER_MEM=
+                               ;;
+                       --with-user_memory-mod)
+                               CONFIG_INFINIBAND_USER_MEM=y
+                               ;;
+                       --without-user_memory-mod)
+                               CONFIG_INFINIBAND_USER_MEM=
+                               ;;
+                       --with-addr_trans-mod)
+                               CONFIG_INFINIBAND_ADDR_TRANS=y
+                               add_conf "# Load RDMA_CM module" "RDMA_CM_LOAD=yes"
+                               add_conf "# Load RDMA_UCM module" "RDMA_UCM_LOAD=yes"
+                               ;;
+                       --without-addr_trans-mod)
+                               CONFIG_INFINIBAND_ADDR_TRANS=
+                               ;;
+                       --with-mthca-mod)
+                               CONFIG_INFINIBAND_MTHCA="m"
+                               CONFIG_INFINIBAND_MTHCA_DEBUG="y"
+                               add_conf "# Load MTHCA" "MTHCA_LOAD=no"
+                               ;;
+                       --without-mthca-mod)
+                               CONFIG_INFINIBAND_MTHCA=
+                               ;;
+                       --with-mthca_debug-mod)
+                               CONFIG_INFINIBAND_MTHCA_DEBUG="y"
+                               ;;
+                       --without-mthca_debug-mod)
+                               CONFIG_INFINIBAND_MTHCA_DEBUG=
+                               ;;
+                       --with-mlx4-mod)
+                               CONFIG_MLX4_CORE="m"
+                               CONFIG_MLX4_INFINIBAND="m"
+                               CONFIG_MLX4_DEBUG="y"
+                               add_conf "# Load MLX4 modules" "MLX4_LOAD=yes"
+                               ;;
+                       --with-mlx5-mod)
+                               CONFIG_MLX5_CORE="m"
+                               CONFIG_MLX5_CORE_EN="y"
+                               CONFIG_MLX5_CORE_EN_DCB="y"
+                               CONFIG_MLX5_INFINIBAND="m"
+                               CONFIG_BACKPORT_LRO="m"
+                               CONFIG_MLX5_DEBUG="y"
+                               add_conf "# Load MLX5 modules" "MLX5_LOAD=yes"
+                               ;;
+                       --with-mlx4_core-mod)
+                               CONFIG_MLX4_CORE="m"
+                               ;;
+                       --without-mlx4_core-mod)
+                               CONFIG_MLX4_CORE=
+                               ;;
+                       --with-mlx5_core-mod)
+                               CONFIG_MLX5_CORE="m"
+                               CONFIG_MLX5_CORE_EN="y"
+                               CONFIG_MLX5_CORE_EN_DCB="y"
+                               ;;
+                       --without-mlx5_core-mod)
+                               CONFIG_MLX5_CORE=
+                               CONFIG_MLX5_CORE_EN=
+                               CONFIG_MLX5_CORE_EN_DCB=
+                               ;;
+                       --without-mlx4-mod)
+                               CONFIG_MLX4_CORE=
+                               CONFIG_MLX4_INFINIBAND=
+                               CONFIG_MLX4_DEBUG=
+                               ;;
+                       --without-mlx5-mod)
+                               CONFIG_MLX5_CORE=
+                               CONFIG_MLX5_CORE_EN=
+                               CONFIG_MLX5_CORE_EN_DCB=
+                               CONFIG_MLX5_INFINIBAND=
+                               CONFIG_MLX5_DEBUG=
+                               ;;
+                       --with-mlx4_en-mod)
+                               CONFIG_MLX4_CORE="m"
+                               CONFIG_MLX4_EN="m"
+                               add_conf "# Load MLX4_EN module" "MLX4_EN_LOAD=yes"
+                               ;;
+                       --without-mlx4_en-mod)
+                               CONFIG_MLX4_EN=
+                               ;;
+                       --with-mlx4_inf-mod)
+                               CONFIG_MLX4_CORE="m"
+                               CONFIG_MLX4_INFINIBAND="m"
+                               ;;
+                       --without-mlx4_inf-mod)
+                               CONFIG_MLX4_INFINIBAND=
+                               ;;
+                       --with-mlx5_inf-mod)
+                               CONFIG_MLX5_CORE="m"
+                               CONFIG_MLX5_CORE_EN="y"
+                               CONFIG_MLX5_CORE_EN_DCB="y"
+                               CONFIG_MLX5_INFINIBAND="m"
+                               ;;
+                       --without-mlx5_inf-mod)
+                               CONFIG_MLX5_INFINIBAND=
+                               CONFIG_MLX5_CORE_EN=
+                               CONFIG_MLX5_CORE_EN_DCB=
+                               ;;
+                       --with-mlx4_debug-mod)
+                               CONFIG_MLX4_DEBUG="y"
+                               ;;
+                       --without-mlx4_debug-mod)
+                               CONFIG_MLX4_DEBUG=
+                               ;;
+                       --with-mlx5_debug-mod)
+                               CONFIG_MLX5_DEBUG="y"
+                               ;;
+                       --without-mlx5_debug-mod)
+                               CONFIG_MLX5_DEBUG=
+                               ;;
+                       --with-ibscif-mod)
+                               CONFIG_INFINIBAND_SCIF="m"
+                               ;;
+                       --with-ibp-server-mod)
+                               CONFIG_IBP_SERVER="m"
+                               ;;
+                       --with-ibp-debug-mod)
+                               CONFIG_IBP_DEBUG="y"
+                               ;;
+                       --with-ipath_inf-mod)
+                               CONFIG_INFINIBAND_IPATH="m"
+                               add_conf "# Load IPATH" "IPATH_LOAD=yes"
+                               ;;
+                       --without-ipath_inf-mod)
+                               CONFIG_INFINIBAND_IPATH=
+                               ;;
+                       --with-rxe-mod)
+                               CONFIG_RDMA_RXE="m"
+                               ;;
+                       --without-rxe-mod)
+                               CONFIG_RDMA_RXE=
+                               ;;
+                       --with-rdmavt-mod)
+                               CONFIG_INFINIBAND_RDMAVT="m"
+                               ;;
+                       --without-rdmavt-mod)
+                               CONFIG_INFINIBAND_RDMAVT=
+                               ;;
+                       --with-qib-mod)
+                               CONFIG_INFINIBAND_QIB="m"
+                               add_conf "# Load QIB" "QIB_LOAD=yes"
+                               add_conf "# QIB QME BP VER" "QIB_QME_BPVER=1"
+                               ;;
+                       --without-qib-mod)
+                               CONFIG_INFINIBAND_QIB=
+                               ;;
+                       --with-iser-mod)
+                               CONFIG_INFINIBAND_ISER="m"
+                               add_conf "# Load ISER module" "ISER_LOAD=no"
+                               ;;
+                       --without-isert-mod)
+                               CONFIG_INFINIBAND_ISERT=
+                               ;;
+                       --with-iscsi-mod)
+                               CONFIG_SCSI_ISCSI_ATTRS="m"
+                               CONFIG_ISCSI_TCP="m"
+                               ;;
+                       --without-iser-mod)
+                               CONFIG_INFINIBAND_ISER=
+                               CONFIG_SCSI_ISCSI_ATTRS=
+                               CONFIG_ISCSI_TCP=
+                               ;;
+                       --without-isert-mod)
+                               CONFIG_INFINIBAND_ISERT=
+                               ;;
+                       --with-ehca-mod)
+                               CONFIG_INFINIBAND_EHCA="m"
+                               CONFIG_INFINIBAND_EHCA_SCALING="y"
+                               add_conf "$ Load eHCA" "EHCA_LAOD=yes"
+                               ;;
+                       --without-ehca-mod)
+                               CONFIG_INFINIBAND_EHCA=
+                               CONFIG_INFINIBAND_EHCA_SCALING=
+                               ;;
+                       --with-rds-mod)
+                               CONFIG_RDS="m"
+                               CONFIG_RDS_RDMA="m"
+                               CONFIG_RDS_TCP="m"
+                               add_conf "# Load RDS module" "RDS_LOAD=no"
+                               ;;
+                       --without-rds-mod)
+                               CONFIG_RDS=
+                               CONFIG_RDS_RDMA=
+                               CONFIG_RDS_TCP=
+                               ;;
+                       --with-rds_debug-mod)
+                               CONFIG_RDS_DEBUG="y"
+                               ;;
+                       --without-rds_debug-mod)
+                               CONFIG_RDS_DEBUG=
+                               ;;
+                       --with-madeye-mod)
+                               CONFIG_INFINIBAND_MADEYE=m
+                               ;;
+                       --without-madeye-mod)
+                               CONFIG_INFINIBAND_MADEYE=
+                               ;;
+                       --with-qlgc_vnic-mod)
+                               CONFIG_INFINIBAND_QLGC_VNIC="m"
+                               add_conf "# Load QLogic VNIC module" "QLGC_VNIC_LOAD=yes"
+                               ;;
+                       --without-qlgc_vnic-mod)
+                               CONFIG_INFINIBAND_QLGC_VNIC=
+                               ;;
+                       --with-qlgc_vnic_stats-mod)
+                               CONFIG_INFINIBAND_QLGC_VNIC_STATS="y"
+                               ;;
+                       --without-qlgc_vnic_stats-mod)
+                               CONFIG_INFINIBAND_QLGC_VNIC_STATS=
+                               ;;
+                       --with-cxgb3-mod)
+                               CONFIG_INFINIBAND_CXGB3="m"
+                               CONFIG_CHELSIO_T3="m"
+                               add_conf "# Load CXGB3 modules" "CXGB3_LOAD=yes"
+                               ;;
+                       --without-cxgb3-mod)
+                               CONFIG_INFINIBAND_CXGB3=
+                               CONFIG_CHELSIO_T3=
+                               ;;
+                       --with-cxgb3_debug-mod)
+                               CONFIG_INFINIBAND_CXGB3_DEBUG="y"
+                               ;;
+                       --without-cxgb3_debug-mod)
+                               CONFIG_INFINIBAND_CXGB3_DEBUG=
+                               ;;
+                       --with-cxgb4-mod)
+                               CONFIG_INFINIBAND_CXGB4="m"
+                               CONFIG_CHELSIO_T4="m"
+                               add_conf "# Load CXGB4 modules" "CXGB4_LOAD=yes"
+                               ;;
+                       --without-cxgb4-mod)
+                               CONFIG_INFINIBAND_CXGB4=
+                               CONFIG_CHELSIO_T4=
+                               ;;
+                       --with-cxgb3i-mod)
+                               CONFIG_SCSI_CXGB3_ISCSI="m"
+                               ;;
+                       --without-cxgb3i-mod)
+                               CONFIG_SCSI_CXGB3_ISCSI=
+                               ;;
+                       --with-cxgb4i-mod)
+                               CONFIG_SCSI_CXGB4_ISCSI="m"
+                               ;;
+                       --without-cxgb4i-mod)
+                               CONFIG_SCSI_CXGB4_ISCSI=
+                               ;;
+                       --with-i40iw-mod)
+                               CONFIG_INFINIBAND_I40IW="m"
+                               CONFIG_I40E="m"
+                               add_conf "# Load I40IW modules" "I40IW_LOAD=yes"
+                               ;;
+                       --without-i40iw-mod)
+                               CONFIG_INFINIBAND_I40IW=
+                               CONFIG_I40E=
+                               add_conf "# Load I40IW modules" "I40IW_LOAD=no"
+                               ;;
+                       --with-nes-mod)
+                               CONFIG_INFINIBAND_NES="m"
+                               add_conf "# Load NES modules" "NES_LOAD=yes"
+                               ;;
+                       --without-nes-mod)
+                               CONFIG_INFINIBAND_NES=
+                               ;;
+                       --with-nes_debug-mod)
+                               CONFIG_INFINIBAND_NES_DEBUG="y"
+                               ;;
+                       --without-nes_debug-mod)
+                               CONFIG_INFINIBAND_NES_DEBUG=
+                               ;;
+                       --with-ocrdma-mod)
+                               CONFIG_INFINIBAND_OCRDMA="m"
+                               CONFIG_BE2NET="m"
+                               add_conf "# Load OCRDMA modules" "OCRDMA_LOAD=yes"
+                               ;;
+                       --without-ocrdma-mod)
+                               CONFIG_INFINIBAND_OCRDMA=
+                               ;;
+                       --with-be2net-mod)
+                               CONFIG_BE2NET="m"
+                               ;;
+                       --without-be2net-mod)
+                               CONFIG_BE2NET=
+                               ;;
                        --with-bnxt_re-mod)
-                            CONFIG_INFINIBAND_BNXT_RE="m"
-                            CONFIG_BNXT="m"
-                            add_conf "# Load BNXT_RE modules" "BNXT_RE_LOAD=yes"
-                        ;;
-                        --without-bnxt_re-mod)
-                            CONFIG_INFINIBAND_BNXT_RE=
-                        ;;
-                        --with-bnxt_en-mod)
-                            CONFIG_BNXT="m"
-                            CONFIG_BNXT_DCB="y"
-                        ;;
-                        --without-bnxt_en-mod)
-                            CONFIG_BNXT=
-                        ;;
-
-                        --with-nfsrdma-mod)
-                            CONFIG_SUNRPC_XPRT_RDMA="m"
-                            CONFIG_SUNRPC_XPRT_RDMA_CLIENT="m"
-                            CONFIG_SUNRPC_XPRT_RDMA_SERVER="m"
-                        ;;
-                        --without-nfsrdma-mod)
-                            CONFIG_SUNRPC_XPRT_RDMA=
-                            CONFIG_SUNRPC_XPRT_RDMA_CLIENT=
-                            CONFIG_SUNRPC_XPRT_RDMA_SERVER=
-                        ;;
-                        --with-vmw_pvrdma-mod)
-                            CONFIG_INFINIBAND_VMWARE_PVRDMA="m"
-                        ;;
-                        --without-vmw_pvrdma-mod)
-                            CONFIG_INFINIBAND_VMWARE_PVRDMA=
-                        ;;
-                        --with-qed-mod)
-                            CONFIG_QED="m"
-                        ;;
-                        --without-qed-mod)
-                            CONFIG_QED=
-                        ;;
-                        --with-qede-mod)
-                            CONFIG_QED="m"
-                            CONFIG_QEDE="m"
-                        ;;
-                        --without-qede-mod)
-                            CONFIG_QED=
-                            CONFIG_QEDE=
-                        ;;
-                        --with-qedr-mod)
-                            CONFIG_QED="m"
-                            CONFIG_QED_LL2="m"
-                            CONFIG_QED_RDMA="m"
-                            CONFIG_QEDE="m"
-                            CONFIG_INFINIBAND_QEDR="m"
-                        ;;
-                        --without-qedr-mod)
-                            CONFIG_QED=
-                            CONFIG_QED_LL2=
-                            CONFIG_QED_RDMA=
-                            CONFIG_QEDE=
-                            CONFIG_INFINIBAND_QEDR=
-                        ;;
+                               CONFIG_INFINIBAND_BNXT_RE="m"
+                               CONFIG_BNXT="m"
+                               add_conf "# Load BNXT_RE modules" "BNXT_RE_LOAD=yes"
+                               ;;
+                       --without-bnxt_re-mod)
+                               CONFIG_INFINIBAND_BNXT_RE=
+                               ;;
+                       --with-bnxt_en-mod)
+                               CONFIG_BNXT="m"
+                               CONFIG_BNXT_DCB="y"
+                               ;;
+                       --without-bnxt_en-mod)
+                               CONFIG_BNXT=
+                               ;;
+
+                       --with-nfsrdma-mod)
+                               CONFIG_SUNRPC_XPRT_RDMA="m"
+                               CONFIG_SUNRPC_XPRT_RDMA_CLIENT="m"
+                               CONFIG_SUNRPC_XPRT_RDMA_SERVER="m"
+                               ;;
+                       --without-nfsrdma-mod)
+                               CONFIG_SUNRPC_XPRT_RDMA=
+                               CONFIG_SUNRPC_XPRT_RDMA_CLIENT=
+                               CONFIG_SUNRPC_XPRT_RDMA_SERVER=
+                               ;;
+                       --with-vmw_pvrdma-mod)
+                               CONFIG_INFINIBAND_VMWARE_PVRDMA="m"
+                               ;;
+                       --without-vmw_pvrdma-mod)
+                               CONFIG_INFINIBAND_VMWARE_PVRDMA=
+                               ;;
+                       --with-qed-mod)
+                               CONFIG_QED="m"
+                               ;;
+                       --without-qed-mod)
+                               CONFIG_QED=
+                               ;;
+                       --with-qede-mod)
+                               CONFIG_QED="m"
+                               CONFIG_QEDE="m"
+                               ;;
+                       --without-qede-mod)
+                               CONFIG_QED=
+                               CONFIG_QEDE=
+                               ;;
+                       --with-qedr-mod)
+                               CONFIG_QED="m"
+                               CONFIG_QED_LL2="m"
+                               CONFIG_QED_RDMA="m"
+                               CONFIG_QEDE="m"
+                               CONFIG_INFINIBAND_QEDR="m"
+                               ;;
+                       --without-qedr-mod)
+                               CONFIG_QED=
+                               CONFIG_QED_LL2=
+                               CONFIG_QED_RDMA=
+                               CONFIG_QEDE=
+                               CONFIG_INFINIBAND_QEDR=
+                               ;;
                        --with-nvme-mod)
-                           CONFIG_NVME_CORE="m"
-                           CONFIG_BLK_DEV_NVME="m"
-                       ;;
+                               CONFIG_NVME_CORE="m"
+                               CONFIG_BLK_DEV_NVME="m"
+                               ;;
                        --without-nvme-mod)
-                           CONFIG_NVME_CORE=
-                           CONFIG_BLK_DEV_NVME=
-                       ;;
+                               CONFIG_NVME_CORE=
+                               CONFIG_BLK_DEV_NVME=
+                               ;;
                        --with-nvme-host-mod)
-                           CONFIG_NVME_RDMA="m"
-                           CONFIG_NVME_FABRICS="m"
-                       ;;
+                               CONFIG_NVME_RDMA="m"
+                               CONFIG_NVME_FABRICS="m"
+                               ;;
                        --without-nvme-host-mod)
-                           CONFIG_NVME_RDMA=
-                           CONFIG_NVME_FABRICS=
-                       ;;
+                               CONFIG_NVME_RDMA=
+                               CONFIG_NVME_FABRICS=
+                               ;;
                        --with-nvme-target-mod)
-                           CONFIG_NVME_TARGET="m"
-                           CONFIG_NVME_TARGET_RDMA="m"
-                       ;;
+                               CONFIG_NVME_TARGET="m"
+                               CONFIG_NVME_TARGET_RDMA="m"
+                               ;;
                        --without-nvme-target-mod)
-                           CONFIG_NVME_TARGET=
-                           CONFIG_NVME_TARGET_RDMA=
+                               CONFIG_NVME_TARGET=
+                               CONFIG_NVME_TARGET_RDMA=
+                               ;;
+                       --without-firmware-mod)
+                               ;;
+
+                       -h | --help)
+                               usage
+                               exit 0
+                               ;;
+                       --without*)
+                               tmpconfig=`echo $1 | sed -e 's/--without/CONFIG/' -e 's/-/_/g' | tr '[:lower:]' '[:upper:]'`
+                               eval export $tmpconfig=
+                               ;;
+                       --with*=*)
+                               tmpconfig=`echo $1 | cut -d '=' -f 1 | sed -e 's/--with/CONFIG/' -e 's/-/_/g' | tr '[:lower:]' '[:upper:]'`
+                               eval export $tmpconfig=`expr "x$1" : 'x[^=]*=\(.*\)'`
+                               ;;
+                       --with*)
+                               tmpconfig=`echo $1 | sed -e 's/--with/CONFIG/' -e 's/-/_/g' | tr '[:lower:]' '[:upper:]'`
+                               eval export $tmpconfig=y
+                               ;;
+                       *)
+                               echo
+                               echo "Unsupported parameter $1"
+                               echo
+                               ;;
+               esac
+               shift
+
+       done
+
+       #Set default values
+       KVERSION=${KVERSION:-$(uname -r)}
+       MIN_KVERSION="2.6.5"
+       MODULES_DIR=${MODULES_DIR:-/lib/modules/${KVERSION}/updates}
+       KSRC=${KSRC:-/lib/modules/${KVERSION}/source}
+       KSRC_OBJ=${KSRC_OBJ:-/lib/modules/$KVERSION/build}
+
+       ARCH=${ARCH:-$(uname -m)}
+
+       case $ARCH in
+               ppc*)
+                       ARCH=powerpc
                        ;;
-                        --without-firmware-mod)
-                        ;;
-
-                        -h | --help)
-                                usage
-                                exit 0
-                        ;;
-                        --with*)
-                                echo
-                                echo "Unsupported or unused parameter: $1"
-                                echo
-                        ;;
-                        *)
-                                echo
-                                echo "Unsupported parameter $1"
-                                echo
-                        ;;
-                esac
-                shift
-
-        done
-
-#Set default values
-KVERSION=${KVERSION:-$(uname -r)}
-MIN_KVERSION="2.6.5"
-MODULES_DIR=${MODULES_DIR:-/lib/modules/${KVERSION}/updates}
-KSRC=${KSRC:-/lib/modules/${KVERSION}/source}
-KSRC_OBJ=${KSRC_OBJ:-/lib/modules/$KVERSION/build}
-
-ARCH=${ARCH:-$(uname -m)}
-
-case $ARCH in
-       ppc*)
-       ARCH=powerpc
-       ;;
-       i?86)
-       ARCH=i386
-       ;;
-esac
-
-# Additional parameters to be passed to configure command
-CWD=$(pwd)
-CONFIG="configure.mk.kernel"
-
-
-if (/bin/ls -1 $KSRC_OBJ/include/*/autoconf.h 2>/dev/null | head -1 | grep -q generated); then
-    AUTOCONF_PREFIX=generated
-else
-    AUTOCONF_PREFIX=linux
-fi
-mkdir -p ${CWD}/include/${AUTOCONF_PREFIX}
-AUTOCONF_H="${CWD}/include/${AUTOCONF_PREFIX}/autoconf.h"
-
-# disable unsupported modules on 32bit
-if [ $ARCH != "x86_64" ]; then
-    CONFIG_INFINIBAND_IPATH=
-    CONFIG_INFINIBAND_QIB=
-    CONFIG_INFINIBAND_RDMAVT=
-    CONFIG_RDMA_RXE=
-    CONFIG_INFINIBAND_VMWARE_PVRDMA=
-fi
+               i?86)
+                       ARCH=i386
+                       ;;
+       esac
 
-SKIP_AUTOCONF=${SKIP_AUTOCONF:-0}
-FORCE_AUTOGEN=${FORCE_AUTOGEN:-0}
-CONFIG_MEMTRACK=${CONFIG_MEMTRACK:-''}
-CONFIG_DEBUG_INFO=${CONFIG_DEBUG_INFO:-'y'}
-CONFIG_INFINIBAND=${CONFIG_INFINIBAND:-''}
-CONFIG_INFINIBAND_IPOIB=${CONFIG_INFINIBAND_IPOIB:-''}
-CONFIG_INFINIBAND_IPOIB_CM=${CONFIG_INFINIBAND_IPOIB_CM:-''}
-CONFIG_INFINIBAND_SRP=${CONFIG_INFINIBAND_SRP:-''}
-CONFIG_SCSI_SRP_ATTRS=${CONFIG_SCSI_SRP_ATTRS:-''}
-CONFIG_INFINIBAND_SRPT=${CONFIG_INFINIBAND_SRPT:-''}
-
-CONFIG_INFINIBAND_USER_MAD=${CONFIG_INFINIBAND_USER_MAD:-''}
-CONFIG_INFINIBAND_USER_ACCESS=${CONFIG_INFINIBAND_USER_ACCESS:-''}
-CONFIG_INFINIBAND_ADDR_TRANS=${CONFIG_INFINIBAND_ADDR_TRANS:-''}
-CONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS=''
-CONFIG_INFINIBAND_USER_MEM=${CONFIG_INFINIBAND_USER_MEM:-''}
-CONFIG_INFINIBAND_MTHCA=${CONFIG_INFINIBAND_MTHCA:-''}
-
-CONFIG_MLX4_CORE=${CONFIG_MLX4_CORE:-''}
-CONFIG_MLX5_CORE=${CONFIG_MLX5_CORE:-''}
-CONFIG_MLX5_CORE_EN=${CONFIG_MLX5_CORE_EN:-''}
-CONFIG_MLX5_CORE_EN_DCB=${CONFIG_MLX5_CORE_EN_DCB:-''}
-CONFIG_MLX4_EN=${CONFIG_MLX4_EN:-''}
-CONFIG_MLX4_VNIC=${CONFIG_MLX4_VNIC:-''}
-CONFIG_MLX4_INFINIBAND=${CONFIG_MLX4_INFINIBAND:-''}
-CONFIG_MLX5_INFINIBAND=${CONFIG_MLX5_INFINIBAND:-''}
-CONFIG_MLX4_DEBUG=${CONFIG_MLX4_DEBUG:-''}
-CONFIG_MLX5_DEBUG=${CONFIG_MLX5_DEBUG:-''}
-
-CONFIG_IBP_SERVER=${CONFIG_IBP_SERVER:-''}
-CONFIG_IBP_DEBUG=${CONFIG_IBP_DEBUG:-''}
-
-CONFIG_INFINIBAND_SCIF=${CONFIG_INFINIBAND_SCIF:-''}
-
-CONFIG_INFINIBAND_IPOIB_DEBUG=${CONFIG_INFINIBAND_IPOIB_DEBUG:-''}
-CONFIG_INFINIBAND_ISER=${CONFIG_INFINIBAND_ISER:-''}
-CONFIG_INFINIBAND_ISERT=${CONFIG_INFINIBAND_ISERT:-''}
-CONFIG_SCSI_ISCSI_ATTRS=${CONFIG_SCSI_ISCSI_ATTRS:-''}
-CONFIG_ISCSI_TCP=${CONFIG_ISCSI_TCP:-''}
-CONFIG_INFINIBAND_EHCA=${CONFIG_INFINIBAND_EHCA:-''}
-CONFIG_INFINIBAND_EHCA_SCALING=${CONFIG_INFINIBAND_EHCA_SCALING:-''}
-CONFIG_RDS=${CONFIG_RDS:-''}
-CONFIG_RDS_RDMA=${CONFIG_RDS_RDMA:-''}
-CONFIG_RDS_TCP=${CONFIG_RDS_TCP:-''}
-CONFIG_RDS_DEBUG=${CONFIG_RDS_DEBUG:-''}
-CONFIG_INFINIBAND_MADEYE=${CONFIG_INFINIBAND_MADEYE:-''}
-CONFIG_INFINIBAND_QLGC_VNIC=${CONFIG_INFINIBAND_QLGC_VNIC:-''}
-CONFIG_INFINIBAND_CXGB3=${CONFIG_INFINIBAND_CXGB3:-''}
-CONFIG_CHELSIO_T3=${CONFIG_CHELSIO_T3:-''}
-CONFIG_INFINIBAND_CXGB4=${CONFIG_INFINIBAND_CXGB4:-''}
-CONFIG_CHELSIO_T4=${CONFIG_CHELSIO_T4:-''}
-CONFIG_SCSI_CXGB3_ISCSI=${CONFIG_SCSI_CXGB3_ISCSI:-''}
-CONFIG_SCSI_CXGB4_ISCSI=${CONFIG_SCSI_CXGB4_ISCSI:-''}
-CONFIG_INFINIBAND_I40IW=${CONFIG_INFINIBAND_I40IW:-''}
-CONFIG_I40E=${CONFIG_I40E:-''}
-CONFIG_INFINIBAND_NES=${CONFIG_INFINIBAND_NES:-''}
-CONFIG_INFINIBAND_OCRDMA=${CONFIG_INFINIBAND_OCRDMA:-''}
-CONFIG_BE2NET=${CONFIG_BE2NET:-''}
-CONFIG_INFINIBAND_BNXT_RE=${CONFIG_INFINIBAND_BNXT_RE:-''}
-CONFIG_BNXT=${CONFIG_BNXT:-''}
-CONFIG_BNXT_DCB=${CONFIG_BNXT_DCB:-''}
-CONFIG_INFINIBAND_VMWARE_PVRDMA=${CONFIG_INFINIBAND_VMWARE_PVRDMA:-''}
-
-CONFIG_SUNRPC_XPRT_RDMA=${CONFIG_SUNRPC_XPRT_RDMA:-''}
-CONFIG_SUNRPC_XPRT_RDMA_CLIENT=${CONFIG_SUNRPC_XPRT_RDMA_CLIENT:-''}
-CONFIG_SUNRPC_XPRT_RDMA_SERVER=${CONFIG_SUNRPC_XPRT_RDMA_SERVER:-''}
-CONFIG_SCSI_SRP_ATTRS=${CONFIG_SCSI_SRP_ATTRS:-''}
-CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=${CONFIG_INFINIBAND_IPOIB_DEBUG_DATA:-''}
-CONFIG_INFINIBAND_IPATH=${CONFIG_INFINIBAND_IPATH:-''}
-CONFIG_INFINIBAND_QIB=${CONFIG_INFINIBAND_QIB:-''}
-CONFIG_INFINIBAND_RDMAVT=${CONFIG_INFINIBAND_RDMAVT:-''}
-CONFIG_RDMA_RXE=${CONFIG_RDMA_RXE:-''}
-CONFIG_INFINIBAND_MTHCA_DEBUG=${CONFIG_INFINIBAND_MTHCA_DEBUG:-''}
-CONFIG_INFINIBAND_QLGC_VNIC_STATS=${CONFIG_INFINIBAND_QLGC_VNIC_STATS:-''}
-CONFIG_INFINIBAND_CXGB3_DEBUG=${CONFIG_INFINIBAND_CXGB3_DEBUG:-''}
-CONFIG_INFINIBAND_NES_DEBUG=${CONFIG_INFINIBAND_NES_DEBUG:-''}
-CONFIG_INFINIBAND_AMSO1100=${CONFIG_INFINIBAND_AMSO1100:-''}
-
-CONFIG_NVME_CORE=${CONFIG_NVME_CORE:-''}
-CONFIG_BLK_DEV_NVME=${CONFIG_BLK_DEV_NVME:-''}
-CONFIG_NVME_FABRICS=${CONFIG_NVME_FABRICS:-''}
-CONFIG_NVME_RDMA=${CONFIG_NVME_RDMA:-''}
-CONFIG_NVME_TARGET=${CONFIG_NVME_TARGET:-''}
-CONFIG_NVME_TARGET_RDMA=${CONFIG_NVME_TARGET_RDMA:-''}
-
-CONFIG_MLX4_EN_DCB=''
-
-CONFIG_QED=${CONFIG_QED:-''}
-CONFIG_QED_LL2=${CONFIG_QED_LL2:-''}
-CONFIG_QED_RDMA=${CONFIG_QED_RDMA:-''}
-CONFIG_QEDE=${CONFIG_QEDE:-''}
-CONFIG_INFINIBAND_QEDR=${CONFIG_INFINIBAND_QEDR:-''}
-
-if [ "X${CONFIG_MLX4_EN}" == "Xm" ]; then
-    check_autofconf CONFIG_DCB
-    if [ X${CONFIG_DCB} == "X1" ]; then
-        CONFIG_MLX4_EN_DCB=y
-    fi
-fi
+       # Additional parameters to be passed to configure command
+       CWD=$(pwd)
+       CONFIG="configure.mk.kernel"
+       # ALL_CONFIGS - includes all used config macros
+       ALL_CONFIGS="allconfigs"
 
-if [ "X${CONFIG_BNXT}" == "Xm" ]; then
-    check_autofconf CONFIG_DCB
-    if [ X${CONFIG_DCB} == "X1" ]; then
-        CONFIG_BNXT_DCB=y
-    fi
-fi
+       find $CWD -name Kconfig | xargs grep -h ^config | sed -e "s/config /CONFIG_/" | sort -n | uniq > $ALL_CONFIGS
+
+       if (/bin/ls -1 $KSRC_OBJ/include/*/autoconf.h 2>/dev/null | head -1 | grep -q generated); then
+               AUTOCONF_PREFIX=generated
+       else
+               AUTOCONF_PREFIX=linux
+       fi
+       mkdir -p ${CWD}/include/${AUTOCONF_PREFIX}
+       AUTOCONF_H="${CWD}/include/${AUTOCONF_PREFIX}/autoconf.h"
+
+       # disable unsupported modules on 32bit
+       if [ $ARCH != "x86_64" ]; then
+               CONFIG_INFINIBAND_IPATH=
+               CONFIG_INFINIBAND_QIB=
+               CONFIG_INFINIBAND_RDMAVT=
+               CONFIG_RDMA_RXE=
+               CONFIG_INFINIBAND_VMWARE_PVRDMA=
+       fi
 
-        # Check for minimal supported kernel version
-        if ! check_kerver ${KVERSION} ${MIN_KVERSION}; then
-                echo "Kernel version ${KVERSION} is less then supported kernel ${MIN_KVERSION}. Exiting..."
-                exit 1
-        fi
+       SKIP_AUTOCONF=${SKIP_AUTOCONF:-0}
+       FORCE_AUTOGEN=${FORCE_AUTOGEN:-0}
+
+       if [ "X${CONFIG_MLX4_EN}" == "Xm" ]; then
+               check_autofconf CONFIG_DCB
+               if [ X${CONFIG_DCB} == "X1" ]; then
+                       CONFIG_MLX4_EN_DCB=y
+               fi
+       fi
+
+       if [ "X${CONFIG_BNXT}" == "Xm" ]; then
+               check_autofconf CONFIG_DCB
+               if [ X${CONFIG_DCB} == "X1" ]; then
+                       CONFIG_BNXT_DCB=y
+               fi
+       fi
+
+       # Check for minimal supported kernel version
+       if ! check_kerver ${KVERSION} ${MIN_KVERSION}; then
+               echo "Kernel version ${KVERSION} is less then supported kernel ${MIN_KVERSION}. Exiting..."
+               exit 1
+       fi
 
        if [ ! -e .backports_applied ]; then
                echo ".backports_applied does not exist. running ofed_patch.sh"
                ex ${CWD}/ofed_scripts/ofed_patch.sh ${ofed_patch_params}
        fi
 
-# Configfs requires CONFIGFS_FS to be enabled in the kernel
-if [ "X${CONFIG_INFINIBAND_ADDR_TRANS}" == "Xy" ]; then
-    check_autofconf CONFIGFS_FS
-    if [ X${CONFIGFS_FS} == "X1" ]; then
-        CONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS=y
-    fi
-fi
+       # Configfs requires CONFIGFS_FS to be enabled in the kernel
+       if [ "X${CONFIG_INFINIBAND_ADDR_TRANS}" == "Xy" ]; then
+               check_autofconf CONFIGFS_FS
+               if [ X${CONFIGFS_FS} == "X1" ]; then
+                       CONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS=y
+               fi
+       fi
 
-        # Create configure.mk
-        /bin/rm -f ${CWD}/${CONFIG}
-        cat >> ${CWD}/${CONFIG} << EOFCONFIG
+       # Create configure.mk
+       /bin/rm -f ${CWD}/${CONFIG}
+       cat >> ${CWD}/${CONFIG} << EOFCONFIG
 # Current working directory
 CWD=${CWD}
 
@@ -1022,759 +942,62 @@ KLIB_BUILD=${KSRC_OBJ}
 AUTOCONF_H=${AUTOCONF_H}
 
 WITH_MAKE_PARAMS=${WITH_MAKE_PARAMS}
-
-CONFIG_MEMTRACK=${CONFIG_MEMTRACK}
-CONFIG_DEBUG_INFO=${CONFIG_DEBUG_INFO}
-CONFIG_INFINIBAND=${CONFIG_INFINIBAND}
-CONFIG_INFINIBAND_IPOIB=${CONFIG_INFINIBAND_IPOIB}
-CONFIG_INFINIBAND_IPOIB_CM=${CONFIG_INFINIBAND_IPOIB_CM}
-CONFIG_INFINIBAND_SRP=${CONFIG_INFINIBAND_SRP}
-CONFIG_SCSI_SRP_ATTRS=${CONFIG_SCSI_SRP_ATTRS}
-CONFIG_INFINIBAND_SRPT=${CONFIG_INFINIBAND_SRPT}
-
-CONFIG_INFINIBAND_USER_MAD=${CONFIG_INFINIBAND_USER_MAD}
-CONFIG_INFINIBAND_USER_ACCESS=${CONFIG_INFINIBAND_USER_ACCESS}
-CONFIG_INFINIBAND_ADDR_TRANS=${CONFIG_INFINIBAND_ADDR_TRANS}
-CONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS=${CONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS}
-CONFIG_INFINIBAND_USER_MEM=${CONFIG_INFINIBAND_USER_MEM}
-CONFIG_INFINIBAND_MTHCA=${CONFIG_INFINIBAND_MTHCA}
-
-CONFIG_MLX4_CORE=${CONFIG_MLX4_CORE}
-CONFIG_MLX5_CORE=${CONFIG_MLX5_CORE}
-CONFIG_MLX5_CORE_EN=${CONFIG_MLX5_CORE_EN}
-CONFIG_MLX5_CORE_EN_DCB=${CONFIG_MLX5_CORE_EN_DCB}
-CONFIG_MLX4_EN=${CONFIG_MLX4_EN}
-CONFIG_MLX4_EN_DCB=${CONFIG_MLX4_EN_DCB}
-CONFIG_MLX4_INFINIBAND=${CONFIG_MLX4_INFINIBAND}
-CONFIG_MLX5_INFINIBAND=${CONFIG_MLX5_INFINIBAND}
-CONFIG_MLX4_DEBUG=${CONFIG_MLX4_DEBUG}
-CONFIG_MLX5_DEBUG=${CONFIG_MLX5_DEBUG}
-
-CONFIG_IBP_SERVER=${CONFIG_IBP_SERVER}
-CONFIG_IBP_DEBUG=${CONFIG_IBP_DEBUG}
-
-CONFIG_INFINIBAND_SCIF=${CONFIG_INFINIBAND_SCIF}
-
-CONFIG_INFINIBAND_IPOIB_DEBUG=${CONFIG_INFINIBAND_IPOIB_DEBUG}
-CONFIG_INFINIBAND_ISERT=${CONFIG_INFINIBAND_ISERT}
-CONFIG_INFINIBAND_ISER=${CONFIG_INFINIBAND_ISER}
-CONFIG_SCSI_ISCSI_ATTRS=${CONFIG_SCSI_ISCSI_ATTRS}
-CONFIG_ISCSI_TCP=${CONFIG_ISCSI_TCP}
-CONFIG_INFINIBAND_EHCA=${CONFIG_INFINIBAND_EHCA}
-CONFIG_INFINIBAND_EHCA_SCALING=${CONFIG_INFINIBAND_EHCA_SCALING}
-CONFIG_RDS=${CONFIG_RDS}
-CONFIG_RDS_RDMA=${CONFIG_RDS_RDMA}
-CONFIG_RDS_TCP=${CONFIG_RDS_TCP}
-CONFIG_RDS_DEBUG=${CONFIG_RDS_DEBUG}
-CONFIG_INFINIBAND_MADEYE=${CONFIG_INFINIBAND_MADEYE}
-CONFIG_INFINIBAND_QLGC_VNIC=${CONFIG_INFINIBAND_QLGC_VNIC}
-CONFIG_INFINIBAND_CXGB3=${CONFIG_INFINIBAND_CXGB3}
-CONFIG_CHELSIO_T3=${CONFIG_CHELSIO_T3}
-CONFIG_INFINIBAND_CXGB4=${CONFIG_INFINIBAND_CXGB4}
-CONFIG_CHELSIO_T4=${CONFIG_CHELSIO_T4}
-CONFIG_SCSI_CXGB3_ISCSI=${CONFIG_SCSI_CXGB3_ISCSI}
-CONFIG_SCSI_CXGB4_ISCSI=${CONFIG_SCSI_CXGB4_ISCSI}
-CONFIG_INFINIBAND_I40IW=${CONFIG_INFINIBAND_I40IW}
-CONFIG_I40E=${CONFIG_I40E}
-CONFIG_INFINIBAND_NES=${CONFIG_INFINIBAND_NES}
-CONFIG_INFINIBAND_OCRDMA=${CONFIG_INFINIBAND_OCRDMA}
-CONFIG_BE2NET=${CONFIG_BE2NET}
-CONFIG_INFINIBAND_BNXT_RE=${CONFIG_INFINIBAND_BNXT_RE}
-CONFIG_BNXT=${CONFIG_BNXT}
-CONFIG_BNXT_DCB=${CONFIG_BNXT_DCB}
-CONFIG_INFINIBAND_VMWARE_PVRDMA=${CONFIG_INFINIBAND_VMWARE_PVRDMA}
-
-CONFIG_SUNRPC_XPRT_RDMA=${CONFIG_SUNRPC_XPRT_RDMA}
-CONFIG_SUNRPC_XPRT_RDMA_CLIENT=${CONFIG_SUNRPC_XPRT_RDMA_CLIENT}
-CONFIG_SUNRPC_XPRT_RDMA_SERVER=${CONFIG_SUNRPC_XPRT_RDMA_SERVER}
-
-
-CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=${CONFIG_INFINIBAND_IPOIB_DEBUG_DATA}
-CONFIG_INFINIBAND_IPATH=${CONFIG_INFINIBAND_IPATH}
-CONFIG_INFINIBAND_QIB=${CONFIG_INFINIBAND_QIB}
-CONFIG_INFINIBAND_RDMAVT=${CONFIG_INFINIBAND_RDMAVT}
-CONFIG_RDMA_RXE=${CONFIG_RDMA_RXE}
-CONFIG_INFINIBAND_MTHCA_DEBUG=${CONFIG_INFINIBAND_MTHCA_DEBUG}
-CONFIG_INFINIBAND_QLGC_VNIC_STATS=${CONFIG_INFINIBAND_QLGC_VNIC_STATS}
-CONFIG_INFINIBAND_CXGB3_DEBUG=${CONFIG_INFINIBAND_CXGB3_DEBUG}
-CONFIG_INFINIBAND_NES_DEBUG=${CONFIG_INFINIBAND_NES_DEBUG}
-CONFIG_INFINIBAND_AMSO1100=${CONFIG_INFINIBAND_AMSO1100}
-
-CONFIG_NVME_CORE=${CONFIG_NVME_CORE}
-CONFIG_BLK_DEV_NVME=${CONFIG_BLK_DEV_NVME}
-CONFIG_NVME_FABRICS=${CONFIG_NVME_FABRICS}
-CONFIG_NVME_RDMA=${CONFIG_NVME_RDMA}
-CONFIG_NVME_TARGET=${CONFIG_NVME_TARGET}
-CONFIG_NVME_TARGET_RDMA=${CONFIG_NVME_TARGET_RDMA}
-
-CONFIG_MLX4_EN_DCB=${CONFIG_MLX4_EN_DCB}
-
-CONFIG_QED=${CONFIG_QED}
-CONFIG_QED_LL2=${CONFIG_QED_LL2}
-CONFIG_QED_RDMA=${CONFIG_QED_RDMA}
-CONFIG_QEDE=${CONFIG_QEDE}
-CONFIG_INFINIBAND_QEDR=${CONFIG_INFINIBAND_QEDR}
-
 EOFCONFIG
-        echo "Created ${CONFIG}:"
-        cat ${CWD}/${CONFIG}
-
-# Create autoconf.h
-if [ "X${CONFIG_MEMTRACK}" == "Xm" ]; then
-        DEFINE_MEMTRACK="#undef CONFIG_MEMTRACK\n#define CONFIG_MEMTRACK 1"
-else
-        DEFINE_MEMTRACK="#undef CONFIG_MEMTRACK"
-fi
-if [ "X${CONFIG_DEBUG_INFO}" == "Xy" ]; then
-        DEFINE_DEBUG_INFO="#undef CONFIG_DEBUG_INFO\n#define CONFIG_DEBUG_INFO 1"
-else
-        DEFINE_DEBUG_INFO="#undef CONFIG_DEBUG_INFO"
-fi
-if [ "X${CONFIG_INFINIBAND}" == "Xm" ]; then
-        DEFINE_INFINIBAND="#undef CONFIG_INFINIBAND\n#define CONFIG_INFINIBAND 1"
-else
-        DEFINE_INFINIBAND="#undef CONFIG_INFINIBAND"
-fi
-if [ "X${CONFIG_INFINIBAND_IPOIB}" == "Xm" ]; then
-        DEFINE_INFINIBAND_IPOIB="#undef CONFIG_INFINIBAND_IPOIB\n#define CONFIG_INFINIBAND_IPOIB 1"
-else
-        DEFINE_INFINIBAND_IPOIB="#undef CONFIG_INFINIBAND_IPOIB"
-fi
-if [ "X${CONFIG_INFINIBAND_IPOIB_CM}" == "Xy" ]; then
-        DEFINE_INFINIBAND_IPOIB_CM="#undef CONFIG_INFINIBAND_IPOIB_CM\n#define CONFIG_INFINIBAND_IPOIB_CM 1"
-else
-        DEFINE_INFINIBAND_IPOIB_CM="#undef CONFIG_INFINIBAND_IPOIB_CM"
-fi
-if [ "X${CONFIG_INFINIBAND_SRP}" == "Xm" ]; then
-        DEFINE_INFINIBAND_SRP="#undef CONFIG_INFINIBAND_SRP\n#define CONFIG_INFINIBAND_SRP 1"
-else
-        DEFINE_INFINIBAND_SRP="#undef CONFIG_INFINIBAND_SRP"
-fi
-if [ "X${CONFIG_SCSI_SRP_ATTRS}" == "Xm" ]; then
-        DEFINE_SCSI_SRP_ATTRS="#undef CONFIG_SCSI_SRP_ATTRS\n#define CONFIG_SCSI_SRP_ATTRS 1"
-else
-        DEFINE_SCSI_SRP_ATTRS="/* CONFIG_SCSI_SRP_ATTRS is not set */"
-fi
-if [ "X${CONFIG_INFINIBAND_SRPT}" == "Xm" ]; then
-        DEFINE_INFINIBAND_SRPT="#undef CONFIG_INFINIBAND_SRPT\n#define CONFIG_INFINIBAND_SRPT 1"
-else
-        DEFINE_INFINIBAND_SRPT="#undef CONFIG_INFINIBAND_SRP"
-fi
-if [ "X${CONFIG_INFINIBAND_USER_MAD}" == "Xm" ]; then
-        DEFINE_INFINIBAND_USER_MAD="#undef CONFIG_INFINIBAND_USER_MAD\n#define CONFIG_INFINIBAND_USER_MAD 1"
-else
-        DEFINE_INFINIBAND_USER_MAD="#undef CONFIG_INFINIBAND_USER_MAD"
-fi
-if [ "X${CONFIG_INFINIBAND_USER_ACCESS}" == "Xm" ]; then
-        DEFINE_INFINIBAND_USER_ACCESS="#undef CONFIG_INFINIBAND_USER_ACCESS\n#define CONFIG_INFINIBAND_USER_ACCESS 1"
-else
-        DEFINE_INFINIBAND_USER_ACCESS="#undef CONFIG_INFINIBAND_USER_ACCESS"
-fi
-if [ "X${CONFIG_INFINIBAND_ADDR_TRANS}" == "Xy" ]; then
-        DEFINE_INFINIBAND_ADDR_TRANS="#undef CONFIG_INFINIBAND_ADDR_TRANS\n#define CONFIG_INFINIBAND_ADDR_TRANS 1"
-else
-        DEFINE_INFINIBAND_ADDR_TRANS="#undef CONFIG_INFINIBAND_ADDR_TRANS"
-fi
-if [ "X${CONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS}" == "Xy" ]; then
-        DEFINE_INFINIBAND_ADDR_TRANS_CONFIGFS="#undef CONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS\n#define CONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS 1"
-else
-        DEFINE_INFINIBAND_ADDR_TRANS_CONFIGFS="#undef CONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS"
-fi
-if [ "X${CONFIG_INFINIBAND_USER_MEM}" == "Xy" ]; then
-        DEFINE_INFINIBAND_USER_MEM="#undef CONFIG_INFINIBAND_USER_MEM\n#define CONFIG_INFINIBAND_USER_MEM 1"
-else
-        DEFINE_INFINIBAND_USER_MEM="#undef CONFIG_INFINIBAND_USER_MEM"
-fi
-if [ "X${CONFIG_INFINIBAND_MTHCA}" == "Xm" ]; then
-        DEFINE_INFINIBAND_MTHCA="#undef CONFIG_INFINIBAND_MTHCA\n#define CONFIG_INFINIBAND_MTHCA 1"
-else
-        DEFINE_INFINIBAND_MTHCA="#undef CONFIG_INFINIBAND_MTHCA"
-fi
-if [ "X${CONFIG_MLX4_CORE}" == "Xm" ]; then
-        DEFINE_MLX4_CORE="#undef CONFIG_MLX4_CORE\n#define CONFIG_MLX4_CORE 1"
-else
-        DEFINE_MLX4_CORE="#undef CONFIG_MLX4_CORE"
-fi
-if [ "X${CONFIG_MLX5_CORE}" == "Xm" ]; then
-        DEFINE_MLX5_CORE="#undef CONFIG_MLX5_CORE\n#define CONFIG_MLX5_CORE 1"
-else
-        DEFINE_MLX5_CORE="#undef CONFIG_MLX5_CORE"
-fi
-if [ "X${CONFIG_MLX5_CORE_EN}" == "Xy" ]; then
-        DEFINE_MLX5_CORE_EN="#undef CONFIG_MLX5_CORE_EN\n#define CONFIG_MLX5_CORE_EN 1"
-else
-        DEFINE_MLX5_CORE_EN="#undef CONFIG_MLX5_CORE_EN"
-fi
-if [ "X${CONFIG_MLX5_CORE_EN_DCB}" == "Xy" ]; then
-        DEFINE_MLX5_CORE_EN_DCB="#undef CONFIG_MLX5_CORE_EN_DCB\n#define CONFIG_MLX5_CORE_EN_DCB 1"
-else
-        DEFINE_MLX5_CORE_EN_DCB="#undef CONFIG_MLX5_CORE_EN_DCB"
-fi
-if [ "X${CONFIG_MLX4_EN}" == "Xm" ]; then
-        DEFINE_MLX4_EN="#undef CONFIG_MLX4_EN\n#define CONFIG_MLX4_EN 1"
-else
-        DEFINE_MLX4_EN="#undef CONFIG_MLX4_EN"
-fi
-if [ "X${CONFIG_MLX4_EN_DCB}" == "Xy" ]; then
-        DEFINE_MLX4_EN="#undef CONFIG_MLX4_EN_DCB\n#define CONFIG_MLX4_EN_DCB 1"
-else
-        DEFINE_MLX4_EN="#undef CONFIG_MLX4_EN_DCB"
-fi
-if [ "X${CONFIG_MLX4_INFINIBAND}" == "Xm" ]; then
-        DEFINE_MLX4_INFINIBAND="#undef CONFIG_MLX4_INFINIBAND\n#define CONFIG_MLX4_INFINIBAND 1"
-else
-        DEFINE_MLX4_INFINIBAND="#undef CONFIG_MLX4_INFINIBAND"
-fi
-if [ "X${CONFIG_MLX5_INFINIBAND}" == "Xm" ]; then
-        DEFINE_MLX5_INFINIBAND="#undef CONFIG_MLX5_INFINIBAND\n#define CONFIG_MLX5_INFINIBAND 1"
-else
-        DEFINE_MLX5_INFINIBAND="#undef CONFIG_MLX5_INFINIBAND"
-fi
-if [ "X${CONFIG_MLX4_DEBUG}" == "Xy" ]; then
-        DEFINE_MLX4_DEBUG="#undef CONFIG_MLX4_DEBUG\n#define CONFIG_MLX4_DEBUG 1"
-else
-        DEFINE_MLX4_DEBUG="#undef CONFIG_MLX4_DEBUG"
-fi
-if [ "X${CONFIG_MLX5_DEBUG}" == "Xy" ]; then
-        DEFINE_MLX5_DEBUG="#undef CONFIG_MLX5_DEBUG\n#define CONFIG_MLX5_DEBUG 1"
-else
-        DEFINE_MLX5_DEBUG="#undef CONFIG_MLX5_DEBUG"
-fi
-if [ "X${CONFIG_IBP_SERVER}" == "Xm" ]; then
-        DEFINE_IBP_SERVER="#undef CONFIG_IBP_SERVER\n#define CONFIG_IBP_SERVER 1"
-else
-        DEFINE_IBP_SERVER="#undef CONFIG_IBP_SERVER"
-fi
-if [ "X${CONFIG_IBP_DRV_DEBUG}" == "Xy" ]; then
-        DEFINE_IBP_DEBUG="#undef CONFIG_IBP_DEBUG\n#define CONFIG_IBP_DEBUG 1"
-else
-        DEFINE_IBP_DEBUG="#undef CONFIG_IBP_DEBUG"
-fi
-if [ "X${CONFIG_INFINIBAND_SCIF}" == "Xm" ]; then
-        DEFINE_INFINIBAND_SCIF="#undef CONFIG_INFINIBAND_SCIF\n#define CONFIG_INFINIBAND_SCIF 1"
-else
-        DEFINE_INFINIBAND_SCIF="#undef CONFIG_INFINIBAND_SCIF"
-fi
-if [ "X${CONFIG_INFINIBAND_IPOIB_DEBUG}" == "Xy" ]; then
-        DEFINE_INFINIBAND_IPOIB_DEBUG="#undef CONFIG_INFINIBAND_IPOIB_DEBUG\n#define CONFIG_INFINIBAND_IPOIB_DEBUG 1"
-else
-        DEFINE_INFINIBAND_IPOIB_DEBUG="#undef CONFIG_INFINIBAND_IPOIB_DEBUG"
-fi
-if [ "X${CONFIG_INFINIBAND_ISER}" == "Xm" ]; then
-        DEFINE_INFINIBAND_ISER="#undef CONFIG_INFINIBAND_ISER\n#define CONFIG_INFINIBAND_ISER 1"
-        DEFINE_SCSI_ISCSI_ATTRS="#undef CONFIG_SCSI_ISCSI_ATTRS\n#define CONFIG_SCSI_ISCSI_ATTRS 1"
-        DEFINE_ISCSI_TCP="#undef CONFIG_ISCSI_TCP\n#define CONFIG_ISCSI_TCP 1"
-else
-        DEFINE_INFINIBAND_ISER="#undef CONFIG_INFINIBAND_ISER"
-        DEFINE_SCSI_ISCSI_ATTRS="#undef CONFIG_SCSI_ISCSI_ATTRS"
-        DEFINE_ISCSI_TCP="#undef CONFIG_ISCSI_TCP"
-fi
-if [ "X${CONFIG_INFINIBAND_ISERT}" == "Xm" ]; then
-        DEFINE_INFINIBAND_ISERT="#undef CONFIG_INFINIBAND_ISERT\n#define CONFIG_INFINIBAND_ISERT 1"
-else
-        DEFINE_INFINIBAND_ISERT="#undef CONFIG_INFINIBAND_ISERT"
-fi
-if [ "X${CONFIG_INFINIBAND_EHCA}" == "Xm" ]; then
-        DEFINE_INFINIBAND_EHCA="#undef CONFIG_INFINIBAND_EHCA\n#define CONFIG_INFINIBAND_EHCA 1"
-else
-        DEFINE_INFINIBAND_EHCA="#undef CONFIG_INFINIBAND_EHCA"
-fi
-if [ "X${CONFIG_INFINIBAND_EHCA_SCALING}" == "Xy" ]; then
-        DEFINE_INFINIBAND_EHCA_SCALING="#undef CONFIG_INFINIBAND_EHCA_SCALING\n#define CONFIG_INFINIBAND_EHCA_SCALING 1"
-else
-        DEFINE_INFINIBAND_EHCA_SCALING="#undef CONFIG_INFINIBAND_EHCA_SCALING"
-fi
-if [ "X${CONFIG_RDS}" == "Xm" ]; then
-        DEFINE_RDS="#undef CONFIG_RDS\n#define CONFIG_RDS 1"
-        DEFINE_RDS_RDMA="#undef CONFIG_RDS_RDMA\n#define CONFIG_RDS_RDMA 1"
-        DEFINE_RDS_TCP="#undef CONFIG_RDS_TCP\n#define CONFIG_RDS_TCP 1"
-else
-        DEFINE_RDS="#undef CONFIG_RDS"
-        DEFINE_RDS_RDMA="#undef CONFIG_RDS_RDMA"
-        DEFINE_RDS_TCP="#undef CONFIG_RDS_TCP"
-fi
-if [ "X${CONFIG_RDS_DEBUG}" == "Xy" ]; then
-        DEFINE_RDS_DEBUG="#undef CONFIG_RDS_DEBUG\n#define CONFIG_RDS_DEBUG 1"
-else
-        DEFINE_RDS_DEBUG="#undef CONFIG_RDS_DEBUG"
-fi
-if [ "X${CONFIG_INFINIBAND_MADEYE}" == "Xm" ]; then
-        DEFINE_INFINIBAND_MADEYE="#undef CONFIG_INFINIBAND_MADEYE\n#define CONFIG_INFINIBAND_MADEYE 1"
-else
-        DEFINE_INFINIBAND_MADEYE="#undef CONFIG_INFINIBAND_MADEYE"
-fi
-if [ "X${CONFIG_INFINIBAND_IPOIB_DEBUG_DATA}" == "Xy" ]; then
-        DEFINE_INFINIBAND_IPOIB_DEBUG_DATA="#undef CONFIG_INFINIBAND_IPOIB_DEBUG_DATA\n#define CONFIG_INFINIBAND_IPOIB_DEBUG_DATA 1"
-else
-        DEFINE_INFINIBAND_IPOIB_DEBUG_DATA="#undef CONFIG_INFINIBAND_IPOIB_DEBUG_DATA"
-fi
-if [ "X${CONFIG_INFINIBAND_IPATH}" == "Xm" ]; then
-        DEFINE_INFINIBAND_IPATH="#undef CONFIG_INFINIBAND_IPATH\n#define CONFIG_INFINIBAND_IPATH 1"
-else
-        DEFINE_INFINIBAND_IPATH="#undef CONFIG_INFINIBAND_IPATH"
-fi
-if [ "X${CONFIG_RDMA_RXE}" == "Xm" ]; then
-        DEFINE_RDMA_RXE="#undef CONFIG_RDMA_RXE\n#define CONFIG_RDMA_RXE 1"
-else
-        DEFINE_RDMA_RXE="#undef CONFIG_RDMA_RXE"
-fi
-if [ "X${CONFIG_INFINIBAND_RDMAVT}" == "Xm" ]; then
-        DEFINE_INFINIBAND_RDMAVT="#undef CONFIG_INFINIBAND_RDMAVT\n#define CONFIG_INFINIBAND_RDMAVT 1"
-else
-        DEFINE_INFINIBAND_RDMAVT="#undef CONFIG_INFINIBAND_RDMAVT"
-fi
-if [ "X${CONFIG_INFINIBAND_QIB}" == "Xm" ]; then
-        DEFINE_INFINIBAND_QIB="#undef CONFIG_INFINIBAND_QIB\n#define CONFIG_INFINIBAND_QIB 1"
-else
-        DEFINE_INFINIBAND_QIB="#undef CONFIG_INFINIBAND_QIB"
-fi
-if [ "X${CONFIG_INFINIBAND_MTHCA_DEBUG}" == "Xy" ]; then
-        DEFINE_INFINIBAND_MTHCA_DEBUG="#undef CONFIG_INFINIBAND_MTHCA_DEBUG\n#define CONFIG_INFINIBAND_MTHCA_DEBUG 1"
-else
-        DEFINE_INFINIBAND_MTHCA_DEBUG="#undef CONFIG_INFINIBAND_MTHCA_DEBUG"
-fi
-if [ "X${CONFIG_INFINIBAND_QLGC_VNIC}" == "Xm" ]; then
-        DEFINE_INFINIBAND_QLGC_VNIC="#undef CONFIG_INFINIBAND_QLGC_VNIC\n#define CONFIG_INFINIBAND_QLGC_VNIC 1"
-else
-        DEFINE_INFINIBAND_QLGC_VNIC="#undef CONFIG_INFINIBAND_QLGC_VNIC"
-fi
-if [ "X${CONFIG_INFINIBAND_QLGC_VNIC_STATS}" == "Xy" ]; then
-        DEFINE_INFINIBAND_QLGC_VNIC_STATS="#undef CONFIG_INFINIBAND_QLGC_VNIC_STATS\n#define CONFIG_INFINIBAND_QLGC_VNIC_STATS 1"
-else
-        DEFINE_INFINIBAND_QLGC_VNIC_STATS="#undef CONFIG_INFINIBAND_QLGC_VNIC_STATS"
-fi
-if [ "X${CONFIG_INFINIBAND_CXGB3}" == "Xm" ]; then
-        DEFINE_INFINIBAND_CXGB3="#undef CONFIG_INFINIBAND_CXGB3\n#define CONFIG_INFINIBAND_CXGB3 1"
-else
-        DEFINE_INFINIBAND_CXGB3="#undef CONFIG_INFINIBAND_CXGB3"
-fi
-if [ "X${CONFIG_INFINIBAND_CXGB3_DEBUG}" == "Xy" ]; then
-        DEFINE_INFINIBAND_CXGB3_DEBUG="#undef CONFIG_INFINIBAND_CXGB3_DEBUG\n#define CONFIG_INFINIBAND_CXGB3_DEBUG 1"
-else
-        DEFINE_INFINIBAND_CXGB3_DEBUG="#undef CONFIG_INFINIBAND_CXGB3_DEBUG"
-fi
-if [ "X${CONFIG_CHELSIO_T3}" == "Xm" ]; then
-        DEFINE_CHELSIO_T3="#undef CONFIG_CHELSIO_T3\n#define CONFIG_CHELSIO_T3 1"
-else
-        DEFINE_CHELSIO_T3="#undef CONFIG_CHELSIO_T3"
-fi
-if [ "X${CONFIG_INFINIBAND_CXGB4}" == "Xm" ]; then
-        DEFINE_INFINIBAND_CXGB4="#undef CONFIG_INFINIBAND_CXGB4\n#define CONFIG_INFINIBAND_CXGB4 1"
-else
-        DEFINE_INFINIBAND_CXGB4="#undef CONFIG_INFINIBAND_CXGB4"
-fi
-if [ "X${CONFIG_CHELSIO_T4}" == "Xm" ]; then
-        DEFINE_CHELSIO_T4="#undef CONFIG_CHELSIO_T4\n#define CONFIG_CHELSIO_T4 1"
-else
-        DEFINE_CHELSIO_T4="#undef CONFIG_CHELSIO_T4"
-fi
-if [ "X${CONFIG_SCSI_CXGB3_ISCSI}" == "Xm" ]; then
-        DEFINE_SCSI_CXGB3_ISCSI="#undef CONFIG_SCSI_CXGB3_ISCSI\n#define CONFIG_SCSI_CXGB3_ISCSI 1"
-else
-        DEFINE_SCSI_CXGB3_ISCSI="#undef CONFIG_SCSI_CXGB3_ISCSI"
-fi
-if [ "X${CONFIG_SCSI_CXGB4_ISCSI}" == "Xm" ]; then
-        DEFINE_SCSI_CXGB4_ISCSI="#undef CONFIG_SCSI_CXGB4_ISCSI\n#define CONFIG_SCSI_CXGB4_ISCSI 1"
-else
-        DEFINE_SCSI_CXGB4_ISCSI="#undef CONFIG_SCSI_CXGB4_ISCSI"
-fi
-if [ "X${CONFIG_INFINIBAND_I40IW}" == "Xm" ]; then
-        DEFINE_INFINIBAND_I40IW="#undef CONFIG_INFINIBAND_I40IW\n#define CONFIG_INFINIBAND_I40IW 1"
-else
-        DEFINE_INFINIBAND_I40IW="#undef CONFIG_INFINIBAND_I40IW"
-fi
-if [ "X${CONFIG_I40E}" == "Xm" ]; then
-        DEFINE_I40E="#undef CONFIG_I40E\n#define CONFIG_I40E 1"
-else
-        DEFINE_I40E="#undef CONFIG_I40E"
-fi
-if [ "X${CONFIG_INFINIBAND_NES}" == "Xm" ]; then
-        DEFINE_INFINIBAND_NES="#undef CONFIG_INFINIBAND_NES\n#define CONFIG_INFINIBAND_NES 1"
-else
-        DEFINE_INFINIBAND_NES="#undef CONFIG_INFINIBAND_NES"
-fi
-if [ "X${CONFIG_INFINIBAND_OCRDMA}" == "Xm" ]; then
-        DEFINE_INFINIBAND_OCRDMA="#undef CONFIG_INFINIBAND_OCRDMA\n#define CONFIG_INFINIBAND_OCRDMA 1"
-else
-        DEFINE_INFINIBAND_OCRDMA="#undef CONFIG_INFINIBAND_OCRDMA"
-fi
-if [ "X${CONFIG_BE2NET}" == "Xm" ]; then
-        DEFINE_BE2NET="#undef CONFIG_BE2NET\n#define CONFIG_BE2NET 1"
-else
-        DEFINE_BE2NET="#undef CONFIG_BE2NET"
-fi
-if [ "X${CONFIG_INFINIBAND_BNXT_RE}" == "Xm" ]; then
-        DEFINE_INFINIBAND_BNXT_RE="#undef CONFIG_INFINIBAND_BNXT_RE\n#define CONFIG_INFINIBAND_BNXT_RE 1"
-else
-        DEFINE_INFINIBAND_BNXT_RE="#undef CONFIG_INFINIBAND_BNXT_RE"
-fi
-if [ "X${CONFIG_BNXT}" == "Xm" ]; then
-        DEFINE_BNXT="#undef CONFIG_BNXT\n#define CONFIG_BNXT 1"
-else
-        DEFINE_BNXT="#undef CONFIG_BNXT"
-fi
-if [ "X${CONFIG_BNXT_DCB}" == "Xy" ]; then
-        DEFINE_BNXT_DCB="#undef CONFIG_BNXT_DCB\n#define CONFIG_BNXT_DCB 1"
-else
-        DEFINE_BNXT_DCB="#undef CONFIG_BNXT_DCB"
-fi
-if [ "X${CONFIG_INFINIBAND_NES_DEBUG}" == "Xy" ]; then
-        DEFINE_INFINIBAND_NES_DEBUG="#undef CONFIG_INFINIBAND_NES_DEBUG\n#define CONFIG_INFINIBAND_NES_DEBUG 1"
-else
-        DEFINE_INFINIBAND_NES_DEBUG="#undef CONFIG_INFINIBAND_NES_DEBUG"
-fi
-if [ "X${CONFIG_INFINIBAND_AMSO1100}" == "Xm" ]; then
-        DEFINE_INFINIBAND_AMSO1100="#undef CONFIG_INFINIBAND_AMSO1100\n#define CONFIG_INFINIBAND_AMSO1100 1"
-else
-        DEFINE_INFINIBAND_AMSO1100="#undef CONFIG_INFINIBAND_AMSO1100"
-fi
-if [ "X${CONFIG_MLX4_EN_DCB}" == "Xy" ]; then
-        DEFINE_MLX4_EN_DCB="#undef CONFIG_MLX4_EN_DCB\n#define CONFIG_MLX4_EN_DCB 1"
-else
-        DEFINE_MLX4_EN_DCB="#undef CONFIG_MLX4_EN_DCB"
-fi
-if [ "X${CONFIG_SUNRPC_XPRT_RDMA}" == "Xm" ]; then
-        DEFINE_SUNRPC_XPRT_RDMA="#undef CONFIG_SUNRPC_XPRT_RDMA\n#define CONFIG_SUNRPC_XPRT_RDMA 1"
-else
-        DEFINE_SUNRPC_XPRT_RDMA="/* CONFIG_SUNRPC_XPRT_RDMA is not set */"
-fi
-if [ "X${CONFIG_SUNRPC_XPRT_RDMA_CLIENT}" == "Xm" ]; then
-        DEFINE_SUNRPC_XPRT_RDMA_CLIENT="#undef CONFIG_SUNRPC_XPRT_RDMA_CLIENT\n#define CONFIG_SUNRPC_XPRT_RDMA_CLIENT 1"
-else
-        DEFINE_SUNRPC_XPRT_RDMA_CLIENT="/* CONFIG_SUNRPC_XPRT_RDMA_CLIENT is not set */"
-fi
-if [ "X${CONFIG_SUNRPC_XPRT_RDMA_SERVER}" == "Xm" ]; then
-        DEFINE_SUNRPC_XPRT_RDMA_SERVER="#undef CONFIG_SUNRPC_XPRT_RDMA_SERVER\n#define CONFIG_SUNRPC_XPRT_RDMA_SERVER 1"
-else
-        DEFINE_SUNRPC_XPRT_RDMA_SERVER="/* CONFIG_SUNRPC_XPRT_RDMA_SERVER is not set */"
-fi
-if [ "X${CONFIG_INFINIBAND_VMWARE_PVRDMA}" == "Xm" ]; then
-        DEFINE_INFINIBAND_VMWARE_PVRDMA="#undef CONFIG_INFINIBAND_VMWARE_PVRDMA\n#define CONFIG_INFINIBAND_VMWARE_PVRDMA 1"
-else
-        DEFINE_INFINIBAND_VMWARE_PVRDMA="#undef CONFIG_INFINIBAND_VMWARE_PVRDMA"
-fi
-
-DEFINE_NVME_CORE="#undef CONFIG_NVME_CORE"
-DEFINE_BLK_DEV_NVME="#undef CONFIG_BLK_DEV_NVME"
-DEFINE_NVME_FABRICS="#undef CONFIG_NVME_FABRICS"
-DEFINE_NVME_RDMA="#undef CONFIG_NVME_RDMA"
-DEFINE_NVME_TARGET="#undef CONFIG_NVME_TARGET"
-DEFINE_NVME_TARGET_RDMA="#undef CONFIG_NVME_TARGET_RDMA"
 
-if [ "X${CONFIG_NVME_CORE}" == "Xm" ]; then
-       DEFINE_NVME_CORE="#undef CONFIG_NVME_CORE\n#define CONFIG_NVME_CORE 1"
-       DEFINE_BLK_DEV_NVME="#undef CONFIG_BLK_DEV_NVME\n#define CONFIG_BLK_DEV_NVME 1"
-fi
-if [ "X${CONFIG_NVME_RDMA}" == "Xm" ]; then
-       DEFINE_NVME_FABRICS="#undef CONFIG_NVME_FABRICS\n#define CONFIG_NVME_FABRICS 1"
-       DEFINE_NVME_RDMA="#undef CONFIG_NVME_RDMA\n#define CONFIG_NVME_RDMA 1"
-fi
-if [ "X${CONFIG_NVME_TARGET_RDMA}" == "Xm" ]; then
-       DEFINE_NVME_TARGET="#undef CONFIG_NVME_TARGET\n#define CONFIG_NVME_TARGET 1"
-       DEFINE_NVME_TARGET_RDMA="#undef CONFIG_NVME_TARGET_RDMA\n#define CONFIG_NVME_TARGET_RDMA 1"
-fi
-if [ "X${CONFIG_INFINIBAND_QEDR}" == "Xm" ]; then
-       DEFINE_QED="#undef CONFIG_QED\n#define CONFIG_QED 1"
-else
-       DEFINE_QED="#undef CONFIG_QED"
-fi
-if [ "X${CONFIG_INFINIBAND_QEDR}" == "Xm" ]; then
-       DEFINE_QED_LL2="#undef CONFIG_QED_LL2\n#define CONFIG_QED_LL2 1"
-else
-        DEFINE_QED_LL2="#undef CONFIG_QED_LL2"
-fi
-if [ "X${CONFIG_INFINIBAND_QEDR}" == "Xm" ]; then
-       DEFINE_QED_RDMA="#undef CONFIG_QED_RDMA\n#define CONFIG_QED_RDMA 1"
-else
-        DEFINE_QED_RDMA="#undef CONFIG_QED_RDMA"
-fi
-if [ "X${CONFIG_INFINIBAND_QEDR}" == "Xm" ]; then
-       DEFINE_QEDE="#undef CONFIG_QEDE\n#define CONFIG_QEDE 1"
-else
-        DEFINE_QEDE="#undef CONFIG_QEDE"
-fi
-if [ "X${CONFIG_INFINIBAND_QEDR}" == "Xm" ]; then
-       DEFINE_INFINIBAND_QEDR="#undef CONFIG_INFINIBAND_QEDR\n#define CONFIG_INFINIBAND_QEDR 1"
-else
-       DEFINE_INFINIBAND_QEDR="#undef CONFIG_INFINIBAND_QEDR"
-fi
-
-cat > ${AUTOCONF_H} << EOFAUTOCONF
+       while read config
+       do
+               eval echo $config=\$$config >> ${CONFIG}
+       done < ${ALL_CONFIGS}
+
+       echo "Created ${CONFIG}:"
+
+       . ${CONFIG}
+
+       CONFIG_VALUES=`grep ^CONFIG ${CONFIG} | tr -s '\n' ' '`
+       sed -e "s/@CONFIG_VALUES@/$CONFIG_VALUES/" makefile.in > makefile
+
+       # Create autoconf.h
+       TMPAUTOCONF1=`mktemp $CWD/XXXXXX.autoconf1`
+       TMPAUTOCONF2=`mktemp $CWD/XXXXXX.autoconf2`
+       while read config
+       do
+               val=`eval echo \\$$config`
+               case $val in
+                       y|m)
+                               echo "#define $config 1" >> ${TMPAUTOCONF1}
+                               echo -e "#undef $config\n#define $config 1" >> ${TMPAUTOCONF2}
+                               ;;
+                       *)
+                               echo "#undef $config" >> ${TMPAUTOCONF2}
+                               ;;
+               esac
+       done < ${ALL_CONFIGS}
+
+       cat > ${AUTOCONF_H} << EOFAUTOCONF
 #ifndef __OFED_BUILD__
 #include_next <$AUTOCONF_PREFIX/autoconf.h>
-$(echo -e "${DEFINE_INFINIBAND}" | grep -v undef)
-$(echo -e "${DEFINE_INFINIBAND_IPOIB}" | grep -v undef)
-$(echo -e "${DEFINE_INFINIBAND_IPOIB_CM}" | grep -v undef)
-$(echo -e "${DEFINE_INFINIBAND_SRP}" | grep -v undef)
-$(echo -e "${DEFINE_SCSI_SRP_ATTRS}" | grep -v undef)
-$(echo -e "${DEFINE_INFINIBAND_SRPT}" | grep -v undef)
-
-$(echo -e "${DEFINE_INFINIBAND_USER_MAD}" | grep -v undef)
-$(echo -e "${DEFINE_INFINIBAND_USER_ACCESS}" | grep -v undef)
-$(echo -e "${DEFINE_INFINIBAND_ADDR_TRANS}" | grep -v undef)
-$(echo -e "${DEFINE_INFINIBAND_ADDR_TRANS_CONFIGFS}" | grep -v undef)
-$(echo -e "${DEFINE_INFINIBAND_USER_MEM}" | grep -v undef)
-$(echo -e "${DEFINE_INFINIBAND_MTHCA}" | grep -v undef)
-$(echo -e "${DEFINE_INFINIBAND_QLGC_VNIC}" | grep -v undef)
-$(echo -e "${DEFINE_INFINIBAND_CXGB3}" | grep -v undef)
-$(echo -e "${DEFINE_CHELSIO_T3}" | grep -v undef)
-$(echo -e "${DEFINE_INFINIBAND_CXGB4}" | grep -v undef)
-$(echo -e "${DEFINE_CHELSIO_T4}" | grep -v undef)
-$(echo -e "${DEFINE_INFINIBAND_I40IW}" | grep -v undef)
-$(echo -e "${DEFINE_I40E}" | grep -v undef)
-$(echo -e "${DEFINE_INFINIBAND_NES}" | grep -v undef)
-$(echo -e "${DEFINE_INFINIBAND_OCRDMA}" | grep -v undef)
-$(echo -e "${DEFINE_BE2NET}" | grep -v undef)
-$(echo -e "${DEFINE_INFINIBAND_BNXT_RE}" | grep -v undef)
-$(echo -e "${DEFINE_BNXT}" | grep -v undef)
-$(echo -e "${DEFINE_BNXT_DCB}" | grep -v undef)
-$(echo -e "${DEFINE_INFINIBAND_VMWARE_PVRDMA}" | grep -v undef)
-
-$(echo -e "${DEFINE_SUNRPC_XPRT_RDMA}" | grep -v undef)
-$(echo -e "${DEFINE_SUNRPC_XPRT_RDMA_CLIENT}" | grep -v undef)
-$(echo -e "${DEFINE_SUNRPC_XPRT_RDMA_SERVER}" | grep -v undef)
-
-$(echo -e "${DEFINE_INFINIBAND_IPOIB_DEBUG}" | grep -v undef)
-$(echo -e "${DEFINE_INFINIBAND_ISERT}" | grep -v undef)
-$(echo -e "${DEFINE_INFINIBAND_ISER}" | grep -v undef)
-$(echo -e "${DEFINE_SCSI_ISCSI_ATTRS}" | grep -v undef)
-$(echo -e "${DEFINE_ISCSI_TCP}" | grep -v undef)
-$(echo -e "${DEFINE_INFINIBAND_EHCA}" | grep -v undef)
-$(echo -e "${DEFINE_RDS}" | grep -v undef)
-$(echo -e "${DEFINE_RDS_RDMA}" | grep -v undef)
-$(echo -e "${DEFINE_RDS_TCP}" | grep -v undef)
-$(echo -e "${DEFINE_RDS_DEBUG}" | grep -v undef)
-$(echo -e "${DEFINE_INFINIBAND_QLGC_VNIC_STATS}" | grep -v undef)
-$(echo -e "${DEFINE_INFINIBAND_CXGB3_DEBUG}" | grep -v undef)
-$(echo -e "${DEFINE_INFINIBAND_NES_DEBUG}" | grep -v undef)
-
-$(echo -e "${DEFINE_MLX4_CORE}" | grep -v undef)
-$(echo -e "${DEFINE_MLX5_CORE}" | grep -v undef)
-$(echo -e "${DEFINE_MLX5_CORE_EN}" | grep -v undef)
-$(echo -e "${DEFINE_MLX5_CORE_EN_DCB}" | grep -v undef)
-$(echo -e "${DEFINE_MLX4_EN}" | grep -v undef)
-$(echo -e "${DEFINE_MLX4_INFINIBAND}" | grep -v undef)
-$(echo -e "${DEFINE_MLX5_INFINIBAND}" | grep -v undef)
-$(echo -e "${DEFINE_MLX4_ETHERNET}" | grep -v undef)
-$(echo -e "${DEFINE_MLX4_DEBUG}" | grep -v undef)
-$(echo -e "${DEFINE_MLX5_DEBUG}" | grep -v undef)
-
-$(echo -e "${DEFINE_IBP_SERVER}" | grep -v undef)
-$(echo -e "${DEFINE_IBP_DEBUG}" | grep -v undef)
-
-$(echo -e "${DEFINE_INFINIBAND_SCIF}" | grep -v undef)
-
-$(echo -e "${DEFINE_INFINIBAND_IPOIB_DEBUG_DATA}" | grep -v undef)
-$(echo -e "${DEFINE_INFINIBAND_IPATH}" | grep -v undef)
-$(echo -e "${DEFINE_INFINIBAND_QIB}" | grep -v undef)
-$(echo -e "${DEFINE_INFINIBAND_RDMAVT}" | grep -v undef)
-$(echo -e "${DEFINE_RDMA_RXE}" | grep -v undef)
-$(echo -e "${DEFINE_INFINIBAND_MTHCA_DEBUG}" | grep -v undef)
-$(echo -e "${DEFINE_INFINIBAND_MADEYE}" | grep -v undef)
-$(echo -e "${DEFINE_INFINIBAND_AMSO1100}" | grep -v undef)
-$(echo -e "${DEFINE_NVME_CORE}" | grep -v undef)
-$(echo -e "${DEFINE_NVME_RDMA}" | grep -v undef)
-$(echo -e "${DEFINE_BLK_DEV_NVME}" | grep -v undef)
-$(echo -e "${DEFINE_NVME_TARGET}" | grep -v undef)
-$(echo -e "${DEFINE_NVME_TARGET_RDMA}" | grep -v undef)
-$(echo -e "${DEFINE_NVME_FABRICS}" | grep -v undef)
-
-$(echo -e "${DEFINE_QED}" | grep -v undef)
-$(echo -e "${DEFINE_QED_LL2}" | grep -v undef)
-$(echo -e "${DEFINE_QED_RDMA}" | grep -v undef)
-$(echo -e "${DEFINE_QEDE}" | grep -v undef)
-$(echo -e "${DEFINE_INFINIBAND_QEDR}" | grep -v undef)
-
-#else
-#undef CONFIG_MEMTRACK
-#undef CONFIG_DEBUG_INFO
-#undef CONFIG_INFINIBAND
-#undef CONFIG_INFINIBAND_IPOIB
-#undef CONFIG_INFINIBAND_IPOIB_CM
-#undef CONFIG_INFINIBAND_SRP
-#undef CONFIG_INFINIBAND_SRPT
-#undef CONFIG_SCSI_SRP_ATTRS
-
-#undef CONFIG_INFINIBAND_USER_MAD
-#undef CONFIG_INFINIBAND_USER_ACCESS
-#undef CONFIG_INFINIBAND_ADDR_TRANS
-#undef CONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS
-#undef CONFIG_INFINIBAND_USER_MEM
-#undef CONFIG_INFINIBAND_MTHCA
-
-#undef CONFIG_MLX4_CORE
-#undef CONFIG_MLX5_CORE
-#undef CONFIG_MLX5_CORE_EN
-#undef CONFIG_MLX5_CORE_EN_DCB
-#undef CONFIG_MLX4_DEBUG
-#undef CONFIG_MLX5_DEBUG
-#undef CONFIG_MLX4_EN
-#undef CONFIG_MLX4_EN_DCB
-#undef CONFIG_MLX4_INFINIBAND
-#undef CONFIG_MLX5_INFINIBAND
-
-#undef CONFIG_IBP_SERVER
-#undef CONFIG_IBP_DEBUG
-
-#undef CONFIG_INFINIBAND_SCIF
-
-#undef CONFIG_INFINIBAND_IPOIB_DEBUG
-#undef CONFIG_INFINIBAND_ISER
-#undef CONFIG_INFINIBAND_ISERT
-#undef CONFIG_INFINIBAND_EHCA
-#undef CONFIG_INFINIBAND_EHCA_SCALING
-#undef CONFIG_RDS
-#undef CONFIG_RDS_RDMA
-#undef CONFIG_RDS_TCP
-#undef CONFIG_RDS_DEBUG
-#undef CONFIG_INFINIBAND_MADEYE
-#undef CONFIG_INFINIBAND_QLGC_VNIC
-#undef CONFIG_INFINIBAND_QLGC_VNIC_STATS
-#undef CONFIG_INFINIBAND_CXGB3
-#undef CONFIG_INFINIBAND_CXGB3_DEBUG
-#undef CONFIG_CHELSIO_T3
-#undef CONFIG_INFINIBAND_CXGB4
-#undef CONFIG_CHELSIO_T4
-#undef CONFIG_SCSI_CXGB3_ISCSI
-#undef CONFIG_SCSI_CXGB4_ISCSI
-#undef CONFIG_INFINIBAND_I40IW
-#undef CONFIG_I40E
-#undef CONFIG_INFINIBAND_NES
-#undef CONFIG_INFINIBAND_NES_DEBUG
-#undef CONFIG_INFINIBAND_OCRDMA
-#undef CONFIG_BE2NET
-#undef CONFIG_INFINIBAND_BNXT_RE
-#undef CONFIG_BNXT
-#undef CONFIG_BNXT_DCB
-#undef CONFIG_INFINIBAND_VMWARE_PVRDMA
-
-#undef CONFIG_SUNRPC_XPRT_RDMA
-#undef CONFIG_SUNRPC_XPRT_RDMA_CLIENT
-#undef CONFIG_SUNRPC_XPRT_RDMA_SERVER
-
-
-#undef CONFIG_INFINIBAND_IPOIB_DEBUG_DATA
-#undef CONFIG_INFINIBAND_IPATH
-#undef CONFIG_INFINIBAND_QIB
-#undef CONFIG_INFINIBAND_RDMAVT
-#undef CONFIG_RDMA_RXE
-#undef CONFIG_INFINIBAND_MTHCA_DEBUG
-#undef CONFIG_INFINIBAND_AMSO1100
-#undef CONFIG_MLX4_EN_DCB
-
-#undef CONFIG_NVME_CORE
-#undef CONFIG_BLK_DEV_NVME
-#undef CONFIG_NVME_FABRICS
-#undef CONFIG_NVME_RDMA
-#undef CONFIG_NVME_TARGET
-#undef CONFIG_NVME_TARGET_RDMA
-
-#undef CONFIG_QED
-#undef CONFIG_QED_LL2
-#undef CONFIG_QED_RDMA
-#undef CONFIG_QEDE
-#undef CONFIG_INFINIBAND_QEDR
-
-$(echo -e "${DEFINE_INFINIBAND}")
-$(echo -e "${DEFINE_INFINIBAND_IPOIB}")
-$(echo -e "${DEFINE_INFINIBAND_IPOIB_CM}")
-$(echo -e "${DEFINE_INFINIBAND_SRP}")
-$(echo -e "${DEFINE_INFINIBAND_SRPT}")
-
-$(echo -e "${DEFINE_INFINIBAND_USER_MAD}")
-$(echo -e "${DEFINE_INFINIBAND_USER_ACCESS}")
-$(echo -e "${DEFINE_INFINIBAND_ADDR_TRANS}")
-$(echo -e "${DEFINE_INFINIBAND_ADDR_TRANS_CONFIGFS}")
-$(echo -e "${DEFINE_INFINIBAND_USER_MEM}")
-$(echo -e "${DEFINE_INFINIBAND_MTHCA}")
-$(echo -e "${DEFINE_INFINIBAND_QLGC_VNIC}")
-$(echo -e "${DEFINE_INFINIBAND_CXGB3}")
-$(echo -e "${DEFINE_CHELSIO_T3}")
-$(echo -e "${DEFINE_INFINIBAND_CXGB4}")
-$(echo -e "${DEFINE_CHELSIO_T4}")
-$(echo -e "${DEFINE_INFINIBAND_I40IW}")
-$(echo -e "${DEFINE_I40E}")
-$(echo -e "${DEFINE_INFINIBAND_NES}")
-$(echo -e "${DEFINE_INFINIBAND_OCRDMA}")
-$(echo -e "${DEFINE_BE2NET}")
-$(echo -e "${DEFINE_INFINIBAND_BNXT_RE}")
-$(echo -e "${DEFINE_BNXT}")
-$(echo -e "${DEFINE_BNXT_DCB}")
-$(echo -e "${DEFINE_INFINIBAND_VMWARE_PVRDMA}")
-
-$(echo -e "${DEFINE_SUNRPC_XPRT_RDMA}")
-$(echo -e "${DEFINE_SUNRPC_XPRT_RDMA_CLIENT}")
-$(echo -e "${DEFINE_SUNRPC_XPRT_RDMA_SERVER}")
-
-$(echo -e "${DEFINE_INFINIBAND_IPOIB_DEBUG}")
-$(echo -e "${DEFINE_INFINIBAND_ISERT}")
-$(echo -e "${DEFINE_INFINIBAND_ISER}")
-$(echo -e "${DEFINE_SCSI_ISCSI_ATTRS}")
-$(echo -e "${DEFINE_ISCSI_TCP}")
-$(echo -e "${DEFINE_INFINIBAND_EHCA}")
-$(echo -e "${DEFINE_RDS}")
-$(echo -e "${DEFINE_RDS_RDMA}")
-$(echo -e "${DEFINE_RDS_TCP}")
-$(echo -e "${DEFINE_RDS_DEBUG}")
-$(echo -e "${DEFINE_INFINIBAND_QLGC_VNIC_STATS}")
-$(echo -e "${DEFINE_INFINIBAND_CXGB3_DEBUG}")
-$(echo -e "${DEFINE_INFINIBAND_NES_DEBUG}")
-
-$(echo -e "${DEFINE_MLX4_CORE}")
-$(echo -e "${DEFINE_MLX5_CORE}")
-$(echo -e "${DEFINE_MLX5_CORE_EN}")
-$(echo -e "${DEFINE_MLX5_CORE_EN_DCB}")
-$(echo -e "${DEFINE_MLX4_EN}")
-$(echo -e "${DEFINE_MLX4_INFINIBAND}")
-$(echo -e "${DEFINE_MLX5_INFINIBAND}")
-$(echo -e "${DEFINE_MLX4_ETHERNET}")
-$(echo -e "${DEFINE_MLX4_DEBUG}")
-$(echo -e "${DEFINE_MLX5_DEBUG}")
-
-$(echo -e "${DEFINE_IBP_SERVER}")
-$(echo -e "${DEFINE_IBP_DEBUG}")
-
-$(echo -e "${DEFINE_INFINIBAND_SCIF}")
-
-$(echo -e "${DEFINE_INFINIBAND_IPOIB_DEBUG_DATA}")
-$(echo -e "${DEFINE_INFINIBAND_IPATH}")
-$(echo -e "${DEFINE_INFINIBAND_QIB}")
-$(echo -e "${DEFINE_INFINIBAND_RDMAVT}")
-$(echo -e "${DEFINE_RDMA_RXE}")
-$(echo -e "${DEFINE_INFINIBAND_MTHCA_DEBUG}")
-$(echo -e "${DEFINE_INFINIBAND_MADEYE}")
-$(echo -e "${DEFINE_INFINIBAND_AMSO1100}")
-$(echo -e "${DEFINE_MLX4_EN_DCB}")
-$(echo -e "${DEFINE_NVME_CORE}")
-$(echo -e "${DEFINE_NVME_RDMA}")
-$(echo -e "${DEFINE_BLK_DEV_NVME}")
-$(echo -e "${DEFINE_NVME_TARGET}")
-$(echo -e "${DEFINE_NVME_TARGET_RDMA}")
-$(echo -e "${DEFINE_NVME_TARGET_FABRICS}")
-
-$(echo -e "${DEFINE_QED}")
-$(echo -e "${DEFINE_QED_LL2}")
-$(echo -e "${DEFINE_QED_RDMA}")
-$(echo -e "${DEFINE_QEDE}")
-$(echo -e "${DEFINE_INFINIBAND_QEDR}")
-
-#endif
 
 EOFAUTOCONF
 
-        echo "Created ${AUTOCONF_H}:"
-        cat ${AUTOCONF_H}
+       cat ${TMPAUTOCONF1} >> ${AUTOCONF_H}
+       echo -e "\n#else\n" >> ${AUTOCONF_H}
+       cat ${TMPAUTOCONF2} >> ${AUTOCONF_H}
+       echo -e "\n#endif" >> ${AUTOCONF_H}
+
+       echo Created ${AUTOCONF_H}
+       /bin/rm -f ${TMPAUTOCONF1}
+       /bin/rm -f ${TMPAUTOCONF2}
 
-        if [ ! -x compat/autogen.sh ]; then
-            exit 0
-        fi
+       if [ ! -x compat/autogen.sh ]; then
+               exit 0
+       fi
 
        if [ $SKIP_AUTOCONF -eq 0 ]; then
-               cd compat
+               cd compat
                if [[ ! -x configure || $FORCE_AUTOGEN -eq 1 ]]; then
-                       ex ./autogen.sh
+                       ex ./autogen.sh
                fi
-               ex ./configure --with-linux-obj=$KSRC_OBJ --with-linux=$KSRC
+               ex ./configure --with-linux-obj=$KSRC_OBJ --with-linux=$KSRC
        fi
 }
 
diff --git a/makefile b/makefile
deleted file mode 100644 (file)
index 0f6d506..0000000
--- a/makefile
+++ /dev/null
@@ -1,232 +0,0 @@
-PHONY += all kernel install_kernel install clean clean_kernel
-       
-all:
-.PHONY: $(PHONY)
-
-.DELETE_ON_ERROR:
-
-include ./configure.mk.kernel
-
-export COMPAT_CONFIG=$(CWD)/compat.config
-export COMPAT_AUTOCONF=$(CWD)/include/linux/compat_autoconf.h
-export KLIB_BUILD
-export KVERSION
-export MAKE
-
--include $(COMPAT_CONFIG)
-
-export CREL=$(shell cat $(CWD)/compat_version)
-export CREL_PRE:=.compat_autoconf_
-export CREL_CHECK:=$(CREL_PRE)$(CREL)
-CFLAGS += \
-       -DCOMPAT_BASE="\"$(shell cat compat_base)\"" \
-       -DCOMPAT_BASE_TREE="\"$(shell cat compat_base_tree)\"" \
-       -DCOMPAT_BASE_TREE_VERSION="\"$(shell cat compat_base_tree_version)\"" \
-       -DCOMPAT_PROJECT="\"Compat-rdma\"" \
-       -DCOMPAT_VERSION="\"$(shell cat compat_version)\"" \
-
-DEPMOD  = /sbin/depmod
-INSTALL_MOD_DIR ?= updates
-
-ifeq ($(CONFIG_MEMTRACK),m)
-        export KERNEL_MEMTRACK_CFLAGS = -include $(CWD)/drivers/infiniband/debug/mtrack.h
-else
-        export KERNEL_MEMTRACK_CFLAGS =
-endif
-
-export OPEN_ISCSI_MODULES = iscsi_tcp.ko libiscsi.ko scsi_transport_iscsi.ko
-
-$(COMPAT_AUTOCONF): $(COMPAT_CONFIG)
-       +@$(CWD)/ofed_scripts/gen-compat-autoconf.sh $(COMPAT_CONFIG) > $(COMPAT_AUTOCONF)
-
-$(COMPAT_CONFIG):
-       +@$(CWD)/ofed_scripts/gen-compat-config.sh > $(COMPAT_CONFIG)
-
-configure.mk.kernel:
-       @echo Please run ./configure
-       @exit 1
-
-all: kernel
-
-install: install_kernel
-install_kernel: install_modules
-
-autoconf_h=$(shell /bin/ls -1 $(KSRC_OBJ)/include/*/autoconf.h 2> /dev/null | head -1)
-kconfig_h=$(shell /bin/ls -1 $(KSRC)/include/*/kconfig.h 2> /dev/null | head -1)
-
-ifneq ($(kconfig_h),)
-KCONFIG_H = -include $(kconfig_h)
-endif
-
-V ?= 0
-
-#########################
-#      make kernel     #
-#########################
-#NB: The LINUXINCLUDE value comes from main kernel Makefile
-#    with local directories prepended. This eventually affects
-#    CPPFLAGS in the kernel Makefile
-kernel: $(COMPAT_CONFIG) $(COMPAT_AUTOCONF)
-       @echo "Building kernel modules"
-       @echo "Kernel version: $(KVERSION)"
-       @echo "Modules directory: $(INSTALL_MOD_PATH)/$(MODULES_DIR)"
-       @echo "Kernel sources: $(KSRC_OBJ)"
-       env CWD=$(CWD) BACKPORT_INCLUDES=$(BACKPORT_INCLUDES) \
-               $(MAKE) -C $(KSRC_OBJ) SUBDIRS="$(CWD)" \
-               V=$(V) KBUILD_NOCMDDEP=1 $(WITH_MAKE_PARAMS) \
-               CONFIG_MEMTRACK=$(CONFIG_MEMTRACK) \
-               CONFIG_DEBUG_INFO=$(CONFIG_DEBUG_INFO) \
-               CONFIG_INFINIBAND=$(CONFIG_INFINIBAND) \
-               CONFIG_INFINIBAND_IPOIB=$(CONFIG_INFINIBAND_IPOIB) \
-               CONFIG_INFINIBAND_IPOIB_CM=$(CONFIG_INFINIBAND_IPOIB_CM) \
-               CONFIG_INFINIBAND_SRP=$(CONFIG_INFINIBAND_SRP) \
-               CONFIG_INFINIBAND_SRPT=$(CONFIG_INFINIBAND_SRPT) \
-               CONFIG_SCSI_SRP_ATTRS=$(CONFIG_SCSI_SRP_ATTRS) \
-               CONFIG_INFINIBAND_USER_MAD=$(CONFIG_INFINIBAND_USER_MAD) \
-               CONFIG_INFINIBAND_USER_ACCESS=$(CONFIG_INFINIBAND_USER_ACCESS) \
-               CONFIG_INFINIBAND_USER_MEM=$(CONFIG_INFINIBAND_USER_MEM) \
-               CONFIG_INFINIBAND_ADDR_TRANS=$(CONFIG_INFINIBAND_ADDR_TRANS) \
-               CONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS=$(CONFIG_INFINIBAND_ADDR_TRANS_CONFIGFS) \
-               CONFIG_INFINIBAND_MTHCA=$(CONFIG_INFINIBAND_MTHCA) \
-               CONFIG_INFINIBAND_IPOIB_DEBUG=$(CONFIG_INFINIBAND_IPOIB_DEBUG) \
-               CONFIG_INFINIBAND_ISERT=$(CONFIG_INFINIBAND_ISERT) \
-               CONFIG_INFINIBAND_ISER=$(CONFIG_INFINIBAND_ISER) \
-               CONFIG_SCSI_ISCSI_ATTRS=$(CONFIG_SCSI_ISCSI_ATTRS) \
-               CONFIG_ISCSI_TCP=$(CONFIG_ISCSI_TCP) \
-               CONFIG_INFINIBAND_EHCA=$(CONFIG_INFINIBAND_EHCA) \
-               CONFIG_INFINIBAND_EHCA_SCALING=$(CONFIG_INFINIBAND_EHCA_SCALING) \
-               CONFIG_RDS=$(CONFIG_RDS) \
-               CONFIG_RDS_RDMA=$(CONFIG_RDS_RDMA) \
-               CONFIG_RDS_TCP=$(CONFIG_RDS_TCP) \
-               CONFIG_RDS_DEBUG=$(CONFIG_RDS_DEBUG) \
-               CONFIG_INFINIBAND_IPOIB_DEBUG_DATA=$(CONFIG_INFINIBAND_IPOIB_DEBUG_DATA) \
-               CONFIG_INFINIBAND_SDP_SEND_ZCOPY=$(CONFIG_INFINIBAND_SDP_SEND_ZCOPY) \
-               CONFIG_INFINIBAND_SDP_RECV_ZCOPY=$(CONFIG_INFINIBAND_SDP_RECV_ZCOPY) \
-               CONFIG_INFINIBAND_SDP_DEBUG=$(CONFIG_INFINIBAND_SDP_DEBUG) \
-               CONFIG_INFINIBAND_SDP_DEBUG_DATA=$(CONFIG_INFINIBAND_SDP_DEBUG_DATA) \
-               CONFIG_INFINIBAND_IPATH=$(CONFIG_INFINIBAND_IPATH) \
-               CONFIG_INFINIBAND_QIB=$(CONFIG_INFINIBAND_QIB) \
-               CONFIG_INFINIBAND_RDMAVT=$(CONFIG_INFINIBAND_RDMAVT) \
-               CONFIG_RDMA_RXE=$(CONFIG_RDMA_RXE) \
-               CONFIG_INFINIBAND_MTHCA_DEBUG=$(CONFIG_INFINIBAND_MTHCA_DEBUG) \
-               CONFIG_INFINIBAND_MADEYE=$(CONFIG_INFINIBAND_MADEYE) \
-               CONFIG_INFINIBAND_QLGC_VNIC=$(CONFIG_INFINIBAND_QLGC_VNIC) \
-               CONFIG_INFINIBAND_QLGC_VNIC_DEBUG=$(CONFIG_INFINIBAND_QLGC_VNIC_DEBUG) \
-               CONFIG_INFINIBAND_QLGC_VNIC_STATS=$(CONFIG_INFINIBAND_QLGC_VNIC_STATS) \
-               CONFIG_CHELSIO_T3=$(CONFIG_CHELSIO_T3) \
-               CONFIG_INFINIBAND_CXGB3=$(CONFIG_INFINIBAND_CXGB3) \
-               CONFIG_INFINIBAND_CXGB3_DEBUG=$(CONFIG_INFINIBAND_CXGB3_DEBUG) \
-               CONFIG_CHELSIO_T4=$(CONFIG_CHELSIO_T4) \
-               CONFIG_INFINIBAND_CXGB4=$(CONFIG_INFINIBAND_CXGB4) \
-               CONFIG_SCSI_CXGB3_ISCSI=$(CONFIG_SCSI_CXGB3_ISCSI) \
-               CONFIG_SCSI_CXGB4_ISCSI=$(CONFIG_SCSI_CXGB4_ISCSI) \
-               CONFIG_INFINIBAND_I40IW=$(CONFIG_INFINIBAND_I40IW) \
-               CONFIG_I40E=$(CONFIG_I40E) \
-               CONFIG_INFINIBAND_NES=$(CONFIG_INFINIBAND_NES) \
-               CONFIG_INFINIBAND_NES_DEBUG=$(CONFIG_INFINIBAND_NES_DEBUG) \
-               CONFIG_MLX4_CORE=$(CONFIG_MLX4_CORE) \
-               CONFIG_MLX5_CORE=$(CONFIG_MLX5_CORE) \
-               CONFIG_MLX5_CORE_EN=$(CONFIG_MLX5_CORE_EN) \
-               CONFIG_MLX5_CORE_EN_DCB=$(CONFIG_MLX5_CORE_EN_DCB) \
-               CONFIG_MLX4_EN=$(CONFIG_MLX4_EN) \
-               CONFIG_MLX4_EN_DCB=$(CONFIG_MLX4_EN_DCB) \
-               CONFIG_MLX4_INFINIBAND=$(CONFIG_MLX4_INFINIBAND) \
-               CONFIG_MLX5_INFINIBAND=$(CONFIG_MLX5_INFINIBAND) \
-               CONFIG_MLX4_ETHERNET=$(CONFIG_MLX4_ETHERNET) \
-               CONFIG_MLX4_DEBUG=$(CONFIG_MLX4_DEBUG) \
-               CONFIG_MLX5_DEBUG=$(CONFIG_MLX5_DEBUG) \
-               CONFIG_IBP_SERVER=$(CONFIG_IBP_SERVER) \
-               CONFIG_IBP_DEBUG=$(CONFIG_IBP_DEBUG) \
-               CONFIG_INFINIBAND_SCIF=$(CONFIG_INFINIBAND_SCIF) \
-               CONFIG_INFINIBAND_AMSO1100=$(CONFIG_INFINIBAND_AMSO1100) \
-               CONFIG_SUNRPC_XPRT_RDMA=$(CONFIG_SUNRPC_XPRT_RDMA) \
-               CONFIG_SUNRPC_XPRT_RDMA_CLIENT=$(CONFIG_SUNRPC_XPRT_RDMA_CLIENT) \
-               CONFIG_SUNRPC_XPRT_RDMA_SERVER=$(CONFIG_SUNRPC_XPRT_RDMA_SERVER) \
-               CONFIG_INFINIBAND_OCRDMA=$(CONFIG_INFINIBAND_OCRDMA) \
-               CONFIG_BE2NET=$(CONFIG_BE2NET) \
-               CONFIG_INFINIBAND_ISERT=$(CONFIG_INFINIBAND_ISERT) \
-               CONFIG_INFINIBAND_USNIC=$(CONFIG_INFINIBAND_USNIC) \
-               CONFIG_INFINIBAND_HFI1=$(CONFIG_INFINIBAND_HFI1) \
-               CONFIG_INFINIBAND_VMWARE_PVRDMA=$(CONFIG_INFINIBAND_VMWARE_PVRDMA) \
-               CONFIG_NVME_CORE=$(CONFIG_NVME_CORE) \
-               CONFIG_BLK_DEV_NVME=$(CONFIG_BLK_DEV_NVME) \
-               CONFIG_NVME_RDMA=$(CONFIG_NVME_RDMA) \
-               CONFIG_NVME_FABRICS=$(CONFIG_NVME_FABRICS) \
-               CONFIG_NVME_TARGET=$(CONFIG_NVME_TARGET) \
-               CONFIG_NVME_TARGET_RDMA=$(CONFIG_NVME_TARGET_RDMA) \
-               CONFIG_QED=$(CONFIG_INFINIBAND_QEDR) \
-               CONFIG_QEDE=$(CONFIG_INFINIBAND_QEDR) \
-               CONFIG_QED_LL2=$(CONFIG_INFINIBAND_QEDR) \
-               CONFIG_QED_RDMA=$(CONFIG_INFINIBAND_QEDR) \
-               CONFIG_INFINIBAND_QEDR=$(CONFIG_INFINIBAND_QEDR) \
-               CONFIG_BNXT=$(CONFIG_BNXT) \
-               CONFIG_INFINIBAND_BNXT_RE=$(CONFIG_INFINIBAND_BNXT_RE) \
-               LINUXINCLUDE=' \
-               -D__OFED_BUILD__ \
-               -D__KERNEL__ \
-               $(CFLAGS) \
-               -include $(autoconf_h) \
-               $(KCONFIG_H) \
-               -include $(CWD)/include/linux/compat-2.6.h \
-               $(BACKPORT_INCLUDES) \
-               $(KERNEL_MEMTRACK_CFLAGS) \
-               $(OPENIB_KERNEL_EXTRA_CFLAGS) \
-               -I$(CWD)/include \
-               -I$(CWD)/include/uapi \
-               -I$(CWD)/drivers/infiniband/debug \
-               -I/usr/local/include/scst \
-               -I$(CWD)/drivers/infiniband/ulp/srpt \
-               $$(if $$(CONFIG_XEN),-D__XEN_INTERFACE_VERSION__=$$(CONFIG_XEN_INTERFACE_VERSION)) \
-               $$(if $$(CONFIG_XEN),-I$$(srctree)/arch/x86/include/mach-xen) \
-               -I$$(srctree)/arch/$$(SRCARCH)/include \
-               -Iarch/$$(SRCARCH)/include/generated \
-               -Iinclude \
-               -I$$(srctree)/arch/$$(SRCARCH)/include/uapi \
-               -Iarch/$$(SRCARCH)/include/generated/uapi \
-               -I$$(srctree)/include \
-               -I$$(srctree)/include/uapi \
-               -Iinclude/generated/uapi \
-               $$(if $$(KBUILD_SRC),-Iinclude2 -I$$(srctree)/include) \
-               -I$$(srctree)/arch/$$(SRCARCH)/include \
-               -Iarch/$$(SRCARCH)/include/generated \
-               -I$(CWD)/drivers/nvme/host \
-               -I$(CWD)/drivers/nvme/target \
-               ' \
-               modules
-
-
-#########################
-#      Install kernel  #
-#########################
-install_modules:
-       @echo "Installing kernel modules"
-
-       $(MAKE) -C $(KSRC_OBJ) SUBDIRS="$(CWD)" \
-               INSTALL_MOD_PATH=$(INSTALL_MOD_PATH) \
-               INSTALL_MOD_DIR=$(INSTALL_MOD_DIR) \
-               $(WITH_MAKE_PARAMS) modules_install;
-       if [ ! -n "$(INSTALL_MOD_PATH)" ]; then $(DEPMOD) $(KVERSION);fi;
-
-clean: clean_kernel
-
-clean_kernel:
-       $(MAKE) -C $(KSRC_OBJ) rm-files= SUBDIRS="$(CWD)" $(WITH_MAKE_PARAMS) clean
-
-distclean: clean_kernel
-       @/bin/rm -f $(clean-files)
-
-clean-files := Module.symvers modules.order Module.markers compat/modules.order compat/configure
-clean-files += $(COMPAT_CONFIG) $(COMPAT_AUTOCONF)
-clean-files += include/linux/autoconf.h include/generated/autoconf.h
-
-help:
-       @echo
-       @echo kernel:                   build kernel modules
-       @echo all:                      build kernel modules
-       @echo
-       @echo install_kernel:           install kernel modules under $(INSTALL_MOD_PATH)/$(MODULES_DIR)
-       @echo install:                  run install_kernel
-       @echo
-       @echo clean:                    delete kernel modules binaries
-       @echo clean_kernel:             delete kernel modules binaries
-       @echo
diff --git a/makefile.in b/makefile.in
new file mode 100644 (file)
index 0000000..73e0b7d
--- /dev/null
@@ -0,0 +1,148 @@
+PHONY += all kernel install_kernel install clean clean_kernel
+       
+all:
+.PHONY: $(PHONY)
+
+.DELETE_ON_ERROR:
+
+include ./configure.mk.kernel
+
+export COMPAT_CONFIG=$(CWD)/compat.config
+export COMPAT_AUTOCONF=$(CWD)/include/linux/compat_autoconf.h
+export KLIB_BUILD
+export KVERSION
+export MAKE
+
+-include $(COMPAT_CONFIG)
+
+export CREL=$(shell cat $(CWD)/compat_version)
+export CREL_PRE:=.compat_autoconf_
+export CREL_CHECK:=$(CREL_PRE)$(CREL)
+CFLAGS += \
+       -DCOMPAT_BASE="\"$(shell cat compat_base)\"" \
+       -DCOMPAT_BASE_TREE="\"$(shell cat compat_base_tree)\"" \
+       -DCOMPAT_BASE_TREE_VERSION="\"$(shell cat compat_base_tree_version)\"" \
+       -DCOMPAT_PROJECT="\"Compat-rdma\"" \
+       -DCOMPAT_VERSION="\"$(shell cat compat_version)\"" \
+
+DEPMOD  = /sbin/depmod
+INSTALL_MOD_DIR ?= updates
+
+ifeq ($(CONFIG_MEMTRACK),m)
+        export KERNEL_MEMTRACK_CFLAGS = -include $(CWD)/drivers/infiniband/debug/mtrack.h
+else
+        export KERNEL_MEMTRACK_CFLAGS =
+endif
+
+export OPEN_ISCSI_MODULES = iscsi_tcp.ko libiscsi.ko scsi_transport_iscsi.ko
+
+$(COMPAT_AUTOCONF): $(COMPAT_CONFIG)
+       +@$(CWD)/ofed_scripts/gen-compat-autoconf.sh $(COMPAT_CONFIG) > $(COMPAT_AUTOCONF)
+
+$(COMPAT_CONFIG):
+       +@$(CWD)/ofed_scripts/gen-compat-config.sh > $(COMPAT_CONFIG)
+
+configure.mk.kernel:
+       @echo Please run ./configure
+       @exit 1
+
+all: kernel
+
+install: install_kernel
+install_kernel: install_modules
+
+autoconf_h=$(shell /bin/ls -1 $(KSRC_OBJ)/include/*/autoconf.h 2> /dev/null | head -1)
+kconfig_h=$(shell /bin/ls -1 $(KSRC)/include/*/kconfig.h 2> /dev/null | head -1)
+
+ifneq ($(kconfig_h),)
+KCONFIG_H = -include $(kconfig_h)
+endif
+
+V ?= 0
+
+#########################
+#      make kernel     #
+#########################
+#NB: The LINUXINCLUDE value comes from main kernel Makefile
+#    with local directories prepended. This eventually affects
+#    CPPFLAGS in the kernel Makefile
+kernel: $(COMPAT_CONFIG) $(COMPAT_AUTOCONF)
+       @echo "Building kernel modules"
+       @echo "Kernel version: $(KVERSION)"
+       @echo "Modules directory: $(INSTALL_MOD_PATH)/$(MODULES_DIR)"
+       @echo "Kernel sources: $(KSRC_OBJ)"
+       env CWD=$(CWD) BACKPORT_INCLUDES=$(BACKPORT_INCLUDES) \
+               $(MAKE) -C $(KSRC_OBJ) SUBDIRS="$(CWD)" \
+               V=$(V) KBUILD_NOCMDDEP=1 $(WITH_MAKE_PARAMS) \
+               @CONFIG_VALUES@ \
+               LINUXINCLUDE=' \
+               -D__OFED_BUILD__ \
+               -D__KERNEL__ \
+               $(CFLAGS) \
+               -include $(autoconf_h) \
+               $(KCONFIG_H) \
+               -include $(CWD)/include/linux/compat-2.6.h \
+               $(BACKPORT_INCLUDES) \
+               $(KERNEL_MEMTRACK_CFLAGS) \
+               $(OPENIB_KERNEL_EXTRA_CFLAGS) \
+               -I$(CWD)/include \
+               -I$(CWD)/include/uapi \
+               -I$(CWD)/drivers/infiniband/debug \
+               -I/usr/local/include/scst \
+               -I$(CWD)/drivers/infiniband/ulp/srpt \
+               $$(if $$(CONFIG_XEN),-D__XEN_INTERFACE_VERSION__=$$(CONFIG_XEN_INTERFACE_VERSION)) \
+               $$(if $$(CONFIG_XEN),-I$$(srctree)/arch/x86/include/mach-xen) \
+               -I$$(srctree)/arch/$$(SRCARCH)/include \
+               -Iarch/$$(SRCARCH)/include/generated \
+               -Iinclude \
+               -I$$(srctree)/arch/$$(SRCARCH)/include/uapi \
+               -Iarch/$$(SRCARCH)/include/generated/uapi \
+               -I$$(srctree)/include \
+               -I$$(srctree)/include/uapi \
+               -Iinclude/generated/uapi \
+               $$(if $$(KBUILD_SRC),-Iinclude2 -I$$(srctree)/include) \
+               -I$$(srctree)/arch/$$(SRCARCH)/include \
+               -Iarch/$$(SRCARCH)/include/generated \
+               -I$(CWD)/drivers/nvme/host \
+               -I$(CWD)/drivers/nvme/target \
+               ' \
+               modules
+
+
+#########################
+#      Install kernel  #
+#########################
+install_modules:
+       @echo "Installing kernel modules"
+
+       $(MAKE) -C $(KSRC_OBJ) SUBDIRS="$(CWD)" \
+               INSTALL_MOD_PATH=$(INSTALL_MOD_PATH) \
+               INSTALL_MOD_DIR=$(INSTALL_MOD_DIR) \
+               $(WITH_MAKE_PARAMS) modules_install;
+       if [ ! -n "$(INSTALL_MOD_PATH)" ]; then $(DEPMOD) $(KVERSION);fi;
+
+clean: clean_kernel
+
+clean_kernel:
+       $(MAKE) -C $(KSRC_OBJ) rm-files= SUBDIRS="$(CWD)" $(WITH_MAKE_PARAMS) \
+               @CONFIG_VALUES@ \
+               clean
+
+distclean: clean_kernel
+       @/bin/rm -f $(clean-files)
+
+clean-files := Module.symvers modules.order Module.markers compat/modules.order compat/configure
+clean-files += $(COMPAT_CONFIG) $(COMPAT_AUTOCONF)
+clean-files += include/linux/autoconf.h include/generated/autoconf.h
+
+help:
+       @echo
+       @echo kernel:                   build kernel modules
+       @echo all:                      build kernel modules
+       @echo
+       @echo install_kernel:           install kernel modules under $(INSTALL_MOD_PATH)/$(MODULES_DIR)
+       @echo install:                  run install_kernel
+       @echo
+       @echo clean:                    delete kernel modules binaries
+       @echo clean_kernel:             delete kernel modules binaries
+       @echo