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 variable "build_type"
9 AC_DEFUN([LYX_CHECK_VERSION],[
10 echo "configuring LyX version" AC_PACKAGE_VERSION
12 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=rel(ease), pre(release), dev(elopment), prof(iling), gprof]),
18 dev*) build_type=development;;
19 pre*) build_type=prerelease;;
20 prof*) build_type=profiling;;
21 gprof*) build_type=gprof;;
22 rel*) build_type=release;;
23 *) AC_MSG_ERROR([bad build type specification \"$enableval\". Please use one of rel(ease), pre(release), dev(elopment), prof(iling), or gprof]);;
25 [case AC_PACKAGE_VERSION in
26 *dev*) build_type=development;;
27 *pre*|*alpha*|*beta*|*rc*) build_type=prerelease;;
28 *) build_type=release ;;
30 AC_MSG_RESULT([$build_type])
31 lyx_flags="$lyx_flags build=$build_type"
33 development) lyx_devel_version=yes
34 AC_DEFINE(DEVEL_VERSION, 1, [Define if you are building a development version of LyX])
35 LYX_DATE="not released yet" ;;
36 prerelease) lyx_prerelease=yes ;;
39 AC_SUBST(lyx_devel_version)
43 dnl Define the option to set a LyX version on installed executables and directories
46 AC_DEFUN([LYX_VERSION_SUFFIX],[
47 AC_MSG_CHECKING([for version suffix])
48 dnl We need the literal double quotes in the rpm spec file
49 RPM_VERSION_SUFFIX='""'
50 AC_ARG_WITH(version-suffix,
51 [AC_HELP_STRING([--with-version-suffix@<:@=VERSION@:>@], install lyx files as lyxVERSION (VERSION=-AC_PACKAGE_VERSION))],
52 [if test "x$withval" = "xyes";
54 withval="-"AC_PACKAGE_VERSION
55 ac_configure_args=`echo "$ac_configure_args" | sed "s,--with-version-suffix,--with-version-suffix=$withval,"`
57 AC_SUBST(version_suffix,$withval)
58 RPM_VERSION_SUFFIX="--with-version-suffix=$withval"])
59 AC_SUBST(RPM_VERSION_SUFFIX)
60 AC_SUBST(program_base_name,"lyx")
61 AC_MSG_RESULT([$withval])
65 dnl Usage: LYX_WARNING(message) Displays the warning "message" and sets the
66 dnl flag lyx_warning to yes.
67 AC_DEFUN([LYX_WARNING],[
68 lyx_warning_txt="$lyx_warning_txt
74 dnl Usage: LYX_LIB_ERROR(file,library) Displays an error message indication
75 dnl that 'file' cannot be found because 'lib' may be uncorrectly installed.
76 AC_DEFUN([LYX_LIB_ERROR],[
77 AC_MSG_ERROR([cannot find $1. Please check that the $2 library
78 is correctly installed on your system.])])
81 dnl Usage: LYX_CHECK_WARNINGS Displays a warning message if a LYX_WARNING
82 dnl has occured previously.
83 AC_DEFUN([LYX_CHECK_WARNINGS],[
84 if test x$lyx_warning = xyes; then
86 === The following minor problems have been detected by configure.
87 === Please check the messages below before running 'make'.
88 === (see the section 'Problems' in the INSTALL file)
95 dnl LYX_SEARCH_PROG(VARIABLE-NAME,PROGRAMS-LIST,ACTION-IF-FOUND)
97 define(LYX_SEARCH_PROG,[dnl
98 for ac_prog in $2 ; do
99 # Extract the first word of "$ac_prog", so it can be a program name with args.
100 set dummy $ac_prog ; ac_word=$[2]
101 if test -z "[$]$1"; then
102 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
103 for ac_dir in $PATH; do
104 test -z "$ac_dir" && ac_dir=.
105 if test -f [$ac_dir/$ac_word]; then
113 if test -n "[$]$1"; then
119 test -n "[$]$1" && break
124 AC_DEFUN([LYX_PROG_CXX_WORKS],
126 cat >conftest.C <<EOF
128 // we require the mutable keyword
131 // we require namespace support
139 $CXX -c $CXXFLAGS $CPPFLAGS conftest.C >&5 || CXX=
140 rm -f conftest.C conftest.o conftest.obj || true
144 AC_DEFUN([LYX_PROG_CXX],
145 [AC_MSG_CHECKING([for a good enough C++ compiler])
146 LYX_SEARCH_PROG(CXX, $CXX $CCC g++ gcc c++ CC cxx xlC cc++, [LYX_PROG_CXX_WORKS])
148 if test -z "$CXX" ; then
149 AC_MSG_ERROR([Unable to find a good enough C++ compiler])
156 ### We might want to get or shut warnings.
157 AC_ARG_ENABLE(warnings,
158 AC_HELP_STRING([--enable-warnings],[tell the compiler to display more warnings]),,
159 [ if test $lyx_devel_version = yes -o $lyx_prerelease = yes && test $ac_cv_prog_gxx = yes ; then
164 if test x$enable_warnings = xyes ; then
165 lyx_flags="$lyx_flags warnings"
168 ### We might want to disable debug
170 AC_HELP_STRING([--enable-debug],[enable debug information]),,
171 [AS_CASE([$build_type], [rel*], [enable_debug=no], [enable_debug=yes])]
174 AC_ARG_ENABLE(stdlib-debug,
175 AC_HELP_STRING([--enable-stdlib-debug],[enable debug mode in the standard library]),,
176 [AS_CASE([$build_type], [dev*], [enable_stdlib_debug=yes],
177 [enable_stdlib_debug=no])]
180 AC_ARG_ENABLE(concept-checks,
181 AC_HELP_STRING([--enable-concept-checks],[enable concept checks]),,
182 [AS_CASE([$build_type], [dev*|pre*], [enable_concept_checks=yes],
183 [enable_concept_checks=no])]
186 ### set up optimization
187 AC_ARG_ENABLE(optimization,
188 AC_HELP_STRING([--enable-optimization[=value]],[enable compiler optimisation]),,
189 enable_optimization=yes;)
190 case $enable_optimization in
192 if test $lyx_devel_version = yes ; then
198 *) lyx_opt=${enable_optimization};;
202 AC_HELP_STRING([--enable-pch],[enable precompiled headers]),,
207 AC_HELP_STRING([--enable-cxx11],[enable C++11 mode]),,
210 AC_ARG_ENABLE(assertions,
211 AC_HELP_STRING([--enable-assertions],[add runtime sanity checks in the program]),,
212 [AS_CASE([$build_type], [dev*|pre*], [enable_assertions=yes],
213 [enable_assertions=no])]
215 if test "x$enable_assertions" = xyes ; then
216 lyx_flags="$lyx_flags assertions"
217 AC_DEFINE(ENABLE_ASSERTIONS,1,
218 [Define if you want assertions to be enabled in the code])
221 # set the compiler options correctly.
222 if test x$GXX = xyes; then
223 dnl Useful for global version info
224 gxx_version=`${CXX} -dumpversion`
225 CXX_VERSION="($gxx_version)"
227 if test "$ac_test_CXXFLAGS" = set; then
228 CXXFLAGS="$ac_save_CXXFLAGS"
232 if test x$enable_debug = xyes ; then
234 CXXFLAGS="-g $CXXFLAGS"
236 if test $build_type = gprof ; then
238 CXXFLAGS="-pg $CXXFLAGS"
239 LDFLAGS="-pg $LDFLAGS"
241 if test $build_type = profiling ; then
242 CFLAGS="$CFLAGS -fno-omit-frame-pointer"
243 CXXFLAGS="$CXXFLAGS -fno-omit-frame-pointer"
246 if test "$ac_env_CPPFLAGS_set" != set; then
247 if test x$enable_warnings = xyes ; then
250 CPPFLAGS="-W -Wall $CPPFLAGS"
253 CPPFLAGS="-Wextra -Wall $CPPFLAGS "
259 3.1*) AM_CXXFLAGS="-finline-limit=500 ";;
260 3.2*|3.3*) AM_CXXFLAGS="";;
263 test $enable_pch = yes && lyx_pch_comp=yes
267 if test x$enable_stdlib_debug = xyes ; then
270 lyx_flags="$lyx_flags stdlib-debug"
271 AC_DEFINE(_GLIBCXX_DEBUG, 1, [libstdc++ debug mode])
272 AC_DEFINE(_GLIBCXX_DEBUG_PEDANTIC, 1, [libstdc++ pedantic debug mode])
276 if test x$enable_concept_checks = xyes ; then
279 lyx_flags="$lyx_flags concept-checks"
280 AC_DEFINE(_GLIBCPP_CONCEPT_CHECKS, 1, [libstdc++ concept checking])
283 lyx_flags="$lyx_flags concept-checks"
284 AC_DEFINE(_GLIBCXX_CONCEPT_CHECKS, 1, [libstdc++ concept checking])
288 if test x$enable_cxx11 = xyes ; then
291 lyx_flags="$lyx_flags c++11-mode"
292 CXXFLAGS="-std=gnu++0x $CXXFLAGS"
295 lyx_flags="$lyx_flags c++11-mode"
296 CXXFLAGS="-std=gnu++11 $CXXFLAGS"
301 test "$lyx_pch_comp" = yes && lyx_flags="$lyx_flags pch"
302 AM_CONDITIONAL(LYX_BUILD_PCH, test "$lyx_pch_comp" = yes)
305 dnl Usage: LYX_USE_INCLUDED_BOOST : select if the included boost should
307 AC_DEFUN([LYX_USE_INCLUDED_BOOST],[
308 AC_MSG_CHECKING([whether to use included boost library])
309 AC_ARG_WITH(included-boost,
310 [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])],
311 [lyx_cv_with_included_boost=$withval],
312 [lyx_cv_with_included_boost=yes])
313 AM_CONDITIONAL(USE_INCLUDED_BOOST, test x$lyx_cv_with_included_boost = xyes)
314 AC_MSG_RESULT([$lyx_cv_with_included_boost])
315 if test x$lyx_cv_with_included_boost = xyes ; then
316 BOOST_INCLUDES='-I$(top_srcdir)/boost'
317 BOOST_LIBS='$(top_builddir)/boost/liblyxboost.a'
322 AC_MSG_CHECKING([for multithreaded boost libraries])
323 LIBS="$save_LIBS -lboost_signals-mt -lm $LIBTHREAD"
325 [AC_LANG_PROGRAM([#include <boost/signal.hpp>],
326 [boost::signal<void ()> s;])],
327 [AC_MSG_RESULT([yes])
330 AC_MSG_CHECKING([for plain boost libraries])
331 LIBS="$save_LIBS -lboost_signals -lm"
333 [AC_LANG_PROGRAM([#include <boost/signal.hpp>],
334 [boost::signal<void ()> s;])],
335 [AC_MSG_RESULT([yes])
338 AC_MSG_ERROR([cannot find suitable boost library (do not use --without-included-boost)])
344 BOOST_LIBS="-lboost_regex${BOOST_MT} -lboost_signals${BOOST_MT}"
346 AC_SUBST(BOOST_INCLUDES)
351 dnl Usage: LYX_CHECK_CALLSTACK_PRINTING: define LYX_CALLSTACK_PRINTING if the
352 dnl necessary APIs are available to print callstacks.
353 AC_DEFUN([LYX_CHECK_CALLSTACK_PRINTING],
354 [AC_CACHE_CHECK([whether printing callstack is possible],
355 [lyx_cv_callstack_printing],
357 #include <execinfo.h>
361 size_t size = backtrace(array, 200);
362 backtrace_symbols(array, size);
364 abi::__cxa_demangle("abcd", 0, 0, &status);
366 [lyx_cv_callstack_printing=yes], [lyx_cv_callstack_printing=no])])
367 if test x"$lyx_cv_callstack_printing" = xyes; then
368 AC_DEFINE([LYX_CALLSTACK_PRINTING], 1,
369 [Define if callstack can be printed])
374 dnl Usage: LYX_USE_INCLUDED_MYTHES : select if the included MyThes should
376 AC_DEFUN([LYX_USE_INCLUDED_MYTHES],[
377 AC_MSG_CHECKING([whether to use included MyThes library])
378 AC_ARG_WITH(included-mythes,
379 [AC_HELP_STRING([--without-included-mythes], [do not use the MyThes lib supplied with LyX, try to find one in the system directories - compilation will abort if nothing suitable is found])],
380 [lyx_cv_with_included_mythes=$withval],
381 [lyx_cv_with_included_mythes=yes])
382 AM_CONDITIONAL(USE_INCLUDED_MYTHES, test x$lyx_cv_with_included_mythes = xyes)
383 AC_MSG_RESULT([$lyx_cv_with_included_mythes])
384 if test x$lyx_cv_with_included_mythes != xyes ; then
386 AC_CHECK_HEADER(mythes.hxx,[ac_cv_header_mythes_h=yes lyx_cv_mythes_h_location="<mythes.hxx>"])
387 if test x$ac_cv_header_mythes_h != xyes; then
388 AC_CHECK_HEADER(mythes/mythes.hxx,[ac_cv_header_mythes_h=yes lyx_cv_mythes_h_location="<mythes/mythes.hxx>"])
390 AC_CHECK_LIB(mythes, main, [MYTHES_LIBS="-lmythes" lyx_mythes=yes], [lyx_mythes=no], [-lm])
391 if test x$lyx_mythes != xyes; then
392 AC_CHECK_LIB(mythes-1.2, main, [MYTHES_LIBS="-lmythes-1.2" lyx_mythes=yes], [lyx_mythes=no], [-lm])
395 if test x$lyx_mythes != xyes -o x$ac_cv_header_mythes_h != xyes; then
396 AC_MSG_ERROR([cannot find suitable MyThes library (do not use --without-included-mythes)])
398 AC_DEFINE(USE_EXTERNAL_MYTHES, 1, [Define as 1 to use an external MyThes library])
399 AC_DEFINE_UNQUOTED(MYTHES_H_LOCATION,$lyx_cv_mythes_h_location,[Location of mythes.hxx])
400 AC_SUBST(MYTHES_LIBS)
405 dnl Usage: LYX_WITH_DIR(dir-name,desc,dir-var-name,default-value,
406 dnl [default-yes-value])
407 dnl Adds a --with-'dir-name' option (described by 'desc') and puts the
408 dnl resulting directory name in 'dir-var-name'.
409 AC_DEFUN([LYX_WITH_DIR],[
410 AC_ARG_WITH($1,[AC_HELP_STRING([--with-$1],[specify $2])])
411 AC_MSG_CHECKING([for $2])
412 if test -z "$with_$3"; then
413 AC_CACHE_VAL(lyx_cv_$3, lyx_cv_$3=$4)
415 test "x$with_$3" = xyes && with_$3=$5
418 AC_MSG_RESULT($lyx_cv_$3)])
421 dnl Usage: LYX_LOOP_DIR(value,action)
422 dnl Executes action for values of variable `dir' in `values'. `values' can
423 dnl use ":" as a separator.
424 AC_DEFUN([LYX_LOOP_DIR],[
425 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
426 for dir in `eval "echo $1"`; do
427 if test ! "$dir" = NONE; then
428 test ! -d "$dir" && AC_MSG_ERROR([\"$dir\" is not a directory])
436 dnl Usage: LYX_ADD_LIB_DIR(var-name,dir) Adds a -L directive to variable
438 AC_DEFUN([LYX_ADD_LIB_DIR],[
440 if test "`(uname) 2>/dev/null`" = SunOS &&
441 uname -r | grep '^5' >/dev/null; then
442 if test $ac_cv_prog_gxx = yes ; then
443 $1="${$1} -Wl[,]-R$2"
450 dnl Usage: LYX_ADD_INC_DIR(var-name,dir) Adds a -I directive to variable
452 AC_DEFUN([LYX_ADD_INC_DIR],[$1="${$1} -I$2 "])
454 ### Check for a headers existence and location iff it exists
455 ## This is supposed to be a generalised version of LYX_STL_STRING_FWD
456 ## It almost works. I've tried a few variations but they give errors
457 ## of one sort or other: bad substitution or file not found etc. The
458 ## actual header _is_ found though and the cache variable is set however
459 ## the reported setting (on screen) is equal to $ac_safe for some unknown
461 ## Additionally, autoheader can't figure out what to use as the name in
462 ## the config.h.in file so we need to write our own entries there -- one for
463 ## each header in the form PATH_HEADER_NAME_H
465 AC_DEFUN([LYX_PATH_HEADER],
466 [ AC_CHECK_HEADER($1,[
467 ac_tr_safe=PATH_`echo $ac_safe | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
468 ### the only remaining problem is getting the second parameter to this
469 ### AC_CACHE_CACHE to print correctly. Currently it just results in value
470 ### of $ac_safe being printed.
471 AC_CACHE_CHECK([path to $1],[lyx_cv_path2_$ac_safe],
472 [ cat > conftest.$ac_ext <<EOF
473 #line __oline__ "configure"
474 #include "confdefs.h"
478 lyx_path_header_path=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | \
479 grep $1 2>/dev/null | \
480 sed -e 's/.*\(".*$1"\).*/\1/' -e "1q"`
481 eval "lyx_cv_path2_${ac_safe}=\$lyx_path_header_path"
483 AC_DEFINE_UNQUOTED($ac_tr_safe, $lyx_path_header_path, [dummy])])
485 ### end of LYX_PATH_HEADER
487 ## Check what kind of packaging should be used at install time.
488 ## The default is autodetected.
489 AC_DEFUN([LYX_USE_PACKAGING],
490 [AC_MSG_CHECKING([what packaging should be used])
491 AC_ARG_WITH(packaging,
492 [AC_HELP_STRING([--with-packaging=THIS], [use THIS packaging for installation:
493 Possible values: posix, windows, macosx])],
494 [lyx_use_packaging="$withval"], [
496 *-apple-darwin*) lyx_use_packaging=macosx ;;
497 *-pc-mingw32*) lyx_use_packaging=windows;;
498 *) lyx_use_packaging=posix;;
500 AC_MSG_RESULT($lyx_use_packaging)
501 lyx_install_posix=false
502 lyx_install_macosx=false
503 lyx_install_cygwin=false
504 lyx_install_windows=false
505 case $lyx_use_packaging in
506 macosx) AC_DEFINE(USE_MACOSX_PACKAGING, 1, [Define to 1 if LyX should use a MacOS X application bundle file layout])
507 PACKAGE=LyX${version_suffix}
508 default_prefix="/Applications/${PACKAGE}.app"
509 AC_SUBST(osx_bundle_program_name,"${program_base_name}")
510 bindir='${prefix}/Contents/MacOS'
511 libdir='${prefix}/Contents/Resources'
512 datarootdir='${prefix}/Contents/Resources'
513 pkgdatadir='${datadir}'
514 mandir='${datadir}/man'
515 lyx_install_macosx=true ;;
516 windows) AC_DEFINE(USE_WINDOWS_PACKAGING, 1, [Define to 1 if LyX should use a Windows-style file layout])
517 PACKAGE=LyX${version_suffix}
518 default_prefix="C:/Program Files/${PACKAGE}"
519 bindir='${prefix}/bin'
520 libdir='${prefix}/Resources'
521 datarootdir='${prefix}/Resources'
522 pkgdatadir='${datadir}'
523 mandir='${prefix}/Resources/man'
524 lyx_install_windows=true ;;
525 posix) AC_DEFINE(USE_POSIX_PACKAGING, 1, [Define to 1 if LyX should use a POSIX-style file layout])
526 PACKAGE=lyx${version_suffix}
527 program_suffix=$version_suffix
528 pkgdatadir='${datadir}/${PACKAGE}'
529 default_prefix=$ac_default_prefix
531 *cygwin*) lyx_install_cygwin=true ;;
532 *apple-darwin*) lyx_install_macosx=true ;;
534 lyx_install_posix=true ;;
535 *) AC_MSG_ERROR([unknown packaging type $lyx_use_packaging.]) ;;
537 AM_CONDITIONAL(INSTALL_MACOSX, $lyx_install_macosx)
538 AM_CONDITIONAL(INSTALL_WINDOWS, $lyx_install_windows)
539 AM_CONDITIONAL(INSTALL_CYGWIN, $lyx_install_cygwin)
540 AM_CONDITIONAL(INSTALL_POSIX, $lyx_install_posix)
542 AC_SUBST(program_suffix)
546 ## ------------------------------------------------------------------------
547 ## Check whether mkdir() is mkdir or _mkdir, and whether it takes
548 ## one or two arguments.
550 ## http://ac-archive.sourceforge.net/C_Support/ac_func_mkdir.html
551 ## ------------------------------------------------------------------------
553 AC_DEFUN([AC_FUNC_MKDIR],
554 [AC_CHECK_FUNCS([mkdir _mkdir])
555 AC_CACHE_CHECK([whether mkdir takes one argument],
556 [ac_cv_mkdir_takes_one_arg],
558 #include <sys/stat.h>
563 [ac_cv_mkdir_takes_one_arg=yes], [ac_cv_mkdir_takes_one_arg=no])])
564 if test x"$ac_cv_mkdir_takes_one_arg" = xyes; then
565 AC_DEFINE([MKDIR_TAKES_ONE_ARG], 1,
566 [Define if mkdir takes only one argument.])
571 dnl Set VAR to the canonically resolved absolute equivalent of PATHNAME,
572 dnl (which may be a relative path, and need not refer to any existing
575 dnl On Win32-MSYS build hosts, the returned path is resolved to its true
576 dnl native Win32 path name, (but with slashes, not backslashes).
578 dnl On any other system, it is simply the result which would be obtained
579 dnl if PATHNAME represented an existing directory, and the pwd command was
580 dnl executed in that directory.
581 AC_DEFUN([MSYS_AC_CANONICAL_PATH],
583 ( exec 2>/dev/null; cd / && pwd -W ) | grep ':' >/dev/null &&
584 ac_pwd_w="pwd -W" || ac_pwd_w=pwd
585 until ac_val=`exec 2>/dev/null; cd "$ac_dir" && $ac_pwd_w`
587 ac_dir=`AS_DIRNAME(["$ac_dir"])`
589 ac_dir=`echo "$ac_dir" | sed 's?^[[./]]*??'`
590 ac_val=`echo "$ac_val" | sed 's?/*$[]??'`
591 $1=`echo "$2" | sed "s?^[[./]]*$ac_dir/*?$ac_val/?"'
595 dnl this is used by the macro blow to general a proper config.h.in entry
596 m4_define([LYX_AH_CHECK_DECL],
597 [AH_TEMPLATE(AS_TR_CPP(HAVE_DECL_$1),
598 [Define if you have the prototype for function `$1'])])
600 dnl Check things are declared in headers to avoid errors or warnings.
601 dnl Called like LYX_CHECK_DECL(function, header1 header2...)
602 dnl Defines HAVE_DECL_{FUNCTION}
603 AC_DEFUN([LYX_CHECK_DECL],
604 [LYX_AH_CHECK_DECL($1)
607 AC_MSG_CHECKING([if $1 is declared by header $ac_header])
608 AC_EGREP_HEADER($1, $ac_header,
610 AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_DECL_$1))
615 dnl this is used by the macro below to generate a proper config.h.in entry
616 m4_define([LYX_AH_CHECK_DEF],
617 [AH_TEMPLATE(AS_TR_CPP(HAVE_DEF_$1),
618 [Define to 1 if `$1' is defined in `$2'])])
620 dnl Check whether name is defined in header by using it in codesnippet.
621 dnl Called like LYX_CHECK_DEF(name, header, codesnippet)
622 dnl Defines HAVE_DEF_{NAME}
623 AC_DEFUN([LYX_CHECK_DEF],
624 [LYX_AH_CHECK_DEF($1, $2)
625 AC_MSG_CHECKING([whether $1 is defined by header $2])
626 AC_TRY_COMPILE([#include <$2>], [$3],
627 lyx_have_def_name=yes,
628 lyx_have_def_name=no)
629 AC_MSG_RESULT($lyx_have_def_name)
630 if test "x$lyx_have_def_name" = xyes; then
631 AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_DEF_$1))
635 dnl Extract the single digits from PACKAGE_VERSION and make them available.
636 dnl Defines LYX_MAJOR_VERSION, LYX_MINOR_VERSION, LYX_RELEASE_LEVEL,
637 dnl LYX_RELEASE_PATCH (possibly equal to 0), LYX_DIR_VER, and LYX_USERDIR_VER.
638 AC_DEFUN([LYX_SET_VERSION_INFO],
639 [lyx_major=`echo $PACKAGE_VERSION | sed -e 's/[[.]].*//'`
640 lyx_patch=`echo $PACKAGE_VERSION | sed -e "s/^$lyx_major//" -e 's/^.//'`
641 lyx_minor=`echo $lyx_patch | sed -e 's/[[.]].*//'`
642 lyx_patch=`echo $lyx_patch | sed -e "s/^$lyx_minor//" -e 's/^.//'`
643 lyx_release=`echo $lyx_patch | sed -e 's/[[^0-9]].*//'`
644 lyx_patch=`echo $lyx_patch | sed -e "s/^$lyx_release//" -e 's/^[[.]]//' -e 's/[[^0-9]].*//'`
645 test "x$lyx_patch" = "x" && lyx_patch=0
646 lyx_dir_ver=LYX_DIR_${lyx_major}${lyx_minor}x
647 lyx_userdir_ver=LYX_USERDIR_${lyx_major}${lyx_minor}x
648 AC_SUBST(LYX_MAJOR_VERSION,$lyx_major)
649 AC_SUBST(LYX_MINOR_VERSION,$lyx_minor)
650 AC_SUBST(LYX_RELEASE_LEVEL,$lyx_release)
651 AC_SUBST(LYX_RELEASE_PATCH,$lyx_patch)
652 AC_SUBST(LYX_DIR_VER,"$lyx_dir_ver")
653 AC_SUBST(LYX_USERDIR_VER,"$lyx_userdir_ver")
656 # AM_PYTHON_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE])
657 # ---------------------------------------------------------------------------
658 # Copied from autoconf 2.68, added a check that python version is < 3.0
659 # Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION.
660 # Run ACTION-IF-FALSE otherwise.
661 # This test uses sys.hexversion instead of the string equivalent (first
662 # word of sys.version), in order to cope with versions such as 2.2c1.
663 # This supports Python 2.0 or higher. (2.0 was released on October 16, 2000).
664 AC_DEFUN([AM_PYTHON_CHECK_VERSION],
666 # split strings by '.' and convert to numeric. Append some zeros
667 # because we need at least 4 digits for the hex conversion.
668 # map returns an iterator in Python 3.0 and a list in 2.x
669 minver = list(map(int, '$2'.split('.'))) + [[0, 0, 0]]
671 maxverhex = 50331648 # = 3.0.0.0
672 # xrange is not present in Python 3.0 and range returns an iterator
673 for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[[i]]
674 sys.exit(sys.hexversion < minverhex or sys.hexversion >= maxverhex)"
675 AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])])