summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Schneider <asn@samba.org>2012-08-02 11:29:10 +0200
committerMichael Adam <obnox@samba.org>2013-04-29 13:05:59 +0200
commit86f88ee7b074fc8193a445e0c8ece58c3058b6c3 (patch)
tree118ae8646ba54ec6b2d39f164a11bd505f2f2c75
parent5e0f4be8e2123ccf9f6beece95b187cd2676ff24 (diff)
downloadsamba-86f88ee7b074fc8193a445e0c8ece58c3058b6c3.tar.gz
samba-86f88ee7b074fc8193a445e0c8ece58c3058b6c3.tar.bz2
samba-86f88ee7b074fc8193a445e0c8ece58c3058b6c3.zip
waf: Create a better wscript for finding ncurses.
Signed-off-by: Andreas Schneider <asn@samba.org> Reviewed-by: Michael Adam <obnox@samba.org>
-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')