From 8cb021b32fffb92003da7cef9ef3cb711f5901eb Mon Sep 17 00:00:00 2001 From: Jean-Marc Lasgouttes Date: Mon, 6 Mar 2017 16:03:32 +0100 Subject: [PATCH] Rewrite detection of MyThes library Now configure searches in this order 1. system-installed library 2. code bundled with LyX If --with-included-mythes or if no mythes library is installed, then the script selects the bundled version. There should be no cases leading to error message. --- config/lyxinclude.m4 | 67 +++++++++++++++++++++++++------------------- configure.ac | 2 +- 2 files changed, 39 insertions(+), 30 deletions(-) diff --git a/config/lyxinclude.m4 b/config/lyxinclude.m4 index 585cb7f8f0..8287fb2f5d 100644 --- a/config/lyxinclude.m4 +++ b/config/lyxinclude.m4 @@ -626,34 +626,42 @@ fi dnl Usage: LYX_USE_INCLUDED_MYTHES : select if the included MyThes should dnl be used. AC_DEFUN([LYX_USE_INCLUDED_MYTHES],[ - AC_MSG_CHECKING([whether to use included MyThes library]) - AC_ARG_WITH(included-mythes, - [AC_HELP_STRING([--without-included-mythes], [use the system MyThes lib instead of the one supplied with LyX])], - [lyx_cv_with_included_mythes=$withval], - [lyx_cv_with_included_mythes=yes]) - AM_CONDITIONAL(USE_INCLUDED_MYTHES, test x$lyx_cv_with_included_mythes = xyes) - AC_MSG_RESULT([$lyx_cv_with_included_mythes]) - if test x$lyx_cv_with_included_mythes != xyes ; then - AC_LANG_PUSH(C++) - AC_CHECK_HEADER(mythes.hxx,[ac_cv_header_mythes_h=yes lyx_cv_mythes_h_location=""]) - if test x$ac_cv_header_mythes_h != xyes; then - AC_CHECK_HEADER(mythes/mythes.hxx,[ac_cv_header_mythes_h=yes lyx_cv_mythes_h_location=""]) - fi - AC_CHECK_LIB(mythes, main, [MYTHES_LIBS="-lmythes" lyx_mythes=yes], [lyx_mythes=no]) - if test x$lyx_mythes != xyes; then - AC_CHECK_LIB(mythes-1.2, main, [MYTHES_LIBS="-lmythes-1.2" lyx_mythes=yes], [lyx_mythes=no]) - fi - AC_LANG_POP(C++) - if test x$lyx_mythes != xyes -o x$ac_cv_header_mythes_h != xyes; then - AC_MSG_ERROR([cannot find suitable MyThes library (do not use --without-included-mythes)]) - fi - AC_DEFINE(USE_EXTERNAL_MYTHES, 1, [Define as 1 to use an external MyThes library]) - AC_DEFINE_UNQUOTED(MYTHES_H_LOCATION,$lyx_cv_mythes_h_location,[Location of mythes.hxx]) - AC_SUBST(MYTHES_LIBS) - else - lyx_included_libs="$lyx_included_libs mythes" - fi - + AC_ARG_WITH(included-mythes, + [AC_HELP_STRING([--with-included-mythes], [force to use the MyThes lib supplied with LyX])], + [use_included_mythes=$withval], + [use_included_mythes=no]) + if test x$use_included_mythes != xyes ; then + AC_LANG_PUSH(C++) + use_included_mythes=yes + AC_CHECK_HEADERS([mythes.hxx mythes/mythes.hxx], + [mythes_h_location="<$ac_header>" + save_LIBS=$LIBS + AC_MSG_CHECKING([checking for MyThes library]) + for ac_lib in mythes mythes-1.2 ; do + LIBS="-l$ac_lib $save_LIBS" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM([#include ] + [#include $mythes_h_location], [MyThes dummy("idx","dat")])], + [MYTHES_LIBS=-l$ac_lib + AC_MSG_RESULT([$MYTHES_LIBS]) + use_included_mythes=no]) + done + if test $use_included_mythes != no ; then + AC_MSG_RESULT([not found]) + fi + break]) + AC_LANG_POP(C++) + fi + if test $use_included_mythes = no ; then + AC_DEFINE(USE_EXTERNAL_MYTHES, 1, [Define as 1 to use an external MyThes library]) + AC_DEFINE_UNQUOTED(MYTHES_H_LOCATION,$mythes_h_location,[Location of mythes.hxx]) + AC_SUBST(MYTHES_LIBS) + else + lyx_included_libs="$lyx_included_libs mythes" + fi + AM_CONDITIONAL(USE_INCLUDED_MYTHES, test x$use_included_mythes = xyes) + AC_MSG_CHECKING([whether to use included MyThes library]) + AC_MSG_RESULT([$use_included_mythes]) ]) @@ -670,7 +678,8 @@ AC_DEFUN([LYX_WITH_DIR],[ test "x$with_$3" = xyes && with_$3=$5 lyx_cv_$3="$with_$3" fi - AC_MSG_RESULT($lyx_cv_$3)]) + AC_MSG_RESULT($lyx_cv_$3) +]) dnl Usage: LYX_LOOP_DIR(value,action) diff --git a/configure.ac b/configure.ac index d203049bf9..ce4eb96215 100644 --- a/configure.ac +++ b/configure.ac @@ -122,7 +122,6 @@ AC_CHECK_LIB(gdi32, main) AC_CHECK_LIB(ole32, main) LYX_USE_INCLUDED_BOOST -LYX_USE_INCLUDED_MYTHES ### we need to know the byte order for unicode conversions AC_C_BIGENDIAN @@ -220,6 +219,7 @@ AC_FUNC_MKDIR AC_FUNC_SELECT_ARGTYPES LYX_CHECK_SPELL_ENGINES +LYX_USE_INCLUDED_MYTHES lyx_client_subdir=true dnl AC_LANG_PUSH(C)