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
13 AC_MSG_CHECKING([for build type])
14 AC_ARG_ENABLE(build-type,
15 AC_HELP_STRING([--enable-build-type=TYPE],[set build setting according to TYPE=rel(ease), pre(release), dev(elopment), prof(iling), gprof]),
17 dev*) build_type=development;;
18 pre*) build_type=prerelease;;
19 prof*) build_type=profiling;;
20 gprof*) build_type=gprof;;
21 rel*) build_type=release;;
22 *) AC_MSG_ERROR([bad build type specification \"$enableval\". Please use one of rel(ease), pre(release), dev(elopment), prof(iling), or gprof]);;
24 [case AC_PACKAGE_VERSION in
25 *dev*) build_type=development;;
26 *pre*|*alpha*|*beta*|*rc*) build_type=prerelease;;
27 *) build_type=release ;;
29 AC_MSG_RESULT([$build_type])
30 lyx_flags="$lyx_flags build=$build_type"
32 development) lyx_devel_version=yes
33 AC_DEFINE(DEVEL_VERSION, 1, [Define if you are building a development version of LyX])
34 LYX_DATE="not released yet" ;;
35 prerelease) lyx_prerelease=yes ;;
38 AC_SUBST(lyx_devel_version)
42 dnl Define the option to set a LyX version on installed executables and directories
45 AC_DEFUN([LYX_VERSION_SUFFIX],[
46 AC_MSG_CHECKING([for version suffix])
47 dnl We need the literal double quotes in the rpm spec file
48 RPM_VERSION_SUFFIX='""'
49 AC_ARG_WITH(version-suffix,
50 [AC_HELP_STRING([--with-version-suffix@<:@=VERSION@:>@], install lyx files as lyxVERSION (VERSION=-AC_PACKAGE_VERSION))],
51 [if test "x$withval" = "xyes";
53 withval="-"AC_PACKAGE_VERSION
54 ac_configure_args=`echo "$ac_configure_args" | sed "s,--with-version-suffix,--with-version-suffix=$withval,"`
56 AC_SUBST(version_suffix,$withval)
57 RPM_VERSION_SUFFIX="--with-version-suffix=$withval"])
58 AC_SUBST(RPM_VERSION_SUFFIX)
59 AC_SUBST(program_base_name,"lyx")
60 AC_MSG_RESULT([$withval])
64 dnl Usage: LYX_WARNING(message) Displays the warning "message" and sets the
65 dnl flag lyx_warning to yes.
66 AC_DEFUN([LYX_WARNING],[
67 lyx_warning_txt="$lyx_warning_txt
73 dnl Usage: LYX_LIB_ERROR(file,library) Displays an error message indication
74 dnl that 'file' cannot be found because 'lib' may be uncorrectly installed.
75 AC_DEFUN([LYX_LIB_ERROR],[
76 AC_MSG_ERROR([cannot find $1. Please check that the $2 library
77 is correctly installed on your system.])])
80 dnl Usage: LYX_CHECK_WARNINGS Displays a warning message if a LYX_WARNING
81 dnl has occured previously.
82 AC_DEFUN([LYX_CHECK_WARNINGS],[
83 if test x$lyx_warning = xyes; then
85 === The following minor problems have been detected by configure.
86 === Please check the messages below before running 'make'.
87 === (see the section 'Problems' in the INSTALL file)
94 dnl LYX_SEARCH_PROG(VARIABLE-NAME,PROGRAMS-LIST,ACTION-IF-FOUND)
96 define(LYX_SEARCH_PROG,[dnl
97 for ac_prog in $2 ; do
98 # Extract the first word of "$ac_prog", so it can be a program name with args.
99 set dummy $ac_prog ; ac_word=$[2]
100 if test -z "[$]$1"; then
101 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
102 for ac_dir in $PATH; do
103 test -z "$ac_dir" && ac_dir=.
104 if test -f [$ac_dir/$ac_word]; then
112 if test -n "[$]$1"; then
118 test -n "[$]$1" && break
123 AC_DEFUN([LYX_PROG_CXX_WORKS],
125 cat >conftest.C <<EOF
127 // we require the mutable keyword
130 // we require namespace support
138 $CXX -c $CXXFLAGS $CPPFLAGS conftest.C >&5 || CXX=
139 rm -f conftest.C conftest.o conftest.obj || true
143 AC_DEFUN([LYX_PROG_CXX],
144 [AC_MSG_CHECKING([for a good enough C++ compiler])
145 LYX_SEARCH_PROG(CXX, $CXX $CCC g++ gcc c++ CC cxx xlC cc++, [LYX_PROG_CXX_WORKS])
147 if test -z "$CXX" ; then
148 AC_MSG_ERROR([Unable to find a good enough C++ compiler])
155 ### We might want to get or shut warnings.
156 AC_ARG_ENABLE(warnings,
157 AC_HELP_STRING([--enable-warnings],[tell the compiler to display more warnings]),,
158 [ if test $lyx_devel_version = yes -o $lyx_prerelease = yes && test $ac_cv_prog_gxx = yes ; then
163 if test x$enable_warnings = xyes ; then
164 lyx_flags="$lyx_flags warnings"
167 ### We might want to disable debug
169 AC_HELP_STRING([--enable-debug],[enable debug information]),,
170 [AS_CASE([$build_type], [rel*], [enable_debug=no], [enable_debug=yes])]
173 AC_ARG_ENABLE(stdlib-debug,
174 AC_HELP_STRING([--enable-stdlib-debug],[enable debug mode in the standard library]),,
175 [AS_CASE([$build_type], [dev*], [enable_stdlib_debug=yes],
176 [enable_stdlib_debug=no])]
179 AC_ARG_ENABLE(concept-checks,
180 AC_HELP_STRING([--enable-concept-checks],[enable concept checks]),,
181 [AS_CASE([$build_type], [dev*|pre*], [enable_concept_checks=yes],
182 [enable_concept_checks=no])]
185 ### set up optimization
186 AC_ARG_ENABLE(optimization,
187 AC_HELP_STRING([--enable-optimization[=value]],[enable compiler optimisation]),,
188 enable_optimization=yes;)
189 case $enable_optimization in
191 if test $lyx_devel_version = yes ; then
197 *) lyx_opt=${enable_optimization};;
201 AC_HELP_STRING([--enable-pch],[enable precompiled headers]),,
206 AC_HELP_STRING([--enable-cxx11],[enable C++11 mode]),,
209 AC_ARG_ENABLE(assertions,
210 AC_HELP_STRING([--enable-assertions],[add runtime sanity checks in the program]),,
211 [AS_CASE([$build_type], [dev*|pre*], [enable_assertions=yes],
212 [enable_assertions=no])]
214 if test "x$enable_assertions" = xyes ; then
215 lyx_flags="$lyx_flags assertions"
216 AC_DEFINE(ENABLE_ASSERTIONS,1,
217 [Define if you want assertions to be enabled in the code])
220 # set the compiler options correctly.
221 if test x$GXX = xyes; then
222 dnl Useful for global version info
223 gxx_version=`${CXX} -dumpversion`
224 CXX_VERSION="($gxx_version)"
226 if test "$ac_test_CXXFLAGS" = set; then
227 CXXFLAGS="$ac_save_CXXFLAGS"
231 if test x$enable_debug = xyes ; then
233 CXXFLAGS="-g $CXXFLAGS"
235 if test $build_type = gprof ; then
237 CXXFLAGS="-pg $CXXFLAGS"
238 LDFLAGS="-pg $LDFLAGS"
240 if test $build_type = profiling ; then
241 CFLAGS="$CFLAGS -fno-omit-frame-pointer"
242 CXXFLAGS="$CXXFLAGS -fno-omit-frame-pointer"
245 if test "$ac_env_CPPFLAGS_set" != set; then
246 if test x$enable_warnings = xyes ; then
249 CPPFLAGS="-W -Wall $CPPFLAGS"
252 CPPFLAGS="-Wextra -Wall $CPPFLAGS "
258 3.1*) AM_CXXFLAGS="-finline-limit=500 ";;
259 3.2*|3.3*) AM_CXXFLAGS="";;
262 test $enable_pch = yes && lyx_pch_comp=yes
266 if test x$enable_stdlib_debug = xyes ; then
269 lyx_flags="$lyx_flags stdlib-debug"
270 AC_DEFINE(_GLIBCXX_DEBUG, 1, [libstdc++ debug mode])
271 AC_DEFINE(_GLIBCXX_DEBUG_PEDANTIC, 1, [libstdc++ pedantic debug mode])
275 if test x$enable_concept_checks = xyes ; then
278 lyx_flags="$lyx_flags concept-checks"
279 AC_DEFINE(_GLIBCPP_CONCEPT_CHECKS, 1, [libstdc++ concept checking])
282 lyx_flags="$lyx_flags concept-checks"
283 AC_DEFINE(_GLIBCXX_CONCEPT_CHECKS, 1, [libstdc++ concept checking])
287 if test x$enable_cxx11 = xyes ; then
290 lyx_flags="$lyx_flags c++11-mode"
291 CXXFLAGS="-std=gnu++0x $CXXFLAGS"
294 lyx_flags="$lyx_flags c++11-mode"
295 CXXFLAGS="-std=gnu++11 $CXXFLAGS"
300 test "$lyx_pch_comp" = yes && lyx_flags="$lyx_flags pch"
301 AM_CONDITIONAL(LYX_BUILD_PCH, test "$lyx_pch_comp" = yes)
304 dnl Usage: LYX_USE_INCLUDED_BOOST : select if the included boost should
306 AC_DEFUN([LYX_USE_INCLUDED_BOOST],[
307 AC_MSG_CHECKING([whether to use included boost library])
308 AC_ARG_WITH(included-boost,
309 [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])],
310 [lyx_cv_with_included_boost=$withval],
311 [lyx_cv_with_included_boost=yes])
312 AM_CONDITIONAL(USE_INCLUDED_BOOST, test x$lyx_cv_with_included_boost = xyes)
313 AC_MSG_RESULT([$lyx_cv_with_included_boost])
314 if test x$lyx_cv_with_included_boost = xyes ; then
315 BOOST_INCLUDES='-I$(top_srcdir)/boost'
316 BOOST_LIBS='$(top_builddir)/boost/liblyxboost.a'
321 AC_MSG_CHECKING([for multithreaded boost libraries])
322 LIBS="$save_LIBS -lboost_signals-mt -lm $LIBTHREAD"
324 [AC_LANG_PROGRAM([#include <boost/signal.hpp>],
325 [boost::signal<void ()> s;])],
326 [AC_MSG_RESULT([yes])
329 AC_MSG_CHECKING([for plain boost libraries])
330 LIBS="$save_LIBS -lboost_signals -lm"
332 [AC_LANG_PROGRAM([#include <boost/signal.hpp>],
333 [boost::signal<void ()> s;])],
334 [AC_MSG_RESULT([yes])
337 AC_MSG_ERROR([cannot find suitable boost library (do not use --without-included-boost)])
343 BOOST_LIBS="-lboost_regex${BOOST_MT} -lboost_signals${BOOST_MT}"
345 AC_SUBST(BOOST_INCLUDES)
350 dnl Usage: LYX_USE_INCLUDED_MYTHES : select if the included MyThes should
352 AC_DEFUN([LYX_USE_INCLUDED_MYTHES],[
353 AC_MSG_CHECKING([whether to use included MyThes library])
354 AC_ARG_WITH(included-mythes,
355 [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])],
356 [lyx_cv_with_included_mythes=$withval],
357 [lyx_cv_with_included_mythes=yes])
358 AM_CONDITIONAL(USE_INCLUDED_MYTHES, test x$lyx_cv_with_included_mythes = xyes)
359 AC_MSG_RESULT([$lyx_cv_with_included_mythes])
360 if test x$lyx_cv_with_included_mythes != xyes ; then
362 AC_CHECK_HEADER(mythes.hxx,[ac_cv_header_mythes_h=yes lyx_cv_mythes_h_location="<mythes.hxx>"])
363 if test x$ac_cv_header_mythes_h != xyes; then
364 AC_CHECK_HEADER(mythes/mythes.hxx,[ac_cv_header_mythes_h=yes lyx_cv_mythes_h_location="<mythes/mythes.hxx>"])
366 AC_CHECK_LIB(mythes, main, [MYTHES_LIBS="-lmythes" lyx_mythes=yes], [lyx_mythes=no], [-lm])
367 if test x$lyx_mythes != xyes; then
368 AC_CHECK_LIB(mythes-1.2, main, [MYTHES_LIBS="-lmythes-1.2" lyx_mythes=yes], [lyx_mythes=no], [-lm])
371 if test x$lyx_mythes != xyes -o x$ac_cv_header_mythes_h != xyes; then
372 AC_MSG_ERROR([cannot find suitable MyThes library (do not use --without-included-mythes)])
374 AC_DEFINE(USE_EXTERNAL_MYTHES, 1, [Define as 1 to use an external MyThes library])
375 AC_DEFINE_UNQUOTED(MYTHES_H_LOCATION,$lyx_cv_mythes_h_location,[Location of mythes.hxx])
376 AC_SUBST(MYTHES_LIBS)
381 dnl Usage: LYX_WITH_DIR(dir-name,desc,dir-var-name,default-value,
382 dnl [default-yes-value])
383 dnl Adds a --with-'dir-name' option (described by 'desc') and puts the
384 dnl resulting directory name in 'dir-var-name'.
385 AC_DEFUN([LYX_WITH_DIR],[
386 AC_ARG_WITH($1,[AC_HELP_STRING([--with-$1],[specify $2])])
387 AC_MSG_CHECKING([for $2])
388 if test -z "$with_$3"; then
389 AC_CACHE_VAL(lyx_cv_$3, lyx_cv_$3=$4)
391 test "x$with_$3" = xyes && with_$3=$5
394 AC_MSG_RESULT($lyx_cv_$3)])
397 dnl Usage: LYX_LOOP_DIR(value,action)
398 dnl Executes action for values of variable `dir' in `values'. `values' can
399 dnl use ":" as a separator.
400 AC_DEFUN([LYX_LOOP_DIR],[
401 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
402 for dir in `eval "echo $1"`; do
403 if test ! "$dir" = NONE; then
404 test ! -d "$dir" && AC_MSG_ERROR([\"$dir\" is not a directory])
412 dnl Usage: LYX_ADD_LIB_DIR(var-name,dir) Adds a -L directive to variable
414 AC_DEFUN([LYX_ADD_LIB_DIR],[
416 if test "`(uname) 2>/dev/null`" = SunOS &&
417 uname -r | grep '^5' >/dev/null; then
418 if test $ac_cv_prog_gxx = yes ; then
419 $1="${$1} -Wl[,]-R$2"
426 dnl Usage: LYX_ADD_INC_DIR(var-name,dir) Adds a -I directive to variable
428 AC_DEFUN([LYX_ADD_INC_DIR],[$1="${$1} -I$2 "])
430 ### Check for a headers existence and location iff it exists
431 ## This is supposed to be a generalised version of LYX_STL_STRING_FWD
432 ## It almost works. I've tried a few variations but they give errors
433 ## of one sort or other: bad substitution or file not found etc. The
434 ## actual header _is_ found though and the cache variable is set however
435 ## the reported setting (on screen) is equal to $ac_safe for some unknown
437 ## Additionally, autoheader can't figure out what to use as the name in
438 ## the config.h.in file so we need to write our own entries there -- one for
439 ## each header in the form PATH_HEADER_NAME_H
441 AC_DEFUN([LYX_PATH_HEADER],
442 [ AC_CHECK_HEADER($1,[
443 ac_tr_safe=PATH_`echo $ac_safe | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
444 ### the only remaining problem is getting the second parameter to this
445 ### AC_CACHE_CACHE to print correctly. Currently it just results in value
446 ### of $ac_safe being printed.
447 AC_CACHE_CHECK([path to $1],[lyx_cv_path2_$ac_safe],
448 [ cat > conftest.$ac_ext <<EOF
449 #line __oline__ "configure"
450 #include "confdefs.h"
454 lyx_path_header_path=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | \
455 grep $1 2>/dev/null | \
456 sed -e 's/.*\(".*$1"\).*/\1/' -e "1q"`
457 eval "lyx_cv_path2_${ac_safe}=\$lyx_path_header_path"
459 AC_DEFINE_UNQUOTED($ac_tr_safe, $lyx_path_header_path, [dummy])])
461 ### end of LYX_PATH_HEADER
463 ## Check what kind of packaging should be used at install time.
464 ## The default is autodetected.
465 AC_DEFUN([LYX_USE_PACKAGING],
466 [AC_MSG_CHECKING([what packaging should be used])
467 AC_ARG_WITH(packaging,
468 [AC_HELP_STRING([--with-packaging=THIS], [use THIS packaging for installation:
469 Possible values: posix, windows, macosx])],
470 [lyx_use_packaging="$withval"], [
472 *-apple-darwin*) lyx_use_packaging=macosx ;;
473 *-pc-mingw32*) lyx_use_packaging=windows;;
474 *) lyx_use_packaging=posix;;
476 AC_MSG_RESULT($lyx_use_packaging)
477 lyx_install_posix=false
478 lyx_install_macosx=false
479 lyx_install_cygwin=false
480 lyx_install_windows=false
481 case $lyx_use_packaging in
482 macosx) AC_DEFINE(USE_MACOSX_PACKAGING, 1, [Define to 1 if LyX should use a MacOS X application bundle file layout])
483 PACKAGE=LyX${version_suffix}
484 default_prefix="/Applications/${PACKAGE}.app"
485 AC_SUBST(osx_bundle_program_name,"${program_base_name}")
486 bindir='${prefix}/Contents/MacOS'
487 libdir='${prefix}/Contents/Resources'
488 datarootdir='${prefix}/Contents/Resources'
489 pkgdatadir='${datadir}'
490 mandir='${datadir}/man'
491 lyx_install_macosx=true ;;
492 windows) AC_DEFINE(USE_WINDOWS_PACKAGING, 1, [Define to 1 if LyX should use a Windows-style file layout])
493 PACKAGE=LyX${version_suffix}
494 default_prefix="C:/Program Files/${PACKAGE}"
495 bindir='${prefix}/bin'
496 libdir='${prefix}/Resources'
497 datarootdir='${prefix}/Resources'
498 pkgdatadir='${datadir}'
499 mandir='${prefix}/Resources/man'
500 lyx_install_windows=true ;;
501 posix) AC_DEFINE(USE_POSIX_PACKAGING, 1, [Define to 1 if LyX should use a POSIX-style file layout])
502 PACKAGE=lyx${version_suffix}
503 program_suffix=$version_suffix
504 pkgdatadir='${datadir}/${PACKAGE}'
505 default_prefix=$ac_default_prefix
507 *cygwin*) lyx_install_cygwin=true ;;
508 *apple-darwin*) lyx_install_macosx=true ;;
510 lyx_install_posix=true ;;
511 *) AC_MSG_ERROR([unknown packaging type $lyx_use_packaging.]) ;;
513 AM_CONDITIONAL(INSTALL_MACOSX, $lyx_install_macosx)
514 AM_CONDITIONAL(INSTALL_WINDOWS, $lyx_install_windows)
515 AM_CONDITIONAL(INSTALL_CYGWIN, $lyx_install_cygwin)
516 AM_CONDITIONAL(INSTALL_POSIX, $lyx_install_posix)
518 AC_SUBST(program_suffix)
522 ## ------------------------------------------------------------------------
523 ## Check whether mkdir() is mkdir or _mkdir, and whether it takes
524 ## one or two arguments.
526 ## http://ac-archive.sourceforge.net/C_Support/ac_func_mkdir.html
527 ## ------------------------------------------------------------------------
529 AC_DEFUN([AC_FUNC_MKDIR],
530 [AC_CHECK_FUNCS([mkdir _mkdir])
531 AC_CACHE_CHECK([whether mkdir takes one argument],
532 [ac_cv_mkdir_takes_one_arg],
534 #include <sys/stat.h>
539 [ac_cv_mkdir_takes_one_arg=yes], [ac_cv_mkdir_takes_one_arg=no])])
540 if test x"$ac_cv_mkdir_takes_one_arg" = xyes; then
541 AC_DEFINE([MKDIR_TAKES_ONE_ARG], 1,
542 [Define if mkdir takes only one argument.])
547 dnl Set VAR to the canonically resolved absolute equivalent of PATHNAME,
548 dnl (which may be a relative path, and need not refer to any existing
551 dnl On Win32-MSYS build hosts, the returned path is resolved to its true
552 dnl native Win32 path name, (but with slashes, not backslashes).
554 dnl On any other system, it is simply the result which would be obtained
555 dnl if PATHNAME represented an existing directory, and the pwd command was
556 dnl executed in that directory.
557 AC_DEFUN([MSYS_AC_CANONICAL_PATH],
559 ( exec 2>/dev/null; cd / && pwd -W ) | grep ':' >/dev/null &&
560 ac_pwd_w="pwd -W" || ac_pwd_w=pwd
561 until ac_val=`exec 2>/dev/null; cd "$ac_dir" && $ac_pwd_w`
563 ac_dir=`AS_DIRNAME(["$ac_dir"])`
565 ac_dir=`echo "$ac_dir" | sed 's?^[[./]]*??'`
566 ac_val=`echo "$ac_val" | sed 's?/*$[]??'`
567 $1=`echo "$2" | sed "s?^[[./]]*$ac_dir/*?$ac_val/?"'
571 dnl this is used by the macro blow to general a proper config.h.in entry
572 m4_define([LYX_AH_CHECK_DECL],
573 [AH_TEMPLATE(AS_TR_CPP(HAVE_DECL_$1),
574 [Define if you have the prototype for function `$1'])])
576 dnl Check things are declared in headers to avoid errors or warnings.
577 dnl Called like LYX_CHECK_DECL(function, header1 header2...)
578 dnl Defines HAVE_DECL_{FUNCTION}
579 AC_DEFUN([LYX_CHECK_DECL],
580 [LYX_AH_CHECK_DECL($1)
583 AC_MSG_CHECKING([if $1 is declared by header $ac_header])
584 AC_EGREP_HEADER($1, $ac_header,
586 AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_DECL_$1))
591 dnl this is used by the macro below to generate a proper config.h.in entry
592 m4_define([LYX_AH_CHECK_DEF],
593 [AH_TEMPLATE(AS_TR_CPP(HAVE_DEF_$1),
594 [Define to 1 if `$1' is defined in `$2'])])
596 dnl Check whether name is defined in header by using it in codesnippet.
597 dnl Called like LYX_CHECK_DEF(name, header, codesnippet)
598 dnl Defines HAVE_DEF_{NAME}
599 AC_DEFUN([LYX_CHECK_DEF],
600 [LYX_AH_CHECK_DEF($1, $2)
601 AC_MSG_CHECKING([whether $1 is defined by header $2])
602 AC_TRY_COMPILE([#include <$2>], [$3],
603 lyx_have_def_name=yes,
604 lyx_have_def_name=no)
605 AC_MSG_RESULT($lyx_have_def_name)
606 if test "x$lyx_have_def_name" = xyes; then
607 AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_DEF_$1))
611 dnl Extract the single digits from PACKAGE_VERSION and make them available.
612 dnl Defines LYX_MAJOR_VERSION, LYX_MINOR_VERSION, LYX_RELEASE_LEVEL,
613 dnl LYX_RELEASE_PATCH (possibly equal to 0), LYX_DIR_VER, and LYX_USERDIR_VER.
614 AC_DEFUN([LYX_SET_VERSION_INFO],
615 [lyx_major=`echo $PACKAGE_VERSION | sed -e 's/[[.]].*//'`
616 lyx_patch=`echo $PACKAGE_VERSION | sed -e "s/^$lyx_major//" -e 's/^.//'`
617 lyx_minor=`echo $lyx_patch | sed -e 's/[[.]].*//'`
618 lyx_patch=`echo $lyx_patch | sed -e "s/^$lyx_minor//" -e 's/^.//'`
619 lyx_release=`echo $lyx_patch | sed -e 's/[[^0-9]].*//'`
620 lyx_patch=`echo $lyx_patch | sed -e "s/^$lyx_release//" -e 's/^[[.]]//' -e 's/[[^0-9]].*//'`
621 test "x$lyx_patch" = "x" && lyx_patch=0
622 lyx_dir_ver=LYX_DIR_${lyx_major}${lyx_minor}x
623 lyx_userdir_ver=LYX_USERDIR_${lyx_major}${lyx_minor}x
624 AC_SUBST(LYX_MAJOR_VERSION,$lyx_major)
625 AC_SUBST(LYX_MINOR_VERSION,$lyx_minor)
626 AC_SUBST(LYX_RELEASE_LEVEL,$lyx_release)
627 AC_SUBST(LYX_RELEASE_PATCH,$lyx_patch)
628 AC_SUBST(LYX_DIR_VER,"$lyx_dir_ver")
629 AC_SUBST(LYX_USERDIR_VER,"$lyx_userdir_ver")
632 # AM_PYTHON_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE])
633 # ---------------------------------------------------------------------------
634 # Copied from autoconf 2.68, added a check that python version is < 3.0
635 # Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION.
636 # Run ACTION-IF-FALSE otherwise.
637 # This test uses sys.hexversion instead of the string equivalent (first
638 # word of sys.version), in order to cope with versions such as 2.2c1.
639 # This supports Python 2.0 or higher. (2.0 was released on October 16, 2000).
640 AC_DEFUN([AM_PYTHON_CHECK_VERSION],
642 # split strings by '.' and convert to numeric. Append some zeros
643 # because we need at least 4 digits for the hex conversion.
644 # map returns an iterator in Python 3.0 and a list in 2.x
645 minver = list(map(int, '$2'.split('.'))) + [[0, 0, 0]]
647 maxverhex = 50331648 # = 3.0.0.0
648 # xrange is not present in Python 3.0 and range returns an iterator
649 for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[[i]]
650 sys.exit(sys.hexversion < minverhex or sys.hexversion >= maxverhex)"
651 AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])])