summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/wscript9
-rw-r--r--source3/wscript_configure_system_ncurses23
2 files changed, 24 insertions, 8 deletions
diff --git a/source3/wscript b/source3/wscript
index 4fbc19158d..28fa11f227 100644
--- a/source3/wscript
+++ b/source3/wscript
@@ -1714,14 +1714,7 @@ main() {
conf.DEFINE('HAVE_CEPH', '1')
if Options.options.with_regedit:
- #XXX these checks might need to be expanded
- ncurses = conf.CHECK_FUNCS_IN('initscr', 'ncurses', headers='ncurses.h')
- menu = conf.CHECK_FUNCS_IN('set_menu_items item_count', 'menu',
- headers='menu.h')
- panel = conf.CHECK_FUNCS_IN('new_panel show_panel', 'panel',
- headers='panel.h')
- if ncurses and menu:
- conf.env.build_regedit = True
+ conf.PROCESS_SEPARATE_RULE('system_ncurses')
default_static_modules.extend(TO_LIST('''pdb_smbpasswd pdb_tdbsam pdb_wbc_sam
auth_sam auth_unix auth_winbind auth_wbc
diff --git a/source3/wscript_configure_system_ncurses b/source3/wscript_configure_system_ncurses
new file mode 100644
index 0000000000..f61e49c039
--- /dev/null
+++ b/source3/wscript_configure_system_ncurses
@@ -0,0 +1,23 @@
+import Logs, Options, sys
+
+Logs.info("Looking for ncurses features")
+
+if isinstance(Options.options.with_regedit, list):
+ path_ncurses_config = [x+'/bin' for x in Options.options.with_regedit]
+else:
+ path_ncurses_config = None
+
+conf.find_program('ncurses5-config', path_list=path_ncurses_config, var='NCURSES_CONFIG')
+if not conf.env.NCURSES_CONFIG:
+ conf.find_program('ncurses6-config', path_list=path_ncurses_config, var='NCURSES_CONFIG')
+
+if conf.env.NCURSES_CONFIG:
+ conf.check_cfg(path=conf.env.NCURSES_CONFIG, args="--cflags --libs",
+ package="", uselib_store="NCURSES")
+ conf.env.build_regedit = True
+
+conf.CHECK_HEADERS('ncurses.h menu.h panel.h', lib='ncurses')
+
+conf.CHECK_FUNCS_IN('initscr', 'ncurses')
+conf.CHECK_FUNCS_IN('set_menu_items item_count', 'menu')
+conf.CHECK_FUNCS_IN('new_panel show_panel', 'panel')