]> git.lyx.org Git - features.git/blob - config/spell.m4
Compile 3rdparty/hunspell in stdlib-debug mode when needed
[features.git] / config / spell.m4
1 # Macro to add for using aspell spellchecker libraries!     -*- sh -*-
2 # Only checks for "new" aspell, > 0.50
3 AC_DEFUN([CHECK_WITH_ASPELL],
4 [
5         lyx_use_aspell=true
6         AC_ARG_WITH(aspell, AC_HELP_STRING([--without-aspell],[do not check for ASpell library]))
7         test "$with_aspell" = "no" && lyx_use_aspell=false
8
9         if $lyx_use_aspell ; then
10                 AC_CHECK_HEADERS(aspell.h,
11                         [lyx_use_aspell=true; break;],
12                         [lyx_use_aspell=false])
13                 AC_CHECK_LIB(aspell, new_aspell_config, LIBS="-laspell $LIBS", lyx_use_aspell=false)
14
15                 AC_MSG_CHECKING([whether to use aspell])
16                 if $lyx_use_aspell ; then
17                         AC_MSG_RESULT(yes)
18                         AC_DEFINE(USE_ASPELL, 1, [Define as 1 to use the aspell library])
19                         lyx_flags="$lyx_flags use-aspell"
20                 else
21                         AC_MSG_RESULT(no)
22                 fi
23         fi
24         ])
25
26 AC_DEFUN([LYX_HAVE_ENCHANT2],
27 [
28   AC_MSG_CHECKING([whether enchant is version 2.x at least])
29   save_CXXFLAGS=$CXXFLAGS
30   CXXFLAGS="$ENCHANT_CFLAGS $AM_CXXFLAGS $CXXFLAGS"
31
32   AC_TRY_COMPILE([#include <enchant++.h>],
33       [enchant::Broker broker;],
34       [AC_MSG_RESULT(yes)
35        AC_DEFINE(HAVE_ENCHANT2, 1, [Define to 1 if enchant 2.x is detected])
36       ],
37       [AC_MSG_RESULT(no)])
38   CXXFLAGS=$save_CXXFLAGS
39 ])
40
41 AC_DEFUN([CHECK_WITH_ENCHANT],
42 [
43         lyx_use_enchant=true
44         AC_ARG_WITH(enchant, AC_HELP_STRING([--without-enchant],[do not check for Enchant library]))
45         test "$with_enchant" = "no" && lyx_use_enchant=false
46
47         if $lyx_use_enchant; then
48                 PKG_CHECK_MODULES([ENCHANT], [enchant-2], [],
49                     [PKG_CHECK_MODULES([ENCHANT], [enchant], [],
50                         [lyx_use_enchant=false])])
51                 AC_MSG_CHECKING([whether to use enchant])
52                 if $lyx_use_enchant ; then
53                     AC_MSG_RESULT(yes)
54                     AC_DEFINE(USE_ENCHANT, 1, [Define as 1 to use the enchant library])
55                     LYX_HAVE_ENCHANT2
56                     lyx_flags="$lyx_flags use-enchant"
57                 else
58                     AC_MSG_RESULT(no)
59                 fi
60         fi
61     ])
62
63 # Macro to add for using hunspell spellchecker libraries!     -*- sh -*-
64 AC_DEFUN([CHECK_WITH_HUNSPELL],
65 [
66         lyx_use_hunspell=true
67         AC_ARG_WITH(hunspell, AC_HELP_STRING([--without-hunspell],[do not check for Hunspell library]))
68         test "$with_hunspell" = "no" && lyx_use_hunspell=false
69
70         if $lyx_use_hunspell ; then
71         PKG_CHECK_MODULES([HUNSPELL], [hunspell], [], [
72                   AC_CHECK_HEADERS(hunspell/hunspell.hxx,
73                     [lyx_use_hunspell=true; break;],
74                          [lyx_use_hunspell=false])
75                          AC_CHECK_LIB(hunspell, main, LIBS="-lhunspell $LIBS", lyx_use_hunspell=false)
76                 ])
77         AC_MSG_CHECKING([whether to use hunspell])
78         if $lyx_use_hunspell ; then
79                 AC_MSG_RESULT(yes)
80                 AC_DEFINE(USE_HUNSPELL, 1, [Define as 1 to use the hunspell library])
81                 lyx_flags="$lyx_flags use-hunspell"
82         else
83                 AC_MSG_RESULT(no)
84         fi
85     fi
86     ])
87
88 dnl Usage: LYX_USE_INCLUDED_HUNSPELL : select if the included hunspell should
89 dnl        be used.
90 AC_DEFUN([LYX_USE_INCLUDED_HUNSPELL],[
91         AC_MSG_CHECKING([whether to use included hunspell library])
92         AC_ARG_WITH(included-hunspell,
93                 [AC_HELP_STRING([--with-included-hunspell], [use the hunspell lib supplied with LyX instead of the system one])],
94                 [lyx_cv_with_included_hunspell=$withval],
95                 [lyx_cv_with_included_hunspell=no])
96         AM_CONDITIONAL(USE_INCLUDED_HUNSPELL, test x$lyx_cv_with_included_hunspell = xyes)
97         AC_MSG_RESULT([$lyx_cv_with_included_hunspell])
98         if test x$lyx_cv_with_included_hunspell = xyes ; then
99                 lyx_included_libs="$lyx_included_libs hunspell"
100                 HUNSPELL_CFLAGS='-I$(top_srcdir)/3rdparty/hunspell/1.6.2/src'
101                 HUNSPELL_LIBS='$(top_builddir)/3rdparty/hunspell/liblyxhunspell.a'
102                 AC_SUBST(HUNSPELL_CFLAGS)
103                 AC_SUBST(HUNSPELL_LIBS)
104         fi
105         ])
106
107
108 ### Check if we want spell libraries, prefer new aspell or hunspell
109 AC_DEFUN([LYX_CHECK_SPELL_ENGINES],
110 [
111         LYX_USE_INCLUDED_HUNSPELL
112         if test x$lyx_cv_with_included_hunspell = xyes ; then
113 dnl the user wanted to use the included hunspell, so do not check for external hunspell
114                 lyx_use_hunspell=true
115                 AC_DEFINE(USE_HUNSPELL, 1, [Define as 1 to use the hunspell library])
116                 lyx_flags="$lyx_flags use-hunspell"
117         else
118                 CHECK_WITH_HUNSPELL
119         fi
120         CHECK_WITH_ASPELL
121         CHECK_WITH_ENCHANT
122
123         AM_CONDITIONAL(USE_ASPELL, $lyx_use_aspell)
124         AM_CONDITIONAL(USE_ENCHANT, $lyx_use_enchant)
125         AM_CONDITIONAL(USE_HUNSPELL, $lyx_use_hunspell)
126         ])
127