after a bit more digging, found the offending function definition in cliwallet.cpp.
static char** cli_completion( const char * text , int start, int end)
{
char **matches;
matches = (char **)NULL;
#ifdef HAVE_READLINE
if (start == 0)
matches = rl_completion_matches ((char*)text, &my_generator);
else
rl_bind_key('\t',rl_abort);
#endif
return (matches);
}
clearly this is coming from the portion of code surrounded by the #ifdef READLINE #endif.
so, after attempting to set the readline library with a new cmake call using
cmake . -DBDB_ROOT_DIR=/usr/local/BerkeleyDB.6.1 -DBOOST_ROOT=/usr/local/boost/1.59.0 -DBDB_VERSION=-6.1 -DReadline_ROOT_DIR=/usr/local
and then performing a grep on various Makesfiles, i see that cmake is still linking with my mac's system installed readline library, namely in /usr/local/lib
i think all i am missing now is the right macros for the readline directory. the one used above was what i could decipher from the libraries/fc/CMakeModules/FindReadline.cmake .
note, also from this file, it looks like cmake searches for include/readline/readline.h inside of Readline_ROOT_DIR, hence why this is set to /usr/local and not /usr/local/include
i did try both setting Readline_ROOT_DIR to /usr/local /usr/local/include -- both of which failed.
any suggestions? i don't use cmake enough, otherwise i'd be able parse this a bit more.