]> git.lyx.org Git - lyx.git/blob - config/lyxinclude.m4
wrong syntax for command "test"
[lyx.git] / config / lyxinclude.m4
1 dnl Some useful functions for LyXs configure.in                 -*- sh -*-
2 dnl Author: Jean-Marc Lasgouttes (Jean-Marc.Lasgouttes@inria.fr)
3 dnl         Lars Gullik Bjønnes (larsbj@lyx.org)
4 dnl         Allan Rae (rae@lyx.org)
5
6
7 dnl Usage LYX_CHECK_VERSION   Displays version of LyX being built and
8 dnl sets variables "lyx_devel_version" and "lyx_prerelease"
9 AC_DEFUN([LYX_CHECK_VERSION],[
10 echo "configuring LyX version" AC_PACKAGE_VERSION
11 lyx_devel_version=no
12 lyx_prerelease=no
13 build_type=release
14 AC_MSG_CHECKING([for build type])
15 AC_ARG_ENABLE(build-type,
16   AC_HELP_STRING([--enable-build-type=TYPE],[set build setting according to TYPE=dev(elopment), rel(ease) or pre(release)]),
17   [case $enableval in
18     dev*) lyx_devel_version=yes
19           build_type=development;;
20     pre*) lyx_prerelease=yes
21           build_type=prerelease;;
22     rel*) ;;
23     *) AC_ERROR([Bad build type specification \"$enableval\". Please use one of dev(elopment), rel(ease) or pre(release)]);;
24    esac],
25   [case AC_PACKAGE_VERSION in
26     *svn*) lyx_devel_version=yes
27           build_type=development;;
28     *pre*|*alpha*|*beta*|*rc*) lyx_prerelease=yes
29           build_type=prerelease;;
30    esac])
31 AC_MSG_RESULT([$build_type])
32 if test $lyx_devel_version = yes ; then
33            AC_DEFINE(DEVEL_VERSION, 1, [Define if you are building a development version of LyX])
34            LYX_DATE="not released yet"
35 fi
36 AC_SUBST(lyx_devel_version)])
37
38
39 dnl Define the option to set a LyX version on installed executables and directories
40 dnl
41 dnl
42 AC_DEFUN([LYX_VERSION_SUFFIX],[
43 AC_MSG_CHECKING([for version suffix])
44 dnl We need the literal double quotes in the rpm spec file
45 RPM_VERSION_SUFFIX='""'
46 AC_ARG_WITH(version-suffix,
47   [AC_HELP_STRING([--with-version-suffix@<:@=VERSION@:>@], install lyx files as lyxVERSION (VERSION=-AC_PACKAGE_VERSION))],
48   [if test "x$withval" = "xyes";
49    then
50      withval="-"AC_PACKAGE_VERSION
51      ac_configure_args=`echo "$ac_configure_args" | sed "s,--with-version-suffix,--with-version-suffix=$withval,"`
52    fi
53    AC_SUBST(version_suffix,$withval)
54    RPM_VERSION_SUFFIX="--with-version-suffix=$withval"])
55 AC_SUBST(RPM_VERSION_SUFFIX)
56 AC_MSG_RESULT([$withval])
57 ])
58
59
60 dnl Usage: LYX_ERROR(message)  Displays the warning "message" and sets the
61 dnl flag lyx_error to yes.
62 AC_DEFUN([LYX_ERROR],[
63 lyx_error_txt="$lyx_error_txt
64 ** $1
65 "
66 lyx_error=yes])
67
68
69 dnl Usage: LYX_WARNING(message)  Displays the warning "message" and sets the
70 dnl flag lyx_warning to yes.
71 AC_DEFUN([LYX_WARNING],[
72 lyx_warning_txt="$lyx_warning_txt
73 == $1
74 "
75 lyx_warning=yes])
76
77
78 dnl Usage: LYX_LIB_ERROR(file,library)  Displays an error message indication
79 dnl  that 'file' cannot be found because 'lib' may be uncorrectly installed.
80 AC_DEFUN([LYX_LIB_ERROR],[
81 LYX_ERROR([Cannot find $1. Please check that the $2 library
82    is correctly installed on your system.])])
83
84
85 dnl Usage: LYX_CHECK_ERRORS  Displays a warning message if a LYX_ERROR
86 dnl   has occured previously.
87 AC_DEFUN([LYX_CHECK_ERRORS],[
88 if test x$lyx_warning = xyes; then
89 cat <<EOF
90 === The following minor problems have been detected by configure.
91 === Please check the messages below before running 'make'.
92 === (see the section 'Problems' in the INSTALL file)
93 $lyx_warning_txt
94 EOF
95 fi
96 if test x$lyx_error = xyes; then
97 cat <<EOF
98 **** The following problems have been detected by configure.
99 **** Please check the messages below before running 'make'.
100 **** (see the section 'Problems' in the INSTALL file)
101 $lyx_error_txt
102 $lyx_warning_txt
103 EOF
104 exit 1
105 else
106
107 cat <<EOF
108 Configuration of LyX was successful.
109 Type 'make' to compile the program,
110 and then 'make install' to install it.
111 EOF
112 fi])
113
114
115 dnl LYX_SEARCH_PROG(VARIABLE-NAME,PROGRAMS-LIST,ACTION-IF-FOUND)
116 dnl
117 define(LYX_SEARCH_PROG,[dnl
118 for ac_prog in $2 ; do
119 # Extract the first word of "$ac_prog", so it can be a program name with args.
120   set dummy $ac_prog ; ac_word=$[2]
121   if test -z "[$]$1"; then
122     IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
123     for ac_dir in $PATH; do
124       test -z "$ac_dir" && ac_dir=.
125       if test -f [$ac_dir/$ac_word]; then
126         $1="$ac_prog"
127         break
128       fi
129     done
130     IFS="$ac_save_ifs"
131   fi
132
133   if test -n "[$]$1"; then
134     ac_result=yes
135   else
136     ac_result=no
137   fi
138   ifelse($3,,,[$3])
139   test -n "[$]$1" && break
140 done
141 ])dnl
142
143
144 AC_DEFUN([LYX_PROG_CXX_WORKS],
145 [rm -f conftest.C
146 cat >conftest.C <<EOF
147 class foo {
148    // we require the mutable keyword
149    mutable int bar;
150  };
151  // we require namespace support
152  namespace baz {
153    int bar;
154  }
155  int main() {
156    return(0);
157  }
158 EOF
159 $CXX -c $CXXFLAGS $CPPFLAGS conftest.C >&5 || CXX=
160 rm -f conftest.C conftest.o conftest.obj || true
161 ])
162
163
164 AC_DEFUN([LYX_PROG_CXX],
165 [AC_MSG_CHECKING([for a good enough C++ compiler])
166 LYX_SEARCH_PROG(CXX, $CXX $CCC g++ gcc c++ CC cxx xlC cc++, [LYX_PROG_CXX_WORKS])
167
168 if test -z "$CXX" ; then
169   AC_MSG_ERROR([Unable to find a good enough C++ compiler])
170 fi
171 AC_MSG_RESULT($CXX)
172
173 AC_PROG_CXX
174 AC_PROG_CXXCPP
175
176 ### We might want to get or shut warnings.
177 AC_ARG_ENABLE(warnings,
178   AC_HELP_STRING([--enable-warnings],[tell the compiler to display more warnings]),,
179   [ if test $lyx_devel_version = yes -o $lyx_prerelease = yes && test $ac_cv_prog_gxx = yes ; then
180         enable_warnings=yes;
181     else
182         enable_warnings=no;
183     fi;])
184 if test x$enable_warnings = xyes ; then
185   lyx_flags="warnings $lyx_flags"
186 fi
187
188 ### We might want to disable debug
189 AC_ARG_ENABLE(debug,
190   AC_HELP_STRING([--enable-debug],[enable debug information]),,
191   [ if test $lyx_devel_version = yes -o $lyx_prerelease = yes ; then
192         enable_debug=yes;
193     else
194         enable_debug=no;
195     fi;])
196
197 AC_ARG_ENABLE(stdlib-debug,
198   AC_HELP_STRING([--enable-stdlib-debug],[enable debug mode in the standard library]),,
199   [ if test $lyx_devel_version = yes ; then
200       enable_stdlib_debug=yes;
201     else
202       enable_stdlib_debug=no;
203     fi;])
204
205 AC_ARG_ENABLE(concept-checks,
206   AC_HELP_STRING([--enable-concept-checks],[enable concept checks]),,
207   [ if test $lyx_devel_version = yes -o $lyx_prerelease = yes ; then
208         enable_concept_checks=yes;
209     else
210         enable_concept_checks=no;
211     fi;])
212
213 AC_ARG_ENABLE(profiling,
214   AC_HELP_STRING([--enable-profiling],[enable profiling]),,
215   enable_profiling=no;)
216
217 ### set up optimization
218 AC_ARG_ENABLE(optimization,
219     AC_HELP_STRING([--enable-optimization[=value]],[enable compiler optimisation]),,
220     enable_optimization=yes;)
221 case $enable_optimization in
222     yes)
223         if test $lyx_devel_version = yes ; then
224             lyx_opt=-O
225         else
226             lyx_opt=-O2
227         fi;;
228     no) lyx_opt=;;
229     *) lyx_opt=${enable_optimization};;
230 esac
231
232 AC_ARG_ENABLE(pch,
233   AC_HELP_STRING([--enable-pch],[enable precompiled headers]),,
234         enable_pch=no;)
235 lyx_pch_comp=no
236
237 AC_ARG_ENABLE(assertions,
238   AC_HELP_STRING([--enable-assertions],[add runtime sanity checks in the program]),,
239   [if test $lyx_devel_version = yes -o $lyx_prerelease = yes ; then
240         enable_assertions=yes;
241     else
242         enable_assertions=no;
243     fi;])
244 if test "x$enable_assertions" = xyes ; then
245    lyx_flags="assertions $lyx_flags"
246    AC_DEFINE(ENABLE_ASSERTIONS,1,
247     [Define if you want assertions to be enabled in the code])
248 fi
249
250
251
252 # set the compiler options correctly.
253 if test x$GXX = xyes; then
254   dnl Useful for global version info
255   gxx_version=`${CXX} -dumpversion`
256   CXX_VERSION="($gxx_version)"
257
258   if test "$ac_test_CXXFLAGS" = set; then
259     CXXFLAGS="$ac_save_CXXFLAGS"
260   else
261       CFLAGS="$lyx_opt"
262       CXXFLAGS="$lyx_opt"
263     if test x$enable_debug = xyes ; then
264         CFLAGS="-g $CFLAGS"
265         CXXFLAGS="-g $CXXFLAGS"
266     fi
267     if test x$enable_profiling = xyes ; then
268         CFLAGS="-pg $CFLAGS"
269         CXXFLAGS="-pg $CXXFLAGS"
270         LDFLAGS="-pg $LDFLAGS"
271     fi
272   fi
273   if test "$ac_env_CPPFLAGS_set" != set; then
274     if test x$enable_warnings = xyes ; then
275         case $gxx_version in
276             3.1*|3.2*|3.3*)
277                 CPPFLAGS="-W -Wall $CPPFLAGS"
278                 ;;
279             *)
280                 CPPFLAGS="-Wextra -Wall $CPPFLAGS "
281                 ;;
282         esac
283     fi
284   fi
285   case $gxx_version in
286       3.1*)    AM_CXXFLAGS="-finline-limit=500 ";;
287       3.2*|3.3*)    AM_CXXFLAGS="";;
288       3.4*|4.*)
289           AM_CXXFLAGS=""
290           test $enable_pch = yes && lyx_pch_comp=yes
291           ;;
292       *)       AM_CXXFLAGS="";;
293   esac
294   if test x$enable_stdlib_debug = xyes ; then
295     case $gxx_version in
296       3.4*|4.*)
297         lyx_flags="stdlib-debug $lyx_flags"
298         AC_DEFINE(_GLIBCXX_DEBUG, 1, [libstdc++ debug mode])
299         AC_DEFINE(_GLIBCXX_DEBUG_PEDANTIC, 1, [libstdc++ pedantic debug mode])
300         ;;
301     esac
302   fi
303   if test x$enable_concept_checks = xyes ; then
304     case $gxx_version in
305       3.3*)
306         lyx_flags="concept-checks $lyx_flags"
307         AC_DEFINE(_GLIBCPP_CONCEPT_CHECKS, 1, [libstdc++ concept checking])
308         ;;
309       3.4*|4.*)
310         lyx_flags="concept-checks $lyx_flags"
311         AC_DEFINE(_GLIBCXX_CONCEPT_CHECKS, 1, [libstdc++ concept checking])
312         ;;
313     esac
314   fi
315 fi
316 test "$lyx_pch_comp" = yes && lyx_flags="pch $lyx_flags"
317 AM_CONDITIONAL(LYX_BUILD_PCH, test "$lyx_pch_comp" = yes)
318 ])dnl
319
320 dnl Usage: LYX_USE_INCLUDED_BOOST : select if the included boost should
321 dnl        be used.
322 AC_DEFUN([LYX_USE_INCLUDED_BOOST],[
323         AC_MSG_CHECKING([whether to use boost included library])
324         AC_ARG_WITH(included-boost,
325             [AC_HELP_STRING([--without-included-boost], [do not use the boost lib supplied with LyX, try to find one in the system directories - compilation will abort if nothing suitable is found])],
326             [lyx_cv_with_included_boost=$withval],
327             [lyx_cv_with_included_boost=yes])
328         AM_CONDITIONAL(USE_INCLUDED_BOOST, test x$lyx_cv_with_included_boost = xyes)
329         AC_MSG_RESULT([$lyx_cv_with_included_boost])
330         if test x$lyx_cv_with_included_boost != xyes ; then
331                 AC_CHECK_LIB(boost_signals, main, [lyx_boost_underscore=yes], [], [-lm])
332                 AC_CHECK_LIB(boost_signals-mt, main, [lyx_boost_underscore_mt=yes], [], [-lm $LIBTHREAD])
333                 if test x$lyx_boost_underscore_mt = xyes ; then
334                         BOOST_MT="-mt"
335                 else
336                         BOOST_MT=""
337                         if test x$lyx_boost_plain != xyes -a x$lyx_boost_underscore != xyes ; then
338                                 LYX_ERROR([No suitable boost library found (do not use --without-included-boost)])
339                         fi
340                 fi
341                 AC_SUBST(BOOST_SEP)
342                 AC_SUBST(BOOST_MT)
343         fi
344 ])
345
346
347 dnl Usage: LYX_WITH_DIR(dir-name,desc,dir-var-name,default-value,
348 dnl                       [default-yes-value])
349 dnl  Adds a --with-'dir-name' option (described by 'desc') and puts the
350 dnl  resulting directory name in 'dir-var-name'.
351 AC_DEFUN([LYX_WITH_DIR],[
352   AC_ARG_WITH($1,[AC_HELP_STRING([--with-$1],[specify $2])])
353   AC_MSG_CHECKING([for $2])
354   if test -z "$with_$3"; then
355      AC_CACHE_VAL(lyx_cv_$3, lyx_cv_$3=$4)
356   else
357     test "x$with_$3" = xyes && with_$3=$5
358     lyx_cv_$3="$with_$3"
359   fi
360   AC_MSG_RESULT($lyx_cv_$3)])
361
362
363 dnl Usage: LYX_LOOP_DIR(value,action)
364 dnl Executes action for values of variable `dir' in `values'. `values' can
365 dnl use ":" as a separator.
366 AC_DEFUN([LYX_LOOP_DIR],[
367 IFS="${IFS=     }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
368 for dir in `eval "echo $1"`; do
369   if test ! "$dir" = NONE; then
370     test ! -d "$dir" && AC_MSG_ERROR([\"$dir\" is not a directory])
371     $2
372   fi
373 done
374 IFS=$ac_save_ifs
375 ])
376
377
378 dnl Usage: LYX_ADD_LIB_DIR(var-name,dir) Adds a -L directive to variable
379 dnl var-name.
380 AC_DEFUN([LYX_ADD_LIB_DIR],[
381 $1="${$1} -L$2"
382 if test "`(uname) 2>/dev/null`" = SunOS &&
383     uname -r | grep '^5' >/dev/null; then
384   if test $ac_cv_prog_gxx = yes ; then
385     $1="${$1} -Wl[,]-R$2"
386   else
387     $1="${$1} -R$2"
388   fi
389 fi])
390
391
392 dnl Usage: LYX_ADD_INC_DIR(var-name,dir) Adds a -I directive to variable
393 dnl var-name.
394 AC_DEFUN([LYX_ADD_INC_DIR],[$1="${$1} -I$2 "])
395
396 ### Check for a headers existence and location iff it exists
397 ## This is supposed to be a generalised version of LYX_STL_STRING_FWD
398 ## It almost works.  I've tried a few variations but they give errors
399 ## of one sort or other: bad substitution or file not found etc.  The
400 ## actual header _is_ found though and the cache variable is set however
401 ## the reported setting (on screen) is equal to $ac_safe for some unknown
402 ## reason.
403 ## Additionally, autoheader can't figure out what to use as the name in
404 ## the config.h.in file so we need to write our own entries there -- one for
405 ## each header in the form PATH_HEADER_NAME_H
406 ##
407 AC_DEFUN([LYX_PATH_HEADER],
408 [ AC_CHECK_HEADER($1,[
409   ac_tr_safe=PATH_`echo $ac_safe | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
410 ### the only remaining problem is getting the second parameter to this
411 ### AC_CACHE_CACHE to print correctly. Currently it just results in value
412 ### of $ac_safe being printed.
413   AC_CACHE_CHECK([path to $1],[lyx_cv_path2_$ac_safe],
414   [ cat > conftest.$ac_ext <<EOF
415 #line __oline__ "configure"
416 #include "confdefs.h"
417
418 #include <$1>
419 EOF
420 lyx_path_header_path=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | \
421   grep $1  2>/dev/null | \
422   sed -e 's/.*\(".*$1"\).*/\1/' -e "1q"`
423 eval "lyx_cv_path2_${ac_safe}=\$lyx_path_header_path"
424 rm -f conftest*])
425   AC_DEFINE_UNQUOTED($ac_tr_safe, $lyx_path_header_path, [dummy])])
426 ])
427 ### end of LYX_PATH_HEADER
428
429 ### Check which frontends we want to use.
430 ###
431 AC_DEFUN([LYX_USE_FRONTENDS],
432 [AC_MSG_CHECKING([what frontend should be used for the GUI])
433 AC_ARG_WITH(frontend,
434   [AC_HELP_STRING([--with-frontend=THIS], [use THIS frontend as main GUI:
435                             Possible values: qt4])],
436   [FRONTENDS="$withval"],[FRONTENDS="qt4"])
437 if test "x$FRONTENDS" = x ; then
438   AC_MSG_RESULT(none)
439   AC_ERROR("Please select a frontend using --with-frontend")
440 fi
441 AC_MSG_RESULT($FRONTENDS)
442 AC_SUBST(FRONTENDS)
443 AC_SUBST(FRONTENDS_SUBDIRS)
444 AC_SUBST(FRONTENDS_PROGS)
445 ])
446
447
448 ## Check what kind of packaging should be used at install time.
449 ## The default is autodetected.
450 AC_DEFUN([LYX_USE_PACKAGING],
451 [AC_MSG_CHECKING([what packaging should be used])
452 AC_ARG_WITH(packaging,
453   [AC_HELP_STRING([--with-packaging=THIS], [use THIS packaging for installation:
454                             Possible values: posix, windows, macosx])],
455   [lyx_use_packaging="$withval"], [
456   case $host in
457     *-apple-darwin*) lyx_use_packaging=macosx ;;
458      *-pc-mingw32*) lyx_use_packaging=windows;;
459                   *) lyx_use_packaging=posix;;
460   esac])
461 AC_MSG_RESULT($lyx_use_packaging)
462 lyx_install_macosx=false
463 lyx_install_cygwin=false
464 lyx_install_windows=false
465 case $lyx_use_packaging in
466    macosx) AC_DEFINE(USE_MACOSX_PACKAGING, 1, [Define to 1 if LyX should use a MacOS X application bundle file layout])
467            PACKAGE=LyX${version_suffix}
468            default_prefix="/Applications/${PACKAGE}.app"
469            bindir='${prefix}/Contents/MacOS'
470            libdir='${prefix}/Contents/Resources'
471            datarootdir='${prefix}/Contents/Resources'
472            pkgdatadir='${datadir}'
473            mandir='${datadir}/man'
474            lyx_install_macosx=true ;;
475   windows) AC_DEFINE(USE_WINDOWS_PACKAGING, 1, [Define to 1 if LyX should use a Windows-style file layout])
476            PACKAGE=LyX${version_suffix}
477            default_prefix="C:/Program Files/${PACKAGE}"
478            bindir='${prefix}/bin'
479            libdir='${prefix}/Resources'
480            datarootdir='${prefix}/Resources'
481            pkgdatadir='${datadir}'
482            mandir='${prefix}/Resources/man'
483            lyx_install_windows=true ;;
484     posix) AC_DEFINE(USE_POSIX_PACKAGING, 1, [Define to 1 if LyX should use a POSIX-style file layout])
485            PACKAGE=lyx${version_suffix}
486            program_suffix=$version_suffix
487            pkgdatadir='${datadir}/${PACKAGE}'
488            default_prefix=$ac_default_prefix
489            case ${host} in
490            *cygwin*) lyx_install_cygwin=true ;;
491            esac ;;
492     *) LYX_ERROR([Unknown packaging type $lyx_use_packaging]) ;;
493 esac
494 AM_CONDITIONAL(INSTALL_MACOSX, $lyx_install_macosx)
495 AM_CONDITIONAL(INSTALL_CYGWIN, $lyx_install_cygwin)
496 AM_CONDITIONAL(INSTALL_WINDOWS, $lyx_install_windows)
497 dnl Next two lines are only for autoconf <= 2.59
498 datadir='${datarootdir}'
499 AC_SUBST(datarootdir)
500 AC_SUBST(pkgdatadir)
501 AC_SUBST(program_suffix)
502 ])
503
504
505 ## ------------------------------------------------------------------------
506 ## Check whether mkdir() is mkdir or _mkdir, and whether it takes
507 ## one or two arguments.
508 ##
509 ## http://ac-archive.sourceforge.net/C_Support/ac_func_mkdir.html
510 ## ------------------------------------------------------------------------
511 ##
512 AC_DEFUN([AC_FUNC_MKDIR],
513 [AC_CHECK_FUNCS([mkdir _mkdir])
514 AC_CACHE_CHECK([whether mkdir takes one argument],
515                [ac_cv_mkdir_takes_one_arg],
516 [AC_TRY_COMPILE([
517 #include <sys/stat.h>
518 #if HAVE_UNISTD_H
519 #  include <unistd.h>
520 #endif
521 ], [mkdir (".");],
522 [ac_cv_mkdir_takes_one_arg=yes], [ac_cv_mkdir_takes_one_arg=no])])
523 if test x"$ac_cv_mkdir_takes_one_arg" = xyes; then
524   AC_DEFINE([MKDIR_TAKES_ONE_ARG], 1,
525             [Define if mkdir takes only one argument.])
526 fi
527 ])
528
529
530 dnl Set VAR to the canonically resolved absolute equivalent of PATHNAME,
531 dnl (which may be a relative path, and need not refer to any existing
532 dnl entity).
533
534 dnl On Win32-MSYS build hosts, the returned path is resolved to its true
535 dnl native Win32 path name, (but with slashes, not backslashes).
536
537 dnl On any other system, it is simply the result which would be obtained
538 dnl if PATHNAME represented an existing directory, and the pwd command was
539 dnl executed in that directory.
540 AC_DEFUN([MSYS_AC_CANONICAL_PATH],
541 [ac_dir="$2"
542  ( exec 2>/dev/null; cd / && pwd -W ) | grep ':' >/dev/null &&
543     ac_pwd_w="pwd -W" || ac_pwd_w=pwd
544  until ac_val=`exec 2>/dev/null; cd "$ac_dir" && $ac_pwd_w`
545  do
546    ac_dir=`AS_DIRNAME(["$ac_dir"])`
547  done
548  ac_dir=`echo "$ac_dir" | sed 's?^[[./]]*??'`
549  ac_val=`echo "$ac_val" | sed 's?/*$[]??'`
550  $1=`echo "$2" | sed "s?^[[./]]*$ac_dir/*?$ac_val/?"'
551    s?/*$[]??'`
552 ])
553
554 dnl this is used by the macro blow to general a proper config.h.in entry
555 m4_define([LYX_AH_CHECK_DECL],
556 [AH_TEMPLATE(AS_TR_CPP(HAVE_DECL_$1),
557   [Define if you have the prototype for function `$1'])])
558
559 dnl Check things are declared in headers to avoid errors or warnings.
560 dnl Called like LYX_CHECK_DECL(function, header1 header2...)
561 dnl Defines HAVE_DECL_{FUNCTION}
562 AC_DEFUN([LYX_CHECK_DECL],
563 [LYX_AH_CHECK_DECL($1)
564 for ac_header in $2
565 do
566   AC_MSG_CHECKING([if $1 is declared by header $ac_header])
567   AC_EGREP_HEADER($1, $ac_header,
568       [AC_MSG_RESULT(yes)
569        AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_DECL_$1))
570        break],
571       [AC_MSG_RESULT(no)])
572 done])
573
574 dnl Extract the single digits from PACKAGE_VERSION and make them available.
575 dnl Defines LYX_MAJOR_VERSION, LYX_MINOR_VERSION, LYX_RELEASE_LEVEL,
576 dnl LYX_RELEASE_PATCH (possibly equal to 0), LYX_DIR_VER, and LYX_USERDIR_VER.
577 AC_DEFUN([LYX_SET_VERSION_INFO],
578 [lyx_major=`echo $PACKAGE_VERSION | sed -e 's/[[.]].*//'`
579  lyx_patch=`echo $PACKAGE_VERSION | sed -e "s/^$lyx_major//" -e 's/^.//'`
580  lyx_minor=`echo $lyx_patch | sed -e 's/[[.]].*//'`
581  lyx_patch=`echo $lyx_patch | sed -e "s/^$lyx_minor//" -e 's/^.//'`
582  lyx_release=`echo $lyx_patch | sed -e 's/[[^0-9]].*//'`
583  lyx_patch=`echo $lyx_patch | sed -e "s/^$lyx_release//" -e 's/^[[.]]//' -e 's/[[^0-9]].*//'`
584  test "x$lyx_patch" = "x" && lyx_patch=0
585  lyx_dir_ver=LYX_DIR_${lyx_major}${lyx_minor}x
586  lyx_userdir_ver=LYX_USERDIR_${lyx_major}${lyx_minor}x
587  AC_SUBST(LYX_MAJOR_VERSION,$lyx_major)
588  AC_SUBST(LYX_MINOR_VERSION,$lyx_minor)
589  AC_SUBST(LYX_RELEASE_LEVEL,$lyx_release)
590  AC_SUBST(LYX_RELEASE_PATCH,$lyx_patch)
591  AC_SUBST(LYX_DIR_VER,"$lyx_dir_ver")
592  AC_SUBST(LYX_USERDIR_VER,"$lyx_userdir_ver")
593 ])