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 [AC_HELP_STRING([--with-version-suffix@<:@=VERSION@:>@], install lyx files as lyxVERSION (VERSION=-AC_PACKAGE_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_MSG_CHECKING([whether to use boost included library])
427 AC_ARG_WITH(included-boost,
428 [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])],
429 [lyx_cv_with_included_boost=$withval],
430 [lyx_cv_with_included_boost=yes])
431 AM_CONDITIONAL(USE_INCLUDED_BOOST, test x$lyx_cv_with_included_boost = xyes)
432 AC_MSG_RESULT([$lyx_cv_with_included_boost])
433 if test x$lyx_cv_with_included_boost != xyes ; then
434 AC_CHECK_LIB(boost_signals, main, [lyx_boost_underscore=yes], [], [-lm])
435 AC_CHECK_LIB(boost_signals-mt, main, [lyx_boost_underscore_mt=yes], [], [-lm $LIBTHREAD])
436 if test x$lyx_boost_underscore_mt = xyes ; then
440 if test x$lyx_boost_plain != xyes -a x$lyx_boost_underscore != xyes ; then
441 LYX_ERROR([No suitable boost library found (do not use --without-included-boost)])
450 dnl NOT USED CURRENTLY*************************************
452 AC_DEFUN([LYX_CXX_PARTIAL], [
453 AC_REQUIRE([AC_PROG_CXX])
454 AC_CACHE_CHECK([if C++ compiler supports partial specialization],
455 [lyx_cv_cxx_partial_specialization],
458 template<class T, class K>
462 template<class T> class k<void,T> { };
467 lyx_cv_cxx_partial_specialization=yes
469 lyx_cv_cxx_partial_specialization=no
472 if test x$lyx_cv_cxx_partial_specialization = xyes ; then
473 AC_DEFINE(HAVE_PARTIAL_SPECIALIZATION, 1,
474 [Defined if your compiler supports partial specialization.])
479 dnl Usage: LYX_CXX_GLOBAL_CSTD: checks whether C library functions
480 dnl are already in the global namespace
481 AC_DEFUN([LYX_CXX_GLOBAL_CSTD],[
482 AC_CACHE_CHECK(whether C library functions are already in the global namespace,
483 lyx_cv_cxx_global_cstd,
489 ],[lyx_cv_cxx_global_cstd=no],[lyx_cv_cxx_global_cstd=yes])])
490 if test x$lyx_cv_cxx_global_cstd = xyes; then
491 AC_DEFINE(CXX_GLOBAL_CSTD,1,
492 [Define if your C++ compiler puts C library functions in the global namespace])
497 dnl Usage: LYX_WITH_DIR(dir-name,desc,dir-var-name,default-value,
498 dnl [default-yes-value])
499 dnl Adds a --with-'dir-name' option (described by 'desc') and puts the
500 dnl resulting directory name in 'dir-var-name'.
501 AC_DEFUN([LYX_WITH_DIR],[
502 AC_ARG_WITH($1,[AC_HELP_STRING([--with-$1],[specify $2])])
503 AC_MSG_CHECKING([for $2])
504 if test -z "$with_$3"; then
505 AC_CACHE_VAL(lyx_cv_$3, lyx_cv_$3=$4)
507 test "x$with_$3" = xyes && with_$3=$5
510 AC_MSG_RESULT($lyx_cv_$3)])
513 dnl Usage: LYX_LOOP_DIR(value,action)
514 dnl Executes action for values of variable `dir' in `values'. `values' can
515 dnl use ":" as a separator.
516 AC_DEFUN([LYX_LOOP_DIR],[
517 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
518 for dir in `eval "echo $1"`; do
519 if test ! "$dir" = NONE; then
520 test ! -d "$dir" && AC_MSG_ERROR([\"$dir\" is not a directory])
528 dnl Usage: LYX_ADD_LIB_DIR(var-name,dir) Adds a -L directive to variable
530 AC_DEFUN([LYX_ADD_LIB_DIR],[
532 if test "`(uname) 2>/dev/null`" = SunOS &&
533 uname -r | grep '^5' >/dev/null; then
534 if test $ac_cv_prog_gxx = yes ; then
535 $1="${$1} -Wl[,]-R$2"
542 dnl Usage: LYX_ADD_INC_DIR(var-name,dir) Adds a -I directive to variable
544 AC_DEFUN([LYX_ADD_INC_DIR],[$1="${$1} -I$2 "])
546 ### Check for a headers existence and location iff it exists
547 ## This is supposed to be a generalised version of LYX_STL_STRING_FWD
548 ## It almost works. I've tried a few variations but they give errors
549 ## of one sort or other: bad substitution or file not found etc. The
550 ## actual header _is_ found though and the cache variable is set however
551 ## the reported setting (on screen) is equal to $ac_safe for some unknown
553 ## Additionally, autoheader can't figure out what to use as the name in
554 ## the config.h.in file so we need to write our own entries there -- one for
555 ## each header in the form PATH_HEADER_NAME_H
557 AC_DEFUN([LYX_PATH_HEADER],
558 [ AC_CHECK_HEADER($1,[
559 ac_tr_safe=PATH_`echo $ac_safe | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
560 ### the only remaining problem is getting the second parameter to this
561 ### AC_CACHE_CACHE to print correctly. Currently it just results in value
562 ### of $ac_safe being printed.
563 AC_CACHE_CHECK([path to $1],[lyx_cv_path2_$ac_safe],
564 [ cat > conftest.$ac_ext <<EOF
565 #line __oline__ "configure"
566 #include "confdefs.h"
570 lyx_path_header_path=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | \
571 grep $1 2>/dev/null | \
572 sed -e 's/.*\(".*$1"\).*/\1/' -e "1q"`
573 eval "lyx_cv_path2_${ac_safe}=\$lyx_path_header_path"
575 AC_DEFINE_UNQUOTED($ac_tr_safe, $lyx_path_header_path, [dummy])])
577 ### end of LYX_PATH_HEADER
579 ### Check which frontends we want to use.
581 AC_DEFUN([LYX_USE_FRONTENDS],
582 [AC_MSG_CHECKING([what frontend should be used for the GUI])
583 AC_ARG_WITH(frontend,
584 [AC_HELP_STRING([--with-frontend=THIS], [use THIS frontend as main GUI:
585 Possible values: qt4])],
586 [FRONTENDS="$withval"],[FRONTENDS="qt4"])
587 if test "x$FRONTENDS" = x ; then
589 AC_ERROR("Please select a frontend using --with-frontend")
591 AC_MSG_RESULT($FRONTENDS)
593 AC_SUBST(FRONTENDS_SUBDIRS)
594 AC_SUBST(FRONTENDS_PROGS)
598 ## Check what kind of packaging should be used at install time.
599 ## The default is autodetected.
600 AC_DEFUN([LYX_USE_PACKAGING],
601 [AC_MSG_CHECKING([what packaging should be used])
602 AC_ARG_WITH(packaging,
603 [AC_HELP_STRING([--with-packaging=THIS], [use THIS packaging for installation:
604 Possible values: posix, windows, macosx])],
605 [lyx_use_packaging="$withval"], [
607 *-apple-darwin*) lyx_use_packaging=macosx ;;
608 *-pc-mingw32*) lyx_use_packaging=windows;;
609 *) lyx_use_packaging=posix;;
611 AC_MSG_RESULT($lyx_use_packaging)
612 lyx_install_macosx=false
613 lyx_install_cygwin=false
614 lyx_install_windows=false
615 case $lyx_use_packaging in
616 macosx) AC_DEFINE(USE_MACOSX_PACKAGING, 1, [Define to 1 if LyX should use a MacOS X application bundle file layout])
617 PACKAGE=LyX${version_suffix}
618 default_prefix="/Applications/${PACKAGE}.app"
619 bindir='${prefix}/Contents/MacOS'
620 libdir='${prefix}/Contents/Resources'
621 datarootdir='${prefix}/Contents/Resources'
622 pkgdatadir='${datadir}'
623 mandir='${datadir}/man'
624 lyx_install_macosx=true ;;
625 windows) AC_DEFINE(USE_WINDOWS_PACKAGING, 1, [Define to 1 if LyX should use a Windows-style file layout])
626 PACKAGE=LyX${version_suffix}
627 default_prefix="C:/Program Files/${PACKAGE}"
628 bindir='${prefix}/bin'
629 libdir='${prefix}/Resources'
630 datarootdir='${prefix}/Resources'
631 pkgdatadir='${datadir}'
632 mandir='${prefix}/Resources/man'
633 lyx_install_windows=true ;;
634 posix) AC_DEFINE(USE_POSIX_PACKAGING, 1, [Define to 1 if LyX should use a POSIX-style file layout])
635 PACKAGE=lyx${version_suffix}
636 program_suffix=$version_suffix
637 pkgdatadir='${datadir}/${PACKAGE}'
638 default_prefix=$ac_default_prefix
640 *cygwin*) lyx_install_cygwin=true ;;
642 *) LYX_ERROR([Unknown packaging type $lyx_use_packaging]) ;;
644 AM_CONDITIONAL(INSTALL_MACOSX, $lyx_install_macosx)
645 AM_CONDITIONAL(INSTALL_CYGWIN, $lyx_install_cygwin)
646 AM_CONDITIONAL(INSTALL_WINDOWS, $lyx_install_windows)
647 dnl Next two lines are only for autoconf <= 2.59
648 datadir='${datarootdir}'
649 AC_SUBST(datarootdir)
651 AC_SUBST(program_suffix)
655 ## ------------------------------------------------------------------------
656 ## Find a file (or one of more files in a list of dirs)
657 ## ------------------------------------------------------------------------
659 AC_DEFUN([AC_FIND_FILE],
666 if test -r "$i/$j"; then
674 dnl just a wrapper to clean up configure.in
675 AC_DEFUN([LYX_PROG_LIBTOOL],
677 AC_REQUIRE([AC_ENABLE_SHARED])
678 AC_REQUIRE([AC_ENABLE_STATIC])
679 dnl libtool is only for C, so I must force him
680 dnl to find the correct flags for C++
682 ac_save_cflags="$CFLAGS"
685 AC_PROG_LIBTOOL dnl for libraries
687 CFLAGS="$ac_save_cflags"
691 ## ------------------------------------------------------------------------
692 ## Check whether mkdir() is mkdir or _mkdir, and whether it takes
693 ## one or two arguments.
695 ## http://ac-archive.sourceforge.net/C_Support/ac_func_mkdir.html
696 ## ------------------------------------------------------------------------
698 AC_DEFUN([AC_FUNC_MKDIR],
699 [AC_CHECK_FUNCS([mkdir _mkdir])
700 AC_CACHE_CHECK([whether mkdir takes one argument],
701 [ac_cv_mkdir_takes_one_arg],
703 #include <sys/stat.h>
708 [ac_cv_mkdir_takes_one_arg=yes], [ac_cv_mkdir_takes_one_arg=no])])
709 if test x"$ac_cv_mkdir_takes_one_arg" = xyes; then
710 AC_DEFINE([MKDIR_TAKES_ONE_ARG], 1,
711 [Define if mkdir takes only one argument.])
716 dnl Set VAR to the canonically resolved absolute equivalent of PATHNAME,
717 dnl (which may be a relative path, and need not refer to any existing
720 dnl On Win32-MSYS build hosts, the returned path is resolved to its true
721 dnl native Win32 path name, (but with slashes, not backslashes).
723 dnl On any other system, it is simply the result which would be obtained
724 dnl if PATHNAME represented an existing directory, and the pwd command was
725 dnl executed in that directory.
726 AC_DEFUN([MSYS_AC_CANONICAL_PATH],
728 ( exec 2>/dev/null; cd / && pwd -W ) | grep ':' >/dev/null &&
729 ac_pwd_w="pwd -W" || ac_pwd_w=pwd
730 until ac_val=`exec 2>/dev/null; cd "$ac_dir" && $ac_pwd_w`
732 ac_dir=`AS_DIRNAME(["$ac_dir"])`
734 ac_dir=`echo "$ac_dir" | sed 's?^[[./]]*??'`
735 ac_val=`echo "$ac_val" | sed 's?/*$[]??'`
736 $1=`echo "$2" | sed "s?^[[./]]*$ac_dir/*?$ac_val/?"'
740 dnl this is used by the macro blow to general a proper config.h.in entry
741 m4_define([LYX_AH_CHECK_DECL],
742 [AH_TEMPLATE(AS_TR_CPP(HAVE_DECL_$1),
743 [Define if you have the prototype for function `$1'])])
745 dnl Check things are declared in headers to avoid errors or warnings.
746 dnl Called like LYX_CHECK_DECL(function, header1 header2...)
747 dnl Defines HAVE_DECL_{FUNCTION}
748 AC_DEFUN([LYX_CHECK_DECL],
749 [LYX_AH_CHECK_DECL($1)
752 AC_MSG_CHECKING([if $1 is declared by header $ac_header])
753 AC_EGREP_HEADER($1, $ac_header,
755 AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_DECL_$1))
760 dnl Extract the single digits from PACKAGE_VERSION and make them available.
761 dnl Defines LYX_MAJOR_VERSION, LYX_MINOR_VERSION, LYX_RELEASE_LEVEL,
762 dnl LYX_RELEASE_PATCH (possibly equal to 0), LYX_DIR_VER, and LYX_USERDIR_VER.
763 AC_DEFUN([LYX_SET_VERSION_INFO],
764 [lyx_major=`echo $PACKAGE_VERSION | sed -e 's/[[.]].*//'`
765 lyx_patch=`echo $PACKAGE_VERSION | sed -e "s/^$lyx_major//" -e 's/^.//'`
766 lyx_minor=`echo $lyx_patch | sed -e 's/[[.]].*//'`
767 lyx_patch=`echo $lyx_patch | sed -e "s/^$lyx_minor//" -e 's/^.//'`
768 lyx_release=`echo $lyx_patch | sed -e 's/[[^0-9]].*//'`
769 lyx_patch=`echo $lyx_patch | sed -e "s/^$lyx_release//" -e 's/^[[.]]//' -e 's/[[^0-9]].*//'`
770 test "x$lyx_patch" = "x" && lyx_patch=0
771 lyx_dir_ver=LYX_DIR_${lyx_major}${lyx_minor}x
772 lyx_userdir_ver=LYX_USERDIR_${lyx_major}${lyx_minor}x
773 AC_SUBST(LYX_MAJOR_VERSION,$lyx_major)
774 AC_SUBST(LYX_MINOR_VERSION,$lyx_minor)
775 AC_SUBST(LYX_RELEASE_LEVEL,$lyx_release)
776 AC_SUBST(LYX_RELEASE_PATCH,$lyx_patch)
777 AC_SUBST(LYX_DIR_VER,"$lyx_dir_ver")
778 AC_SUBST(LYX_USERDIR_VER,"$lyx_userdir_ver")