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)
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
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)]),
18 dev*) lyx_devel_version=yes
19 build_type=development;;
20 pre*) lyx_prerelease=yes
21 build_type=prerelease;;
23 *) AC_ERROR([Bad build type specification \"$enableval\". Please use one of dev(elopment), rel(ease) or pre(release)]);;
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;;
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"
36 AC_SUBST(lyx_devel_version)])
39 dnl Define the option to set a LyX version on installed executables and directories
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 [ --with-version-suffix[=<version>] install lyx files as lyx<version>],
48 [if test "x$withval" = "xyes";
50 withval="-"AC_PACKAGE_VERSION
51 ac_configure_args=`echo $ac_configure_args | sed "s,--with-version-suffix,--with-version-suffix=$withval,"`
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])
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
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
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.])])
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
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)
96 if test x$lyx_error = xyes; then
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)
108 Configuration of LyX was successful.
109 Type 'make' to compile the program,
110 and then 'make install' to install it.
115 dnl LYX_SEARCH_PROG(VARIABLE-NAME,PROGRAMS-LIST,ACTION-IF-FOUND)
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
133 if test -n "[$]$1"; then
139 test -n "[$]$1" && break
144 AC_DEFUN([LYX_PROG_CXX_WORKS],
146 cat >conftest.C <<EOF
148 // we require the mutable keyword
151 // we require namespace support
159 $CXX -c $CXXFLAGS $CPPFLAGS conftest.C >&5 || CXX=
160 rm -f conftest.C conftest.o conftest.obj || true
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])
168 if test -z "$CXX" ; then
169 AC_MSG_ERROR([Unable to find a good enough C++ compiler])
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
184 if test x$enable_warnings = xyes ; then
185 lyx_flags="warnings $lyx_flags"
188 ### We might want to disable debug
190 AC_HELP_STRING([--enable-debug],[enable debug information]),,
191 [ if test $lyx_devel_version = yes -o $lyx_prerelease = yes ; then
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;
202 enable_stdlib_debug=no;
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;
210 enable_concept_checks=no;
213 AC_ARG_ENABLE(profiling,
214 AC_HELP_STRING([--enable-profiling],[enable profiling]),,
215 enable_profiling=no;)
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
223 if test $lyx_devel_version = yes ; then
229 *) lyx_opt=${enable_optimization};;
233 AC_HELP_STRING([--enable-pch],[enable precompiled headers]),,
237 # set the compiler options correctly.
238 if test x$GXX = xyes; then
239 dnl Useful for global version info
240 gxx_version=`${CXX} -dumpversion`
241 CXX_VERSION="($gxx_version)"
243 if test "$ac_test_CXXFLAGS" = set; then
244 CXXFLAGS="$ac_save_CXXFLAGS"
248 if test x$enable_debug = xyes ; then
250 CXXFLAGS="-g $CXXFLAGS"
252 if test x$enable_profiling = xyes ; then
254 CXXFLAGS="-pg $CXXFLAGS"
255 LDFLAGS="-pg $LDFLAGS"
258 if test "$ac_env_CPPFLAGS_set" != set; then
259 if test x$enable_warnings = xyes ; then
262 CPPFLAGS="-W -Wall $CPPFLAGS"
265 CPPFLAGS="-Wextra -Wall $CPPFLAGS "
271 3.1*) AM_CXXFLAGS="-finline-limit=500 ";;
272 3.2*|3.3*) AM_CXXFLAGS="";;
275 test $enable_pch = yes && lyx_pch_comp=yes
279 if test x$enable_stdlib_debug = xyes ; then
282 lyx_flags="stdlib-debug $lyx_flags"
283 AC_DEFINE(_GLIBCXX_DEBUG, 1, [libstdc++ debug mode])
284 AC_DEFINE(_GLIBCXX_DEBUG_PEDANTIC, 1, [libstdc++ pedantic debug mode])
288 if test x$enable_concept_checks = xyes ; then
291 lyx_flags="concept-checks $lyx_flags"
292 AC_DEFINE(_GLIBCPP_CONCEPT_CHECKS, 1, [libstdc++ concept checking])
295 lyx_flags="concept-checks $lyx_flags"
296 AC_DEFINE(_GLIBCXX_CONCEPT_CHECKS, 1, [libstdc++ concept checking])
301 test "$lyx_pch_comp" = yes && lyx_flags="pch $lyx_flags"
302 AM_CONDITIONAL(LYX_BUILD_PCH, test "$lyx_pch_comp" = yes)
306 dnl NOT USED CURRENTLY*************************************
307 dnl Usage: LYX_CXX_RTTI : checks whether the C++ compiler
309 AC_DEFUN([LYX_CXX_RTTI],[
310 ### Check whether the compiler supports runtime type information
311 AC_CACHE_CHECK(whether the C++ compiler supports RTTI,lyx_cv_rtti,
315 virtual int tag() { return 0; }
317 class derived1 : public rtti {
319 int tag() { return 1; }
321 class derived2 : public rtti {
323 int tag() { return 2; }
326 derived1 * foo1 = new derived1();
327 derived2 * foo2 = new derived2();
329 derived1 * bar1 = dynamic_cast<derived1 *>(bar);
333 bar1 = dynamic_cast<derived1 *>(bar);
338 ],lyx_cv_rtti=yes,lyx_cv_rtti=no,lyx_cv_rtti=no)
340 if test x$lyx_cv_rtti = xyes ; then
341 AC_DEFINE(HAVE_RTTI, 1,
342 [Define to 1 if your compiler supports runtime type information])
346 dnl Usage: LYX_CXX_EXPLICIT : checks whether the C++ compiler
347 dnl understands the "explicit" directive.
348 AC_DEFUN([LYX_CXX_EXPLICIT],[
349 ### Check whether the compiler understands the keyword `explicit'
350 AC_CACHE_CHECK(whether the C++ compiler understands explicit,lyx_cv_explicit,
355 };],,lyx_cv_explicit=yes,lyx_cv_explicit=no)
357 if test $lyx_cv_explicit = no ; then
358 AC_DEFINE(explicit,[ ],
359 [Define to nothing if your compiler does not understand the
360 'explicit' directive])
364 dnl NOT USED CURRENTLY*************************************
365 dnl Usage: LYX_CXX_STL_STACK : checks whether the C++ compiler
366 dnl has a working stl stack template
367 AC_DEFUN([LYX_CXX_STL_STACK],[
368 AC_CACHE_CHECK(for broken STL stack template,lyx_cv_broken_stack,
375 ],lyx_cv_broken_stack=no,lyx_cv_broken_stack=yes)
377 if test $lyx_cv_broken_stack = yes ; then
378 AC_DEFINE(BROKEN_STL_STACK, 1,
379 [Define if you have the STL from libg++ 2.7.x, where stack<> is not defined
384 dnl Usage: LYX_STD_COUNT : checks wherer the C++ library have a conforming
385 dnl count template, if not the old HP version is assumed.
386 AC_DEFUN([LYX_STD_COUNT],[
387 AC_CACHE_CHECK(for conforming std::count,lyx_cv_std_count,
391 int countChar(char * b, char * e, char const c)
393 return count(b, e, c);
397 int i = countChar(a, a + 5, 'l');
398 ],lyx_cv_std_count=yes,lyx_cv_std_count=no)
400 if test $lyx_cv_std_count = yes ; then
401 AC_DEFINE(HAVE_STD_COUNT, 1,
402 [Define if you have a conforming std::count template, otherwise HP version of count template is assumed.])
406 dnl Usage: LYX_CXX_STL_MODERN_STREAMS : checks whether the C++ compiler
407 dnl supports modern STL streams
408 AC_DEFUN([LYX_CXX_STL_MODERN_STREAMS],[
409 AC_CACHE_CHECK(for modern STL streams,lyx_cv_modern_streams,
413 std::streambuf * test = std::cerr.rdbuf();
415 ],lyx_cv_modern_streams=yes,lyx_cv_modern_streams=no)
417 if test $lyx_cv_modern_streams = yes ; then
418 AC_DEFINE(MODERN_STL_STREAMS, 1,
419 [Define if you have modern standard-compliant STL streams])
423 dnl Usage: LYX_USE_INCLUDED_BOOST : select if the included boost should
425 AC_DEFUN([LYX_USE_INCLUDED_BOOST],[
426 AC_ARG_WITH(included-boost,
427 [ --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],
428 [lyx_cv_with_included_boost=$withval
429 AC_MSG_RESULT([$with_included_boost])],
430 [lyx_cv_with_included_boost=yes])
431 AM_CONDITIONAL(USE_INCLUDED_BOOST, test x$lyx_cv_with_included_boost = xyes)
435 dnl NOT USED CURRENTLY*************************************
437 AC_DEFUN([LYX_CXX_PARTIAL], [
438 AC_REQUIRE([AC_PROG_CXX])
439 AC_CACHE_CHECK([if C++ compiler supports partial specialization],
440 [lyx_cv_cxx_partial_specialization],
443 template<class T, class K>
447 template<class T> class k<void,T> { };
452 lyx_cv_cxx_partial_specialization=yes
454 lyx_cv_cxx_partial_specialization=no
457 if test x$lyx_cv_cxx_partial_specialization = xyes ; then
458 AC_DEFINE(HAVE_PARTIAL_SPECIALIZATION, 1,
459 [Defined if your compiler supports partial specialization.])
464 dnl Usage: LYX_CXX_GLOBAL_CSTD: checks whether C library functions
465 dnl are already in the global namespace
466 AC_DEFUN([LYX_CXX_GLOBAL_CSTD],[
467 AC_CACHE_CHECK(whether C library functions are already in the global namespace,
468 lyx_cv_cxx_global_cstd,
474 ],[lyx_cv_cxx_global_cstd=no],[lyx_cv_cxx_global_cstd=yes])])
475 if test x$lyx_cv_cxx_global_cstd = xyes; then
476 AC_DEFINE(CXX_GLOBAL_CSTD,1,
477 [Define if your C++ compiler puts C library functions in the global namespace])
482 dnl Usage: LYX_WITH_DIR(dir-name,desc,dir-var-name,default-value,
483 dnl [default-yes-value])
484 dnl Adds a --with-'dir-name' option (described by 'desc') and puts the
485 dnl resulting directory name in 'dir-var-name'.
486 AC_DEFUN([LYX_WITH_DIR],[
487 AC_ARG_WITH($1,[AC_HELP_STRING([--with-$1],[specify $2])])
488 AC_MSG_CHECKING([for $2])
489 if test -z "$with_$3"; then
490 AC_CACHE_VAL(lyx_cv_$3, lyx_cv_$3=$4)
492 test "x$with_$3" = xyes && with_$3=$5
495 AC_MSG_RESULT($lyx_cv_$3)])
498 dnl Usage: LYX_LOOP_DIR(value,action)
499 dnl Executes action for values of variable `dir' in `values'. `values' can
500 dnl use ":" as a separator.
501 AC_DEFUN([LYX_LOOP_DIR],[
502 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
503 for dir in `eval "echo $1"`; do
504 if test ! "$dir" = NONE; then
505 test ! -d "$dir" && AC_MSG_ERROR([\"$dir\" is not a directory])
513 dnl Usage: LYX_ADD_LIB_DIR(var-name,dir) Adds a -L directive to variable
515 AC_DEFUN([LYX_ADD_LIB_DIR],[
517 if test "`(uname) 2>/dev/null`" = SunOS &&
518 uname -r | grep '^5' >/dev/null; then
519 if test $ac_cv_prog_gxx = yes ; then
520 $1="${$1} -Wl[,]-R$2"
527 dnl Usage: LYX_ADD_INC_DIR(var-name,dir) Adds a -I directive to variable
529 AC_DEFUN([LYX_ADD_INC_DIR],[$1="${$1} -I$2 "])
531 ### Check for a headers existence and location iff it exists
532 ## This is supposed to be a generalised version of LYX_STL_STRING_FWD
533 ## It almost works. I've tried a few variations but they give errors
534 ## of one sort or other: bad substitution or file not found etc. The
535 ## actual header _is_ found though and the cache variable is set however
536 ## the reported setting (on screen) is equal to $ac_safe for some unknown
538 ## Additionally, autoheader can't figure out what to use as the name in
539 ## the config.h.in file so we need to write our own entries there -- one for
540 ## each header in the form PATH_HEADER_NAME_H
542 AC_DEFUN([LYX_PATH_HEADER],
543 [ AC_CHECK_HEADER($1,[
544 ac_tr_safe=PATH_`echo $ac_safe | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
545 ### the only remaining problem is getting the second parameter to this
546 ### AC_CACHE_CACHE to print correctly. Currently it just results in value
547 ### of $ac_safe being printed.
548 AC_CACHE_CHECK([path to $1],[lyx_cv_path2_$ac_safe],
549 [ cat > conftest.$ac_ext <<EOF
550 #line __oline__ "configure"
551 #include "confdefs.h"
555 lyx_path_header_path=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | \
556 grep $1 2>/dev/null | \
557 sed -e 's/.*\(".*$1"\).*/\1/' -e "1q"`
558 eval "lyx_cv_path2_${ac_safe}=\$lyx_path_header_path"
560 AC_DEFINE_UNQUOTED($ac_tr_safe, $lyx_path_header_path, [dummy])])
562 ### end of LYX_PATH_HEADER
564 ### Check which frontends we want to use.
566 AC_DEFUN([LYX_USE_FRONTENDS],
567 [AC_MSG_CHECKING([what frontend should be used for the GUI])
568 AC_ARG_WITH(frontend,
569 [ --with-frontend=THIS Use THIS frontend as main GUI:
570 Possible values: qt4],
571 [FRONTENDS="$withval"],[FRONTENDS="qt4"])
572 if test "x$FRONTENDS" = x ; then
574 AC_ERROR("Please select a frontend using --with-frontend")
576 AC_MSG_RESULT($FRONTENDS)
578 AC_SUBST(FRONTENDS_SUBDIRS)
579 AC_SUBST(FRONTENDS_PROGS)
583 ## Check what kind of packaging should be used at install time.
584 ## The default is autodetected.
585 AC_DEFUN([LYX_USE_PACKAGING],
586 [AC_MSG_CHECKING([what packaging should be used])
587 AC_ARG_WITH(packaging,
588 [ --with-packaging=THIS Use THIS packaging for installation:
589 Possible values: posix, windows, macosx],
590 [lyx_use_packaging="$withval"], [
592 *-apple-darwin*) lyx_use_packaging=macosx ;;
593 *-pc-mingw32*) lyx_use_packaging=windows;;
594 *) lyx_use_packaging=posix;;
596 AC_MSG_RESULT($lyx_use_packaging)
597 lyx_install_macosx=false
598 case $lyx_use_packaging in
599 macosx) AC_DEFINE(USE_MACOSX_PACKAGING, 1, [Define to 1 if LyX should use a MacOS X application bundle file layout])
600 PACKAGE=LyX${version_suffix}
601 default_prefix="/Applications/${PACKAGE}.app"
602 bindir='${prefix}/Contents/MacOS'
603 libdir='${prefix}/Contents/Resources'
604 datadir='${prefix}/Contents/Resources'
605 pkgdatadir='${datadir}'
606 mandir='${datadir}/man'
607 lyx_install_macosx=true ;;
608 windows) AC_DEFINE(USE_WINDOWS_PACKAGING, 1, [Define to 1 if LyX should use a Windows-style file layout])
609 PACKAGE=LyX${version_suffix}
610 default_prefix="C:/Program Files/${PACKAGE}"
611 bindir='${prefix}/bin'
612 libdir='${prefix}/Resources'
613 datadir='${prefix}/Resources'
614 pkgdatadir='${datadir}'
615 mandir='${prefix}/Resources/man' ;;
616 posix) AC_DEFINE(USE_POSIX_PACKAGING, 1, [Define to 1 if LyX should use a POSIX-style file layout])
617 PACKAGE=lyx${version_suffix}
618 program_suffix=$version_suffix
619 pkgdatadir='${datadir}/${PACKAGE}'
620 default_prefix=$ac_default_prefix ;;
621 *) LYX_ERROR([Unknown packaging type $lyx_use_packaging]) ;;
623 AM_CONDITIONAL(INSTALL_MACOSX, $lyx_install_macosx)
625 AC_SUBST(program_suffix)
629 ## ------------------------------------------------------------------------
630 ## Find a file (or one of more files in a list of dirs)
631 ## ------------------------------------------------------------------------
633 AC_DEFUN([AC_FIND_FILE],
640 if test -r "$i/$j"; then
648 dnl just a wrapper to clean up configure.in
649 AC_DEFUN([LYX_PROG_LIBTOOL],
651 AC_REQUIRE([AC_ENABLE_SHARED])
652 AC_REQUIRE([AC_ENABLE_STATIC])
653 dnl libtool is only for C, so I must force him
654 dnl to find the correct flags for C++
656 ac_save_cflags="$CFLAGS"
659 AC_PROG_LIBTOOL dnl for libraries
661 CFLAGS="$ac_save_cflags"
665 ## ------------------------------------------------------------------------
666 ## Check whether mkdir() is mkdir or _mkdir, and whether it takes
667 ## one or two arguments.
669 ## http://ac-archive.sourceforge.net/C_Support/ac_func_mkdir.html
670 ## ------------------------------------------------------------------------
672 AC_DEFUN([AC_FUNC_MKDIR],
673 [AC_CHECK_FUNCS([mkdir _mkdir])
674 AC_CACHE_CHECK([whether mkdir takes one argument],
675 [ac_cv_mkdir_takes_one_arg],
677 #include <sys/stat.h>
682 [ac_cv_mkdir_takes_one_arg=yes], [ac_cv_mkdir_takes_one_arg=no])])
683 if test x"$ac_cv_mkdir_takes_one_arg" = xyes; then
684 AC_DEFINE([MKDIR_TAKES_ONE_ARG], 1,
685 [Define if mkdir takes only one argument.])
690 dnl Set VAR to the canonically resolved absolute equivalent of PATHNAME,
691 dnl (which may be a relative path, and need not refer to any existing
694 dnl On Win32-MSYS build hosts, the returned path is resolved to its true
695 dnl native Win32 path name, (but with slashes, not backslashes).
697 dnl On any other system, it is simply the result which would be obtained
698 dnl if PATHNAME represented an existing directory, and the pwd command was
699 dnl executed in that directory.
700 AC_DEFUN([MSYS_AC_CANONICAL_PATH],
702 ( exec 2>/dev/null; cd / && pwd -W ) | grep ':' >/dev/null &&
703 ac_pwd_w="pwd -W" || ac_pwd_w=pwd
704 until ac_val=`exec 2>/dev/null; cd "$ac_dir" && $ac_pwd_w`
706 ac_dir=`AS_DIRNAME(["$ac_dir"])`
708 ac_dir=`echo "$ac_dir" | sed 's?^[[./]]*??'`
709 ac_val=`echo "$ac_val" | sed 's?/*$[]??'`
710 $1=`echo "$2" | sed "s?^[[./]]*$ac_dir/*?$ac_val/?"'
714 dnl this is used by the macro blow to general a proper config.h.in entry
715 m4_define([LYX_AH_CHECK_DECL],
716 [AH_TEMPLATE(AS_TR_CPP(HAVE_DECL_$1),
717 [Define if you have the prototype for function `$1'])])
719 dnl Check things are declared in headers to avoid errors or warnings.
720 dnl Called like LYX_CHECK_DECL(function, header1 header2...)
721 dnl Defines HAVE_DECL_{FUNCTION}
722 AC_DEFUN([LYX_CHECK_DECL],
723 [LYX_AH_CHECK_DECL($1)
726 AC_MSG_CHECKING([if $1 is declared by header $ac_header])
727 AC_EGREP_HEADER($1, $ac_header,
729 AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_DECL_$1))
734 dnl Extract the single digits from PACKAGE_VERSION and make them available.
735 dnl Defines LYX_MAJOR_VERSION, LYX_MINOR_VERSION, LYX_RELEASE_LEVEL, and
736 dnl LYX_RELEASE_PATCH, the latter being possibly equal to 0.
737 AC_DEFUN([LYX_SET_VERSION_INFO],
738 [lyx_major=`echo $PACKAGE_VERSION | sed -e 's/[[.]].*//'`
739 lyx_patch=`echo $PACKAGE_VERSION | sed -e "s/^$lyx_major//" -e 's/^.//'`
740 lyx_minor=`echo $lyx_patch | sed -e 's/[[.]].*//'`
741 lyx_patch=`echo $lyx_patch | sed -e "s/^$lyx_minor//" -e 's/^.//'`
742 lyx_release=`echo $lyx_patch | sed -e 's/[[^0-9]].*//'`
743 lyx_patch=`echo $lyx_patch | sed -e "s/^$lyx_release//" -e 's/^[[.]]//' -e 's/[[^0-9]].*//'`
744 test "x$lyx_patch" = "x" && lyx_patch=0
745 AC_SUBST(LYX_MAJOR_VERSION,$lyx_major)
746 AC_SUBST(LYX_MINOR_VERSION,$lyx_minor)
747 AC_SUBST(LYX_RELEASE_LEVEL,$lyx_release)
748 AC_SUBST(LYX_RELEASE_PATCH,$lyx_patch)