def METHOD_NAME(libfab_install_path, mode, cluster=None, ucx=None):
    if (os.path.exists(libfab_install_path) != True):
        os.makedirs(libfab_install_path)
    config_cmd = ['./configure', f'--prefix={libfab_install_path}']
    enable_prov_val = 'yes'
    if (mode == 'dbg'):
        config_cmd.append('--enable-debug')
    elif (mode == 'dl'):
        enable_prov_val='dl'
    if (cluster == 'daos'):
        prov_list = common.daos_prov_list
    elif (cluster == 'gpu'):
        prov_list = common.gpu_prov_list
    else:
        prov_list = common.default_prov_list
    for prov in prov_list:
       if (prov == 'ucx'):
           if (ucx):
               config_cmd.append('--enable-ucx=yes')
       else:
           config_cmd.append(f'--enable-{prov}={enable_prov_val}')
    for op in common.common_disable_list:
         config_cmd.append(f'--enable-{op}=no')
    if (cluster == 'default'):
        for op in common.default_enable_list:
            config_cmd.append(f'--enable-{op}')
    common.run_command(['./autogen.sh'])
    common.run_command(shlex.split(" ".join(config_cmd)))
    common.run_command(['make','clean'])
    common.run_command(['make', '-j32'])
    common.run_command(['make','install'])