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 -Woverloaded-virtual -fno-rtti -fno-exceptions";;
189 *2.91.*) CXXFLAGS="-g $lyx_opt -Wno-return-type -fno-exceptions -fno-rtti";;
190 *) CXXFLAGS="-g $lyx_opt -fno-exceptions -fno-rtti";;
195 if test x$with_warnings = xyes ; then
197 2.95.*) CXXFLAGS="$CXXFLAGS -Wall -W -Wconversion";;
198 *) CXXFLAGS="$CXXFLAGS -ansi -Wall -W";;
200 if test $lyx_devel_version = yes ; then
203 *) CXXFLAGS="$CXXFLAGS -pedantic";;
209 test "${CXXFLAGS+set}" = set || CXXFLAGS="-g"
214 dnl Usage: LYX_CXX_RTTI : checks whether the C++ compiler
216 AC_DEFUN(LYX_CXX_RTTI,[
217 ### Check whether the compiler supports runtime type information
218 AC_CACHE_CHECK(whether the C++ compiler supports RTTI,lyx_cv_rtti,
222 virtual int tag() { return 0; }
224 class derived1 : public rtti {
226 int tag() { return 1; }
228 class derived2 : public rtti {
230 int tag() { return 2; }
233 derived1 * foo1 = new derived1();
234 derived2 * foo2 = new derived2();
236 derived1 * bar1 = dynamic_cast<derived1 *>(bar);
240 bar1 = dynamic_cast<derived1 *>(bar);
245 ],lyx_cv_rtti=yes,lyx_cv_rtti=no,lyx_cv_rtti=no)
247 if test x$lyx_cv_rtti = xyes ; then
248 AC_DEFINE(HAVE_RTTI, 1,
249 [Define to 1 if your compiler supports runtime type information])
253 dnl Usage: LYX_CXX_EXPLICIT : checks whether the C++ compiler
254 dnl understands the "explicit" directive.
255 AC_DEFUN(LYX_CXX_EXPLICIT,[
256 ### Check whether the compiler understands the keyword `explicit'
257 AC_CACHE_CHECK(whether the C++ compiler understands explicit,lyx_cv_explicit,
262 };],,lyx_cv_explicit=yes,lyx_cv_explicit=no)
264 if test $lyx_cv_explicit = no ; then
265 AC_DEFINE(explicit,[ ],
266 [Define to nothing if your compiler does not understand the
267 'explicit' directive])
271 dnl Usage: LYX_CXX_STL_STACK : checks whether the C++ compiler
272 dnl has a working stl stack template
273 AC_DEFUN(LYX_CXX_STL_STACK,[
274 AC_CACHE_CHECK(for broken STL stack template,lyx_cv_broken_stack,
281 ],lyx_cv_broken_stack=no,lyx_cv_broken_stack=yes)
283 if test $lyx_cv_broken_stack = yes ; then
284 AC_DEFINE(BROKEN_STL_STACK, 1,
285 [Define if you have the STL from libg++ 2.7.x, where stack<> is not defined
290 dnl Usage: LYX_STD_COUNT : checks wherer the C++ library have a conforming
291 dnl count template, if not the old HP version is assumed.
292 AC_DEFUN(LYX_STD_COUNT,[
293 AC_CACHE_CHECK(for conforming std::count,lyx_cv_std_count,
299 int countChar(string const & a, char const c)
301 return count(a.begin(), a.end(), c);
305 int i = countChar(a, 'l');
306 ],lyx_cv_std_count=yes,lyx_cv_std_count=no)
308 if test $lyx_cv_std_count = yes ; then
309 AC_DEFINE(HAVE_STD_COUNT, 1,
310 [Define if you have a conforming std::count template, otherwise HP version of count template is assumed.])
314 dnl Usage: LYX_CXX_STL_MODERN_STREAMS : checks whether the C++ compiler
315 dnl supports modern STL streams
316 AC_DEFUN(LYX_CXX_STL_MODERN_STREAMS,[
317 AC_CACHE_CHECK(for modern STL streams,lyx_cv_modern_streams,
321 std::streambuf * test = std::cerr.rdbuf();
323 ],lyx_cv_modern_streams=yes,lyx_cv_modern_streams=no)
325 if test $lyx_cv_modern_streams = yes ; then
326 AC_DEFINE(MODERN_STL_STREAMS, 1,
327 [Define if you have modern standard-compliant STL streams])
331 dnl Usage: LYX_CXX_STL_STRING : checks whether the C++ compiler
332 dnl has a working stl string container, the check is really stupid
333 dnl and could need some improvement.
334 AC_DEFUN(LYX_CXX_STL_STRING,[
335 AC_REQUIRE([LYX_PROG_CXX])
336 AC_MSG_CHECKING(whether the included std::string should be used)
337 AC_ARG_WITH(included-string,
338 [ --with-included-string use LyX string class instead of STL string],
339 [with_included_string=$withval],
344 string a("hello there");
349 with_included_string=no
351 with_included_string=yes
355 if test x$with_included_string = xyes ; then
356 AC_DEFINE(USE_INCLUDED_STRING, 1,
357 [Define to use the lyxstring class bundled with LyX.])
358 lyx_flags="$lyx_flags included-string"
360 AM_CONDITIONAL(USE_LYXSTRING, test x$with_included_string = xyes)
361 AC_MSG_RESULT([$with_included_string])
365 dnl Usage: LYX_REGEX : checks if the header regex.h is available
366 dnl if it is not available the automake variable USE_REGEX will be
367 dnl defined and the regex.h and regex.c that we provide will be used.
369 AC_CHECK_HEADERS(regex.h, lyx_regex=no, lyx_regex=yes)
370 AM_CONDITIONAL(USE_REGEX, test x$lyx_regex = xyes)
375 AC_DEFUN(LYX_CXX_MUTABLE, [
376 AC_REQUIRE([LYX_PROG_CXX])
377 AC_MSG_CHECKING(if C++ compiler supports mutable)
383 void foo() const { c=0; }
388 AC_DEFINE(HAVE_MUTABLE, 1,
389 [Defined if you compiler supports 'mutable'.])
393 AC_MSG_RESULT([$ac_mutable])
398 AC_DEFUN(LYX_CXX_PARTIAL, [
399 AC_REQUIRE([LYX_PROG_CXX])
400 AC_MSG_CHECKING(if C++ compiler supports partial specialization)
403 template<class T, class K>
407 template<class T> class k<void,T> { };
412 ac_partial_specialization=yes
413 AC_DEFINE(HAVE_PARTIAL_SPECIALIZATION, 1,
414 [Defined if your compiler supports partial specialization.])
416 ac_partial_specialization=no
418 AC_MSG_RESULT([$ac_partial_specialization])
422 dnl Usage: LYX_CXX_NAMESPACES : checks whether the C++ compiler
423 dnl has a correct namespace handling and define CXX_WORKING_NAMESPACES
424 dnl if true. This macro does not do a thourough test, but it should be
425 dnl good enough to suit our needs.
426 AC_DEFUN(LYX_CXX_NAMESPACES,[
427 AC_CACHE_CHECK(for correct namespaces support,lyx_cv_cxx_namespace,
435 ],lyx_cv_cxx_namespace=yes,lyx_cv_cxx_namespace=no)
437 if test $lyx_cv_cxx_namespace = yes ; then
438 AC_DEFINE(CXX_WORKING_NAMESPACES, 1,
439 [Define if your C++ compiler has correct support for namespaces])
443 dnl Usage: LYX_CXX_CHEADERS : checks whether the C++ compiler
444 dnl provides wrappers for C headers and use our alternate version otherwise.
445 AC_DEFUN(LYX_CXX_CHEADERS,[
446 AC_CACHE_CHECK(for C headers wrappers,lyx_cv_cxx_cheaders,
456 #include <ctime>],[lyx_cv_cxx_cheaders=yes],[lyx_cv_cxx_cheaders=no])])
457 if test $lyx_cv_cxx_cheaders = no ; then
458 LYX_ADD_INC_DIR(lyx_cppflags,\$(top_srcdir)/src/cheaders)
462 dnl Usage LYX_PATH_XPM: Checks for xpm library and header
463 AC_DEFUN(LYX_PATH_XPM,[
464 ### Check for Xpm library
465 AC_CHECK_LIB(Xpm, XpmCreateBufferFromImage,LYX_LIBS="-lXpm $LYX_LIBS",
466 [LYX_LIB_ERROR(libXpm,Xpm)], $LYX_LIBS)
468 ### Check for Xpm headers
469 lyx_cv_xpm_h_location="<xpm.h>"
470 AC_CHECK_HEADER(X11/xpm.h,[
471 ac_cv_header_xpm_h=yes
472 lyx_cv_xpm_h_location="<X11/xpm.h>"],[
473 AC_CHECK_HEADER(xpm.h,[],[
474 LYX_LIB_ERROR(xpm.h,Xpm)])])
475 AC_DEFINE_UNQUOTED(XPM_H_LOCATION,$lyx_cv_xpm_h_location)
477 ### Test for the header version
478 if test $ac_cv_header_xpm_h = yes; then
479 AC_CACHE_CHECK([xpm header version],lyx_cv_xpmversion,
480 [ cat > conftest.$ac_ext <<EOF
481 #line __oline__ "configure"
482 #include "confdefs.h"
484 #include XPM_H_LOCATION
485 "%%%"lyx_cv_xpmv=XpmVersion;lyx_cv_xpmr=XpmRevision"%%%"
487 eval `(eval "$ac_cpp conftest.$ac_ext") 2>&5 | \
488 grep '^"%%%"' 2>/dev/null | \
489 sed -e 's/^"%%%"\(.*\)"%%%"/\1/' -e 's/ //g'`
490 case "$lyx_cv_xpmr" in
492 [0-9]) lyxxpmr_alpha=`echo $lyx_cv_xpmr |tr 123456789 abcdefghi`
493 lyxxpmv_alpha=" (aka 3.$lyx_cv_xpmv$lyxxpmr_alpha)";;
497 lyx_cv_xpmversion="$lyx_cv_xpmv.$lyx_cv_xpmr$lyxxpmv_alpha"
499 case "$lyx_cv_xpmr" in
501 [789]|[0-9][0-9]*) ;;
503 *) LYX_WARNING([Version $lyx_cv_xpmversion of the Xpm library is a bit old.
504 If you experience strange crashes with LyX, try to upgrade
505 to at least version 4.7 (aka 3.4g).
506 If you have installed a newer version of the library, check whether you
507 have an old xpm.h header file in your include path.]);;
512 dnl Usage LYX_PATH_XFORMS: Checks for xforms library and flags
513 AC_DEFUN(LYX_PATH_XFORMS,[
514 ### Check for xforms library
515 AC_CHECK_LIB(forms, fl_initialize, LYX_LIBS="-lforms $LYX_LIBS",
516 [AC_CHECK_LIB(xforms, fl_initialize, LYX_LIBS="-lxforms $LYX_LIBS",
517 [LYX_LIB_ERROR(libforms or libxforms,xforms)], $LYX_LIBS)], $LYX_LIBS)
519 ### Check for xforms headers
520 lyx_cv_forms_h_location="<forms.h>"
521 AC_CHECK_HEADER(X11/forms.h,[
522 ac_cv_header_forms_h=yes
523 lyx_cv_forms_h_location="<X11/forms.h>"],[
524 AC_CHECK_HEADER(forms.h,[],[
525 LYX_LIB_ERROR(forms.h,forms)])])
526 AC_DEFINE_UNQUOTED(FORMS_H_LOCATION,$lyx_cv_forms_h_location)
527 if test $ac_cv_header_forms_h = yes; then
528 AC_CACHE_CHECK([xforms header version],lyx_cv_xfversion,
529 [ cat > conftest.$ac_ext <<EOF
530 #line __oline__ "configure"
531 #include "confdefs.h"
533 #include FORMS_H_LOCATION
534 #if ! defined(FL_INCLUDE_VERSION)
537 "%%%"FL_VERSION.FL_REVISION"%%%"
540 lyx_cv_xfversion=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | \
541 grep '^"%%%"' 2>/dev/null | \
542 sed -e 's/^"%%%"\(.*\)"%%%"/\1/' -e 's/ //g'`
544 case "$lyx_cv_xfversion" in
545 "(unknown)"|0.82|0.83|0.84|0.85)
547 Version $lyx_cv_xfversion of xforms is not compatible with LyX.
548 This version of LyX works best with version 0.88[,] although it
549 supports also versions 0.81[,] 0.86 and 0.87.) ;;
552 While LyX is compatible with version $lyx_cv_xfversion of xforms[,]
553 it is recommended that you upgrade to version 0.88.) ;;
555 0.89) LYX_WARNING(dnl
556 LyX should work ok with version $lyx_cv_xfversion of xforms[,] but
557 it is an unproven version and might still have some bugs. If you
558 have problems[,] please use version 0.88 instead.) ;;
560 Version $lyx_cv_xfversion of xforms might not be compatible with LyX[,]
561 since it is newer than 0.88. You might have slight problems with it.);;
566 dnl Usage: LYX_HPUX Checks for HP-UX and update CXXFLAGS accordingly
568 [#It seems that HPUX requires using -fpcc-struct-return with gcc.
569 AC_CACHE_CHECK(for HP-UX,ac_cv_hpux,[
570 os=`uname -s | tr '[A-Z]' '[a-z]'`
572 test "$os" = hp-ux && ac_cv_hpux=yes])
573 if test "$ac_cv_hpux" = yes; then
574 test "x$GXX" = xyes && CXXFLAGS="$CXXFLAGS -fpcc-struct-return"
578 dnl Usage: LYX_SUNOS4 Checks for SunOS 4.x and sets the flag lyx_broken_headers
581 [#The headers are not correct under SunOS4
582 AC_CACHE_CHECK(for SunOS 4.x,ac_cv_sunos4,[
584 os=`uname -a | sed -e 's/^\([^ ]*\) [^ ]* \([0-9]\)\..*/\1\2/'`
585 changequote([, ]) dnl
587 test "$os" = SunOS4 && ac_cv_sunos4=yes])
588 if test "$ac_cv_sunos4" = yes; then
589 test "x$GXX" = xyes && lyx_broken_headers=yes
593 dnl Usage: LYX_SCO Checks for SCO and sets the flag lyx_broken_headers
596 [AC_CACHE_CHECK(for SCO 3.2v4,ac_cv_sco,[
598 if test `uname -s` != "SCO_SV"; then
599 lyx_machine_rel=`uname -m`:`uname -r`
600 if test $lyx_machine_rel = i386:3.2 || test $lyx_machine_rel = i486:3.2;
602 if test -f /usr/options/cb.name; then
604 elif /bin/uname -X 2>/dev/null >/dev/null ; then
609 if test "$ac_cv_sco" = yes; then
610 test "x$GXX" = xyes && lyx_broken_headers=yes
613 dnl Usage: LYX_FUNC_PUTENV_ARGTYPE
614 dnl Checks whether putenv() takes 'char const *' or 'char *' as
615 dnl argument. This is needed because Solaris 7 (wrongly?) uses 'char *',
616 dnl while everybody else uses the former...
617 AC_DEFUN(LYX_FUNC_PUTENV_ARGTYPE,
618 [AC_MSG_CHECKING([type of argument for putenv()])
619 AC_CACHE_VAL(lyx_cv_func_putenv_arg,dnl
621 [#include <cstdlib>],
622 [char const * foo = "bar";
624 [lyx_cv_func_putenv_arg='char const *'],[lyx_cv_func_putenv_arg='char *'])])
625 AC_MSG_RESULT($lyx_cv_func_putenv_arg)
626 AC_DEFINE_UNQUOTED(PUTENV_TYPE_ARG,$lyx_cv_func_putenv_arg,dnl
627 [Define to the type of the argument of putenv(). Needed on Solaris 7.])])
630 dnl Usage: LYX_WITH_DIR(dir-name,desc,dir-var-name,default-value,
631 dnl [default-yes-value])
632 dnl Adds a --with-'dir-name' option (described by 'desc') and puts the
633 dnl resulting directory name in 'dir-var-name'.
634 AC_DEFUN(LYX_WITH_DIR,[
635 AC_ARG_WITH($1,[ --with-$1 specify $2])
636 AC_MSG_CHECKING([for $2])
637 if test -z "$with_$3"; then
638 AC_CACHE_VAL(lyx_cv_$3, lyx_cv_$3=$4)
640 test "x$with_$3" = xyes && with_$3=$5
643 AC_MSG_RESULT($lyx_cv_$3)])
646 dnl Usage: LYX_LOOP_DIR(value,action)
647 dnl Executes action for values of variable `dir' in `values'. `values' can
648 dnl use ":" as a separator.
649 AC_DEFUN(LYX_LOOP_DIR,[
650 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
651 for dir in `eval "echo $1"`; do
652 if test ! "$dir" = NONE; then
653 test ! -d "$dir" && AC_ERROR([\"$dir\" is not a directory])
661 dnl Usage: LYX_ADD_LIB_DIR(var-name,dir) Adds a -L directive to variable
663 AC_DEFUN(LYX_ADD_LIB_DIR,[
665 if test "`(uname) 2>/dev/null`" = SunOS &&
666 uname -r | grep '^5' >/dev/null; then
667 if test $ac_cv_prog_gxx = yes ; then
668 $1="${$1} -Wl[,]-R$2"
675 dnl Usage: LYX_ADD_INC_DIR(var-name,dir) Adds a -I directive to variable
677 AC_DEFUN(LYX_ADD_INC_DIR,[$1="${$1} -I$2 "])
679 ### Check for a headers existence and location iff it exists
680 ## This is supposed to be a generalised version of LYX_STL_STRING_FWD
681 ## It almost works. I've tried a few variations but they give errors
682 ## of one sort or other: bad substitution or file not found etc. The
683 ## actual header _is_ found though and the cache variable is set however
684 ## the reported setting (on screen) is equal to $ac_safe for some unknown
686 AC_DEFUN(LYX_PATH_HEADER,
687 [ AC_CHECK_HEADER($1,[
688 ac_tr_safe=PATH_`echo $ac_safe | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
689 AC_CACHE_CHECK([path to $1],lyx_cv_path_$ac_safe,
690 [ cat > conftest.$ac_ext <<EOF
691 #line __oline__ "configure"
692 #include "confdefs.h"
696 lyx_cv_path_$ac_safe=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | \
697 grep $1 2>/dev/null | \
698 sed -e 's/.*\(".*$1"\).*/\1/' -e "1q"`
700 AC_DEFINE_UNQUOTED(${ac_tr_safe},${lyx_cv_path_$ac_safe})])
702 ### end of LYX_PATH_HEADER
704 ### Check for stl_string_fwd.h existence and location if it exists
705 AC_DEFUN(LYX_STL_STRING_FWD,
706 [ AC_CHECK_HEADER(stl_string_fwd.h,[
707 AC_CACHE_CHECK([path to stl_string_fwd.h],lyx_cv_path_stl_string_fwd_h,
708 [ cat > conftest.$ac_ext <<EOF
709 #line __oline__ "configure"
710 #include "confdefs.h"
712 #include <stl_string_fwd.h>
714 lyx_cv_path_stl_string_fwd_h=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | \
715 grep 'stl_string_fwd.h' 2>/dev/null | \
716 sed -e 's/.*\(".*stl_string_fwd.h"\).*/\1/' -e "1q"`
718 AC_DEFINE_UNQUOTED(STL_STRING_FWD_H_LOCATION,$lyx_cv_path_stl_string_fwd_h,
719 [define this to the location of stl_string_fwd.h to be used with #include,
720 NOTE: Do not set it to <stl_string_fwd.h> as that will find the LyX
721 supplied version of the header.
722 e.g. <../include/stl_string_fwd.h> or better yet use an absolute path])])
726 dnl AC_VALIDATE_CACHE_SYSTEM_TYPE[(cmd)]
727 dnl if the cache file is inconsistent with the current host,
728 dnl target and build system types, execute CMD or print a default
730 AC_DEFUN(AC_VALIDATE_CACHE_SYSTEM_TYPE, [
731 AC_REQUIRE([AC_CANONICAL_SYSTEM])
732 AC_MSG_CHECKING([config.cache system type])
733 if { test x"${ac_cv_host_system_type+set}" = x"set" &&
734 test x"$ac_cv_host_system_type" != x"$host"; } ||
735 { test x"${ac_cv_build_system_type+set}" = x"set" &&
736 test x"$ac_cv_build_system_type" != x"$build"; } ||
737 { test x"${ac_cv_target_system_type+set}" = x"set" &&
738 test x"$ac_cv_target_system_type" != x"$target"; }; then
739 AC_MSG_RESULT([different])
741 [AC_MSG_ERROR(["you must remove config.cache and restart configure"])])
743 AC_MSG_RESULT([same])
745 ac_cv_host_system_type="$host"
746 ac_cv_build_system_type="$build"
747 ac_cv_target_system_type="$target"
750 dnl We use this until autoconf fixes its version.
751 AC_DEFUN(LYX_FUNC_SELECT_ARGTYPES,
752 [AC_MSG_CHECKING([types of arguments for select()])
753 AC_CACHE_VAL(ac_cv_func_select_arg234,dnl
754 [AC_CACHE_VAL(ac_cv_func_select_arg1,dnl
755 [AC_CACHE_VAL(ac_cv_func_select_arg5,dnl
756 [for ac_cv_func_select_arg234 in 'fd_set *' 'int *' 'void *'; do
757 for ac_cv_func_select_arg1 in 'int' 'size_t' 'unsigned long' 'unsigned'; do for ac_cv_func_select_arg5 in 'struct timeval *' 'const struct timeval *'; do
759 [#ifdef HAVE_SYS_TYPES_H
760 #include <sys/types.h>
762 #ifdef HAVE_SYS_TIME_H
763 #include <sys/time.h>
765 #ifdef HAVE_SYS_SELECT_H
766 #include <sys/select.h>
768 #ifdef HAVE_SYS_SOCKET_H
769 #include <sys/socket.h>
771 extern int select ($ac_cv_func_select_arg1,$ac_cv_func_select_arg234,$ac_cv_func_select_arg234,$ac_cv_func_select_arg234,$ac_cv_func_select_arg5);],,dnl
772 [ac_not_found=no ; break 3],ac_not_found=yes)
779 if test "$ac_not_found" = yes; then
780 ac_cv_func_select_arg1=int
781 ac_cv_func_select_arg234='int *'
782 ac_cv_func_select_arg5='struct timeval *'
784 AC_MSG_RESULT([$ac_cv_func_select_arg1,$ac_cv_func_select_arg234,$ac_cv_func_select_arg5])
785 AC_DEFINE_UNQUOTED(SELECT_TYPE_ARG1,$ac_cv_func_select_arg1)
786 AC_DEFINE_UNQUOTED(SELECT_TYPE_ARG234,($ac_cv_func_select_arg234))
787 AC_DEFINE_UNQUOTED(SELECT_TYPE_ARG5,($ac_cv_func_select_arg5))
790 ## libtool.m4 - Configure libtool for the target system. -*-Shell-script-*-
791 ## Copyright (C) 1996-1999 Free Software Foundation, Inc.
792 ## Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
794 ## This program is free software; you can redistribute it and/or modify
795 ## it under the terms of the GNU General Public License as published by
796 ## the Free Software Foundation; either version 2 of the License, or
797 ## (at your option) any later version.
799 ## This program is distributed in the hope that it will be useful, but
800 ## WITHOUT ANY WARRANTY; without even the implied warranty of
801 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
802 ## General Public License for more details.
804 ## You should have received a copy of the GNU General Public License
805 ## along with this program; if not, write to the Free Software
806 ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
808 ## As a special exception to the GNU General Public License, if you
809 ## distribute this file as part of a program that contains a
810 ## configuration script generated by Autoconf, you may include it under
811 ## the same distribution terms that you use for the rest of that program.
813 # serial 40 AC_PROG_LIBTOOL
814 AC_DEFUN(AC_PROG_LIBTOOL,
815 [AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
817 # Save cache, so that ltconfig can load it
820 # Actually configure libtool. ac_aux_dir is where install-sh is found.
821 CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
822 LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
823 LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" \
824 DLLTOOL="$DLLTOOL" AS="$AS" OBJDUMP="$OBJDUMP" \
825 ${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \
826 $libtool_flags --no-verify $ac_aux_dir/ltmain.sh $lt_target \
827 || AC_MSG_ERROR([libtool configure failed])
829 # Reload cache, that may have been modified by ltconfig
832 # This can be used to rebuild libtool when needed
833 LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh"
835 # Always use our own libtool.
836 LIBTOOL='$(SHELL) $(top_builddir)/libtool'
839 # Redirect the config.log output again, so that the ltconfig log is not
840 # clobbered by the next message.
844 AC_DEFUN(AC_LIBTOOL_SETUP,
846 AC_REQUIRE([AC_ENABLE_SHARED])dnl
847 AC_REQUIRE([AC_ENABLE_STATIC])dnl
848 AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
849 AC_REQUIRE([AC_CANONICAL_HOST])dnl
850 AC_REQUIRE([AC_CANONICAL_BUILD])dnl
851 AC_REQUIRE([AC_PROG_RANLIB])dnl
852 AC_REQUIRE([AC_PROG_CC])dnl
853 AC_REQUIRE([AC_PROG_LD])dnl
854 AC_REQUIRE([AC_PROG_NM])dnl
855 AC_REQUIRE([AC_PROG_LN_S])dnl
859 NONE) lt_target="$host" ;;
860 *) lt_target="$target" ;;
863 # Check for any special flags to pass to ltconfig.
864 libtool_flags="--cache-file=$cache_file"
865 test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
866 test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
867 test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install"
868 test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
869 test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
870 ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN],
871 [libtool_flags="$libtool_flags --enable-dlopen"])
872 ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
873 [libtool_flags="$libtool_flags --enable-win32-dll"])
874 AC_ARG_ENABLE(libtool-lock,
875 [ --disable-libtool-lock avoid locking (might break parallel builds)])
876 test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock"
877 test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
879 # Some flags need to be propagated to the compiler or linker for good
883 # Find out which ABI we are using.
884 echo '[#]line __oline__ "configure"' > conftest.$ac_ext
885 if AC_TRY_EVAL(ac_compile); then
886 case "`/usr/bin/file conftest.o`" in
902 # On SCO OpenServer 5, we need -belf to get full-featured binaries.
903 SAVE_CFLAGS="$CFLAGS"
904 CFLAGS="$CFLAGS -belf"
905 AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
906 [AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])])
907 if test x"$lt_cv_cc_needs_belf" != x"yes"; then
908 # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
909 CFLAGS="$SAVE_CFLAGS"
913 ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
914 [*-*-cygwin* | *-*-mingw*)
915 AC_CHECK_TOOL(DLLTOOL, dlltool, false)
916 AC_CHECK_TOOL(AS, as, false)
917 AC_CHECK_TOOL(OBJDUMP, objdump, false)
923 # AC_LIBTOOL_DLOPEN - enable checks for dlopen support
924 AC_DEFUN(AC_LIBTOOL_DLOPEN, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])])
926 # AC_LIBTOOL_WIN32_DLL - declare package support for building win32 dll's
927 AC_DEFUN(AC_LIBTOOL_WIN32_DLL, [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])])
929 # AC_ENABLE_SHARED - implement the --enable-shared flag
930 # Usage: AC_ENABLE_SHARED[(DEFAULT)]
931 # Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
933 AC_DEFUN(AC_ENABLE_SHARED, [dnl
934 define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
935 AC_ARG_ENABLE(shared,
936 changequote(<<, >>)dnl
937 << --enable-shared[=PKGS] build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT],
939 [p=${PACKAGE-default}
941 yes) enable_shared=yes ;;
942 no) enable_shared=no ;;
945 # Look at the argument we got. We use all the common list separators.
946 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
947 for pkg in $enableval; do
948 if test "X$pkg" = "X$p"; then
955 enable_shared=AC_ENABLE_SHARED_DEFAULT)dnl
958 # AC_DISABLE_SHARED - set the default shared flag to --disable-shared
959 AC_DEFUN(AC_DISABLE_SHARED, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
960 AC_ENABLE_SHARED(no)])
962 # AC_ENABLE_STATIC - implement the --enable-static flag
963 # Usage: AC_ENABLE_STATIC[(DEFAULT)]
964 # Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
966 AC_DEFUN(AC_ENABLE_STATIC, [dnl
967 define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
968 AC_ARG_ENABLE(static,
969 changequote(<<, >>)dnl
970 << --enable-static[=PKGS] build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT],
972 [p=${PACKAGE-default}
974 yes) enable_static=yes ;;
975 no) enable_static=no ;;
978 # Look at the argument we got. We use all the common list separators.
979 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
980 for pkg in $enableval; do
981 if test "X$pkg" = "X$p"; then
988 enable_static=AC_ENABLE_STATIC_DEFAULT)dnl
991 # AC_DISABLE_STATIC - set the default static flag to --disable-static
992 AC_DEFUN(AC_DISABLE_STATIC, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
993 AC_ENABLE_STATIC(no)])
996 # AC_ENABLE_FAST_INSTALL - implement the --enable-fast-install flag
997 # Usage: AC_ENABLE_FAST_INSTALL[(DEFAULT)]
998 # Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
1000 AC_DEFUN(AC_ENABLE_FAST_INSTALL, [dnl
1001 define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
1002 AC_ARG_ENABLE(fast-install,
1003 changequote(<<, >>)dnl
1004 << --enable-fast-install[=PKGS] optimize for fast installation [default=>>AC_ENABLE_FAST_INSTALL_DEFAULT],
1005 changequote([, ])dnl
1006 [p=${PACKAGE-default}
1007 case "$enableval" in
1008 yes) enable_fast_install=yes ;;
1009 no) enable_fast_install=no ;;
1011 enable_fast_install=no
1012 # Look at the argument we got. We use all the common list separators.
1013 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
1014 for pkg in $enableval; do
1015 if test "X$pkg" = "X$p"; then
1016 enable_fast_install=yes
1022 enable_fast_install=AC_ENABLE_FAST_INSTALL_DEFAULT)dnl
1025 # AC_ENABLE_FAST_INSTALL - set the default to --disable-fast-install
1026 AC_DEFUN(AC_DISABLE_FAST_INSTALL, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
1027 AC_ENABLE_FAST_INSTALL(no)])
1029 # AC_PROG_LD - find the path to the GNU or non-GNU linker
1030 AC_DEFUN(AC_PROG_LD,
1031 [AC_ARG_WITH(gnu-ld,
1032 [ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
1033 test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
1034 AC_REQUIRE([AC_PROG_CC])dnl
1035 AC_REQUIRE([AC_CANONICAL_HOST])dnl
1036 AC_REQUIRE([AC_CANONICAL_BUILD])dnl
1038 if test "$ac_cv_prog_gcc" = yes; then
1039 # Check if gcc -print-prog-name=ld gives a path.
1040 AC_MSG_CHECKING([for ld used by GCC])
1041 ac_prog=`($CC -print-prog-name=ld) 2>&5`
1043 # Accept absolute paths.
1045 [\\/]* | [A-Za-z]:[\\/]*)
1046 re_direlt='/[^/][^/]*/\.\./'
1048 # Canonicalize the path of ld
1049 ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
1050 while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
1051 ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
1053 test -z "$LD" && LD="$ac_prog"
1056 # If it fails, then pretend we aren't using GCC.
1060 # If it is relative, then search for the first ld in PATH.
1064 elif test "$with_gnu_ld" = yes; then
1065 AC_MSG_CHECKING([for GNU ld])
1067 AC_MSG_CHECKING([for non-GNU ld])
1069 AC_CACHE_VAL(ac_cv_path_LD,
1070 [if test -z "$LD"; then
1071 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
1072 for ac_dir in $PATH; do
1073 test -z "$ac_dir" && ac_dir=.
1074 if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
1075 ac_cv_path_LD="$ac_dir/$ac_prog"
1076 # Check to see if the program is GNU ld. I'd rather use --version,
1077 # but apparently some GNU ld's only accept -v.
1078 # Break only if it was the GNU/non-GNU ld that we prefer.
1079 if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
1080 test "$with_gnu_ld" != no && break
1082 test "$with_gnu_ld" != yes && break
1088 ac_cv_path_LD="$LD" # Let the user override the test with a path.
1091 if test -n "$LD"; then
1096 test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
1100 AC_DEFUN(AC_PROG_LD_GNU,
1101 [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], ac_cv_prog_gnu_ld,
1102 [# I'd rather use --version here, but apparently some GNU ld's only accept -v.
1103 if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
1104 ac_cv_prog_gnu_ld=yes
1106 ac_cv_prog_gnu_ld=no
1110 # AC_PROG_NM - find the path to a BSD-compatible name lister
1111 AC_DEFUN(AC_PROG_NM,
1112 [AC_MSG_CHECKING([for BSD-compatible nm])
1113 AC_CACHE_VAL(ac_cv_path_NM,
1114 [if test -n "$NM"; then
1115 # Let the user override the test.
1118 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
1119 for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
1120 test -z "$ac_dir" && ac_dir=.
1121 if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext ; then
1122 # Check to see if the nm accepts a BSD-compat flag.
1123 # Adding the `sed 1q' prevents false positives on HP-UX, which says:
1124 # nm: unknown option "B" ignored
1125 if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
1126 ac_cv_path_NM="$ac_dir/nm -B"
1128 elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
1129 ac_cv_path_NM="$ac_dir/nm -p"
1132 ac_cv_path_NM=${ac_cv_path_NM="$ac_dir/nm"} # keep the first match, but
1133 continue # so that we can try to find one that supports BSD flags
1138 test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm
1141 AC_MSG_RESULT([$NM])
1144 # AC_CHECK_LIBM - check for math library
1145 AC_DEFUN(AC_CHECK_LIBM,
1146 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
1148 case "$lt_target" in
1149 *-*-beos* | *-*-cygwin*)
1150 # These system don't have libm
1153 AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
1154 AC_CHECK_LIB(m, main, LIBM="$LIBM -lm")
1157 AC_CHECK_LIB(m, main, LIBM="-lm")
1162 # AC_LIBLTDL_CONVENIENCE[(dir)] - sets LIBLTDL to the link flags for
1163 # the libltdl convenience library, adds --enable-ltdl-convenience to
1164 # the configure arguments. Note that LIBLTDL is not AC_SUBSTed, nor
1165 # is AC_CONFIG_SUBDIRS called. If DIR is not provided, it is assumed
1166 # to be `${top_builddir}/libltdl'. Make sure you start DIR with
1167 # '${top_builddir}/' (note the single quotes!) if your package is not
1168 # flat, and, if you're not using automake, define top_builddir as
1169 # appropriate in the Makefiles.
1170 AC_DEFUN(AC_LIBLTDL_CONVENIENCE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
1171 case "$enable_ltdl_convenience" in
1172 no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
1173 "") enable_ltdl_convenience=yes
1174 ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
1176 LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdlc.la
1177 INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl'])
1180 # AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for
1181 # the libltdl installable library, and adds --enable-ltdl-install to
1182 # the configure arguments. Note that LIBLTDL is not AC_SUBSTed, nor
1183 # is AC_CONFIG_SUBDIRS called. If DIR is not provided, it is assumed
1184 # to be `${top_builddir}/libltdl'. Make sure you start DIR with
1185 # '${top_builddir}/' (note the single quotes!) if your package is not
1186 # flat, and, if you're not using automake, define top_builddir as
1187 # appropriate in the Makefiles.
1188 # In the future, this macro may have to be called after AC_PROG_LIBTOOL.
1189 AC_DEFUN(AC_LIBLTDL_INSTALLABLE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
1190 AC_CHECK_LIB(ltdl, main,
1191 [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
1192 [if test x"$enable_ltdl_install" = xno; then
1193 AC_MSG_WARN([libltdl not installed, but installation disabled])
1195 enable_ltdl_install=yes
1198 if test x"$enable_ltdl_install" = x"yes"; then
1199 ac_configure_args="$ac_configure_args --enable-ltdl-install"
1200 LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdl.la
1201 INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl'])
1203 ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
1210 AC_DEFUN(AM_PROG_LIBTOOL, [indir([AC_PROG_LIBTOOL])])dnl
1211 AC_DEFUN(AM_ENABLE_SHARED, [indir([AC_ENABLE_SHARED], $@)])dnl
1212 AC_DEFUN(AM_ENABLE_STATIC, [indir([AC_ENABLE_STATIC], $@)])dnl
1213 AC_DEFUN(AM_DISABLE_SHARED, [indir([AC_DISABLE_SHARED], $@)])dnl
1214 AC_DEFUN(AM_DISABLE_STATIC, [indir([AC_DISABLE_STATIC], $@)])dnl
1215 AC_DEFUN(AM_PROG_LD, [indir([AC_PROG_LD])])dnl
1216 AC_DEFUN(AM_PROG_NM, [indir([AC_PROG_NM])])dnl
1218 dnl This is just to silence aclocal about the macro not being used
1219 ifelse([AC_DISABLE_FAST_INSTALL])dnl
1220 # Macro to add for using GNU gettext.
1221 # Ulrich Drepper <drepper@cygnus.com>, 1995.
1223 # This file can be copied and used freely without restrictions. It can
1224 # be used in projects which are not available under the GNU Public License
1225 # but which still want to provide support for the GNU gettext functionality.
1226 # Please note that the actual code is *not* freely available.
1230 AC_DEFUN(AM_WITH_NLS,
1231 [AC_MSG_CHECKING([whether NLS is requested])
1232 dnl Default is enabled NLS
1234 [ --disable-nls do not use Native Language Support],
1235 USE_NLS=$enableval, USE_NLS=yes)
1236 AC_MSG_RESULT($USE_NLS)
1239 USE_INCLUDED_LIBINTL=no
1241 dnl If we use NLS figure out what method
1242 if test "$USE_NLS" = "yes"; then
1243 AC_DEFINE(ENABLE_NLS)
1244 AC_MSG_CHECKING([whether included gettext is requested])
1245 AC_ARG_WITH(included-gettext,
1246 [ --with-included-gettext use the GNU gettext library included here],
1247 nls_cv_force_use_gnu_gettext=$withval,
1248 nls_cv_force_use_gnu_gettext=no)
1249 AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
1251 nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
1252 if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
1253 dnl User does not insist on using GNU NLS library. Figure out what
1254 dnl to use. If gettext or catgets are available (in this order) we
1255 dnl use this. Else we have to fall back to GNU NLS library.
1256 dnl catgets is only used if permitted by option --with-catgets.
1258 nls_cv_header_libgt=
1261 AC_CHECK_HEADER(libintl.h,
1262 [AC_CACHE_CHECK([for gettext in libc], gt_cv_func_gettext_libc,
1263 [AC_TRY_LINK([#include <libintl.h>], [return (int) gettext ("")],
1264 gt_cv_func_gettext_libc=yes, gt_cv_func_gettext_libc=no)])
1266 if test "$gt_cv_func_gettext_libc" != "yes"; then
1267 AC_CHECK_LIB(intl, bindtextdomain,
1268 [AC_CACHE_CHECK([for gettext in libintl],
1269 gt_cv_func_gettext_libintl,
1270 [AC_CHECK_LIB(intl, gettext,
1271 gt_cv_func_gettext_libintl=yes,
1272 gt_cv_func_gettext_libintl=no)],
1273 gt_cv_func_gettext_libintl=no)])
1276 if test "$gt_cv_func_gettext_libc" = "yes" \
1277 || test "$gt_cv_func_gettext_libintl" = "yes"; then
1278 AC_DEFINE(HAVE_GETTEXT)
1279 AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
1280 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
1281 if test "$MSGFMT" != "no"; then
1282 AC_CHECK_FUNCS(dcgettext)
1283 AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
1284 AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
1285 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
1286 AC_TRY_LINK(, [extern int _nl_msg_cat_cntr;
1287 return _nl_msg_cat_cntr],
1297 if test "$CATOBJEXT" = "NONE"; then
1298 AC_MSG_CHECKING([whether catgets can be used])
1299 AC_ARG_WITH(catgets,
1300 [ --with-catgets use catgets functions if available],
1301 nls_cv_use_catgets=$withval, nls_cv_use_catgets=no)
1302 AC_MSG_RESULT($nls_cv_use_catgets)
1304 if test "$nls_cv_use_catgets" = "yes"; then
1305 dnl No gettext in C library. Try catgets next.
1306 AC_CHECK_LIB(i, main)
1307 AC_CHECK_FUNC(catgets,
1308 [AC_DEFINE(HAVE_CATGETS)
1309 INTLOBJS="\$(CATOBJS)"
1310 AC_PATH_PROG(GENCAT, gencat, no)dnl
1311 if test "$GENCAT" != "no"; then
1312 AC_PATH_PROG(GMSGFMT, gmsgfmt, no)
1313 if test "$GMSGFMT" = "no"; then
1314 AM_PATH_PROG_WITH_TEST(GMSGFMT, msgfmt,
1315 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)
1317 AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
1318 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
1319 USE_INCLUDED_LIBINTL=yes
1323 INTLDEPS='$(top_builddir)/intl/libintl.a'
1325 LIBS=`echo $LIBS | sed -e 's/-lintl//'`
1326 nls_cv_header_intl=intl/libintl.h
1327 nls_cv_header_libgt=intl/libgettext.h
1332 if test "$CATOBJEXT" = "NONE"; then
1333 dnl Neither gettext nor catgets in included in the C library.
1334 dnl Fall back on GNU gettext library.
1335 nls_cv_use_gnu_gettext=yes
1339 if test "$nls_cv_use_gnu_gettext" = "yes"; then
1340 dnl Mark actions used to generate GNU NLS library.
1341 INTLOBJS="\$(GETTOBJS)"
1342 AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
1343 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt)
1344 AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
1345 AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
1346 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
1348 USE_INCLUDED_LIBINTL=yes
1352 INTLDEPS='$(top_builddir)/intl/libintl.a'
1354 LIBS=`echo $LIBS | sed -e 's/-lintl//'`
1355 nls_cv_header_intl=intl/libintl.h
1356 nls_cv_header_libgt=intl/libgettext.h
1359 dnl Test whether we really found GNU xgettext.
1360 if test "$XGETTEXT" != ":"; then
1361 dnl If it is no GNU xgettext we define it as : so that the
1362 dnl Makefiles still can work.
1363 if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
1367 [found xgettext program is not GNU xgettext; ignore it])
1372 # We need to process the po/ directory.
1376 nls_cv_header_intl=intl/libintl.h
1377 nls_cv_header_libgt=intl/libgettext.h
1379 AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl)
1381 [case "$CONFIG_FILES" in *po/Makefile.in*)
1382 sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
1386 # If this is used in GNU gettext we have to set USE_NLS to `yes'
1387 # because some of the sources are only built for this goal.
1388 if test "$PACKAGE" = gettext; then
1390 USE_INCLUDED_LIBINTL=yes
1393 dnl These rules are solely for the distribution goal. While doing this
1394 dnl we only have to keep exactly one list of the available catalogs
1395 dnl in configure.in.
1396 for lang in $ALL_LINGUAS; do
1397 GMOFILES="$GMOFILES $lang.gmo"
1398 POFILES="$POFILES $lang.po"
1401 dnl Make all variables we use known to autoconf.
1402 AC_SUBST(USE_INCLUDED_LIBINTL)
1405 AC_SUBST(DATADIRNAME)
1407 AC_SUBST(INSTOBJEXT)
1415 AC_DEFUN(AM_GNU_GETTEXT,
1416 [AC_REQUIRE([AC_PROG_MAKE_SET])dnl
1417 AC_REQUIRE([AC_PROG_CC])dnl
1418 AC_REQUIRE([AC_PROG_RANLIB])dnl
1419 AC_REQUIRE([AC_ISC_POSIX])dnl
1420 AC_REQUIRE([AC_HEADER_STDC])dnl
1421 AC_REQUIRE([AC_C_CONST])dnl
1422 AC_REQUIRE([AC_C_INLINE])dnl
1423 AC_REQUIRE([AC_TYPE_OFF_T])dnl
1424 AC_REQUIRE([AC_TYPE_SIZE_T])dnl
1425 AC_REQUIRE([AC_FUNC_ALLOCA])dnl
1426 AC_REQUIRE([AC_FUNC_MMAP])dnl
1428 AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \
1429 unistd.h sys/param.h])
1430 AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \
1431 strdup __argz_count __argz_stringify __argz_next])
1433 if test "${ac_cv_func_stpcpy+set}" != "set"; then
1434 AC_CHECK_FUNCS(stpcpy)
1436 if test "${ac_cv_func_stpcpy}" = "yes"; then
1437 AC_DEFINE(HAVE_STPCPY)
1443 if test "x$CATOBJEXT" != "x"; then
1444 if test "x$ALL_LINGUAS" = "x"; then
1447 AC_MSG_CHECKING(for catalogs to be installed)
1449 dnl ============== Fix is here! ======================
1450 dnl Some sh do not like substitution in bounds of for loops
1451 dnl for lang in ${LINGUAS=$ALL_LINGUAS}; do
1452 tmplinguas=${LINGUAS=$ALL_LINGUAS}
1453 for lang in ${tmplinguas}; do
1455 case "$ALL_LINGUAS" in
1456 *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
1459 LINGUAS=$NEW_LINGUAS
1460 AC_MSG_RESULT($LINGUAS)
1463 dnl Construct list of names of catalog files to be constructed.
1464 if test -n "$LINGUAS"; then
1465 for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
1469 dnl The reference to <locale.h> in the installed <libintl.h> file
1470 dnl must be resolved because we cannot expect the users of this
1471 dnl to define HAVE_LOCALE_H.
1472 if test $ac_cv_header_locale_h = yes; then
1473 INCLUDE_LOCALE_H="#include <locale.h>"
1476 /* The system does not provide the header <locale.h>. Take care yourself. */"
1478 AC_SUBST(INCLUDE_LOCALE_H)
1480 dnl Determine which catalog format we have (if any is needed)
1481 dnl For now we know about two different formats:
1482 dnl Linux libc-5 and the normal X/Open format
1483 test -d intl || mkdir intl
1484 if test "$CATOBJEXT" = ".cat"; then
1485 AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen)
1487 dnl Transform the SED scripts while copying because some dumb SEDs
1488 dnl cannot handle comments.
1489 sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed
1491 dnl po2tbl.sed is always needed.
1492 sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \
1493 $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed
1495 dnl In the intl/Makefile.in we have a special dependency which makes
1496 dnl only sense for gettext. We comment this out for non-gettext
1498 if test "$PACKAGE" = "gettext"; then
1508 dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
1509 dnl find the mkinstalldirs script in another subdir but ($top_srcdir).
1510 dnl Try to locate is.
1512 if test -n "$ac_aux_dir"; then
1513 MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
1515 if test -z "$MKINSTALLDIRS"; then
1516 MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
1518 AC_SUBST(MKINSTALLDIRS)
1520 dnl *** For now the libtool support in intl/Makefile is not for real.
1524 dnl Generate list of files to be processed by xgettext which will
1525 dnl be included in po/Makefile.
1526 test -d po || mkdir po
1527 if test "x$srcdir" != "x."; then
1528 if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
1529 posrcprefix="$srcdir/"
1531 posrcprefix="../$srcdir/"
1537 sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
1538 < $srcdir/po/POTFILES.in > po/POTFILES
1540 # Check whether LC_MESSAGES is available in <locale.h>.
1541 # Ulrich Drepper <drepper@cygnus.com>, 1995.
1543 # This file can be copied and used freely without restrictions. It can
1544 # be used in projects which are not available under the GNU Public License
1545 # but which still want to provide support for the GNU gettext functionality.
1546 # Please note that the actual code is *not* freely available.
1550 AC_DEFUN(AM_LC_MESSAGES,
1551 [if test $ac_cv_header_locale_h = yes; then
1552 AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES,
1553 [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
1554 am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)])
1555 if test $am_cv_val_LC_MESSAGES = yes; then
1556 AC_DEFINE(HAVE_LC_MESSAGES)
1559 # Search path for a program which passes the given test.
1560 # Ulrich Drepper <drepper@cygnus.com>, 1996.
1562 # This file can be copied and used freely without restrictions. It can
1563 # be used in projects which are not available under the GNU Public License
1564 # but which still want to provide support for the GNU gettext functionality.
1565 # Please note that the actual code is *not* freely available.
1569 dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
1570 dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
1571 AC_DEFUN(AM_PATH_PROG_WITH_TEST,
1572 [# Extract the first word of "$2", so it can be a program name with args.
1573 set dummy $2; ac_word=[$]2
1574 AC_MSG_CHECKING([for $ac_word])
1575 AC_CACHE_VAL(ac_cv_path_$1,
1578 ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
1581 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
1582 for ac_dir in ifelse([$5], , $PATH, [$5]); do
1583 test -z "$ac_dir" && ac_dir=.
1584 if test -f $ac_dir/$ac_word; then
1586 ac_cv_path_$1="$ac_dir/$ac_word"
1592 dnl If no 4th arg is given, leave the cache variable unset,
1593 dnl so AC_PATH_PROGS will keep looking.
1594 ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
1599 if test -n "[$]$1"; then
1600 AC_MSG_RESULT([$]$1)