File: spell.m4

package info (click to toggle)
lyx 2.5.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 138,444 kB
  • sloc: cpp: 244,268; ansic: 106,398; xml: 72,791; python: 39,384; sh: 7,666; makefile: 6,584; pascal: 2,143; perl: 2,101; objc: 1,084; tcl: 163; sed: 16
file content (145 lines) | stat: -rw-r--r-- 5,146 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
# Macro to add for using aspell spellchecker libraries!     -*- sh -*-
# Only checks for "new" aspell, > 0.50
AC_DEFUN([CHECK_WITH_ASPELL],
[
	lyx_use_aspell=true
	AC_ARG_WITH(aspell, AS_HELP_STRING([--without-aspell],[do not check for ASpell library]))
	test "$with_aspell" = "no" && lyx_use_aspell=false

	if $lyx_use_aspell ; then
		AC_CHECK_HEADERS(aspell.h,
			[lyx_use_aspell=true; break;],
			[lyx_use_aspell=false])
		AC_CHECK_LIB(aspell, new_aspell_config, LIBS="-laspell $LIBS", lyx_use_aspell=false)

		AC_MSG_CHECKING([whether to use aspell])
		if $lyx_use_aspell ; then
			AC_MSG_RESULT(yes)
			AC_DEFINE(USE_ASPELL, 1, [Define as 1 to use the aspell library])
			lyx_flags="$lyx_flags use-aspell"
		else
			AC_MSG_RESULT(no)
		fi
	fi
	])

AC_DEFUN([LYX_HAVE_ENCHANT2],
[
  AC_MSG_CHECKING([whether enchant is version 2.x at least])
  save_CXXFLAGS=$CXXFLAGS
  CXXFLAGS="$ENCHANT_CFLAGS $AM_CXXFLAGS $CXXFLAGS"

  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <enchant++.h>]], [[enchant::Broker broker;]])],[AC_MSG_RESULT(yes)
       AC_DEFINE(HAVE_ENCHANT2, 1, [Define to 1 if enchant 2.x is detected])
      ],[AC_MSG_RESULT(no)])
  CXXFLAGS=$save_CXXFLAGS
])

AC_DEFUN([CHECK_WITH_ENCHANT],
[
	lyx_use_enchant=true
	AC_ARG_WITH(enchant, AS_HELP_STRING([--without-enchant],[do not check for Enchant library]))
	test "$with_enchant" = "no" && lyx_use_enchant=false

	if $lyx_use_enchant; then
		PKG_CHECK_MODULES([ENCHANT], [enchant-2], [],
		    [PKG_CHECK_MODULES([ENCHANT], [enchant], [],
		        [lyx_use_enchant=false])])
		AC_MSG_CHECKING([whether to use enchant])
		if $lyx_use_enchant ; then
		    AC_MSG_RESULT(yes)
		    AC_DEFINE(USE_ENCHANT, 1, [Define as 1 to use the enchant library])
		    LYX_HAVE_ENCHANT2
		    lyx_flags="$lyx_flags use-enchant"
		else
		    AC_MSG_RESULT(no)
		fi
    	fi
    ])

AC_DEFUN([LYX_HAVE_HUNSPELL_CXXABI],
[
  AC_MSG_CHECKING([whether hunspell C++ (rather than C) ABI is provided])
  save_CXXFLAGS=$CXXFLAGS
  CXXFLAGS="$HUNSPELL_CFLAGS $AM_CXXFLAGS $CXXFLAGS"

# in the C++ ABI, stem() returns a vector, in the C ABI, it returns an int
  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <hunspell/hunspell.hxx>]], [[Hunspell sp("foo", "bar");
       int i = sp.stem("test").size();]])],[AC_MSG_RESULT(yes)
       AC_DEFINE(HAVE_HUNSPELL_CXXABI, 1, [Define to 1 if hunspell C++ (rather than C) ABI is detected])
       have_hunspell_cxx_abi=yes
      ],[AC_MSG_RESULT(no)])
  CXXFLAGS=$save_CXXFLAGS
])

