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.82|0.83|0.84|0.85)
552 Version $lyx_cv_xfversion of xforms is not compatible with LyX.
553 This version of LyX works best with version 0.88[,] although it
554 supports also versions 0.81[,] 0.86 and 0.87.) ;;
557 While LyX is compatible with version $lyx_cv_xfversion of xforms[,]
558 it is recommended that you upgrade to version 0.88.) ;;
560 0.89) LYX_WARNING(dnl
561 LyX should work ok with version $lyx_cv_xfversion of xforms[,] but
562 it is an unproven version and might still have some bugs. If you
563 have problems[,] please use version 0.88 instead.) ;;
565 Version $lyx_cv_xfversion of xforms might not be compatible with LyX[,]
566 since it is newer than 0.88. You might have slight problems with it.);;
571 dnl Usage: LYX_HPUX Checks for HP-UX and update CXXFLAGS accordingly
573 [#It seems that HPUX requires using -fpcc-struct-return with gcc.
574 AC_CACHE_CHECK(for HP-UX,ac_cv_hpux,[
575 os=`uname -s | tr '[A-Z]' '[a-z]'`
577 test "$os" = hp-ux && ac_cv_hpux=yes])
578 if test "$ac_cv_hpux" = yes; then
579 test "x$GXX" = xyes && CXXFLAGS="$CXXFLAGS -fpcc-struct-return"
583 dnl Usage: LYX_SUNOS4 Checks for SunOS 4.x and sets the flag lyx_broken_headers
586 [#The headers are not correct under SunOS4
587 AC_CACHE_CHECK(for SunOS 4.x,ac_cv_sunos4,[
589 os=`uname -a | sed -e 's/^\([^ ]*\) [^ ]* \([0-9]\)\..*/\1\2/'`
590 changequote([, ]) dnl
592 test "$os" = SunOS4 && ac_cv_sunos4=yes])
593 if test "$ac_cv_sunos4" = yes; then
594 test "x$GXX" = xyes && lyx_broken_headers=yes
598 dnl Usage: LYX_SCO Checks for SCO and sets the flag lyx_broken_headers
601 [AC_CACHE_CHECK(for SCO 3.2v4,ac_cv_sco,[
603 if test `uname -s` != "SCO_SV"; then
604 lyx_machine_rel=`uname -m`:`uname -r`
605 if test $lyx_machine_rel = i386:3.2 || test $lyx_machine_rel = i486:3.2;
607 if test -f /usr/options/cb.name; then
609 elif /bin/uname -X 2>/dev/null >/dev/null ; then
614 if test "$ac_cv_sco" = yes; then
615 test "x$GXX" = xyes && lyx_broken_headers=yes
618 dnl Usage: LYX_FUNC_PUTENV_ARGTYPE
619 dnl Checks whether putenv() takes 'char const *' or 'char *' as
620 dnl argument. This is needed because Solaris 7 (wrongly?) uses 'char *',
621 dnl while everybody else uses the former...
622 AC_DEFUN(LYX_FUNC_PUTENV_ARGTYPE,
623 [AC_MSG_CHECKING([type of argument for putenv()])
624 AC_CACHE_VAL(lyx_cv_func_putenv_arg,dnl
626 [#include <cstdlib>],
627 [char const * foo = "bar";
629 [lyx_cv_func_putenv_arg='char const *'],[lyx_cv_func_putenv_arg='char *'])])
630 AC_MSG_RESULT($lyx_cv_func_putenv_arg)
631 AC_DEFINE_UNQUOTED(PUTENV_TYPE_ARG,$lyx_cv_func_putenv_arg,dnl
632 [Define to the type of the argument of putenv(). Needed on Solaris 7.])])
635 dnl Usage: LYX_WITH_DIR(dir-name,desc,dir-var-name,default-value,
636 dnl [default-yes-value])
637 dnl Adds a --with-'dir-name' option (described by 'desc') and puts the
638 dnl resulting directory name in 'dir-var-name'.
639 AC_DEFUN(LYX_WITH_DIR,[
640 AC_ARG_WITH($1,[ --with-$1 specify $2])
641 AC_MSG_CHECKING([for $2])
642 if test -z "$with_$3"; then
643 AC_CACHE_VAL(lyx_cv_$3, lyx_cv_$3=$4)
645 test "x$with_$3" = xyes && with_$3=$5
648 AC_MSG_RESULT($lyx_cv_$3)])
651 dnl Usage: LYX_LOOP_DIR(value,action)
652 dnl Executes action for values of variable `dir' in `values'. `values' can
653 dnl use ":" as a separator.
654 AC_DEFUN(LYX_LOOP_DIR,[
655 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
656 for dir in `eval "echo $1"`; do
657 if test ! "$dir" = NONE; then
658 test ! -d "$dir" && AC_ERROR([\"$dir\" is not a directory])
666 dnl Usage: LYX_ADD_LIB_DIR(var-name,dir) Adds a -L directive to variable
668 AC_DEFUN(LYX_ADD_LIB_DIR,[
670 if test "`(uname) 2>/dev/null`" = SunOS &&
671 uname -r | grep '^5' >/dev/null; then
672 if test $ac_cv_prog_gxx = yes ; then
673 $1="${$1} -Wl[,]-R$2"
680 dnl Usage: LYX_ADD_INC_DIR(var-name,dir) Adds a -I directive to variable
682 AC_DEFUN(LYX_ADD_INC_DIR,[$1="${$1} -I$2 "])
684 ### Check for a headers existence and location iff it exists
685 ## This is supposed to be a generalised version of LYX_STL_STRING_FWD
686 ## It almost works. I've tried a few variations but they give errors
687 ## of one sort or other: bad substitution or file not found etc. The
688 ## actual header _is_ found though and the cache variable is set however
689 ## the reported setting (on screen) is equal to $ac_safe for some unknown
691 AC_DEFUN(LYX_PATH_HEADER,
692 [ AC_CHECK_HEADER($1,[
693 ac_tr_safe=PATH_`echo $ac_safe | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
694 AC_CACHE_CHECK([path to $1],lyx_cv_path_$ac_safe,
695 [ cat > conftest.$ac_ext <<EOF
696 #line __oline__ "configure"
697 #include "confdefs.h"
701 lyx_cv_path_$ac_safe=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | \
702 grep $1 2>/dev/null | \
703 sed -e 's/.*\(".*$1"\).*/\1/' -e "1q"`
705 AC_DEFINE_UNQUOTED(${ac_tr_safe},${lyx_cv_path_$ac_safe})])
707 ### end of LYX_PATH_HEADER
709 ### Check for stl_string_fwd.h existence and location if it exists
710 AC_DEFUN(LYX_STL_STRING_FWD,
711 [ AC_CHECK_HEADER(stl_string_fwd.h,[
712 AC_CACHE_CHECK([path to stl_string_fwd.h],lyx_cv_path_stl_string_fwd_h,
713 [ cat > conftest.$ac_ext <<EOF
714 #line __oline__ "configure"
715 #include "confdefs.h"
717 #include <stl_string_fwd.h>
719 lyx_cv_path_stl_string_fwd_h=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | \
720 grep 'stl_string_fwd.h' 2>/dev/null | \
721 sed -e 's/.*\(".*stl_string_fwd.h"\).*/\1/' -e "1q"`
723 AC_DEFINE_UNQUOTED(STL_STRING_FWD_H_LOCATION,$lyx_cv_path_stl_string_fwd_h,
724 [define this to the location of stl_string_fwd.h to be used with #include,
725 NOTE: Do not set it to <stl_string_fwd.h> as that will find the LyX
726 supplied version of the header.
727 e.g. <../include/stl_string_fwd.h> or better yet use an absolute path])])
731 dnl AC_VALIDATE_CACHE_SYSTEM_TYPE[(cmd)]
732 dnl if the cache file is inconsistent with the current host,
733 dnl target and build system types, execute CMD or print a default
735 AC_DEFUN(AC_VALIDATE_CACHE_SYSTEM_TYPE, [
736 AC_REQUIRE([AC_CANONICAL_SYSTEM])
737 AC_MSG_CHECKING([config.cache system type])
738 if { test x"${ac_cv_host_system_type+set}" = x"set" &&
739 test x"$ac_cv_host_system_type" != x"$host"; } ||
740 { test x"${ac_cv_build_system_type+set}" = x"set" &&
741 test x"$ac_cv_build_system_type" != x"$build"; } ||
742 { test x"${ac_cv_target_system_type+set}" = x"set" &&
743 test x"$ac_cv_target_system_type" != x"$target"; }; then
744 AC_MSG_RESULT([different])
746 [AC_MSG_ERROR(["you must remove config.cache and restart configure"])])
748 AC_MSG_RESULT([same])
750 ac_cv_host_system_type="$host"
751 ac_cv_build_system_type="$build"
752 ac_cv_target_system_type="$target"
755 dnl We use this until autoconf fixes its version.
756 AC_DEFUN(LYX_FUNC_SELECT_ARGTYPES,
757 [AC_MSG_CHECKING([types of arguments for select()])
758 AC_CACHE_VAL(ac_cv_func_select_arg234,dnl
759 [AC_CACHE_VAL(ac_cv_func_select_arg1,dnl
760 [AC_CACHE_VAL(ac_cv_func_select_arg5,dnl
761 [for ac_cv_func_select_arg234 in 'fd_set *' 'int *' 'void *'; do
762 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
764 [#ifdef HAVE_SYS_TYPES_H
765 #include <sys/types.h>
767 #ifdef HAVE_SYS_TIME_H
768 #include <sys/time.h>
770 #ifdef HAVE_SYS_SELECT_H
771 #include <sys/select.h>
773 #ifdef HAVE_SYS_SOCKET_H
774 #include <sys/socket.h>
776 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
777 [ac_not_found=no ; break 3],ac_not_found=yes)
784 if test "$ac_not_found" = yes; then
785 ac_cv_func_select_arg1=int
786 ac_cv_func_select_arg234='int *'
787 ac_cv_func_select_arg5='struct timeval *'
789 AC_MSG_RESULT([$ac_cv_func_select_arg1,$ac_cv_func_select_arg234,$ac_cv_func_select_arg5])
790 AC_DEFINE_UNQUOTED(SELECT_TYPE_ARG1,$ac_cv_func_select_arg1)
791 AC_DEFINE_UNQUOTED(SELECT_TYPE_ARG234,($ac_cv_func_select_arg234))
792 AC_DEFINE_UNQUOTED(SELECT_TYPE_ARG5,($ac_cv_func_select_arg5))
795 ## libtool.m4 - Configure libtool for the target system. -*-Shell-script-*-
796 ## Copyright (C) 1996-1999 Free Software Foundation, Inc.
797 ## Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
799 ## This program is free software; you can redistribute it and/or modify
800 ## it under the terms of the GNU General Public License as published by
801 ## the Free Software Foundation; either version 2 of the License, or
802 ## (at your option) any later version.
804 ## This program is distributed in the hope that it will be useful, but
805 ## WITHOUT ANY WARRANTY; without even the implied warranty of
806 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
807 ## General Public License for more details.
809 ## You should have received a copy of the GNU General Public License
810 ## along with this program; if not, write to the Free Software
811 ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
813 ## As a special exception to the GNU General Public License, if you
814 ## distribute this file as part of a program that contains a
815 ## configuration script generated by Autoconf, you may include it under
816 ## the same distribution terms that you use for the rest of that program.
818 # serial 40 AC_PROG_LIBTOOL
819 AC_DEFUN(AC_PROG_LIBTOOL,
820 [AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
822 # Save cache, so that ltconfig can load it
825 # Actually configure libtool. ac_aux_dir is where install-sh is found.
826 CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
827 LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
828 LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" \
829 DLLTOOL="$DLLTOOL" AS="$AS" OBJDUMP="$OBJDUMP" \
830 ${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \
831 $libtool_flags --no-verify $ac_aux_dir/ltmain.sh $lt_target \
832 || AC_MSG_ERROR([libtool configure failed])
834 # Reload cache, that may have been modified by ltconfig
837 # This can be used to rebuild libtool when needed
838 LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh"
840 # Always use our own libtool.
841 LIBTOOL='$(SHELL) $(top_builddir)/libtool'
844 # Redirect the config.log output again, so that the ltconfig log is not
845 # clobbered by the next message.
849 AC_DEFUN(AC_LIBTOOL_SETUP,
851 AC_REQUIRE([AC_ENABLE_SHARED])dnl
852 AC_REQUIRE([AC_ENABLE_STATIC])dnl
853 AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
854 AC_REQUIRE([AC_CANONICAL_HOST])dnl
855 AC_REQUIRE([AC_CANONICAL_BUILD])dnl
856 AC_REQUIRE([AC_PROG_RANLIB])dnl
857 AC_REQUIRE([AC_PROG_CC])dnl
858 AC_REQUIRE([AC_PROG_LD])dnl
859 AC_REQUIRE([AC_PROG_NM])dnl
860 AC_REQUIRE([AC_PROG_LN_S])dnl
864 NONE) lt_target="$host" ;;
865 *) lt_target="$target" ;;
868 # Check for any special flags to pass to ltconfig.
869 libtool_flags="--cache-file=$cache_file"
870 test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
871 test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
872 test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install"
873 test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
874 test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
875 ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN],
876 [libtool_flags="$libtool_flags --enable-dlopen"])
877 ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
878 [libtool_flags="$libtool_flags --enable-win32-dll"])
879 AC_ARG_ENABLE(libtool-lock,
880 [ --disable-libtool-lock avoid locking (might break parallel builds)])
881 test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock"
882 test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
884 # Some flags need to be propagated to the compiler or linker for good
888 # Find out which ABI we are using.
889 echo '[#]line __oline__ "configure"' > conftest.$ac_ext
890 if AC_TRY_EVAL(ac_compile); then
891 case "`/usr/bin/file conftest.o`" in
907 # On SCO OpenServer 5, we need -belf to get full-featured binaries.
908 SAVE_CFLAGS="$CFLAGS"
909 CFLAGS="$CFLAGS -belf"
910 AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
911 [AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])])
912 if test x"$lt_cv_cc_needs_belf" != x"yes"; then
913 # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
914 CFLAGS="$SAVE_CFLAGS"
918 ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
919 [*-*-cygwin* | *-*-mingw*)
920 AC_CHECK_TOOL(DLLTOOL, dlltool, false)
921 AC_CHECK_TOOL(AS, as, false)
922 AC_CHECK_TOOL(OBJDUMP, objdump, false)
928 # AC_LIBTOOL_DLOPEN - enable checks for dlopen support
929 AC_DEFUN(AC_LIBTOOL_DLOPEN, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])])
931 # AC_LIBTOOL_WIN32_DLL - declare package support for building win32 dll's
932 AC_DEFUN(AC_LIBTOOL_WIN32_DLL, [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])])
934 # AC_ENABLE_SHARED - implement the --enable-shared flag
935 # Usage: AC_ENABLE_SHARED[(DEFAULT)]
936 # Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
938 AC_DEFUN(AC_ENABLE_SHARED, [dnl
939 define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
940 AC_ARG_ENABLE(shared,
941 changequote(<<, >>)dnl
942 << --enable-shared[=PKGS] build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT],
944 [p=${PACKAGE-default}
946 yes) enable_shared=yes ;;
947 no) enable_shared=no ;;
950 # Look at the argument we got. We use all the common list separators.
951 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
952 for pkg in $enableval; do
953 if test "X$pkg" = "X$p"; then
960 enable_shared=AC_ENABLE_SHARED_DEFAULT)dnl
963 # AC_DISABLE_SHARED - set the default shared flag to --disable-shared
964 AC_DEFUN(AC_DISABLE_SHARED, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
965 AC_ENABLE_SHARED(no)])
967 # AC_ENABLE_STATIC - implement the --enable-static flag
968 # Usage: AC_ENABLE_STATIC[(DEFAULT)]
969 # Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
971 AC_DEFUN(AC_ENABLE_STATIC, [dnl
972 define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
973 AC_ARG_ENABLE(static,
974 changequote(<<, >>)dnl
975 << --enable-static[=PKGS] build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT],
977 [p=${PACKAGE-default}
979 yes) enable_static=yes ;;
980 no) enable_static=no ;;
983 # Look at the argument we got. We use all the common list separators.
984 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
985 for pkg in $enableval; do
986 if test "X$pkg" = "X$p"; then
993 enable_static=AC_ENABLE_STATIC_DEFAULT)dnl
996 # AC_DISABLE_STATIC - set the default static flag to --disable-static
997 AC_DEFUN(AC_DISABLE_STATIC, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
998 AC_ENABLE_STATIC(no)])
1001 # AC_ENABLE_FAST_INSTALL - implement the --enable-fast-install flag
1002 # Usage: AC_ENABLE_FAST_INSTALL[(DEFAULT)]
1003 # Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
1005 AC_DEFUN(AC_ENABLE_FAST_INSTALL, [dnl
1006 define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
1007 AC_ARG_ENABLE(fast-install,
1008 changequote(<<, >>)dnl
1009 << --enable-fast-install[=PKGS] optimize for fast installation [default=>>AC_ENABLE_FAST_INSTALL_DEFAULT],
1010 changequote([, ])dnl
1011 [p=${PACKAGE-default}
1012 case "$enableval" in
1013 yes) enable_fast_install=yes ;;
1014 no) enable_fast_install=no ;;
1016 enable_fast_install=no
1017 # Look at the argument we got. We use all the common list separators.
1018 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
1019 for pkg in $enableval; do
1020 if test "X$pkg" = "X$p"; then
1021 enable_fast_install=yes
1027 enable_fast_install=AC_ENABLE_FAST_INSTALL_DEFAULT)dnl
1030 # AC_ENABLE_FAST_INSTALL - set the default to --disable-fast-install
1031 AC_DEFUN(AC_DISABLE_FAST_INSTALL, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
1032 AC_ENABLE_FAST_INSTALL(no)])
1034 # AC_PROG_LD - find the path to the GNU or non-GNU linker
1035 AC_DEFUN(AC_PROG_LD,
1036 [AC_ARG_WITH(gnu-ld,
1037 [ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
1038 test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
1039 AC_REQUIRE([AC_PROG_CC])dnl
1040 AC_REQUIRE([AC_CANONICAL_HOST])dnl
1041 AC_REQUIRE([AC_CANONICAL_BUILD])dnl
1043 if test "$ac_cv_prog_gcc" = yes; then
1044 # Check if gcc -print-prog-name=ld gives a path.
1045 AC_MSG_CHECKING([for ld used by GCC])
1046 ac_prog=`($CC -print-prog-name=ld) 2>&5`
1048 # Accept absolute paths.
1050 [\\/]* | [A-Za-z]:[\\/]*)
1051 re_direlt='/[^/][^/]*/\.\./'
1053 # Canonicalize the path of ld
1054 ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
1055 while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
1056 ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
1058 test -z "$LD" && LD="$ac_prog"
1061 # If it fails, then pretend we aren't using GCC.
1065 # If it is relative, then search for the first ld in PATH.
1069 elif test "$with_gnu_ld" = yes; then
1070 AC_MSG_CHECKING([for GNU ld])
1072 AC_MSG_CHECKING([for non-GNU ld])
1074 AC_CACHE_VAL(ac_cv_path_LD,
1075 [if test -z "$LD"; then
1076 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
1077 for ac_dir in $PATH; do
1078 test -z "$ac_dir" && ac_dir=.
1079 if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
1080 ac_cv_path_LD="$ac_dir/$ac_prog"
1081 # Check to see if the program is GNU ld. I'd rather use --version,
1082 # but apparently some GNU ld's only accept -v.
1083 # Break only if it was the GNU/non-GNU ld that we prefer.
1084 if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
1085 test "$with_gnu_ld" != no && break
1087 test "$with_gnu_ld" != yes && break
1093 ac_cv_path_LD="$LD" # Let the user override the test with a path.
1096 if test -n "$LD"; then
1101 test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
1105 AC_DEFUN(AC_PROG_LD_GNU,
1106 [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], ac_cv_prog_gnu_ld,
1107 [# I'd rather use --version here, but apparently some GNU ld's only accept -v.
1108 if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
1109 ac_cv_prog_gnu_ld=yes
1111 ac_cv_prog_gnu_ld=no
1115 # AC_PROG_NM - find the path to a BSD-compatible name lister
1116 AC_DEFUN(AC_PROG_NM,
1117 [AC_MSG_CHECKING([for BSD-compatible nm])
1118 AC_CACHE_VAL(ac_cv_path_NM,
1119 [if test -n "$NM"; then
1120 # Let the user override the test.
1123 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
1124 for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
1125 test -z "$ac_dir" && ac_dir=.
1126 if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext ; then
1127 # Check to see if the nm accepts a BSD-compat flag.
1128 # Adding the `sed 1q' prevents false positives on HP-UX, which says:
1129 # nm: unknown option "B" ignored
1130 if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
1131 ac_cv_path_NM="$ac_dir/nm -B"
1133 elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
1134 ac_cv_path_NM="$ac_dir/nm -p"
1137 ac_cv_path_NM=${ac_cv_path_NM="$ac_dir/nm"} # keep the first match, but
1138 continue # so that we can try to find one that supports BSD flags
1143 test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm
1146 AC_MSG_RESULT([$NM])
1149 # AC_CHECK_LIBM - check for math library
1150 AC_DEFUN(AC_CHECK_LIBM,
1151 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
1153 case "$lt_target" in
1154 *-*-beos* | *-*-cygwin*)
1155 # These system don't have libm
1158 AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
1159 AC_CHECK_LIB(m, main, LIBM="$LIBM -lm")
1162 AC_CHECK_LIB(m, main, LIBM="-lm")
1167 # AC_LIBLTDL_CONVENIENCE[(dir)] - sets LIBLTDL to the link flags for
1168 # the libltdl convenience library, adds --enable-ltdl-convenience to
1169 # the configure arguments. Note that LIBLTDL is not AC_SUBSTed, nor
1170 # is AC_CONFIG_SUBDIRS called. If DIR is not provided, it is assumed
1171 # to be `${top_builddir}/libltdl'. Make sure you start DIR with
1172 # '${top_builddir}/' (note the single quotes!) if your package is not
1173 # flat, and, if you're not using automake, define top_builddir as
1174 # appropriate in the Makefiles.
1175 AC_DEFUN(AC_LIBLTDL_CONVENIENCE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
1176 case "$enable_ltdl_convenience" in
1177 no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
1178 "") enable_ltdl_convenience=yes
1179 ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
1181 LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdlc.la
1182 INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl'])
1185 # AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for
1186 # the libltdl installable library, and adds --enable-ltdl-install to
1187 # the configure arguments. Note that LIBLTDL is not AC_SUBSTed, nor
1188 # is AC_CONFIG_SUBDIRS called. If DIR is not provided, it is assumed
1189 # to be `${top_builddir}/libltdl'. Make sure you start DIR with
1190 # '${top_builddir}/' (note the single quotes!) if your package is not
1191 # flat, and, if you're not using automake, define top_builddir as
1192 # appropriate in the Makefiles.
1193 # In the future, this macro may have to be called after AC_PROG_LIBTOOL.
1194 AC_DEFUN(AC_LIBLTDL_INSTALLABLE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
1195 AC_CHECK_LIB(ltdl, main,
1196 [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
1197 [if test x"$enable_ltdl_install" = xno; then
1198 AC_MSG_WARN([libltdl not installed, but installation disabled])
1200 enable_ltdl_install=yes
1203 if test x"$enable_ltdl_install" = x"yes"; then
1204 ac_configure_args="$ac_configure_args --enable-ltdl-install"
1205 LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdl.la
1206 INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl'])
1208 ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
1215 AC_DEFUN(AM_PROG_LIBTOOL, [indir([AC_PROG_LIBTOOL])])dnl
1216 AC_DEFUN(AM_ENABLE_SHARED, [indir([AC_ENABLE_SHARED], $@)])dnl
1217 AC_DEFUN(AM_ENABLE_STATIC, [indir([AC_ENABLE_STATIC], $@)])dnl
1218 AC_DEFUN(AM_DISABLE_SHARED, [indir([AC_DISABLE_SHARED], $@)])dnl
1219 AC_DEFUN(AM_DISABLE_STATIC, [indir([AC_DISABLE_STATIC], $@)])dnl
1220 AC_DEFUN(AM_PROG_LD, [indir([AC_PROG_LD])])dnl
1221 AC_DEFUN(AM_PROG_NM, [indir([AC_PROG_NM])])dnl
1223 dnl This is just to silence aclocal about the macro not being used
1224 ifelse([AC_DISABLE_FAST_INSTALL])dnl
1225 # Macro to add for using GNU gettext.
1226 # Ulrich Drepper <drepper@cygnus.com>, 1995.
1228 # This file can be copied and used freely without restrictions. It can
1229 # be used in projects which are not available under the GNU Public License
1230 # but which still want to provide support for the GNU gettext functionality.
1231 # Please note that the actual code is *not* freely available.
1235 AC_DEFUN(AM_WITH_NLS,
1236 [AC_MSG_CHECKING([whether NLS is requested])
1237 dnl Default is enabled NLS
1239 [ --disable-nls do not use Native Language Support],
1240 USE_NLS=$enableval, USE_NLS=yes)
1241 AC_MSG_RESULT($USE_NLS)
1244 USE_INCLUDED_LIBINTL=no
1246 dnl If we use NLS figure out what method
1247 if test "$USE_NLS" = "yes"; then
1248 AC_DEFINE(ENABLE_NLS)
1249 AC_MSG_CHECKING([whether included gettext is requested])
1250 AC_ARG_WITH(included-gettext,
1251 [ --with-included-gettext use the GNU gettext library included here],
1252 nls_cv_force_use_gnu_gettext=$withval,
1253 nls_cv_force_use_gnu_gettext=no)
1254 AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
1256 nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
1257 if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
1258 dnl User does not insist on using GNU NLS library. Figure out what
1259 dnl to use. If gettext or catgets are available (in this order) we
1260 dnl use this. Else we have to fall back to GNU NLS library.
1261 dnl catgets is only used if permitted by option --with-catgets.
1263 nls_cv_header_libgt=
1266 AC_CHECK_HEADER(libintl.h,
1267 [AC_CACHE_CHECK([for gettext in libc], gt_cv_func_gettext_libc,
1268 [AC_TRY_LINK([#include <libintl.h>], [return (int) gettext ("")],
1269 gt_cv_func_gettext_libc=yes, gt_cv_func_gettext_libc=no)])
1271 if test "$gt_cv_func_gettext_libc" != "yes"; then
1272 AC_CHECK_LIB(intl, bindtextdomain,
1273 [AC_CACHE_CHECK([for gettext in libintl],
1274 gt_cv_func_gettext_libintl,
1275 [AC_CHECK_LIB(intl, gettext,
1276 dnl ============== A fix is here! ======================
1277 dnl -lintl was not added to the LIBS variable in this case
1278 [gt_cv_func_gettext_libintl=yes
1281 gt_cv_func_gettext_libintl=no)],
1282 gt_cv_func_gettext_libintl=no)])
1285 if test "$gt_cv_func_gettext_libc" = "yes" \
1286 || test "$gt_cv_func_gettext_libintl" = "yes"; then
1287 AC_DEFINE(HAVE_GETTEXT)
1288 AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
1289 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
1290 if test "$MSGFMT" != "no"; then
1291 AC_CHECK_FUNCS(dcgettext)
1292 AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
1293 AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
1294 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
1295 AC_TRY_LINK(, [extern int _nl_msg_cat_cntr;
1296 return _nl_msg_cat_cntr],
1306 if test "$CATOBJEXT" = "NONE"; then
1307 AC_MSG_CHECKING([whether catgets can be used])
1308 AC_ARG_WITH(catgets,
1309 [ --with-catgets use catgets functions if available],
1310 nls_cv_use_catgets=$withval, nls_cv_use_catgets=no)
1311 AC_MSG_RESULT($nls_cv_use_catgets)
1313 if test "$nls_cv_use_catgets" = "yes"; then
1314 dnl No gettext in C library. Try catgets next.
1315 AC_CHECK_LIB(i, main)
1316 AC_CHECK_FUNC(catgets,
1317 [AC_DEFINE(HAVE_CATGETS)
1318 INTLOBJS="\$(CATOBJS)"
1319 AC_PATH_PROG(GENCAT, gencat, no)dnl
1320 if test "$GENCAT" != "no"; then
1321 AC_PATH_PROG(GMSGFMT, gmsgfmt, no)
1322 if test "$GMSGFMT" = "no"; then
1323 AM_PATH_PROG_WITH_TEST(GMSGFMT, msgfmt,
1324 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)
1326 AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
1327 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
1328 USE_INCLUDED_LIBINTL=yes
1332 INTLDEPS='$(top_builddir)/intl/libintl.a'
1334 LIBS=`echo $LIBS | sed -e 's/-lintl//'`
1335 nls_cv_header_intl=intl/libintl.h
1336 nls_cv_header_libgt=intl/libgettext.h
1341 if test "$CATOBJEXT" = "NONE"; then
1342 dnl Neither gettext nor catgets in included in the C library.
1343 dnl Fall back on GNU gettext library.
1344 nls_cv_use_gnu_gettext=yes
1348 if test "$nls_cv_use_gnu_gettext" = "yes"; then
1349 dnl Mark actions used to generate GNU NLS library.
1350 INTLOBJS="\$(GETTOBJS)"
1351 AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
1352 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt)
1353 AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
1354 AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
1355 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
1357 USE_INCLUDED_LIBINTL=yes
1361 INTLDEPS='$(top_builddir)/intl/libintl.a'
1363 LIBS=`echo $LIBS | sed -e 's/-lintl//'`
1364 nls_cv_header_intl=intl/libintl.h
1365 nls_cv_header_libgt=intl/libgettext.h
1368 dnl Test whether we really found GNU xgettext.
1369 if test "$XGETTEXT" != ":"; then
1370 dnl If it is no GNU xgettext we define it as : so that the
1371 dnl Makefiles still can work.
1372 if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
1376 [found xgettext program is not GNU xgettext; ignore it])
1381 # We need to process the po/ directory.
1385 nls_cv_header_intl=intl/libintl.h
1386 nls_cv_header_libgt=intl/libgettext.h
1388 AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl)
1390 [case "$CONFIG_FILES" in *po/Makefile.in*)
1391 sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
1395 # If this is used in GNU gettext we have to set USE_NLS to `yes'
1396 # because some of the sources are only built for this goal.
1397 if test "$PACKAGE" = gettext; then
1399 USE_INCLUDED_LIBINTL=yes
1402 dnl These rules are solely for the distribution goal. While doing this
1403 dnl we only have to keep exactly one list of the available catalogs
1404 dnl in configure.in.
1405 for lang in $ALL_LINGUAS; do
1406 GMOFILES="$GMOFILES $lang.gmo"
1407 POFILES="$POFILES $lang.po"
1410 dnl Make all variables we use known to autoconf.
1411 AC_SUBST(USE_INCLUDED_LIBINTL)
1414 AC_SUBST(DATADIRNAME)
1416 AC_SUBST(INSTOBJEXT)
1424 AC_DEFUN(AM_GNU_GETTEXT,
1425 [AC_REQUIRE([AC_PROG_MAKE_SET])dnl
1426 AC_REQUIRE([AC_PROG_CC])dnl
1427 AC_REQUIRE([AC_PROG_RANLIB])dnl
1428 AC_REQUIRE([AC_ISC_POSIX])dnl
1429 AC_REQUIRE([AC_HEADER_STDC])dnl
1430 AC_REQUIRE([AC_C_CONST])dnl
1431 AC_REQUIRE([AC_C_INLINE])dnl
1432 AC_REQUIRE([AC_TYPE_OFF_T])dnl
1433 AC_REQUIRE([AC_TYPE_SIZE_T])dnl
1434 AC_REQUIRE([AC_FUNC_ALLOCA])dnl
1435 AC_REQUIRE([AC_FUNC_MMAP])dnl
1437 AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \
1438 unistd.h sys/param.h])
1439 AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \
1440 strdup __argz_count __argz_stringify __argz_next])
1442 if test "${ac_cv_func_stpcpy+set}" != "set"; then
1443 AC_CHECK_FUNCS(stpcpy)
1445 if test "${ac_cv_func_stpcpy}" = "yes"; then
1446 AC_DEFINE(HAVE_STPCPY)
1452 if test "x$CATOBJEXT" != "x"; then
1453 if test "x$ALL_LINGUAS" = "x"; then
1456 AC_MSG_CHECKING(for catalogs to be installed)
1458 dnl ============== Fix is here! ======================
1459 dnl Some sh do not like substitution in bounds of for loops
1460 dnl for lang in ${LINGUAS=$ALL_LINGUAS}; do
1461 tmplinguas=${LINGUAS=$ALL_LINGUAS}
1462 for lang in ${tmplinguas}; do
1464 case "$ALL_LINGUAS" in
1465 *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
1468 LINGUAS=$NEW_LINGUAS
1469 AC_MSG_RESULT($LINGUAS)
1472 dnl Construct list of names of catalog files to be constructed.
1473 if test -n "$LINGUAS"; then
1474 for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
1478 dnl The reference to <locale.h> in the installed <libintl.h> file
1479 dnl must be resolved because we cannot expect the users of this
1480 dnl to define HAVE_LOCALE_H.
1481 if test $ac_cv_header_locale_h = yes; then
1482 INCLUDE_LOCALE_H="#include <locale.h>"
1485 /* The system does not provide the header <locale.h>. Take care yourself. */"
1487 AC_SUBST(INCLUDE_LOCALE_H)
1489 dnl Determine which catalog format we have (if any is needed)
1490 dnl For now we know about two different formats:
1491 dnl Linux libc-5 and the normal X/Open format
1492 test -d intl || mkdir intl
1493 if test "$CATOBJEXT" = ".cat"; then
1494 AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen)
1496 dnl Transform the SED scripts while copying because some dumb SEDs
1497 dnl cannot handle comments.
1498 sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed
1500 dnl po2tbl.sed is always needed.
1501 sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \
1502 $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed
1504 dnl In the intl/Makefile.in we have a special dependency which makes
1505 dnl only sense for gettext. We comment this out for non-gettext
1507 if test "$PACKAGE" = "gettext"; then
1517 dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
1518 dnl find the mkinstalldirs script in another subdir but ($top_srcdir).
1519 dnl Try to locate is.
1521 if test -n "$ac_aux_dir"; then
1522 MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
1524 if test -z "$MKINSTALLDIRS"; then
1525 MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
1527 AC_SUBST(MKINSTALLDIRS)
1529 dnl *** For now the libtool support in intl/Makefile is not for real.
1533 dnl Generate list of files to be processed by xgettext which will
1534 dnl be included in po/Makefile.
1535 test -d po || mkdir po
1536 if test "x$srcdir" != "x."; then
1537 if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
1538 posrcprefix="$srcdir/"
1540 posrcprefix="../$srcdir/"
1546 sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
1547 < $srcdir/po/POTFILES.in > po/POTFILES
1549 # Check whether LC_MESSAGES is available in <locale.h>.
1550 # Ulrich Drepper <drepper@cygnus.com>, 1995.
1552 # This file can be copied and used freely without restrictions. It can
1553 # be used in projects which are not available under the GNU Public License
1554 # but which still want to provide support for the GNU gettext functionality.
1555 # Please note that the actual code is *not* freely available.
1559 AC_DEFUN(AM_LC_MESSAGES,
1560 [if test $ac_cv_header_locale_h = yes; then
1561 AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
1562 [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
1563 am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
1564 if test $am_cv_val_LC_MESSAGES = yes; then
1565 AC_DEFINE(HAVE_LC_MESSAGES)
1568 # Search path for a program which passes the given test.
1569 # Ulrich Drepper <drepper@cygnus.com>, 1996.
1571 # This file can be copied and used freely without restrictions. It can
1572 # be used in projects which are not available under the GNU Public License
1573 # but which still want to provide support for the GNU gettext functionality.
1574 # Please note that the actual code is *not* freely available.
1578 dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
1579 dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
1580 AC_DEFUN(AM_PATH_PROG_WITH_TEST,
1581 [# Extract the first word of "$2", so it can be a program name with args.
1582 set dummy $2; ac_word=[$]2
1583 AC_MSG_CHECKING([for $ac_word])
1584 AC_CACHE_VAL(ac_cv_path_$1,
1587 ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
1590 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
1591 for ac_dir in ifelse([$5], , $PATH, [$5]); do
1592 test -z "$ac_dir" && ac_dir=.
1593 if test -f $ac_dir/$ac_word; then
1595 ac_cv_path_$1="$ac_dir/$ac_word"
1601 dnl If no 4th arg is given, leave the cache variable unset,
1602 dnl so AC_PATH_PROGS will keep looking.
1603 ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
1608 if test -n "[$]$1"; then
1609 AC_MSG_RESULT([$]$1)