From 16a1c5a7c82b1375f51aa275797c8e8c99776158 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Fri, 22 Mar 2013 09:30:05 +0100 Subject: [PATCH] s3:modules: fix the build of vfs_notify_fam (bug #9545) This adds the --with-fam option and configure checks. Signed-off-by: Stefan Metzmacher Reviewed-by: Volker Lendecke (cherry picked from commit 0d75c902254c6e27964c631459ef8e9b379b77fc) --- source3/modules/wscript_build | 4 ++++ source3/wscript | 30 ++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/source3/modules/wscript_build b/source3/modules/wscript_build index 2e431b6..16ed276 100644 --- a/source3/modules/wscript_build +++ b/source3/modules/wscript_build @@ -318,9 +318,13 @@ bld.SAMBA3_MODULE('vfs_gpfs', internal_module=bld.SAMBA3_IS_STATIC_MODULE('vfs_gpfs'), enabled=bld.SAMBA3_IS_ENABLED_MODULE('vfs_gpfs')) +vfs_notify_fam_deps='samba-util ' +if bld.CONFIG_SET('SAMBA_FAM_LIBS'): + vfs_notify_fam_deps += bld.CONFIG_GET('SAMBA_FAM_LIBS') bld.SAMBA3_MODULE('vfs_notify_fam', subsystem='vfs', source=VFS_NOTIFY_FAM_SRC, + deps=vfs_notify_fam_deps, init_function='', internal_module=bld.SAMBA3_IS_STATIC_MODULE('vfs_notify_fam'), enabled=bld.SAMBA3_IS_ENABLED_MODULE('vfs_notify_fam')) diff --git a/source3/wscript b/source3/wscript index 194d712..7f83fef 100644 --- a/source3/wscript +++ b/source3/wscript @@ -42,6 +42,7 @@ def set_options(opt): opt.SAMBA3_ADD_OPTION('automount') opt.SAMBA3_ADD_OPTION('aio-support') opt.SAMBA3_ADD_OPTION('dmapi', default=False, help="build with DMAPI support") + opt.SAMBA3_ADD_OPTION('fam', default=None) # None means autodetection opt.SAMBA3_ADD_OPTION('profiling-data', default=False) opt.SAMBA3_ADD_OPTION('cluster-support', default=None) @@ -163,6 +164,32 @@ main() { }''', 'HAVE_KERNEL_SHARE_MODES', addmain=False, execute=True, msg="Checking for kernel share modes") + # check for fam libs + samba_fam_libs=None + check_for_fam=False + if Options.options.with_fam is None: + check_for_fam=True + elif Options.options.with_fam == True: + check_for_fam=True + + if check_for_fam and conf.CHECK_HEADERS('fam.h'): + if conf.CHECK_FUNCS_IN('FAMOpen2', 'fam'): + samba_fam_libs='fam' + elif conf.CHECK_FUNCS_IN('FAMOpen2', 'fam C'): + samba_fam_libs='fam C' + conf.CHECK_TYPE('enum FAMCodes', headers='fam.h', + define='HAVE_FAM_H_FAMCODES_TYPEDEF', + msg='Checking whether enum FAMCodes is available') + conf.CHECK_FUNCS_IN('FAMNoExists', 'fam') + + if samba_fam_libs is not None: + conf.DEFINE('SAMBA_FAM_LIBS', samba_fam_libs) + else: + if Options.options.with_fam == True: + conf.fatal('FAM support requested, but no suitable FAM library found') + elif check_for_fam: + Logs.warn('no suitable FAM library found') + # check for DMAPI libs Logs.info("Checking for DMAPI library existence") conf.env['dmapi_lib'] = '' @@ -1742,6 +1769,9 @@ main() { if conf.CONFIG_SET('HAVE_GPFS'): default_shared_modules.extend(TO_LIST('vfs_gpfs')) + if conf.CONFIG_SET('SAMBA_FAM_LIBS'): + default_shared_modules.extend(TO_LIST('vfs_notify_fam')) + explicit_shared_modules = TO_LIST(Options.options.shared_modules, delimiter=',') explicit_static_modules = TO_LIST(Options.options.static_modules, delimiter=',') -- 1.7.9.5