diff options
-rw-r--r-- | config/ac-macros/readline.m4 | 39 | ||||
-rw-r--r-- | configure.in | 29 |
2 files changed, 56 insertions, 12 deletions
diff --git a/config/ac-macros/readline.m4 b/config/ac-macros/readline.m4 index e1ed8420bfb..9e62d9add3e 100644 --- a/config/ac-macros/readline.m4 +++ b/config/ac-macros/readline.m4 @@ -40,23 +40,44 @@ AC_DEFUN([MYSQL_CHECK_LIBEDIT_INTERFACE], [ ]) AC_DEFUN([MYSQL_CHECK_NEW_RL_INTERFACE], [ - AC_CACHE_CHECK([defined rl_compentry_func_t and rl_completion_func_t], mysql_cv_new_rl_interface, - AC_TRY_COMPILE( - [ + AC_CACHE_CHECK([for system libreadline], mysql_cv_new_rl_interface, + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE([ #include "stdio.h" #include "readline/readline.h" - ], - [ rl_completion_func_t *func1= (rl_completion_func_t*)0; rl_compentry_func_t *func2= (rl_compentry_func_t*)0; - ], + ])], [ - mysql_cv_new_rl_interface=yes - AC_DEFINE_UNQUOTED([USE_NEW_READLINE_INTERFACE], [1], - [used new readline interface (are rl_completion_func_t and rl_compentry_func_t defined)]) + AC_PREPROC_IFELSE( + [AC_LANG_SOURCE([ + #include "stdio.h" + #include "readline/readline.h" + #if RL_VERSION_MAJOR > 5 + #error + #endif + ])], [ rl_v5=yes ], [ rl_v5=no ], + ) + if [test "$rl_v5" = "yes"] + then + mysql_cv_new_rl_interface=yes + else + if [test "$enable_distribution" = "yes"] + then + mysql_cv_new_rl_interface=no + else + mysql_cv_new_rl_interface=yes + enable_distribution=warn + fi + fi ], [mysql_cv_new_rl_interface=no] ) + if [test "$mysql_cv_new_rl_interface" = yes] + then + AC_DEFINE_UNQUOTED([USE_NEW_READLINE_INTERFACE], [1], + [used new readline interface (are rl_completion_func_t and rl_compentry_func_t defined)]) + fi ) ]) diff --git a/configure.in b/configure.in index 34ca4e171b2..179f4bfcce2 100644 --- a/configure.in +++ b/configure.in @@ -632,6 +632,14 @@ AC_ARG_WITH(other-libc, ) AC_SUBST(NOINST_LDFLAGS) +AC_ARG_ENABLE(distribution, + AC_HELP_STRING( + [--disable-distribution], + [Allow linking with system GPLv3 libraries. It may result in a binary that can not be legally distributed.]), + [ enable_distribution=$enableval ], + [ enable_distribution=yes ] + ) + # # Check if we are using Linux and a glibc compiled with static nss # (this is true on the MySQL build machines to avoid NSS problems) @@ -1573,7 +1581,7 @@ fi AC_MSG_CHECKING([for OpenSolaris Bug 6611808]) save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -Werror" -AC_COMPILE_IFELSE([ +AC_COMPILE_IFELSE([AC_LANG_SOURCE([ #include <pthread.h> void dummy() {} int main() @@ -1582,7 +1590,7 @@ AC_COMPILE_IFELSE([ pthread_once(&once_control, dummy); return 0; } -], [ +])], [ AC_DEFINE([PTHREAD_ONCE_INITIALIZER], [{PTHREAD_ONCE_INIT}], [See OpenSolaris Bug 6611808]) AC_MSG_RESULT([yes]) @@ -2712,6 +2720,8 @@ case $SYSTEM_TYPE in compile_libedit=yes AC_DEFINE_UNQUOTED(HAVE_HIST_ENTRY, 1) AC_DEFINE_UNQUOTED(USE_LIBEDIT_INTERFACE, 1) + AC_MSG_CHECKING([for libedit/readline]) + AC_MSG_RESULT([libedit bundled]) elif test "$with_readline" = "yes" then readline_topdir="cmd-line-utils" @@ -2722,6 +2732,8 @@ case $SYSTEM_TYPE in compile_readline=yes want_to_use_readline="yes" AC_DEFINE_UNQUOTED(USE_NEW_READLINE_INTERFACE, 1) + AC_MSG_CHECKING([for libedit/readline]) + AC_MSG_RESULT([readline bundled]) else # Use system readline library AC_LANG_SAVE @@ -2736,12 +2748,16 @@ case $SYSTEM_TYPE in # this way we avoid linking commercial source with GPL readline readline_link="-lreadline" want_to_use_readline="yes" + AC_MSG_CHECKING([for libedit/readline]) + AC_MSG_RESULT([readline system]) elif [test "$mysql_cv_libedit_interface" = "yes"] then # Use libedit readline_link="-ledit" + AC_MSG_CHECKING([for libedit/readline]) + AC_MSG_RESULT([libedit system]) else - AC_MSG_ERROR([Could not find system readline or libedit libraries + AC_MSG_ERROR([Could not find usable system readline or libedit libraries Use --with-readline or --with-libedit to use the bundled versions of libedit or readline]) fi @@ -2987,6 +3003,13 @@ if test X"$with_plugin_ndbcluster" = Xyes ; then echo for more details. fi +if test "$enable_distribution" = "warn" +then + echo "You have linked MariaDB with GPLv3 libraries!" + echo "You may not distribute the resulting binary. If you do, you will " + echo "put yourself into a legal problem with Free Software Foundation." +fi + # The first line "Thank you ..." is checked in ./Do-compile to verify that configure # ended sucessfully - don't remove it. echo |