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_GET_VERSION Sets "lyx_version" to the version of LyX being
8 dnl built, displays it and sets variable "lyx_devel" to yes or no depending
9 dnl whether the version is a development release or not.
10 AC_DEFUN(LYX_GET_VERSION,[
12 VERSION=`grep '#define *LYX_VERSION' $1 |
13 sed -e 's/^.*"\(.*\)"$/\1/' 2>/dev/null`
14 echo "configuring LyX version $VERSION"
15 if echo "$VERSION" | grep 'cvs' >/dev/null ; then
17 echo "WARNING: This is a development version. Expect bugs."
21 if echo "$VERSION" | grep 'pre' > /dev/null ; then
23 echo "WARNING: This is a prerelease. Be careful and backup your documents."
28 PACKAGE=lyx${program_suffix}
29 AC_SUBST(lyx_devel_version)
30 if test $lyx_devel_version = yes ; then
31 AC_DEFINE(DEVEL_VERSION, 1, Define if you are building a development version of LyX)
34 dnl Usage: LYX_ERROR(message) Displays the warning "message" and sets the
35 dnl flag lyx_error to yes.
37 lyx_error_txt="$lyx_error_txt
43 dnl Usage: LYX_WARNING(message) Displays the warning "message" and sets the
44 dnl flag lyx_warning to yes.
45 AC_DEFUN(LYX_WARNING,[
46 lyx_warning_txt="$lyx_warning_txt
52 dnl Usage: LYX_LIB_ERROR(file,library) Displays an error message indication
53 dnl that 'file' cannot be found because 'lib' may be uncorrectly installed.
54 AC_DEFUN(LYX_LIB_ERROR,[
55 LYX_ERROR([Cannot find $1. Please check that the $2 library
56 is correctly installed on your system.])])
59 dnl Usage: LYX_CHECK_ERRORS Displays a warning message if a LYX_ERROR
60 dnl has occured previously.
61 AC_DEFUN(LYX_CHECK_ERRORS,[
62 if test x$lyx_error = xyes; then
64 **** The following problems have been detected by configure.
65 **** Please check the messages below before running 'make'.
66 **** (see the section 'Problems' in the INSTALL file)
69 deleting cache $cache_file
74 if test x$lyx_warning = xyes; then
76 === The following minor problems have been detected by configure.
77 === Please check the messages below before running 'make'.
78 === (see the section 'Problems' in the INSTALL file)
83 Configuration of LyX was successful.
84 Type 'make' to compile the program,
85 and then 'make install' to install it.
90 dnl LYX_SEARCH_PROG(VARIABLE-NAME,PROGRAMS-LIST,ACTION-IF-FOUND)
92 define(LYX_SEARCH_PROG,[dnl
93 for ac_prog in $2 ; do
94 # Extract the first word of "$ac_prog", so it can be a program name with args.
95 set dummy $ac_prog ; ac_word=$[2]
96 if test -z "[$]$1"; then
97 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
98 for ac_dir in $PATH; do
99 test -z "$ac_dir" && ac_dir=.
100 if test -f [$ac_dir/$ac_word]; then
108 if test -n "[$]$1"; then
114 test -n "[$]$1" && break
119 AC_DEFUN(LYX_PROG_CXX_WORKS,
122 AC_TRY_COMPILER([class foo { int bar; }; int main(){return(0);}], ac_cv_prog_cxx_works, ac_cv_prog_cxx_cross)
124 if test $ac_cv_prog_cxx_works = no; then
127 cross_compiling=$ac_cv_prog_cxx_cross
131 AC_DEFUN(LYX_PROG_CXX,
132 [AC_BEFORE([$0], [AC_PROG_CXXCPP])dnl
133 AC_MSG_CHECKING([for a working C++ compiler])
134 LYX_SEARCH_PROG(CXX, $CCC g++ gcc c++ CC cxx xlC cc++, LYX_PROG_CXX_WORKS)
136 if test -z "$CXX" ; then
137 AC_ERROR([Unable to find a working C++ compiler])
143 AC_MSG_CHECKING([whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler])
144 AC_MSG_RESULT($cross_compiling)
148 dnl We might want to get or shut warnings.
149 AC_ARG_WITH(warnings,
150 [ --with-warnings tell the compiler to display more warnings],,
151 [ if test $lyx_devel_version = yes -o $lyx_prerelease = yes && test $ac_cv_prog_gxx = yes ; then
156 if test x$with_warnings = xyes ; then
157 lyx_flags="$lyx_flags warnings"
158 AC_DEFINE(WITH_WARNINGS, 1,
159 [Define this if you want to see the warning directives put here and
160 there by the developpers to get attention])
163 # optimize less for development versions
164 if test $lyx_devel_version = yes -o $lyx_prerelease = yes ; then
170 # set the debug flags correctly.
171 if test $ac_cv_prog_gxx = yes; then
173 dnl Check whether -g works, even if CXXFLAGS is set, in case the package
174 dnl plays around with CXXFLAGS (such as to build both debugging and
175 dnl normal versions of a library), tasteless as that idea is.
176 ac_test_CXXFLAGS="${CXXFLAGS+set}"
177 ac_save_CXXFLAGS="$CXXFLAGS"
179 dnl Check the version of g++
180 gxx_version=`${CXX} --version`
183 if test "$ac_test_CXXFLAGS" = set; then
184 CXXFLAGS="$ac_save_CXXFLAGS"
185 elif test $ac_cv_prog_cxx_g = yes; then
187 2.95.1) CXXFLAGS="-g $lyx_opt -fpermissive -fno-rtti -fno-exceptions";;
188 2.95.*) CXXFLAGS="-g $lyx_opt -fno-rtti -fno-exceptions";;
189 2.96*) CXXFLAGS="-g $lyx_opt -fhonor-std";;
190 *2.91.*) CXXFLAGS="-g $lyx_opt -fno-rtti -fno-exceptions";;
191 *) CXXFLAGS="-g $lyx_opt -fno-rtti -fno-exceptions";;
196 if test x$with_warnings = xyes ; then
198 2.95.*) CXXFLAGS="$CXXFLAGS -W -Wall -Wconversion -Winline";;
199 2.96*) CXXFLAGS="$CXXFLAGS -W -Wall -Wconversion -Winline";;
200 *) CXXFLAGS="$CXXFLAGS -ansi -W -Wall -Wno-return-type";;
202 if test $lyx_devel_version = yes ; then
207 *) CXXFLAGS="$CXXFLAGS -pedantic";;
213 test "${CXXFLAGS+set}" = set || CXXFLAGS="-g"
218 dnl Usage: LYX_CXX_RTTI : checks whether the C++ compiler
220 AC_DEFUN(LYX_CXX_RTTI,[
221 ### Check whether the compiler supports runtime type information
222 AC_CACHE_CHECK(whether the C++ compiler supports RTTI,lyx_cv_rtti,
226 virtual int tag() { return 0; }
228 class derived1 : public rtti {
230 int tag() { return 1; }
232 class derived2 : public rtti {
234 int tag() { return 2; }
237 derived1 * foo1 = new derived1();
238 derived2 * foo2 = new derived2();
240 derived1 * bar1 = dynamic_cast<derived1 *>(bar);
244 bar1 = dynamic_cast<derived1 *>(bar);
249 ],lyx_cv_rtti=yes,lyx_cv_rtti=no,lyx_cv_rtti=no)
251 if test x$lyx_cv_rtti = xyes ; then
252 AC_DEFINE(HAVE_RTTI, 1,
253 [Define to 1 if your compiler supports runtime type information])
257 dnl Usage: LYX_CXX_EXPLICIT : checks whether the C++ compiler
258 dnl understands the "explicit" directive.
259 AC_DEFUN(LYX_CXX_EXPLICIT,[
260 ### Check whether the compiler understands the keyword `explicit'
261 AC_CACHE_CHECK(whether the C++ compiler understands explicit,lyx_cv_explicit,
266 };],,lyx_cv_explicit=yes,lyx_cv_explicit=no)
268 if test $lyx_cv_explicit = no ; then
269 AC_DEFINE(explicit,[ ],
270 [Define to nothing if your compiler does not understand the
271 'explicit' directive])
275 dnl Usage: LYX_CXX_STL_STACK : checks whether the C++ compiler
276 dnl has a working stl stack template
277 AC_DEFUN(LYX_CXX_STL_STACK,[
278 AC_CACHE_CHECK(for broken STL stack template,lyx_cv_broken_stack,
285 ],lyx_cv_broken_stack=no,lyx_cv_broken_stack=yes)
287 if test $lyx_cv_broken_stack = yes ; then
288 AC_DEFINE(BROKEN_STL_STACK, 1,
289 [Define if you have the STL from libg++ 2.7.x, where stack<> is not defined
294 dnl Usage: LYX_STD_COUNT : checks wherer the C++ library have a conforming
295 dnl count template, if not the old HP version is assumed.
296 AC_DEFUN(LYX_STD_COUNT,[
297 AC_CACHE_CHECK(for conforming std::count,lyx_cv_std_count,
303 int countChar(string const & a, char const c)
305 return count(a.begin(), a.end(), c);
309 int i = countChar(a, 'l');
310 ],lyx_cv_std_count=yes,lyx_cv_std_count=no)
312 if test $lyx_cv_std_count = yes ; then
313 AC_DEFINE(HAVE_STD_COUNT, 1,
314 [Define if you have a conforming std::count template, otherwise HP version of count template is assumed.])
318 dnl Usage: LYX_CXX_STL_MODERN_STREAMS : checks whether the C++ compiler
319 dnl supports modern STL streams
320 AC_DEFUN(LYX_CXX_STL_MODERN_STREAMS,[
321 AC_CACHE_CHECK(for modern STL streams,lyx_cv_modern_streams,
325 std::streambuf * test = std::cerr.rdbuf();
327 ],lyx_cv_modern_streams=yes,lyx_cv_modern_streams=no)
329 if test $lyx_cv_modern_streams = yes ; then
330 AC_DEFINE(MODERN_STL_STREAMS, 1,
331 [Define if you have modern standard-compliant STL streams])
335 dnl Usage: LYX_CXX_STL_STRING : checks whether the C++ compiler
336 dnl has a working stl string container, the check is really stupid
337 dnl and could need some improvement.
338 AC_DEFUN(LYX_CXX_STL_STRING,[
339 AC_REQUIRE([LYX_PROG_CXX])
340 AC_MSG_CHECKING(whether the included std::string should be used)
341 AC_ARG_WITH(included-string,
342 [ --with-included-string use LyX string class instead of STL string],
343 [with_included_string=$withval],
348 string a("hello there");
352 int t = a.compare(a.length() - 1, 1, s);
355 with_included_string=no
357 with_included_string=yes
361 if test x$with_included_string = xyes ; then
362 AC_DEFINE(USE_INCLUDED_STRING, 1,
363 [Define to use the lyxstring class bundled with LyX.])
364 lyx_flags="$lyx_flags included-string"
366 AM_CONDITIONAL(USE_LYXSTRING, test x$with_included_string = xyes)
367 AC_MSG_RESULT([$with_included_string])
371 dnl Usage: LYX_REGEX : checks if the header regex.h is available
372 dnl if it is not available the automake variable USE_REGEX will be
373 dnl defined and the regex.h and regex.c that we provide will be used.
375 AC_CHECK_HEADERS(regex.h, lyx_regex=no, lyx_regex=yes)
376 AM_CONDITIONAL(USE_REGEX, test x$lyx_regex = xyes)
381 AC_DEFUN(LYX_CXX_MUTABLE, [
382 AC_REQUIRE([LYX_PROG_CXX])
383 AC_MSG_CHECKING(if C++ compiler supports mutable)
389 void foo() const { c=0; }
394 AC_DEFINE(HAVE_MUTABLE, 1,
395 [Defined if you compiler supports 'mutable'.])
399 AC_MSG_RESULT([$ac_mutable])
404 AC_DEFUN(LYX_CXX_PARTIAL, [
405 AC_REQUIRE([LYX_PROG_CXX])
406 AC_MSG_CHECKING(if C++ compiler supports partial specialization)
409 template<class T, class K>
413 template<class T> class k<void,T> { };
418 ac_partial_specialization=yes
419 AC_DEFINE(HAVE_PARTIAL_SPECIALIZATION, 1,
420 [Defined if your compiler supports partial specialization.])
422 ac_partial_specialization=no
424 AC_MSG_RESULT([$ac_partial_specialization])
428 dnl Usage: LYX_CXX_NAMESPACES : checks whether the C++ compiler
429 dnl has a correct namespace handling and define CXX_WORKING_NAMESPACES
430 dnl if true. This macro does not do a thourough test, but it should be
431 dnl good enough to suit our needs.
432 AC_DEFUN(LYX_CXX_NAMESPACES,[
433 AC_CACHE_CHECK(for correct namespaces support,lyx_cv_cxx_namespace,
441 ],lyx_cv_cxx_namespace=yes,lyx_cv_cxx_namespace=no)
443 if test $lyx_cv_cxx_namespace = yes ; then
444 AC_DEFINE(CXX_WORKING_NAMESPACES, 1,
445 [Define if your C++ compiler has correct support for namespaces])
449 dnl Usage: LYX_CXX_CHEADERS : checks whether the C++ compiler
450 dnl provides wrappers for C headers and use our alternate version otherwise.
451 AC_DEFUN(LYX_CXX_CHEADERS,[
452 AC_CACHE_CHECK(for C headers wrappers,lyx_cv_cxx_cheaders,
462 #include <ctime>],[lyx_cv_cxx_cheaders=yes],[lyx_cv_cxx_cheaders=no])])
463 if test $lyx_cv_cxx_cheaders = no ; then
464 LYX_ADD_INC_DIR(lyx_cppflags,\$(top_srcdir)/src/cheaders)
468 dnl Usage LYX_PATH_XPM: Checks for xpm library and header
469 AC_DEFUN(LYX_PATH_XPM,[
470 ### Check for Xpm library
471 AC_CHECK_LIB(Xpm, XpmCreateBufferFromImage,LYX_LIBS="-lXpm $LYX_LIBS",
472 [LYX_LIB_ERROR(libXpm,Xpm)], $LYX_LIBS)
474 ### Check for Xpm headers
475 lyx_cv_xpm_h_location="<xpm.h>"
476 AC_CHECK_HEADER(X11/xpm.h,[
477 ac_cv_header_xpm_h=yes
478 lyx_cv_xpm_h_location="<X11/xpm.h>"],[
479 AC_CHECK_HEADER(xpm.h,[],[
480 LYX_LIB_ERROR(xpm.h,Xpm)])])
481 AC_DEFINE_UNQUOTED(XPM_H_LOCATION,$lyx_cv_xpm_h_location)
483 ### Test for the header version
484 if test $ac_cv_header_xpm_h = yes; then
485 AC_CACHE_CHECK([xpm header version],lyx_cv_xpmversion,
486 [ cat > conftest.$ac_ext <<EOF
487 #line __oline__ "configure"
488 #include "confdefs.h"
490 #include XPM_H_LOCATION
491 "%%%"lyx_cv_xpmv=XpmVersion;lyx_cv_xpmr=XpmRevision"%%%"
493 eval `(eval "$ac_cpp conftest.$ac_ext") 2>&5 | \
494 grep '^"%%%"' 2>/dev/null | \
495 sed -e 's/^"%%%"\(.*\)"%%%"/\1/' -e 's/ //g'`
496 case "$lyx_cv_xpmr" in
498 [0-9]) lyxxpmr_alpha=`echo $lyx_cv_xpmr |tr 123456789 abcdefghi`
499 lyxxpmv_alpha=" (aka 3.$lyx_cv_xpmv$lyxxpmr_alpha)";;
503 lyx_cv_xpmversion="$lyx_cv_xpmv.$lyx_cv_xpmr$lyxxpmv_alpha"
505 case "$lyx_cv_xpmr" in
507 [789]|[0-9][0-9]*) ;;
509 *) LYX_WARNING([Version $lyx_cv_xpmversion of the Xpm library is a bit old.
510 If you experience strange crashes with LyX, try to upgrade
511 to at least version 4.7 (aka 3.4g).
512 If you have installed a newer version of the library, check whether you
513 have an old xpm.h header file in your include path.]);;
518 dnl Usage LYX_PATH_XFORMS: Checks for xforms library and flags
519 AC_DEFUN(LYX_PATH_XFORMS,[
520 ### Check for xforms library
521 AC_CHECK_LIB(forms, fl_initialize, LYX_LIBS="-lforms $LYX_LIBS",
522 [AC_CHECK_LIB(xforms, fl_initialize, LYX_LIBS="-lxforms $LYX_LIBS",
523 [LYX_LIB_ERROR(libforms or libxforms,xforms)], $LYX_LIBS)], $LYX_LIBS)
525 ### Check for xforms headers
526 lyx_cv_forms_h_location="<forms.h>"
527 AC_CHECK_HEADER(X11/forms.h,[
528 ac_cv_header_forms_h=yes
529 lyx_cv_forms_h_location="<X11/forms.h>"],[
530 AC_CHECK_HEADER(forms.h,[],[
531 LYX_LIB_ERROR(forms.h,forms)])])
532 AC_DEFINE_UNQUOTED(FORMS_H_LOCATION,$lyx_cv_forms_h_location)
533 if test $ac_cv_header_forms_h = yes; then
534 AC_CACHE_CHECK([xforms header version],lyx_cv_xfversion,
535 [ cat > conftest.$ac_ext <<EOF
536 #line __oline__ "configure"
537 #include "confdefs.h"
539 #include FORMS_H_LOCATION
540 #if ! defined(FL_INCLUDE_VERSION)
543 "%%%"FL_VERSION.FL_REVISION"%%%"
546 lyx_cv_xfversion=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | \
547 grep '^"%%%"' 2>/dev/null | \
548 sed -e 's/^"%%%"\(.*\)"%%%"/\1/' -e 's/ //g'`
550 case "$lyx_cv_xfversion" in
551 "(unknown)"|0.8[1-7])
553 Version $lyx_cv_xfversion of xforms is not compatible with LyX.
554 This version of LyX works best with versions 0.88 (recommended) and later.) ;;
556 0.89) LYX_WARNING(dnl
557 LyX should work ok with version $lyx_cv_xfversion of xforms[,] but
558 it is an unproven version and might still have some bugs. If you
559 have problems[,] please use version 0.88 instead.) ;;
561 Version $lyx_cv_xfversion of xforms might not be compatible with LyX[,]
562 since it is newer than 0.88. You might have slight problems with it.);;
567 dnl Usage: LYX_HPUX Checks for HP-UX and update CXXFLAGS accordingly
569 [#It seems that HPUX requires using -fpcc-struct-return with gcc.
570 AC_CACHE_CHECK(for HP-UX,ac_cv_hpux,[
571 os=`uname -s | tr '[A-Z]' '[a-z]'`
573 test "$os" = hp-ux && ac_cv_hpux=yes])
574 if test "$ac_cv_hpux" = yes; then
575 test "x$GXX" = xyes && CXXFLAGS="$CXXFLAGS -fpcc-struct-return"
579 dnl Usage: LYX_SUNOS4 Checks for SunOS 4.x and sets the flag lyx_broken_headers
582 [#The headers are not correct under SunOS4
583 AC_CACHE_CHECK(for SunOS 4.x,ac_cv_sunos4,[
585 os=`uname -a | sed -e 's/^\([^ ]*\) [^ ]* \([0-9]\)\..*/\1\2/'`
586 changequote([, ]) dnl
588 test "$os" = SunOS4 && ac_cv_sunos4=yes])
589 if test "$ac_cv_sunos4" = yes; then
590 test "x$GXX" = xyes && lyx_broken_headers=yes
594 dnl Usage: LYX_SCO Checks for SCO and sets the flag lyx_broken_headers
597 [AC_CACHE_CHECK(for SCO 3.2v4,ac_cv_sco,[
599 if test `uname -s` != "SCO_SV"; then
600 lyx_machine_rel=`uname -m`:`uname -r`
601 if test $lyx_machine_rel = i386:3.2 || test $lyx_machine_rel = i486:3.2;
603 if test -f /usr/options/cb.name; then
605 elif /bin/uname -X 2>/dev/null >/dev/null ; then
610 if test "$ac_cv_sco" = yes; then
611 test "x$GXX" = xyes && lyx_broken_headers=yes
614 dnl Usage: LYX_FUNC_PUTENV_ARGTYPE
615 dnl Checks whether putenv() takes 'char const *' or 'char *' as
616 dnl argument. This is needed because Solaris 7 (wrongly?) uses 'char *',
617 dnl while everybody else uses the former...
618 AC_DEFUN(LYX_FUNC_PUTENV_ARGTYPE,
619 [AC_MSG_CHECKING([type of argument for putenv()])
620 AC_CACHE_VAL(lyx_cv_func_putenv_arg,dnl
622 [#include <cstdlib>],
623 [char const * foo = "bar";
625 [lyx_cv_func_putenv_arg='char const *'],[lyx_cv_func_putenv_arg='char *'])])
626 AC_MSG_RESULT($lyx_cv_func_putenv_arg)
627 AC_DEFINE_UNQUOTED(PUTENV_TYPE_ARG,$lyx_cv_func_putenv_arg,dnl
628 [Define to the type of the argument of putenv(). Needed on Solaris 7.])])
631 dnl Usage: LYX_WITH_DIR(dir-name,desc,dir-var-name,default-value,
632 dnl [default-yes-value])
633 dnl Adds a --with-'dir-name' option (described by 'desc') and puts the
634 dnl resulting directory name in 'dir-var-name'.
635 AC_DEFUN(LYX_WITH_DIR,[
636 AC_ARG_WITH($1,[ --with-$1 specify $2])
637 AC_MSG_CHECKING([for $2])
638 if test -z "$with_$3"; then
639 AC_CACHE_VAL(lyx_cv_$3, lyx_cv_$3=$4)
641 test "x$with_$3" = xyes && with_$3=$5
644 AC_MSG_RESULT($lyx_cv_$3)])
647 dnl Usage: LYX_LOOP_DIR(value,action)
648 dnl Executes action for values of variable `dir' in `values'. `values' can
649 dnl use ":" as a separator.
650 AC_DEFUN(LYX_LOOP_DIR,[
651 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
652 for dir in `eval "echo $1"`; do
653 if test ! "$dir" = NONE; then
654 test ! -d "$dir" && AC_ERROR([\"$dir\" is not a directory])
662 dnl Usage: LYX_ADD_LIB_DIR(var-name,dir) Adds a -L directive to variable
664 AC_DEFUN(LYX_ADD_LIB_DIR,[
666 if test "`(uname) 2>/dev/null`" = SunOS &&
667 uname -r | grep '^5' >/dev/null; then
668 if test $ac_cv_prog_gxx = yes ; then
669 $1="${$1} -Wl[,]-R$2"
676 dnl Usage: LYX_ADD_INC_DIR(var-name,dir) Adds a -I directive to variable
678 AC_DEFUN(LYX_ADD_INC_DIR,[$1="${$1} -I$2 "])
680 ### Check which libsigc++ we're using and make sure any external one works
681 ### Check for libsigc++ library
682 AC_DEFUN(LYX_WITH_SIGC,
683 [AC_MSG_CHECKING(whether the included libsigc++ should be used)
684 AC_ARG_WITH([included-libsigc],
685 [ --without-included-libsigc
686 Use the libsigc++ installed on the system],
687 [lyx_use_included_libsigc=$withval],
688 [lyx_use_included_libsigc=yes])
689 AC_MSG_RESULT([$lyx_use_included_libsigc])
690 if test x$lyx_use_included_libsigc = xno; then
691 ### Check for libsigc++
692 ## can't use AC_SUBST right here!
697 [Cannot find libsigc++ library or headers at least as recent as 0.8.7.
698 Check your installation. Have you installed the development package?])
701 ### Use the included libsigc++
702 ### sigc-config hasn't been created yet so we can't just do the same as above
703 ### unless of course someone gets keen and merges the sigc++ configure.in
704 ### with this one. We don't really gain much by doing that though except
705 ### a considerably smaller dist and more difficult maintenance.
706 ### It'd also mean we'd have the equivalent of config/gettext.m4
707 lyx_flags="$lyx_flags included-libsigc"
708 SIGC_LIBS="\`\${top_builddir}/sigc++/sigc-config --libs-names | sed -e 's/-lsigc//'\`"
709 # Libsigc++ always installs into a subdirectory called sigc++. Therefore we
710 # have to always use #include <sigc++/signal_system.h> in our code.
711 # Remember if you decide to do anything to the sigc++ code to do your mods on
712 # the makeLyXsigc.sh script in development/tools using a current cvs checkout
713 # of libsigc++. A tarball distribution doesn't have everything in it that we
715 # We need both these -I entries to build when builddir != srcdir
716 if test "x$src_dir" = "x." ; then
717 SIGC_CFLAGS="-I\${top_srcdir}"
719 SIGC_CFLAGS="-I\${top_builddir} -I\${top_srcdir}"
721 INCLUDED_SIGC="\${top_builddir}/sigc++/libsigc.la"
722 ## can't substitute these here like this otherwise all remaining tests fail
723 ## instead we SUBST directly into the Makefiles
724 ##LIBS="$LIBS \$SIGC_LIBS"
725 ##CPPFLAGS="$CPPFLAGS \$SIGC_CFLAGS"
727 AC_SUBST(SIGC_CFLAGS)
729 AC_SUBST(INCLUDED_SIGC)
732 ### Check for a headers existence and location iff it exists
733 ## This is supposed to be a generalised version of LYX_STL_STRING_FWD
734 ## It almost works. I've tried a few variations but they give errors
735 ## of one sort or other: bad substitution or file not found etc. The
736 ## actual header _is_ found though and the cache variable is set however
737 ## the reported setting (on screen) is equal to $ac_safe for some unknown
739 ## Additionally, autoheader can't figure out what to use as the name in
740 ## the config.h.in file so we need to write our own entries there -- one for
741 ## each header in the form PATH_HEADER_NAME_H
743 AC_DEFUN(LYX_PATH_HEADER,
744 [ AC_CHECK_HEADER($1,[
745 ac_tr_safe=PATH_`echo $ac_safe | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
746 ### the only remaining problem is getting the second parameter to this
747 ### AC_CACHE_CACHE to print correctly. Currently it just results in value
748 ### of $ac_safe being printed.
749 AC_CACHE_CHECK([path to $1],[lyx_cv_path2_$ac_safe],
750 [ cat > conftest.$ac_ext <<EOF
751 #line __oline__ "configure"
752 #include "confdefs.h"
756 lyx_path_header_path=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | \
757 grep $1 2>/dev/null | \
758 sed -e 's/.*\(".*$1"\).*/\1/' -e "1q"`
759 eval "lyx_cv_path2_${ac_safe}=\$lyx_path_header_path"
761 AC_DEFINE_UNQUOTED($ac_tr_safe, $lyx_path_header_path)])
763 ### end of LYX_PATH_HEADER
765 ### Check for stl_string_fwd.h existence and location if it exists
766 AC_DEFUN(LYX_STL_STRING_FWD,
767 [ AC_CHECK_HEADER(stl_string_fwd.h,[
768 AC_CACHE_CHECK([path to stl_string_fwd.h],lyx_cv_path_stl_string_fwd_h,
769 [ cat > conftest.$ac_ext <<EOF
770 #line __oline__ "configure"
771 #include "confdefs.h"
773 #include <stl_string_fwd.h>
775 lyx_cv_path_stl_string_fwd_h=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | \
776 grep 'stl_string_fwd.h' 2>/dev/null | \
777 sed -e 's/.*\(".*stl_string_fwd.h"\).*/\1/' -e "1q"`
779 AC_DEFINE_UNQUOTED(STL_STRING_FWD_H_LOCATION,$lyx_cv_path_stl_string_fwd_h,
780 [define this to the location of stl_string_fwd.h to be used with #include,
781 NOTE: Do not set it to <stl_string_fwd.h> as that will find the LyX
782 supplied version of the header.
783 e.g. <../include/stl_string_fwd.h> or better yet use an absolute path])])
787 dnl AC_VALIDATE_CACHE_SYSTEM_TYPE[(cmd)]
788 dnl if the cache file is inconsistent with the current host,
789 dnl target and build system types, execute CMD or print a default
791 AC_DEFUN(AC_VALIDATE_CACHE_SYSTEM_TYPE, [
792 AC_REQUIRE([AC_CANONICAL_SYSTEM])
793 AC_MSG_CHECKING([config.cache system type])
794 if { test x"${ac_cv_host_system_type+set}" = x"set" &&
795 test x"$ac_cv_host_system_type" != x"$host"; } ||
796 { test x"${ac_cv_build_system_type+set}" = x"set" &&
797 test x"$ac_cv_build_system_type" != x"$build"; } ||
798 { test x"${ac_cv_target_system_type+set}" = x"set" &&
799 test x"$ac_cv_target_system_type" != x"$target"; }; then
800 AC_MSG_RESULT([different])
802 [AC_MSG_ERROR(["you must remove config.cache and restart configure"])])
804 AC_MSG_RESULT([same])
806 ac_cv_host_system_type="$host"
807 ac_cv_build_system_type="$build"
808 ac_cv_target_system_type="$target"
811 dnl We use this until autoconf fixes its version.
812 AC_DEFUN(LYX_FUNC_SELECT_ARGTYPES,
813 [AC_MSG_CHECKING([types of arguments for select()])
814 AC_CACHE_VAL(ac_cv_func_select_arg234,dnl
815 [AC_CACHE_VAL(ac_cv_func_select_arg1,dnl
816 [AC_CACHE_VAL(ac_cv_func_select_arg5,dnl
817 [for ac_cv_func_select_arg234 in 'fd_set *' 'int *' 'void *'; do
818 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
820 [#ifdef HAVE_SYS_TYPES_H
821 #include <sys/types.h>
823 #ifdef HAVE_SYS_TIME_H
824 #include <sys/time.h>
826 #ifdef HAVE_SYS_SELECT_H
827 #include <sys/select.h>
829 #ifdef HAVE_SYS_SOCKET_H
830 #include <sys/socket.h>
832 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
833 [ac_not_found=no ; break 3],ac_not_found=yes)
840 if test "$ac_not_found" = yes; then
841 ac_cv_func_select_arg1=int
842 ac_cv_func_select_arg234='int *'
843 ac_cv_func_select_arg5='struct timeval *'
845 AC_MSG_RESULT([$ac_cv_func_select_arg1,$ac_cv_func_select_arg234,$ac_cv_func_select_arg5])
846 AC_DEFINE_UNQUOTED(SELECT_TYPE_ARG1,$ac_cv_func_select_arg1)
847 AC_DEFINE_UNQUOTED(SELECT_TYPE_ARG234,($ac_cv_func_select_arg234))
848 AC_DEFINE_UNQUOTED(SELECT_TYPE_ARG5,($ac_cv_func_select_arg5))
851 ### Check which frontend we want to use. The default is XForms
853 AC_DEFUN(LYX_USE_FRONTEND,
854 [AC_MSG_CHECKING(what frontend should be used as main GUI)
855 AC_ARG_WITH(frontend,
856 [ --with-frontend[=value] Use THIS frontend as main GUI:
857 Possible values: xforms,kde],
858 [lyx_use_frontend="$withval"], [lyx_use_frontend="xforms"])
859 AC_MSG_RESULT($lyx_use_frontend)
860 lyx_flags="$lyx_flags frontend-$lyx_use_frontend"
862 AC_SUBST(FRONTEND_GUILIB)
863 AC_SUBST(FRONTEND_LDFLAGS)
864 AC_SUBST(FRONTEND_INCLUDES)
865 AC_SUBST(FRONTEND_LIBS)