# Macro to add for using hunspell spellchecker libraries!     -*- sh -*-
AC_DEFUN([CHECK_WITH_HUNSPELL],
[
	lyx_use_hunspell=true
	AC_ARG_WITH(hunspell, AS_HELP_STRING([--without-hunspell],[do not check for Hunspell library]))
	test "$with_hunspell" = "no" && lyx_use_hunspell=false

	if $lyx_use_hunspell ; then
	PKG_CHECK_MODULES([HUNSPELL], [hunspell], [], [
		  AC_CHECK_HEADERS(hunspell/hunspell.hxx,
		    [lyx_use_hunspell=true; break;],
			 [lyx_use_hunspell=false])
			 AC_CHECK_LIB(hunspell, main, LIBS="-lhunspell $LIBS", lyx_use_hunspell=false)
		])
	fi
	AC_MSG_CHECKING([whether to use hunspell])
	if $lyx_use_hunspell ; then
		AC_MSG_RESULT(yes)
		AC_DEFINE(USE_HUNSPELL, 1, [Define as 1 to use the hunspell library])
		lyx_flags="$lyx_flags use-hunspell"
		LYX_HAVE_HUNSPELL_CXXABI
		if test $enable_stdlib_debug = "yes" -a -n "$have_hunspell_cxx_abi" ; then
		    LYX_WARNING([Compiling LyX with stdlib-debug and system hunspell libraries may lead to
   crashes. Consider using --disable-stdlib-debug or --with-included-hunspell.])
		fi
	else
		AC_MSG_RESULT(no)
	fi
    ])

dnl Usage: LYX_USE_INCLUDED_HUNSPELL : select if the included hunspell should
dnl        be used.
AC_DEFUN([LYX_USE_INCLUDED_HUNSPELL],[
	AC_MSG_CHECKING([whether to use included hunspell library])
	AC_ARG_WITH(included-hunspell,
		[AS_HELP_STRING([--with-included-hunspell], [use the hunspell lib supplied with LyX instead of the system one])],
		[lyx_cv_with_included_hunspell=$withval],
		[lyx_cv_with_included_hunspell=no])
	AM_CONDITIONAL(USE_INCLUDED_HUNSPELL, test x$lyx_cv_with_included_hunspell = xyes)
	AC_MSG_RESULT([$lyx_cv_with_included_hunspell])
	if test x$lyx_cv_with_included_hunspell = xyes ; then
		lyx_included_libs="$lyx_included_libs hunspell"
		HUNSPELL_CFLAGS='-I$(top_srcdir)/3rdparty/hunspell/1.7.2/src'
		HUNSPELL_LIBS='$(top_builddir)/3rdparty/hunspell/liblyxhunspell.a'
		AC_SUBST(HUNSPELL_CFLAGS)
		AC_SUBST(HUNSPELL_LIBS)
	fi
	])


### Check if we want spell libraries, prefer new aspell or hunspell
AC_DEFUN([LYX_CHECK_SPELL_ENGINES],
[
	LYX_USE_INCLUDED_HUNSPELL
	if test x$lyx_cv_with_included_hunspell = xyes ; then
dnl the user wanted to use the included hunspell, so do not check for external hunspell
		lyx_use_hunspell=true
		AC_DEFINE(USE_HUNSPELL, 1, [Define as 1 to use the hunspell library])
		AC_DEFINE(HAVE_HUNSPELL_CXXABI, 1, [Define to 1 if hunspell C++ (rather than C) ABI is detected])
		lyx_flags="$lyx_flags use-hunspell"
	else
		CHECK_WITH_HUNSPELL
	fi
	CHECK_WITH_ASPELL
	CHECK_WITH_ENCHANT

	AM_CONDITIONAL(USE_ASPELL, $lyx_use_aspell)
	AM_CONDITIONAL(USE_ENCHANT, $lyx_use_enchant)
	AM_CONDITIONAL(USE_HUNSPELL, $lyx_use_hunspell)
	])