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)
6 dnl Usage LYX_GET_VERSION Sets "lyx_version" to the version of LyX being
7 dnl built, displays it and sets variable "lyx_devel" to yes or no depending
8 dnl whether the version is a development release or not.
9 AC_DEFUN(LYX_GET_VERSION,[
11 VERSION=`grep '#define *LYX_VERSION' $1 |
12 sed -e 's/^.*"\(.*\)"$/\1/' 2>/dev/null`
13 echo "configuring LyX version $VERSION"
14 if echo "$VERSION" | grep 'cvs' >/dev/null ; then
16 echo "WARNING: This is a development version. Expect bugs."
20 if echo "$VERSION" | grep 'pre' > /dev/null ; then
22 echo "WARNING: This is a prerelease. Be careful and backup your documents."
27 PACKAGE=lyx${program_suffix}
28 AC_SUBST(lyx_devel_version)
29 if test $lyx_devel_version = yes ; then
30 AC_DEFINE(DEVEL_VERSION, 1, Define if you are building a development version of LyX)
33 dnl Usage: LYX_ERROR(message) Displays the warning "message" and sets the
34 dnl flag lyx_error to yes.
36 lyx_error_txt="$lyx_error_txt
42 dnl Usage: LYX_WARNING(message) Displays the warning "message" and sets the
43 dnl flag lyx_warning to yes.
44 AC_DEFUN(LYX_WARNING,[
45 lyx_warning_txt="$lyx_warning_txt
51 dnl Usage: LYX_LIB_ERROR(file,library) Displays an error message indication
52 dnl that 'file' cannot be found because 'lib' may be uncorrectly installed.
53 AC_DEFUN(LYX_LIB_ERROR,[
54 LYX_ERROR([Cannot find $1. Please check that the $2 library
55 is correctly installed on your system.])])
58 dnl Usage: LYX_CHECK_ERRORS Displays a warning message if a LYX_ERROR
59 dnl has occured previously.
60 AC_DEFUN(LYX_CHECK_ERRORS,[
61 if test x$lyx_error = xyes; then
63 **** The following problems have been detected by configure.
64 **** Please check the messages below before running 'make'.
65 **** (see the section 'Problems' in the INSTALL file)
68 deleting cache $cache_file
73 if test x$lyx_warning = xyes; then
75 === The following minor problems have been detected by configure.
76 === Please check the messages below before running 'make'.
77 === (see the section 'Problems' in the INSTALL file)
82 Configuration of LyX was successful.
83 Type 'make' to compile the program,
84 and then 'make install' to install it.
89 dnl LYX_SEARCH_PROG(VARIABLE-NAME,PROGRAMS-LIST,ACTION-IF-FOUND)
91 define(LYX_SEARCH_PROG,[dnl
92 for ac_prog in $2 ; do
93 # Extract the first word of "$ac_prog", so it can be a program name with args.
94 set dummy $ac_prog ; ac_word=$[2]
95 if test -z "[$]$1"; then
96 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
97 for ac_dir in $PATH; do
98 test -z "$ac_dir" && ac_dir=.
99 if test -f [$ac_dir/$ac_word]; then
107 if test -n "[$]$1"; then
113 test -n "[$]$1" && break
118 AC_DEFUN(LYX_PROG_CXX_WORKS,
121 AC_TRY_COMPILER([class foo { int bar; }; int main(){return(0);}], ac_cv_prog_cxx_works, ac_cv_prog_cxx_cross)
123 if test $ac_cv_prog_cxx_works = no; then
126 cross_compiling=$ac_cv_prog_cxx_cross
130 AC_DEFUN(LYX_PROG_CXX,
131 [AC_BEFORE([$0], [AC_PROG_CXXCPP])dnl
132 AC_MSG_CHECKING([for a working C++ compiler])
133 LYX_SEARCH_PROG(CXX, $CCC g++ gcc c++ CC cxx xlC cc++, LYX_PROG_CXX_WORKS)
135 if test -z "$CXX" ; then
136 AC_ERROR([Unable to find a working C++ compiler])
142 AC_MSG_CHECKING([whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler])
143 AC_MSG_RESULT($cross_compiling)
147 dnl We might want to get or shut warnings.
148 AC_ARG_WITH(warnings,
149 [ --with-warnings tell the compiler to display more warnings],,
150 [ if test $lyx_devel_version = yes -o $lyx_prerelease = yes && test $ac_cv_prog_gxx = yes ; then
155 if test x$with_warnings = xyes ; then
156 lyx_flags="$lyx_flags warnings"
157 AC_DEFINE(WITH_WARNINGS, 1,
158 [Define this if you want to see the warning directives put here and
159 there by the developpers to get attention])
162 # optimize less for development versions
163 if test $lyx_devel_version = yes -o $lyx_prerelease = yes ; then
169 # set the debug flags correctly.
170 if test $ac_cv_prog_gxx = yes; then
172 dnl Check whether -g works, even if CXXFLAGS is set, in case the package
173 dnl plays around with CXXFLAGS (such as to build both debugging and
174 dnl normal versions of a library), tasteless as that idea is.
175 ac_test_CXXFLAGS="${CXXFLAGS+set}"
176 ac_save_CXXFLAGS="$CXXFLAGS"
178 dnl Check the version of g++
179 gxx_version=`g++ --version`
182 if test "$ac_test_CXXFLAGS" = set; then
183 CXXFLAGS="$ac_save_CXXFLAGS"
184 elif test $ac_cv_prog_cxx_g = yes; then
186 2.95.1) CXXFLAGS="-g $lyx_opt -fpermissive -fno-rtti -fno-exceptions";;
187 2.95.*) CXXFLAGS="-g $lyx_opt -fno-rtti -fno-exceptions";;
188 2.96*) CXXFLAGS="-g $lyx_opt -fno-rtti -fno-exceptions";;
189 *2.91.*) CXXFLAGS="-g $lyx_opt -fno-rtti -fno-exceptions";;
190 *) CXXFLAGS="-g $lyx_opt -fno-rtti -fno-exceptions";;
195 if test x$with_warnings = xyes ; then
197 2.95.*) CXXFLAGS="$CXXFLAGS -W -Wall -Wconversion -Winline";;
198 2.96*) CXXFLAGS="$CXXFLAGS -W -Wall -Wconversion";;
199 *) CXXFLAGS="$CXXFLAGS -ansi -W -Wall -Wno-return-type";;
201 if test $lyx_devel_version = yes ; then
206 *) CXXFLAGS="$CXXFLAGS -pedantic";;
212 test "${CXXFLAGS+set}" = set || CXXFLAGS="-g"
217 dnl Usage: LYX_CXX_RTTI : checks whether the C++ compiler
219 AC_DEFUN(LYX_CXX_RTTI,[
220 ### Check whether the compiler supports runtime type information
221 AC_CACHE_CHECK(whether the C++ compiler supports RTTI,lyx_cv_rtti,
225 virtual int tag() { return 0; }
227 class derived1 : public rtti {
229 int tag() { return 1; }
231 class derived2 : public rtti {
233 int tag() { return 2; }
236 derived1 * foo1 = new derived1();
237 derived2 * foo2 = new derived2();
239 derived1 * bar1 = dynamic_cast<derived1 *>(bar);
243 bar1 = dynamic_cast<derived1 *>(bar);
248 ],lyx_cv_rtti=yes,lyx_cv_rtti=no,lyx_cv_rtti=no)
250 if test x$lyx_cv_rtti = xyes ; then
251 AC_DEFINE(HAVE_RTTI, 1,
252 [Define to 1 if your compiler supports runtime type information])
256 dnl Usage: LYX_CXX_EXPLICIT : checks whether the C++ compiler
257 dnl understands the "explicit" directive.
258 AC_DEFUN(LYX_CXX_EXPLICIT,[
259 ### Check whether the compiler understands the keyword `explicit'
260 AC_CACHE_CHECK(whether the C++ compiler understands explicit,lyx_cv_explicit,
265 };],,lyx_cv_explicit=yes,lyx_cv_explicit=no)
267 if test $lyx_cv_explicit = no ; then
268 AC_DEFINE(explicit,[ ],
269 [Define to nothing if your compiler does not understand the
270 'explicit' directive])
274 dnl Usage: LYX_CXX_STL_STACK : checks whether the C++ compiler
275 dnl has a working stl stack template
276 AC_DEFUN(LYX_CXX_STL_STACK,[
277 AC_CACHE_CHECK(for broken STL stack template,lyx_cv_broken_stack,
284 ],lyx_cv_broken_stack=no,lyx_cv_broken_stack=yes)
286 if test $lyx_cv_broken_stack = yes ; then
287 AC_DEFINE(BROKEN_STL_STACK, 1,
288 [Define if you have the STL from libg++ 2.7.x, where stack<> is not defined
293 dnl Usage: LYX_STD_COUNT : checks wherer the C++ library have a conforming
294 dnl count template, if not the old HP version is assumed.
295 AC_DEFUN(LYX_STD_COUNT,[
296 AC_CACHE_CHECK(for conforming std::count,lyx_cv_std_count,
302 int countChar(string const & a, char const c)
304 return count(a.begin(), a.end(), c);
308 int i = countChar(a, 'l');
309 ],lyx_cv_std_count=yes,lyx_cv_std_count=no)
311 if test $lyx_cv_std_count = yes ; then
312 AC_DEFINE(HAVE_STD_COUNT, 1,
313 [Define if you have a conforming std::count template, otherwise HP version of count template is assumed.])
317 dnl Usage: LYX_CXX_STL_MODERN_STREAMS : checks whether the C++ compiler
318 dnl supports modern STL streams
319 AC_DEFUN(LYX_CXX_STL_MODERN_STREAMS,[
320 AC_CACHE_CHECK(for modern STL streams,lyx_cv_modern_streams,
324 std::streambuf * test = std::cerr.rdbuf();
326 ],lyx_cv_modern_streams=yes,lyx_cv_modern_streams=no)
328 if test $lyx_cv_modern_streams = yes ; then
329 AC_DEFINE(MODERN_STL_STREAMS, 1,
330 [Define if you have modern standard-compliant STL streams])
334 dnl Usage: LYX_CXX_STL_STRING : checks whether the C++ compiler
335 dnl has a working stl string container, the check is really stupid
336 dnl and could need some improvement.
337 AC_DEFUN(LYX_CXX_STL_STRING,[
338 AC_REQUIRE([LYX_PROG_CXX])
339 AC_MSG_CHECKING(whether the included std::string should be used)
340 AC_ARG_WITH(included-string,
341 [ --with-included-string use LyX string class instead of STL string],
342 [with_included_string=$withval],
347 string a("hello there");
351 int t = a.compare(a.length() - 1, 1, s);
354 with_included_string=no
356 with_included_string=yes
360 if test x$with_included_string = xyes ; then
361 AC_DEFINE(USE_INCLUDED_STRING, 1,
362 [Define to use the lyxstring class bundled with LyX.])
363 lyx_flags="$lyx_flags included-string"
365 AM_CONDITIONAL(USE_LYXSTRING, test x$with_included_string = xyes)
366 AC_MSG_RESULT([$with_included_string])
370 dnl Usage: LYX_REGEX : checks if the header regex.h is available
371 dnl if it is not available the automake variable USE_REGEX will be
372 dnl defined and the regex.h and regex.c that we provide will be used.
374 AC_CHECK_HEADERS(regex.h, lyx_regex=no, lyx_regex=yes)
375 AM_CONDITIONAL(USE_REGEX, test x$lyx_regex = xyes)
380 AC_DEFUN(LYX_CXX_MUTABLE, [
381 AC_REQUIRE([LYX_PROG_CXX])
382 AC_MSG_CHECKING(if C++ compiler supports mutable)
388 void foo() const { c=0; }
393 AC_DEFINE(HAVE_MUTABLE, 1,
394 [Defined if you compiler supports 'mutable'.])
398 AC_MSG_RESULT([$ac_mutable])
403 AC_DEFUN(LYX_CXX_PARTIAL, [
404 AC_REQUIRE([LYX_PROG_CXX])
405 AC_MSG_CHECKING(if C++ compiler supports partial specialization)
408 template<class T, class K>
412 template<class T> class k<void,T> { };
417 ac_partial_specialization=yes
418 AC_DEFINE(HAVE_PARTIAL_SPECIALIZATION, 1,
419 [Defined if your compiler supports partial specialization.])
421 ac_partial_specialization=no
423 AC_MSG_RESULT([$ac_partial_specialization])
427 dnl Usage: LYX_CXX_NAMESPACES : checks whether the C++ compiler
428 dnl has a correct namespace handling and define CXX_WORKING_NAMESPACES
429 dnl if true. This macro does not do a thourough test, but it should be
430 dnl good enough to suit our needs.
431 AC_DEFUN(LYX_CXX_NAMESPACES,[
432 AC_CACHE_CHECK(for correct namespaces support,lyx_cv_cxx_namespace,
440 ],lyx_cv_cxx_namespace=yes,lyx_cv_cxx_namespace=no)
442 if test $lyx_cv_cxx_namespace = yes ; then
443 AC_DEFINE(CXX_WORKING_NAMESPACES, 1,
444 [Define if your C++ compiler has correct support for namespaces])
448 dnl Usage: LYX_CXX_CHEADERS : checks whether the C++ compiler
449 dnl provides wrappers for C headers and use our alternate version otherwise.
450 AC_DEFUN(LYX_CXX_CHEADERS,[
451 AC_CACHE_CHECK(for C headers wrappers,lyx_cv_cxx_cheaders,
461 #include <ctime>],[lyx_cv_cxx_cheaders=yes],[lyx_cv_cxx_cheaders=no])])
462 if test $lyx_cv_cxx_cheaders = no ; then
463 LYX_ADD_INC_DIR(lyx_cppflags,\$(top_srcdir)/src/cheaders)
467 dnl Usage LYX_PATH_XPM: Checks for xpm library and header
468 AC_DEFUN(LYX_PATH_XPM,[
469 ### Check for Xpm library
470 AC_CHECK_LIB(Xpm, XpmCreateBufferFromImage,LYX_LIBS="-lXpm $LYX_LIBS",
471 [LYX_LIB_ERROR(libXpm,Xpm)], $LYX_LIBS)
473 ### Check for Xpm headers
474 lyx_cv_xpm_h_location="<xpm.h>"
475 AC_CHECK_HEADER(X11/xpm.h,[
476 ac_cv_header_xpm_h=yes
477 lyx_cv_xpm_h_location="<X11/xpm.h>"],[
478 AC_CHECK_HEADER(xpm.h,[],[
479 LYX_LIB_ERROR(xpm.h,Xpm)])])
480 AC_DEFINE_UNQUOTED(XPM_H_LOCATION,$lyx_cv_xpm_h_location)
482 ### Test for the header version
483 if test $ac_cv_header_xpm_h = yes; then
484 AC_CACHE_CHECK([xpm header version],lyx_cv_xpmversion,
485 [ cat > conftest.$ac_ext <<EOF
486 #line __oline__ "configure"
487 #include "confdefs.h"
489 #include XPM_H_LOCATION
490 "%%%"lyx_cv_xpmv=XpmVersion;lyx_cv_xpmr=XpmRevision"%%%"
492 eval `(eval "$ac_cpp conftest.$ac_ext") 2>&5 | \
493 grep '^"%%%"' 2>/dev/null | \
494 sed -e 's/^"%%%"\(.*\)"%%%"/\1/' -e 's/ //g'`
495 case "$lyx_cv_xpmr" in
497 [0-9]) lyxxpmr_alpha=`echo $lyx_cv_xpmr |tr 123456789 abcdefghi`
498 lyxxpmv_alpha=" (aka 3.$lyx_cv_xpmv$lyxxpmr_alpha)";;
502 lyx_cv_xpmversion="$lyx_cv_xpmv.$lyx_cv_xpmr$lyxxpmv_alpha"
504 case "$lyx_cv_xpmr" in
506 [789]|[0-9][0-9]*) ;;
508 *) LYX_WARNING([Version $lyx_cv_xpmversion of the Xpm library is a bit old.
509 If you experience strange crashes with LyX, try to upgrade
510 to at least version 4.7 (aka 3.4g).
511 If you have installed a newer version of the library, check whether you
512 have an old xpm.h header file in your include path.]);;
517 dnl Usage LYX_PATH_XFORMS: Checks for xforms library and flags
518 AC_DEFUN(LYX_PATH_XFORMS,[
519 ### Check for xforms library
520 AC_CHECK_LIB(forms, fl_initialize, LYX_LIBS="-lforms $LYX_LIBS",
521 [AC_CHECK_LIB(xforms, fl_initialize, LYX_LIBS="-lxforms $LYX_LIBS",
522 [LYX_LIB_ERROR(libforms or libxforms,xforms)], $LYX_LIBS)], $LYX_LIBS)
524 ### Check for xforms headers
525 lyx_cv_forms_h_location="<forms.h>"
526 AC_CHECK_HEADER(X11/forms.h,[
527 ac_cv_header_forms_h=yes
528 lyx_cv_forms_h_location="<X11/forms.h>"],[
529 AC_CHECK_HEADER(forms.h,[],[
530 LYX_LIB_ERROR(forms.h,forms)])])
531 AC_DEFINE_UNQUOTED(FORMS_H_LOCATION,$lyx_cv_forms_h_location)
532 if test $ac_cv_header_forms_h = yes; then
533 AC_CACHE_CHECK([xforms header version],lyx_cv_xfversion,
534 [ cat > conftest.$ac_ext <<EOF
535 #line __oline__ "configure"
536 #include "confdefs.h"
538 #include FORMS_H_LOCATION
539 #if ! defined(FL_INCLUDE_VERSION)
542 "%%%"FL_VERSION.FL_REVISION"%%%"
545 lyx_cv_xfversion=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | \
546 grep '^"%%%"' 2>/dev/null | \
547 sed -e 's/^"%%%"\(.*\)"%%%"/\1/' -e 's/ //g'`
549 case "$lyx_cv_xfversion" in
550 "(unknown)"|0.8[1-7])
552 Version $lyx_cv_xfversion of xforms is not compatible with LyX.
553 This version of LyX works best with versions 0.88 (recommended) and later.) ;;
555 0.89) LYX_WARNING(dnl
556 LyX should work ok with version $lyx_cv_xfversion of xforms[,] but
557 it is an unproven version and might still have some bugs. If you
558 have problems[,] please use version 0.88 instead.) ;;
560 Version $lyx_cv_xfversion of xforms might not be compatible with LyX[,]
561 since it is newer than 0.88. You might have slight problems with it.);;
566 dnl Usage: LYX_HPUX Checks for HP-UX and update CXXFLAGS accordingly
568 [#It seems that HPUX requires using -fpcc-struct-return with gcc.
569 AC_CACHE_CHECK(for HP-UX,ac_cv_hpux,[
570 os=`uname -s | tr '[A-Z]' '[a-z]'`
572 test "$os" = hp-ux && ac_cv_hpux=yes])
573 if test "$ac_cv_hpux" = yes; then
574 test "x$GXX" = xyes && CXXFLAGS="$CXXFLAGS -fpcc-struct-return"
578 dnl Usage: LYX_SUNOS4 Checks for SunOS 4.x and sets the flag lyx_broken_headers
581 [#The headers are not correct under SunOS4
582 AC_CACHE_CHECK(for SunOS 4.x,ac_cv_sunos4,[
584 os=`uname -a | sed -e 's/^\([^ ]*\) [^ ]* \([0-9]\)\..*/\1\2/'`
585 changequote([, ]) dnl
587 test "$os" = SunOS4 && ac_cv_sunos4=yes])
588 if test "$ac_cv_sunos4" = yes; then
589 test "x$GXX" = xyes && lyx_broken_headers=yes
593 dnl Usage: LYX_SCO Checks for SCO and sets the flag lyx_broken_headers
596 [AC_CACHE_CHECK(for SCO 3.2v4,ac_cv_sco,[
598 if test `uname -s` != "SCO_SV"; then
599 lyx_machine_rel=`uname -m`:`uname -r`
600 if test $lyx_machine_rel = i386:3.2 || test $lyx_machine_rel = i486:3.2;
602 if test -f /usr/options/cb.name; then
604 elif /bin/uname -X 2>/dev/null >/dev/null ; then
609 if test "$ac_cv_sco" = yes; then
610 test "x$GXX" = xyes && lyx_broken_headers=yes
613 dnl Usage: LYX_FUNC_PUTENV_ARGTYPE
614 dnl Checks whether putenv() takes 'char const *' or 'char *' as
615 dnl argument. This is needed because Solaris 7 (wrongly?) uses 'char *',
616 dnl while everybody else uses the former...
617 AC_DEFUN(LYX_FUNC_PUTENV_ARGTYPE,
618 [AC_MSG_CHECKING([type of argument for putenv()])
619 AC_CACHE_VAL(lyx_cv_func_putenv_arg,dnl
621 [#include <cstdlib>],
622 [char const * foo = "bar";
624 [lyx_cv_func_putenv_arg='char const *'],[lyx_cv_func_putenv_arg='char *'])])
625 AC_MSG_RESULT($lyx_cv_func_putenv_arg)
626 AC_DEFINE_UNQUOTED(PUTENV_TYPE_ARG,$lyx_cv_func_putenv_arg,dnl
627 [Define to the type of the argument of putenv(). Needed on Solaris 7.])])
630 dnl Usage: LYX_WITH_DIR(dir-name,desc,dir-var-name,default-value,
631 dnl [default-yes-value])
632 dnl Adds a --with-'dir-name' option (described by 'desc') and puts the
633 dnl resulting directory name in 'dir-var-name'.
634 AC_DEFUN(LYX_WITH_DIR,[
635 AC_ARG_WITH($1,[ --with-$1 specify $2])
636 AC_MSG_CHECKING([for $2])
637 if test -z "$with_$3"; then
638 AC_CACHE_VAL(lyx_cv_$3, lyx_cv_$3=$4)
640 test "x$with_$3" = xyes && with_$3=$5
643 AC_MSG_RESULT($lyx_cv_$3)])
646 dnl Usage: LYX_LOOP_DIR(value,action)
647 dnl Executes action for values of variable `dir' in `values'. `values' can
648 dnl use ":" as a separator.
649 AC_DEFUN(LYX_LOOP_DIR,[
650 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
651 for dir in `eval "echo $1"`; do
652 if test ! "$dir" = NONE; then
653 test ! -d "$dir" && AC_ERROR([\"$dir\" is not a directory])
661 dnl Usage: LYX_ADD_LIB_DIR(var-name,dir) Adds a -L directive to variable
663 AC_DEFUN(LYX_ADD_LIB_DIR,[
665 if test "`(uname) 2>/dev/null`" = SunOS &&
666 uname -r | grep '^5' >/dev/null; then
667 if test $ac_cv_prog_gxx = yes ; then
668 $1="${$1} -Wl[,]-R$2"
675 dnl Usage: LYX_ADD_INC_DIR(var-name,dir) Adds a -I directive to variable
677 AC_DEFUN(LYX_ADD_INC_DIR,[$1="${$1} -I$2 "])
679 ### Check for a headers existence and location iff it exists
680 ## This is supposed to be a generalised version of LYX_STL_STRING_FWD
681 ## It almost works. I've tried a few variations but they give errors
682 ## of one sort or other: bad substitution or file not found etc. The
683 ## actual header _is_ found though and the cache variable is set however
684 ## the reported setting (on screen) is equal to $ac_safe for some unknown
686 AC_DEFUN(LYX_PATH_HEADER,
687 [ AC_CHECK_HEADER($1,[
688 ac_tr_safe=PATH_`echo $ac_safe | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
689 AC_CACHE_CHECK([path to $1],lyx_cv_path_$ac_safe,
690 [ cat > conftest.$ac_ext <<EOF
691 #line __oline__ "configure"
692 #include "confdefs.h"
696 lyx_cv_path_$ac_safe=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | \
697 grep $1 2>/dev/null | \
698 sed -e 's/.*\(".*$1"\).*/\1/' -e "1q"`
700 AC_DEFINE_UNQUOTED(${ac_tr_safe},${lyx_cv_path_$ac_safe})])
702 ### end of LYX_PATH_HEADER
704 ### Check for stl_string_fwd.h existence and location if it exists
705 AC_DEFUN(LYX_STL_STRING_FWD,
706 [ AC_CHECK_HEADER(stl_string_fwd.h,[
707 AC_CACHE_CHECK([path to stl_string_fwd.h],lyx_cv_path_stl_string_fwd_h,
708 [ cat > conftest.$ac_ext <<EOF
709 #line __oline__ "configure"
710 #include "confdefs.h"
712 #include <stl_string_fwd.h>
714 lyx_cv_path_stl_string_fwd_h=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | \
715 grep 'stl_string_fwd.h' 2>/dev/null | \
716 sed -e 's/.*\(".*stl_string_fwd.h"\).*/\1/' -e "1q"`
718 AC_DEFINE_UNQUOTED(STL_STRING_FWD_H_LOCATION,$lyx_cv_path_stl_string_fwd_h,
719 [define this to the location of stl_string_fwd.h to be used with #include,
720 NOTE: Do not set it to <stl_string_fwd.h> as that will find the LyX
721 supplied version of the header.
722 e.g. <../include/stl_string_fwd.h> or better yet use an absolute path])])
726 dnl AC_VALIDATE_CACHE_SYSTEM_TYPE[(cmd)]
727 dnl if the cache file is inconsistent with the current host,
728 dnl target and build system types, execute CMD or print a default
730 AC_DEFUN(AC_VALIDATE_CACHE_SYSTEM_TYPE, [
731 AC_REQUIRE([AC_CANONICAL_SYSTEM])
732 AC_MSG_CHECKING([config.cache system type])
733 if { test x"${ac_cv_host_system_type+set}" = x"set" &&
734 test x"$ac_cv_host_system_type" != x"$host"; } ||
735 { test x"${ac_cv_build_system_type+set}" = x"set" &&
736 test x"$ac_cv_build_system_type" != x"$build"; } ||
737 { test x"${ac_cv_target_system_type+set}" = x"set" &&
738 test x"$ac_cv_target_system_type" != x"$target"; }; then
739 AC_MSG_RESULT([different])
741 [AC_MSG_ERROR(["you must remove config.cache and restart configure"])])
743 AC_MSG_RESULT([same])
745 ac_cv_host_system_type="$host"
746 ac_cv_build_system_type="$build"
747 ac_cv_target_system_type="$target"
750 dnl We use this until autoconf fixes its version.
751 AC_DEFUN(LYX_FUNC_SELECT_ARGTYPES,
752 [AC_MSG_CHECKING([types of arguments for select()])
753 AC_CACHE_VAL(ac_cv_func_select_arg234,dnl
754 [AC_CACHE_VAL(ac_cv_func_select_arg1,dnl
755 [AC_CACHE_VAL(ac_cv_func_select_arg5,dnl
756 [for ac_cv_func_select_arg234 in 'fd_set *' 'int *' 'void *'; do
757 for ac_cv_func_select_arg1 in 'int' 'size_t' 'unsigned long' 'unsigned'; do for ac_cv_func_select_arg5 in 'struct timeval *' 'const struct timeval *'; do
759 [#ifdef HAVE_SYS_TYPES_H
760 #include <sys/types.h>
762 #ifdef HAVE_SYS_TIME_H
763 #include <sys/time.h>
765 #ifdef HAVE_SYS_SELECT_H
766 #include <sys/select.h>
768 #ifdef HAVE_SYS_SOCKET_H
769 #include <sys/socket.h>
771 extern int select ($ac_cv_func_select_arg1,$ac_cv_func_select_arg234,$ac_cv_func_select_arg234,$ac_cv_func_select_arg234,$ac_cv_func_select_arg5);],,dnl
772 [ac_not_found=no ; break 3],ac_not_found=yes)
779 if test "$ac_not_found" = yes; then
780 ac_cv_func_select_arg1=int
781 ac_cv_func_select_arg234='int *'
782 ac_cv_func_select_arg5='struct timeval *'
784 AC_MSG_RESULT([$ac_cv_func_select_arg1,$ac_cv_func_select_arg234,$ac_cv_func_select_arg5])
785 AC_DEFINE_UNQUOTED(SELECT_TYPE_ARG1,$ac_cv_func_select_arg1)
786 AC_DEFINE_UNQUOTED(SELECT_TYPE_ARG234,($ac_cv_func_select_arg234))
787 AC_DEFINE_UNQUOTED(SELECT_TYPE_ARG5,($ac_cv_func_select_arg5))