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.7*) CXXFLAGS="$lyx_opt";;
187 2.95.1) CXXFLAGS="-g $lyx_opt -fpermissive -fno-rtti";;
188 2.95.*) CXXFLAGS="-g $lyx_opt -fno-rtti -fno-exceptions";;
189 *) CXXFLAGS="-g $lyx_opt -fno-exceptions -fno-rtti";;
194 if test x$with_warnings = xyes ; then
196 2.95.*) CXXFLAGS="$CXXFLAGS -Wall -W -Wconversion";;
197 *) CXXFLAGS="$CXXFLAGS -ansi -Wall -W";;
199 if test $lyx_devel_version = yes ; then
202 *) CXXFLAGS="$CXXFLAGS -pedantic";;
208 test "${CXXFLAGS+set}" = set || CXXFLAGS="-g"
213 dnl Usage: LYX_CXX_RTTI : checks whether the C++ compiler
215 AC_DEFUN(LYX_CXX_RTTI,[
216 ### Check whether the compiler supports runtime type information
217 AC_CACHE_CHECK(whether the C++ compiler supports RTTI,lyx_cv_rtti,
221 virtual int tag() { return 0; }
223 class derived1 : public rtti {
225 int tag() { return 1; }
227 class derived2 : public rtti {
229 int tag() { return 2; }
232 derived1 * foo1 = new derived1();
233 derived2 * foo2 = new derived2();
235 derived1 * bar1 = dynamic_cast<derived1 *>(bar);
239 bar1 = dynamic_cast<derived1 *>(bar);
244 ],lyx_cv_rtti=yes,lyx_cv_rtti=no,lyx_cv_rtti=no)
246 if test x$lyx_cv_rtti = xyes ; then
247 AC_DEFINE(HAVE_RTTI, 1,
248 [Define to 1 if your compiler supports runtime type information])
252 dnl Usage: LYX_CXX_EXPLICIT : checks whether the C++ compiler
253 dnl understands the "explicit" directive.
254 AC_DEFUN(LYX_CXX_EXPLICIT,[
255 ### Check whether the compiler understands the keyword `explicit'
256 AC_CACHE_CHECK(whether the C++ compiler understands explicit,lyx_cv_explicit,
261 };],,lyx_cv_explicit=yes,lyx_cv_explicit=no)
263 if test $lyx_cv_explicit = no ; then
264 AC_DEFINE(explicit,[ ],
265 [Define to nothing if your compiler does not understand the
266 'explicit' directive])
270 dnl Usage: LYX_CXX_STL_STACK : checks whether the C++ compiler
271 dnl has a working stl stack template
272 AC_DEFUN(LYX_CXX_STL_STACK,[
273 AC_CACHE_CHECK(for broken STL stack template,lyx_cv_broken_stack,
280 ],lyx_cv_broken_stack=no,lyx_cv_broken_stack=yes)
282 if test $lyx_cv_broken_stack = yes ; then
283 AC_DEFINE(BROKEN_STL_STACK, 1,
284 [Define if you have the STL from libg++ 2.7.x, where stack<> is not defined
289 dnl Usage: LYX_STD_COUNT : checks wherer the C++ library have a conforming
290 dnl count template, if not the old HP version is assumed.
291 AC_DEFUN(LYX_STD_COUNT,[
292 AC_CACHE_CHECK(for conforming std::count,lyx_cv_std_count,
298 int countChar(string const & a, char const c)
300 return count(a.begin(), a.end(), c);
304 int i = countChar(a, 'l');
305 ],lyx_cv_std_count=yes,lyx_cv_std_count=no)
307 if test $lyx_cv_std_count = yes ; then
308 AC_DEFINE(HAVE_STD_COUNT, 1,
309 [Define if you have a conforming std::count template, otherwise HP version of count template is assumed.])
313 dnl Usage: LYX_CXX_STL_MODERN_STREAMS : checks whether the C++ compiler
314 dnl supports modern STL streams
315 AC_DEFUN(LYX_CXX_STL_MODERN_STREAMS,[
316 AC_CACHE_CHECK(for modern STL streams,lyx_cv_modern_streams,
320 std::streambuf * test = std::cerr.rdbuf();
322 ],lyx_cv_modern_streams=yes,lyx_cv_modern_streams=no)
324 if test $lyx_cv_modern_streams = yes ; then
325 AC_DEFINE(MODERN_STL_STREAMS, 1,
326 [Define if you have modern standard-compliant STL streams])
330 dnl Usage: LYX_CXX_STL_STRING : checks whether the C++ compiler
331 dnl has a working stl string container, the check is really stupid
332 dnl and could need some improvement.
333 AC_DEFUN(LYX_CXX_STL_STRING,[
334 AC_REQUIRE([LYX_PROG_CXX])
335 AC_MSG_CHECKING(whether the included std::string should be used)
336 AC_ARG_WITH(included-string,
337 [ --with-included-string use LyX string class instead of STL string],
338 [with_included_string=$withval],
343 string a("hello there");
348 with_included_string=no
350 with_included_string=yes
354 if test x$with_included_string = xyes ; then
355 AC_DEFINE(USE_INCLUDED_STRING, 1,
356 [Define to use the lyxstring class bundled with LyX.])
357 lyx_flags="$lyx_flags included-string"
359 AM_CONDITIONAL(USE_LYXSTRING, test x$with_included_string = xyes)
360 AC_MSG_RESULT([$with_included_string])
364 dnl Usage: LYX_REGEX : checks if the header regex.h is available
365 dnl if it is not available the automake variable USE_REGEX will be
366 dnl defined and the regex.h and regex.c that we provide will be used.
368 AC_CHECK_HEADERS(regex.h, lyx_regex=no, lyx_regex=yes)
369 AM_CONDITIONAL(USE_REGEX, test x$lyx_regex = xyes)
374 AC_DEFUN(LYX_CXX_MUTABLE, [
375 AC_REQUIRE([LYX_PROG_CXX])
376 AC_MSG_CHECKING(if C++ compiler supports mutable)
382 void foo() const { c=0; }
387 AC_DEFINE(HAVE_MUTABLE, 1,
388 [Defined if you compiler supports 'mutable'.])
392 AC_MSG_RESULT([$ac_mutable])
397 AC_DEFUN(LYX_CXX_PARTIAL, [
398 AC_REQUIRE([LYX_PROG_CXX])
399 AC_MSG_CHECKING(if C++ compiler supports partial specialization)
402 template<class T, class K>
406 template<class T> class k<void,T> { };
411 ac_partial_specialization=yes
412 AC_DEFINE(HAVE_PARTIAL_SPECIALIZATION, 1,
413 [Defined if your compiler supports partial specialization.])
415 ac_partial_specialization=no
417 AC_MSG_RESULT([$ac_partial_specialization])
421 dnl Usage: LYX_CXX_NAMESPACES : checks whether the C++ compiler
422 dnl has a correct namespace handling and define CXX_WORKING_NAMESPACES
423 dnl if true. This macro does not do a thourough test, but it should be
424 dnl good enough to suit our needs.
425 AC_DEFUN(LYX_CXX_NAMESPACES,[
426 AC_CACHE_CHECK(for correct namespaces support,lyx_cv_cxx_namespace,
434 ],lyx_cv_cxx_namespace=yes,lyx_cv_cxx_namespace=no)
436 if test $lyx_cv_cxx_namespace = yes ; then
437 AC_DEFINE(CXX_WORKING_NAMESPACES, 1,
438 [Define if your C++ compiler has correct support for namespaces])
442 dnl Usage: LYX_CXX_CHEADERS : checks whether the C++ compiler
443 dnl provides wrappers for C headers and use our alternate version otherwise.
444 AC_DEFUN(LYX_CXX_CHEADERS,[
445 AC_CACHE_CHECK(for C headers wrappers,lyx_cv_cxx_cheaders,
455 #include <ctime>],[lyx_cv_cxx_cheaders=yes],[lyx_cv_cxx_cheaders=no])])
456 if test $lyx_cv_cxx_cheaders = no ; then
457 LYX_ADD_INC_DIR(lyx_cppflags,\$(top_srcdir)/src/cheaders)
461 dnl Usage LYX_PATH_XPM: Checks for xpm library and header
462 AC_DEFUN(LYX_PATH_XPM,[
463 ### Check for Xpm library
464 AC_CHECK_LIB(Xpm, XpmCreateBufferFromImage,LYX_LIBS="-lXpm $LYX_LIBS",
465 [LYX_LIB_ERROR(libXpm,Xpm)], $LYX_LIBS)
467 ### Check for Xpm headers
468 lyx_cv_xpm_h_location="<xpm.h>"
469 AC_CHECK_HEADER(X11/xpm.h,[
470 ac_cv_header_xpm_h=yes
471 lyx_cv_xpm_h_location="<X11/xpm.h>"],[
472 AC_CHECK_HEADER(xpm.h,[],[
473 LYX_LIB_ERROR(xpm.h,Xpm)])])
474 AC_DEFINE_UNQUOTED(XPM_H_LOCATION,$lyx_cv_xpm_h_location)
476 ### Test for the header version
477 if test $ac_cv_header_xpm_h = yes; then
478 AC_CACHE_CHECK([xpm header version],lyx_cv_xpmversion,
479 [ cat > conftest.$ac_ext <<EOF
480 #line __oline__ "configure"
481 #include "confdefs.h"
483 #include XPM_H_LOCATION
484 "%%%"lyx_cv_xpmv=XpmVersion;lyx_cv_xpmr=XpmRevision"%%%"
486 eval `(eval "$ac_cpp conftest.$ac_ext") 2>&5 | \
487 grep '^"%%%"' 2>/dev/null | \
488 sed -e 's/^"%%%"\(.*\)"%%%"/\1/' -e 's/ //g'`
489 case "$lyx_cv_xpmr" in
491 [0-9]) lyxxpmr_alpha=`echo $lyx_cv_xpmr |tr 123456789 abcdefghi`
492 lyxxpmv_alpha=" (aka 3.$lyx_cv_xpmv$lyxxpmr_alpha)";;
496 lyx_cv_xpmversion="$lyx_cv_xpmv.$lyx_cv_xpmr$lyxxpmv_alpha"
498 case "$lyx_cv_xpmr" in
500 [789]|[0-9][0-9]*) ;;
502 *) LYX_WARNING([Version $lyx_cv_xpmversion of the Xpm library is a bit old.
503 If you experience strange crashes with LyX, try to upgrade
504 to at least version 4.7 (aka 3.4g).
505 If you have installed a newer version of the library, check whether you
506 have an old xpm.h header file in your include path.]);;
511 dnl Usage LYX_PATH_XFORMS: Checks for xforms library and flags
512 AC_DEFUN(LYX_PATH_XFORMS,[
513 ### Check for xforms library
514 AC_CHECK_LIB(forms, fl_initialize, LYX_LIBS="-lforms $LYX_LIBS",
515 [AC_CHECK_LIB(xforms, fl_initialize, LYX_LIBS="-lxforms $LYX_LIBS",
516 [LYX_LIB_ERROR(libforms or libxforms,xforms)], $LYX_LIBS)], $LYX_LIBS)
518 ### Check for xforms headers
519 lyx_cv_forms_h_location="<forms.h>"
520 AC_CHECK_HEADER(X11/forms.h,[
521 ac_cv_header_forms_h=yes
522 lyx_cv_forms_h_location="<X11/forms.h>"],[
523 AC_CHECK_HEADER(forms.h,[],[
524 LYX_LIB_ERROR(forms.h,forms)])])
525 AC_DEFINE_UNQUOTED(FORMS_H_LOCATION,$lyx_cv_forms_h_location)
526 if test $ac_cv_header_forms_h = yes; then
527 AC_CACHE_CHECK([xforms header version],lyx_cv_xfversion,
528 [ cat > conftest.$ac_ext <<EOF
529 #line __oline__ "configure"
530 #include "confdefs.h"
532 #include FORMS_H_LOCATION
533 #if ! defined(FL_INCLUDE_VERSION)
536 "%%%"FL_VERSION.FL_REVISION"%%%"
539 lyx_cv_xfversion=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | \
540 grep '^"%%%"' 2>/dev/null | \
541 sed -e 's/^"%%%"\(.*\)"%%%"/\1/' -e 's/ //g'`
543 case "$lyx_cv_xfversion" in
544 "(unknown)"|0.82|0.83|0.84|0.85)
546 Version $lyx_cv_xfversion of xforms is not compatible with LyX.
547 This version of LyX works best with version 0.88[,] although it
548 supports also versions 0.81[,] 0.86 and 0.87.) ;;
551 While LyX is compatible with version $lyx_cv_xfversion of xforms[,]
552 it is recommended that you upgrade to version 0.88.) ;;
554 0.89) LYX_WARNING(dnl
555 LyX should work ok with version $lyx_cv_xfversion of xforms[,] but
556 it is an unproven version and might still have some bugs. If you
557 have problems[,] please use version 0.88 instead.) ;;
559 Version $lyx_cv_xfversion of xforms might not be compatible with LyX[,]
560 since it is newer than 0.88. You might have slight problems with it.);;
565 dnl Usage: LYX_HPUX Checks for HP-UX and update CXXFLAGS accordingly
567 [#It seems that HPUX requires using -fpcc-struct-return with gcc.
568 AC_CACHE_CHECK(for HP-UX,ac_cv_hpux,[
569 os=`uname -s | tr '[A-Z]' '[a-z]'`
571 test "$os" = hp-ux && ac_cv_hpux=yes])
572 if test "$ac_cv_hpux" = yes; then
573 test "x$GXX" = xyes && CXXFLAGS="$CXXFLAGS -fpcc-struct-return"
577 dnl Usage: LYX_SUNOS4 Checks for SunOS 4.x and sets the flag lyx_broken_headers
580 [#The headers are not correct under SunOS4
581 AC_CACHE_CHECK(for SunOS 4.x,ac_cv_sunos4,[
583 os=`uname -a | sed -e 's/^\([^ ]*\) [^ ]* \([0-9]\)\..*/\1\2/'`
584 changequote([, ]) dnl
586 test "$os" = SunOS4 && ac_cv_sunos4=yes])
587 if test "$ac_cv_sunos4" = yes; then
588 test "x$GXX" = xyes && lyx_broken_headers=yes
592 dnl Usage: LYX_SCO Checks for SCO and sets the flag lyx_broken_headers
595 [AC_CACHE_CHECK(for SCO 3.2v4,ac_cv_sco,[
597 if test `uname -s` != "SCO_SV"; then
598 lyx_machine_rel=`uname -m`:`uname -r`
599 if test $lyx_machine_rel = i386:3.2 || test $lyx_machine_rel = i486:3.2;
601 if test -f /usr/options/cb.name; then
603 elif /bin/uname -X 2>/dev/null >/dev/null ; then
608 if test "$ac_cv_sco" = yes; then
609 test "x$GXX" = xyes && lyx_broken_headers=yes
612 dnl Usage: LYX_FUNC_PUTENV_ARGTYPE
613 dnl Checks whether putenv() takes 'char const *' or 'char *' as
614 dnl argument. This is needed because Solaris 7 (wrongly?) uses 'char *',
615 dnl while everybody else uses the former...
616 AC_DEFUN(LYX_FUNC_PUTENV_ARGTYPE,
617 [AC_MSG_CHECKING([type of argument for putenv()])
618 AC_CACHE_VAL(lyx_cv_func_putenv_arg,dnl
620 [#include <cstdlib>],
621 [char const * foo = "bar";
623 [lyx_cv_func_putenv_arg='char const *'],[lyx_cv_func_putenv_arg='char *'])])
624 AC_MSG_RESULT($lyx_cv_func_putenv_arg)
625 AC_DEFINE_UNQUOTED(PUTENV_TYPE_ARG,$lyx_cv_func_putenv_arg,dnl
626 [Define to the type of the argument of putenv(). Needed on Solaris 7.])])
629 dnl Usage: LYX_WITH_DIR(dir-name,desc,dir-var-name,default-value,
630 dnl [default-yes-value])
631 dnl Adds a --with-'dir-name' option (described by 'desc') and puts the
632 dnl resulting directory name in 'dir-var-name'.
633 AC_DEFUN(LYX_WITH_DIR,[
634 AC_ARG_WITH($1,[ --with-$1 specify $2])
635 AC_MSG_CHECKING([for $2])
636 if test -z "$with_$3"; then
637 AC_CACHE_VAL(lyx_cv_$3, lyx_cv_$3=$4)
639 test "x$with_$3" = xyes && with_$3=$5
642 AC_MSG_RESULT($lyx_cv_$3)])
645 dnl Usage: LYX_LOOP_DIR(value,action)
646 dnl Executes action for values of variable `dir' in `values'. `values' can
647 dnl use ":" as a separator.
648 AC_DEFUN(LYX_LOOP_DIR,[
649 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
650 for dir in `eval "echo $1"`; do
651 if test ! "$dir" = NONE; then
652 test ! -d "$dir" && AC_ERROR([\"$dir\" is not a directory])
660 dnl Usage: LYX_ADD_LIB_DIR(var-name,dir) Adds a -L directive to variable
662 AC_DEFUN(LYX_ADD_LIB_DIR,[
664 if test "`(uname) 2>/dev/null`" = SunOS &&
665 uname -r | grep '^5' >/dev/null; then
666 if test $ac_cv_prog_gxx = yes ; then
667 $1="${$1} -Wl[,]-R$2"
674 dnl Usage: LYX_ADD_INC_DIR(var-name,dir) Adds a -I directive to variable
676 AC_DEFUN(LYX_ADD_INC_DIR,[$1="${$1} -I$2 "])
678 ### Check for a headers existence and location iff it exists
679 ## This is supposed to be a generalised version of LYX_STL_STRING_FWD
680 ## It almost works. I've tried a few variations but they give errors
681 ## of one sort or other: bad substitution or file not found etc. The
682 ## actual header _is_ found though and the cache variable is set however
683 ## the reported setting (on screen) is equal to $ac_safe for some unknown
685 AC_DEFUN(LYX_PATH_HEADER,
686 [ AC_CHECK_HEADER($1,[
687 ac_tr_safe=PATH_`echo $ac_safe | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
688 AC_CACHE_CHECK([path to $1],lyx_cv_path_$ac_safe,
689 [ cat > conftest.$ac_ext <<EOF
690 #line __oline__ "configure"
691 #include "confdefs.h"
695 lyx_cv_path_$ac_safe=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | \
696 grep $1 2>/dev/null | \
697 sed -e 's/.*\(".*$1"\).*/\1/' -e "1q"`
699 AC_DEFINE_UNQUOTED(${ac_tr_safe},${lyx_cv_path_$ac_safe})])
701 ### end of LYX_PATH_HEADER
703 ### Check for stl_string_fwd.h existence and location if it exists
704 AC_DEFUN(LYX_STL_STRING_FWD,
705 [ AC_CHECK_HEADER(stl_string_fwd.h,[
706 AC_CACHE_CHECK([path to stl_string_fwd.h],lyx_cv_path_stl_string_fwd_h,
707 [ cat > conftest.$ac_ext <<EOF
708 #line __oline__ "configure"
709 #include "confdefs.h"
711 #include <stl_string_fwd.h>
713 lyx_cv_path_stl_string_fwd_h=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | \
714 grep 'stl_string_fwd.h' 2>/dev/null | \
715 sed -e 's/.*\(".*stl_string_fwd.h"\).*/\1/' -e "1q"`
717 AC_DEFINE_UNQUOTED(STL_STRING_FWD_H_LOCATION,$lyx_cv_path_stl_string_fwd_h,
718 [define this to the location of stl_string_fwd.h to be used with #include,
719 NOTE: Do not set it to <stl_string_fwd.h> as that will find the LyX
720 supplied version of the header.
721 e.g. <../include/stl_string_fwd.h> or better yet use an absolute path])])
725 dnl AC_VALIDATE_CACHE_SYSTEM_TYPE[(cmd)]
726 dnl if the cache file is inconsistent with the current host,
727 dnl target and build system types, execute CMD or print a default
729 AC_DEFUN(AC_VALIDATE_CACHE_SYSTEM_TYPE, [
730 AC_REQUIRE([AC_CANONICAL_SYSTEM])
731 AC_MSG_CHECKING([config.cache system type])
732 if { test x"${ac_cv_host_system_type+set}" = x"set" &&
733 test x"$ac_cv_host_system_type" != x"$host"; } ||
734 { test x"${ac_cv_build_system_type+set}" = x"set" &&
735 test x"$ac_cv_build_system_type" != x"$build"; } ||
736 { test x"${ac_cv_target_system_type+set}" = x"set" &&
737 test x"$ac_cv_target_system_type" != x"$target"; }; then
738 AC_MSG_RESULT([different])
740 [AC_MSG_ERROR(["you must remove config.cache and restart configure"])])
742 AC_MSG_RESULT([same])
744 ac_cv_host_system_type="$host"
745 ac_cv_build_system_type="$build"
746 ac_cv_target_system_type="$target"
749 dnl We use this until autoconf fixes its version.
750 AC_DEFUN(LYX_FUNC_SELECT_ARGTYPES,
751 [AC_MSG_CHECKING([types of arguments for select()])
752 AC_CACHE_VAL(ac_cv_func_select_arg234,dnl
753 [AC_CACHE_VAL(ac_cv_func_select_arg1,dnl
754 [AC_CACHE_VAL(ac_cv_func_select_arg5,dnl
755 [for ac_cv_func_select_arg234 in 'fd_set *' 'int *' 'void *'; do
756 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
758 [#ifdef HAVE_SYS_TYPES_H
759 #include <sys/types.h>
761 #ifdef HAVE_SYS_TIME_H
762 #include <sys/time.h>
764 #ifdef HAVE_SYS_SELECT_H
765 #include <sys/select.h>
767 #ifdef HAVE_SYS_SOCKET_H
768 #include <sys/socket.h>
770 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
771 [ac_not_found=no ; break 3],ac_not_found=yes)
778 if test "$ac_not_found" = yes; then
779 ac_cv_func_select_arg1=int
780 ac_cv_func_select_arg234='int *'
781 ac_cv_func_select_arg5='struct timeval *'
783 AC_MSG_RESULT([$ac_cv_func_select_arg1,$ac_cv_func_select_arg234,$ac_cv_func_select_arg5])
784 AC_DEFINE_UNQUOTED(SELECT_TYPE_ARG1,$ac_cv_func_select_arg1)
785 AC_DEFINE_UNQUOTED(SELECT_TYPE_ARG234,($ac_cv_func_select_arg234))
786 AC_DEFINE_UNQUOTED(SELECT_TYPE_ARG5,($ac_cv_func_select_arg5))
789 ## libtool.m4 - Configure libtool for the target system. -*-Shell-script-*-
790 ## Copyright (C) 1996-1999 Free Software Foundation, Inc.
791 ## Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
793 ## This program is free software; you can redistribute it and/or modify
794 ## it under the terms of the GNU General Public License as published by
795 ## the Free Software Foundation; either version 2 of the License, or
796 ## (at your option) any later version.
798 ## This program is distributed in the hope that it will be useful, but
799 ## WITHOUT ANY WARRANTY; without even the implied warranty of
800 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
801 ## General Public License for more details.
803 ## You should have received a copy of the GNU General Public License
804 ## along with this program; if not, write to the Free Software
805 ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
807 ## As a special exception to the GNU General Public License, if you
808 ## distribute this file as part of a program that contains a
809 ## configuration script generated by Autoconf, you may include it under
810 ## the same distribution terms that you use for the rest of that program.
812 # serial 40 AC_PROG_LIBTOOL
813 AC_DEFUN(AC_PROG_LIBTOOL,
814 [AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
816 # Save cache, so that ltconfig can load it
819 # Actually configure libtool. ac_aux_dir is where install-sh is found.
820 CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
821 LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
822 LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" \
823 DLLTOOL="$DLLTOOL" AS="$AS" OBJDUMP="$OBJDUMP" \
824 ${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \
825 $libtool_flags --no-verify $ac_aux_dir/ltmain.sh $lt_target \
826 || AC_MSG_ERROR([libtool configure failed])
828 # Reload cache, that may have been modified by ltconfig
831 # This can be used to rebuild libtool when needed
832 LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh"
834 # Always use our own libtool.
835 LIBTOOL='$(SHELL) $(top_builddir)/libtool'
838 # Redirect the config.log output again, so that the ltconfig log is not
839 # clobbered by the next message.
843 AC_DEFUN(AC_LIBTOOL_SETUP,
845 AC_REQUIRE([AC_ENABLE_SHARED])dnl
846 AC_REQUIRE([AC_ENABLE_STATIC])dnl
847 AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
848 AC_REQUIRE([AC_CANONICAL_HOST])dnl
849 AC_REQUIRE([AC_CANONICAL_BUILD])dnl
850 AC_REQUIRE([AC_PROG_RANLIB])dnl
851 AC_REQUIRE([AC_PROG_CC])dnl
852 AC_REQUIRE([AC_PROG_LD])dnl
853 AC_REQUIRE([AC_PROG_NM])dnl
854 AC_REQUIRE([AC_PROG_LN_S])dnl
858 NONE) lt_target="$host" ;;
859 *) lt_target="$target" ;;
862 # Check for any special flags to pass to ltconfig.
863 libtool_flags="--cache-file=$cache_file"
864 test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
865 test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
866 test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install"
867 test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
868 test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
869 ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN],
870 [libtool_flags="$libtool_flags --enable-dlopen"])
871 ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
872 [libtool_flags="$libtool_flags --enable-win32-dll"])
873 AC_ARG_ENABLE(libtool-lock,
874 [ --disable-libtool-lock avoid locking (might break parallel builds)])
875 test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock"
876 test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
878 # Some flags need to be propagated to the compiler or linker for good
882 # Find out which ABI we are using.
883 echo '[#]line __oline__ "configure"' > conftest.$ac_ext
884 if AC_TRY_EVAL(ac_compile); then
885 case "`/usr/bin/file conftest.o`" in
901 # On SCO OpenServer 5, we need -belf to get full-featured binaries.
902 SAVE_CFLAGS="$CFLAGS"
903 CFLAGS="$CFLAGS -belf"
904 AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
905 [AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])])
906 if test x"$lt_cv_cc_needs_belf" != x"yes"; then
907 # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
908 CFLAGS="$SAVE_CFLAGS"
912 ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
913 [*-*-cygwin* | *-*-mingw*)
914 AC_CHECK_TOOL(DLLTOOL, dlltool, false)
915 AC_CHECK_TOOL(AS, as, false)
916 AC_CHECK_TOOL(OBJDUMP, objdump, false)
922 # AC_LIBTOOL_DLOPEN - enable checks for dlopen support
923 AC_DEFUN(AC_LIBTOOL_DLOPEN, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])])
925 # AC_LIBTOOL_WIN32_DLL - declare package support for building win32 dll's
926 AC_DEFUN(AC_LIBTOOL_WIN32_DLL, [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])])
928 # AC_ENABLE_SHARED - implement the --enable-shared flag
929 # Usage: AC_ENABLE_SHARED[(DEFAULT)]
930 # Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
932 AC_DEFUN(AC_ENABLE_SHARED, [dnl
933 define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
934 AC_ARG_ENABLE(shared,
935 changequote(<<, >>)dnl
936 << --enable-shared[=PKGS] build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT],
938 [p=${PACKAGE-default}
940 yes) enable_shared=yes ;;
941 no) enable_shared=no ;;
944 # Look at the argument we got. We use all the common list separators.
945 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
946 for pkg in $enableval; do
947 if test "X$pkg" = "X$p"; then
954 enable_shared=AC_ENABLE_SHARED_DEFAULT)dnl
957 # AC_DISABLE_SHARED - set the default shared flag to --disable-shared
958 AC_DEFUN(AC_DISABLE_SHARED, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
959 AC_ENABLE_SHARED(no)])
961 # AC_ENABLE_STATIC - implement the --enable-static flag
962 # Usage: AC_ENABLE_STATIC[(DEFAULT)]
963 # Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
965 AC_DEFUN(AC_ENABLE_STATIC, [dnl
966 define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
967 AC_ARG_ENABLE(static,
968 changequote(<<, >>)dnl
969 << --enable-static[=PKGS] build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT],
971 [p=${PACKAGE-default}
973 yes) enable_static=yes ;;
974 no) enable_static=no ;;
977 # Look at the argument we got. We use all the common list separators.
978 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
979 for pkg in $enableval; do
980 if test "X$pkg" = "X$p"; then
987 enable_static=AC_ENABLE_STATIC_DEFAULT)dnl
990 # AC_DISABLE_STATIC - set the default static flag to --disable-static
991 AC_DEFUN(AC_DISABLE_STATIC, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
992 AC_ENABLE_STATIC(no)])
995 # AC_ENABLE_FAST_INSTALL - implement the --enable-fast-install flag
996 # Usage: AC_ENABLE_FAST_INSTALL[(DEFAULT)]
997 # Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
999 AC_DEFUN(AC_ENABLE_FAST_INSTALL, [dnl
1000 define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
1001 AC_ARG_ENABLE(fast-install,
1002 changequote(<<, >>)dnl
1003 << --enable-fast-install[=PKGS] optimize for fast installation [default=>>AC_ENABLE_FAST_INSTALL_DEFAULT],
1004 changequote([, ])dnl
1005 [p=${PACKAGE-default}
1006 case "$enableval" in
1007 yes) enable_fast_install=yes ;;
1008 no) enable_fast_install=no ;;
1010 enable_fast_install=no
1011 # Look at the argument we got. We use all the common list separators.
1012 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
1013 for pkg in $enableval; do
1014 if test "X$pkg" = "X$p"; then
1015 enable_fast_install=yes
1021 enable_fast_install=AC_ENABLE_FAST_INSTALL_DEFAULT)dnl
1024 # AC_ENABLE_FAST_INSTALL - set the default to --disable-fast-install
1025 AC_DEFUN(AC_DISABLE_FAST_INSTALL, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
1026 AC_ENABLE_FAST_INSTALL(no)])
1028 # AC_PROG_LD - find the path to the GNU or non-GNU linker
1029 AC_DEFUN(AC_PROG_LD,
1030 [AC_ARG_WITH(gnu-ld,
1031 [ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
1032 test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
1033 AC_REQUIRE([AC_PROG_CC])dnl
1034 AC_REQUIRE([AC_CANONICAL_HOST])dnl
1035 AC_REQUIRE([AC_CANONICAL_BUILD])dnl
1037 if test "$ac_cv_prog_gcc" = yes; then
1038 # Check if gcc -print-prog-name=ld gives a path.
1039 AC_MSG_CHECKING([for ld used by GCC])
1040 ac_prog=`($CC -print-prog-name=ld) 2>&5`
1042 # Accept absolute paths.
1044 [\\/]* | [A-Za-z]:[\\/]*)
1045 re_direlt='/[^/][^/]*/\.\./'
1047 # Canonicalize the path of ld
1048 ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
1049 while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
1050 ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
1052 test -z "$LD" && LD="$ac_prog"
1055 # If it fails, then pretend we aren't using GCC.
1059 # If it is relative, then search for the first ld in PATH.
1063 elif test "$with_gnu_ld" = yes; then
1064 AC_MSG_CHECKING([for GNU ld])
1066 AC_MSG_CHECKING([for non-GNU ld])
1068 AC_CACHE_VAL(ac_cv_path_LD,
1069 [if test -z "$LD"; then
1070 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
1071 for ac_dir in $PATH; do
1072 test -z "$ac_dir" && ac_dir=.
1073 if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
1074 ac_cv_path_LD="$ac_dir/$ac_prog"
1075 # Check to see if the program is GNU ld. I'd rather use --version,
1076 # but apparently some GNU ld's only accept -v.
1077 # Break only if it was the GNU/non-GNU ld that we prefer.
1078 if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
1079 test "$with_gnu_ld" != no && break
1081 test "$with_gnu_ld" != yes && break
1087 ac_cv_path_LD="$LD" # Let the user override the test with a path.
1090 if test -n "$LD"; then
1095 test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
1099 AC_DEFUN(AC_PROG_LD_GNU,
1100 [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], ac_cv_prog_gnu_ld,
1101 [# I'd rather use --version here, but apparently some GNU ld's only accept -v.
1102 if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
1103 ac_cv_prog_gnu_ld=yes
1105 ac_cv_prog_gnu_ld=no
1109 # AC_PROG_NM - find the path to a BSD-compatible name lister
1110 AC_DEFUN(AC_PROG_NM,
1111 [AC_MSG_CHECKING([for BSD-compatible nm])
1112 AC_CACHE_VAL(ac_cv_path_NM,
1113 [if test -n "$NM"; then
1114 # Let the user override the test.
1117 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
1118 for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
1119 test -z "$ac_dir" && ac_dir=.
1120 if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext ; then
1121 # Check to see if the nm accepts a BSD-compat flag.
1122 # Adding the `sed 1q' prevents false positives on HP-UX, which says:
1123 # nm: unknown option "B" ignored
1124 if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
1125 ac_cv_path_NM="$ac_dir/nm -B"
1127 elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
1128 ac_cv_path_NM="$ac_dir/nm -p"
1131 ac_cv_path_NM=${ac_cv_path_NM="$ac_dir/nm"} # keep the first match, but
1132 continue # so that we can try to find one that supports BSD flags
1137 test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm
1140 AC_MSG_RESULT([$NM])
1143 # AC_CHECK_LIBM - check for math library
1144 AC_DEFUN(AC_CHECK_LIBM,
1145 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
1147 case "$lt_target" in
1148 *-*-beos* | *-*-cygwin*)
1149 # These system don't have libm
1152 AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
1153 AC_CHECK_LIB(m, main, LIBM="$LIBM -lm")
1156 AC_CHECK_LIB(m, main, LIBM="-lm")
1161 # AC_LIBLTDL_CONVENIENCE[(dir)] - sets LIBLTDL to the link flags for
1162 # the libltdl convenience library, adds --enable-ltdl-convenience to
1163 # the configure arguments. Note that LIBLTDL is not AC_SUBSTed, nor
1164 # is AC_CONFIG_SUBDIRS called. If DIR is not provided, it is assumed
1165 # to be `${top_builddir}/libltdl'. Make sure you start DIR with
1166 # '${top_builddir}/' (note the single quotes!) if your package is not
1167 # flat, and, if you're not using automake, define top_builddir as
1168 # appropriate in the Makefiles.
1169 AC_DEFUN(AC_LIBLTDL_CONVENIENCE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
1170 case "$enable_ltdl_convenience" in
1171 no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
1172 "") enable_ltdl_convenience=yes
1173 ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
1175 LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdlc.la
1176 INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl'])
1179 # AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for
1180 # the libltdl installable library, and adds --enable-ltdl-install to
1181 # the configure arguments. Note that LIBLTDL is not AC_SUBSTed, nor
1182 # is AC_CONFIG_SUBDIRS called. If DIR is not provided, it is assumed
1183 # to be `${top_builddir}/libltdl'. Make sure you start DIR with
1184 # '${top_builddir}/' (note the single quotes!) if your package is not
1185 # flat, and, if you're not using automake, define top_builddir as
1186 # appropriate in the Makefiles.
1187 # In the future, this macro may have to be called after AC_PROG_LIBTOOL.
1188 AC_DEFUN(AC_LIBLTDL_INSTALLABLE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
1189 AC_CHECK_LIB(ltdl, main,
1190 [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
1191 [if test x"$enable_ltdl_install" = xno; then
1192 AC_MSG_WARN([libltdl not installed, but installation disabled])
1194 enable_ltdl_install=yes
1197 if test x"$enable_ltdl_install" = x"yes"; then
1198 ac_configure_args="$ac_configure_args --enable-ltdl-install"
1199 LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdl.la
1200 INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl'])
1202 ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
1209 AC_DEFUN(AM_PROG_LIBTOOL, [indir([AC_PROG_LIBTOOL])])dnl
1210 AC_DEFUN(AM_ENABLE_SHARED, [indir([AC_ENABLE_SHARED], $@)])dnl
1211 AC_DEFUN(AM_ENABLE_STATIC, [indir([AC_ENABLE_STATIC], $@)])dnl
1212 AC_DEFUN(AM_DISABLE_SHARED, [indir([AC_DISABLE_SHARED], $@)])dnl
1213 AC_DEFUN(AM_DISABLE_STATIC, [indir([AC_DISABLE_STATIC], $@)])dnl
1214 AC_DEFUN(AM_PROG_LD, [indir([AC_PROG_LD])])dnl
1215 AC_DEFUN(AM_PROG_NM, [indir([AC_PROG_NM])])dnl
1217 dnl This is just to silence aclocal about the macro not being used
1218 ifelse([AC_DISABLE_FAST_INSTALL])dnl
1219 # Macro to add for using GNU gettext.
1220 # Ulrich Drepper <drepper@cygnus.com>, 1995.
1222 # This file can be copied and used freely without restrictions. It can
1223 # be used in projects which are not available under the GNU Public License
1224 # but which still want to provide support for the GNU gettext functionality.
1225 # Please note that the actual code is *not* freely available.
1229 AC_DEFUN(AM_WITH_NLS,
1230 [AC_MSG_CHECKING([whether NLS is requested])
1231 dnl Default is enabled NLS
1233 [ --disable-nls do not use Native Language Support],
1234 USE_NLS=$enableval, USE_NLS=yes)
1235 AC_MSG_RESULT($USE_NLS)
1238 USE_INCLUDED_LIBINTL=no
1240 dnl If we use NLS figure out what method
1241 if test "$USE_NLS" = "yes"; then
1242 AC_DEFINE(ENABLE_NLS)
1243 AC_MSG_CHECKING([whether included gettext is requested])
1244 AC_ARG_WITH(included-gettext,
1245 [ --with-included-gettext use the GNU gettext library included here],
1246 nls_cv_force_use_gnu_gettext=$withval,
1247 nls_cv_force_use_gnu_gettext=no)
1248 AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
1250 nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
1251 if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
1252 dnl User does not insist on using GNU NLS library. Figure out what
1253 dnl to use. If gettext or catgets are available (in this order) we
1254 dnl use this. Else we have to fall back to GNU NLS library.
1255 dnl catgets is only used if permitted by option --with-catgets.
1257 nls_cv_header_libgt=
1260 AC_CHECK_HEADER(libintl.h,
1261 [AC_CACHE_CHECK([for gettext in libc], gt_cv_func_gettext_libc,
1262 [AC_TRY_LINK([#include <libintl.h>], [return (int) gettext ("")],
1263 gt_cv_func_gettext_libc=yes, gt_cv_func_gettext_libc=no)])
1265 if test "$gt_cv_func_gettext_libc" != "yes"; then
1266 AC_CHECK_LIB(intl, bindtextdomain,
1267 [AC_CACHE_CHECK([for gettext in libintl],
1268 gt_cv_func_gettext_libintl,
1269 [AC_CHECK_LIB(intl, gettext,
1270 gt_cv_func_gettext_libintl=yes,
1271 gt_cv_func_gettext_libintl=no)],
1272 gt_cv_func_gettext_libintl=no)])
1275 if test "$gt_cv_func_gettext_libc" = "yes" \
1276 || test "$gt_cv_func_gettext_libintl" = "yes"; then
1277 AC_DEFINE(HAVE_GETTEXT)
1278 AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
1279 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
1280 if test "$MSGFMT" != "no"; then
1281 AC_CHECK_FUNCS(dcgettext)
1282 AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
1283 AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
1284 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
1285 AC_TRY_LINK(, [extern int _nl_msg_cat_cntr;
1286 return _nl_msg_cat_cntr],
1296 if test "$CATOBJEXT" = "NONE"; then
1297 AC_MSG_CHECKING([whether catgets can be used])
1298 AC_ARG_WITH(catgets,
1299 [ --with-catgets use catgets functions if available],
1300 nls_cv_use_catgets=$withval, nls_cv_use_catgets=no)
1301 AC_MSG_RESULT($nls_cv_use_catgets)
1303 if test "$nls_cv_use_catgets" = "yes"; then
1304 dnl No gettext in C library. Try catgets next.
1305 AC_CHECK_LIB(i, main)
1306 AC_CHECK_FUNC(catgets,
1307 [AC_DEFINE(HAVE_CATGETS)
1308 INTLOBJS="\$(CATOBJS)"
1309 AC_PATH_PROG(GENCAT, gencat, no)dnl
1310 if test "$GENCAT" != "no"; then
1311 AC_PATH_PROG(GMSGFMT, gmsgfmt, no)
1312 if test "$GMSGFMT" = "no"; then
1313 AM_PATH_PROG_WITH_TEST(GMSGFMT, msgfmt,
1314 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)
1316 AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
1317 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
1318 USE_INCLUDED_LIBINTL=yes
1322 INTLDEPS='$(top_builddir)/intl/libintl.a'
1324 LIBS=`echo $LIBS | sed -e 's/-lintl//'`
1325 nls_cv_header_intl=intl/libintl.h
1326 nls_cv_header_libgt=intl/libgettext.h
1331 if test "$CATOBJEXT" = "NONE"; then
1332 dnl Neither gettext nor catgets in included in the C library.
1333 dnl Fall back on GNU gettext library.
1334 nls_cv_use_gnu_gettext=yes
1338 if test "$nls_cv_use_gnu_gettext" = "yes"; then
1339 dnl Mark actions used to generate GNU NLS library.
1340 INTLOBJS="\$(GETTOBJS)"
1341 AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
1342 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt)
1343 AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
1344 AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
1345 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
1347 USE_INCLUDED_LIBINTL=yes
1351 INTLDEPS='$(top_builddir)/intl/libintl.a'
1353 LIBS=`echo $LIBS | sed -e 's/-lintl//'`
1354 nls_cv_header_intl=intl/libintl.h
1355 nls_cv_header_libgt=intl/libgettext.h
1358 dnl Test whether we really found GNU xgettext.
1359 if test "$XGETTEXT" != ":"; then
1360 dnl If it is no GNU xgettext we define it as : so that the
1361 dnl Makefiles still can work.
1362 if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
1366 [found xgettext program is not GNU xgettext; ignore it])
1371 # We need to process the po/ directory.
1375 nls_cv_header_intl=intl/libintl.h
1376 nls_cv_header_libgt=intl/libgettext.h
1378 AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl)
1380 [case "$CONFIG_FILES" in *po/Makefile.in*)
1381 sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
1385 # If this is used in GNU gettext we have to set USE_NLS to `yes'
1386 # because some of the sources are only built for this goal.
1387 if test "$PACKAGE" = gettext; then
1389 USE_INCLUDED_LIBINTL=yes
1392 dnl These rules are solely for the distribution goal. While doing this
1393 dnl we only have to keep exactly one list of the available catalogs
1394 dnl in configure.in.
1395 for lang in $ALL_LINGUAS; do
1396 GMOFILES="$GMOFILES $lang.gmo"
1397 POFILES="$POFILES $lang.po"
1400 dnl Make all variables we use known to autoconf.
1401 AC_SUBST(USE_INCLUDED_LIBINTL)
1404 AC_SUBST(DATADIRNAME)
1406 AC_SUBST(INSTOBJEXT)
1414 AC_DEFUN(AM_GNU_GETTEXT,
1415 [AC_REQUIRE([AC_PROG_MAKE_SET])dnl
1416 AC_REQUIRE([AC_PROG_CC])dnl
1417 AC_REQUIRE([AC_PROG_RANLIB])dnl
1418 AC_REQUIRE([AC_ISC_POSIX])dnl
1419 AC_REQUIRE([AC_HEADER_STDC])dnl
1420 AC_REQUIRE([AC_C_CONST])dnl
1421 AC_REQUIRE([AC_C_INLINE])dnl
1422 AC_REQUIRE([AC_TYPE_OFF_T])dnl
1423 AC_REQUIRE([AC_TYPE_SIZE_T])dnl
1424 AC_REQUIRE([AC_FUNC_ALLOCA])dnl
1425 AC_REQUIRE([AC_FUNC_MMAP])dnl
1427 AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \
1428 unistd.h sys/param.h])
1429 AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \
1430 strdup __argz_count __argz_stringify __argz_next])
1432 if test "${ac_cv_func_stpcpy+set}" != "set"; then
1433 AC_CHECK_FUNCS(stpcpy)
1435 if test "${ac_cv_func_stpcpy}" = "yes"; then
1436 AC_DEFINE(HAVE_STPCPY)
1442 if test "x$CATOBJEXT" != "x"; then
1443 if test "x$ALL_LINGUAS" = "x"; then
1446 AC_MSG_CHECKING(for catalogs to be installed)
1448 dnl ============== Fix is here! ======================
1449 dnl Some sh do not like substitution in bounds of for loops
1450 dnl for lang in ${LINGUAS=$ALL_LINGUAS}; do
1451 tmplinguas=${LINGUAS=$ALL_LINGUAS}
1452 for lang in ${tmplinguas}; do
1454 case "$ALL_LINGUAS" in
1455 *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
1458 LINGUAS=$NEW_LINGUAS
1459 AC_MSG_RESULT($LINGUAS)
1462 dnl Construct list of names of catalog files to be constructed.
1463 if test -n "$LINGUAS"; then
1464 for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
1468 dnl The reference to <locale.h> in the installed <libintl.h> file
1469 dnl must be resolved because we cannot expect the users of this
1470 dnl to define HAVE_LOCALE_H.
1471 if test $ac_cv_header_locale_h = yes; then
1472 INCLUDE_LOCALE_H="#include <locale.h>"
1475 /* The system does not provide the header <locale.h>. Take care yourself. */"
1477 AC_SUBST(INCLUDE_LOCALE_H)
1479 dnl Determine which catalog format we have (if any is needed)
1480 dnl For now we know about two different formats:
1481 dnl Linux libc-5 and the normal X/Open format
1482 test -d intl || mkdir intl
1483 if test "$CATOBJEXT" = ".cat"; then
1484 AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen)
1486 dnl Transform the SED scripts while copying because some dumb SEDs
1487 dnl cannot handle comments.
1488 sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed
1490 dnl po2tbl.sed is always needed.
1491 sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \
1492 $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed
1494 dnl In the intl/Makefile.in we have a special dependency which makes
1495 dnl only sense for gettext. We comment this out for non-gettext
1497 if test "$PACKAGE" = "gettext"; then
1507 dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
1508 dnl find the mkinstalldirs script in another subdir but ($top_srcdir).
1509 dnl Try to locate is.
1511 if test -n "$ac_aux_dir"; then
1512 MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
1514 if test -z "$MKINSTALLDIRS"; then
1515 MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
1517 AC_SUBST(MKINSTALLDIRS)
1519 dnl *** For now the libtool support in intl/Makefile is not for real.
1523 dnl Generate list of files to be processed by xgettext which will
1524 dnl be included in po/Makefile.
1525 test -d po || mkdir po
1526 if test "x$srcdir" != "x."; then
1527 if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
1528 posrcprefix="$srcdir/"
1530 posrcprefix="../$srcdir/"
1536 sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
1537 < $srcdir/po/POTFILES.in > po/POTFILES
1539 # Check whether LC_MESSAGES is available in <locale.h>.
1540 # Ulrich Drepper <drepper@cygnus.com>, 1995.
1542 # This file can be copied and used freely without restrictions. It can
1543 # be used in projects which are not available under the GNU Public License
1544 # but which still want to provide support for the GNU gettext functionality.
1545 # Please note that the actual code is *not* freely available.
1549 AC_DEFUN(AM_LC_MESSAGES,
1550 [if test $ac_cv_header_locale_h = yes; then
1551 AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
1552 [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
1553 am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
1554 if test $am_cv_val_LC_MESSAGES = yes; then
1555 AC_DEFINE(HAVE_LC_MESSAGES)
1558 # Search path for a program which passes the given test.
1559 # Ulrich Drepper <drepper@cygnus.com>, 1996.
1561 # This file can be copied and used freely without restrictions. It can
1562 # be used in projects which are not available under the GNU Public License
1563 # but which still want to provide support for the GNU gettext functionality.
1564 # Please note that the actual code is *not* freely available.
1568 dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
1569 dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
1570 AC_DEFUN(AM_PATH_PROG_WITH_TEST,
1571 [# Extract the first word of "$2", so it can be a program name with args.
1572 set dummy $2; ac_word=[$]2
1573 AC_MSG_CHECKING([for $ac_word])
1574 AC_CACHE_VAL(ac_cv_path_$1,
1577 ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
1580 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
1581 for ac_dir in ifelse([$5], , $PATH, [$5]); do
1582 test -z "$ac_dir" && ac_dir=.
1583 if test -f $ac_dir/$ac_word; then
1585 ac_cv_path_$1="$ac_dir/$ac_word"
1591 dnl If no 4th arg is given, leave the cache variable unset,
1592 dnl so AC_PATH_PROGS will keep looking.
1593 ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
1598 if test -n "[$]$1"; then
1599 AC_MSG_RESULT([$]$1)