From fcbf63e62c627deae76c1b8cb8c0876c536ed811 Mon Sep 17 00:00:00 2001 From: Jari Vetoniemi Date: Mon, 16 Mar 2020 18:49:26 +0900 Subject: Fresh start --- jni/ruby/ext/readline/extconf.rb | 109 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 jni/ruby/ext/readline/extconf.rb (limited to 'jni/ruby/ext/readline/extconf.rb') diff --git a/jni/ruby/ext/readline/extconf.rb b/jni/ruby/ext/readline/extconf.rb new file mode 100644 index 0000000..c79370b --- /dev/null +++ b/jni/ruby/ext/readline/extconf.rb @@ -0,0 +1,109 @@ +require "mkmf" + +readline = Struct.new(:headers, :extra_check).new(["stdio.h"]) + +def readline.have_header(header) + if super(header, &extra_check) + headers.push(header) + return true + else + return false + end +end + +def readline.have_var(var) + return super(var, headers) +end + +def readline.have_func(func) + return super(func, headers) +end + +def readline.have_type(type) + return super(type, headers) +end + +dir_config('curses') +dir_config('ncurses') +dir_config('termcap') +dir_config("readline") +enable_libedit = enable_config("libedit") + +have_library("user32", nil) if /cygwin/ === RUBY_PLATFORM +have_library("ncurses", "tgetnum") || + have_library("termcap", "tgetnum") || + have_library("curses", "tgetnum") + +case enable_libedit +when true + # --enable-libedit + unless (readline.have_header("editline/readline.h") || + readline.have_header("readline/readline.h")) && + have_library("edit", "readline") + raise "libedit not found" + end +when false + # --disable-libedit + unless ((readline.have_header("readline/readline.h") && + readline.have_header("readline/history.h")) && + have_library("readline", "readline")) + raise "readline not found" + end +else + # does not specify + unless ((readline.have_header("readline/readline.h") && + readline.have_header("readline/history.h")) && + (have_library("readline", "readline") || + have_library("edit", "readline"))) || + (readline.have_header("editline/readline.h") && + have_library("edit", "readline")) + raise "readline nor libedit not found" + end +end + +readline.have_func("rl_getc") +readline.have_func("rl_getc_function") +readline.have_func("rl_filename_completion_function") +readline.have_func("rl_username_completion_function") +readline.have_func("rl_completion_matches") +readline.have_func("rl_refresh_line") +readline.have_var("rl_deprep_term_function") +readline.have_var("rl_completion_append_character") +readline.have_var("rl_basic_word_break_characters") +readline.have_var("rl_completer_word_break_characters") +readline.have_var("rl_basic_quote_characters") +readline.have_var("rl_completer_quote_characters") +readline.have_var("rl_filename_quote_characters") +readline.have_var("rl_attempted_completion_over") +readline.have_var("rl_library_version") +readline.have_var("rl_editing_mode") +readline.have_var("rl_line_buffer") +readline.have_var("rl_point") +# workaround for native windows. +/mswin|bccwin|mingw/ !~ RUBY_PLATFORM && readline.have_var("rl_event_hook") +/mswin|bccwin|mingw/ !~ RUBY_PLATFORM && readline.have_var("rl_catch_sigwinch") +/mswin|bccwin|mingw/ !~ RUBY_PLATFORM && readline.have_var("rl_catch_signals") +readline.have_var("rl_pre_input_hook") +readline.have_var("rl_special_prefixes") +readline.have_func("rl_cleanup_after_signal") +readline.have_func("rl_free_line_state") +readline.have_func("rl_clear_signals") +readline.have_func("rl_set_screen_size") +readline.have_func("rl_get_screen_size") +readline.have_func("rl_vi_editing_mode") +readline.have_func("rl_emacs_editing_mode") +readline.have_func("replace_history_entry") +readline.have_func("remove_history") +readline.have_func("clear_history") +readline.have_func("rl_redisplay") +readline.have_func("rl_insert_text") +readline.have_func("rl_delete_text") +unless readline.have_type("rl_hook_func_t*") + # rl_hook_func_t is available since readline-4.2 (2001). + # Function is removed at readline-6.3 (2014). + # However, editline (NetBSD 6.1.3, 2014) doesn't have rl_hook_func_t. + $defs << "-Drl_hook_func_t=Function" +end + +$INCFLAGS << " -I$(top_srcdir)" +create_makefile("readline") -- cgit v1.2.3