#!/usr/bin/env python conf.CHECK_HEADERS('readline.h history.h readline/readline.h readline/history.h') for termlib in ['ncurses', 'curses', 'termcap', 'terminfo', 'termlib', 'tinfo']: if conf.CHECK_FUNCS_IN('tgetent', termlib): conf.env['READLINE_TERMLIB'] = termlib break # # Check if we need to work around readline/readline.h # deprecated declarations # if conf.CONFIG_SET('HAVE_READLINE_READLINE_H'): if not conf.CHECK_CODE(''' #include int main() {return 0;} ''', define='HAVE_WORKING_READLINE_READLINE_WITH_STRICT_PROTO', cflags=conf.env['WERROR_CFLAGS'] + ['-Wstrict-prototypes', '-Werror=strict-prototypes'], msg='for compiling with strict prototypes', addmain=False): conf.CHECK_CODE(''' #define _FUNCTION_DEF #include int main() {return 0;} ''', cflags=conf.env['WERROR_CFLAGS'] + ['-Wstrict-prototypes', '-Werror=strict-prototypes'], msg='for workaround to strict prototypes issue', define='HAVE_READLINE_READLINE_WORKAROUND', addmain=False) conf.CHECK_CODE(''' #ifdef HAVE_READLINE_READLINE_H # ifdef HAVE_READLINE_READLINE_WORKAROUND # define _FUNCTION_DEF # endif # include # ifdef HAVE_READLINE_HISTORY_H # include # endif #else # ifdef HAVE_READLINE_H # include # ifdef HAVE_HISTORY_H # include # endif # endif #endif int main(void) {rl_completion_t f; return 0;} ''', 'HAVE_RL_COMPLETION_FUNC_T', execute=False, addmain=False, msg='Checking for rl_completion_t') conf.CHECK_CODE(''' #ifdef HAVE_READLINE_READLINE_H # ifdef HAVE_READLINE_READLINE_WORKAROUND # define _FUNCTION_DEF # endif # include # ifdef HAVE_READLINE_HISTORY_H # include # endif #else # ifdef HAVE_READLINE_H # include # ifdef HAVE_HISTORY_H # include # endif # endif #endif int main(void) {CPPFunction f; return 0;} ''', 'HAVE_CPPFUNCTION', execute=False, addmain=False, msg='Checking for CPPFunction') if conf.CHECK_FUNCS_IN('rl_completion_matches', 'readline'): conf.DEFINE('HAVE_NEW_LIBREADLINE', 1) if conf.CHECK_FUNCS_IN('history_list', 'readline'): conf.DEFINE('HAVE_HISTORY_LIST', 1)