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 GNU C++ to display more warnings],,
150 [ if test $lyx_devel_version = yes -o $lyx_prerelease = yes && test $ac_cv_prog_gxx = yes ; then
155 if test x$with_warnings = xyes ; then
156 lyx_flags="$lyx_flags warnings"
157 AC_DEFINE(WITH_WARNINGS, 1,
158 [Define this if you want to see the warning directives put here and
159 there by the developpers to get attention])
162 # optimize less for development versions
163 if test $lyx_devel_version = yes -o $lyx_prerelease = yes ; then
169 # set the debug flags correctly.
170 if test $ac_cv_prog_gxx = yes; then
172 dnl Check whether -g works, even if CXXFLAGS is set, in case the package
173 dnl plays around with CXXFLAGS (such as to build both debugging and
174 dnl normal versions of a library), tasteless as that idea is.
175 ac_test_CXXFLAGS="${CXXFLAGS+set}"
176 ac_save_CXXFLAGS="$CXXFLAGS"
178 dnl Check the version of g++
179 gxx_version=`g++ --version`
182 if test "$ac_test_CXXFLAGS" = set; then
183 CXXFLAGS="$ac_save_CXXFLAGS"
184 elif test $ac_cv_prog_cxx_g = yes; then
186 2.7*) CXXFLAGS="$lyx_opt";;
187 2.95.1) CXXFLAGS="-g $lyx_opt -fpermissive -fno-rtti";;
188 2.95.*) CXXFLAGS="-g $lyx_opt -fno-rtti";;
189 *) CXXFLAGS="-g $lyx_opt -fno-exceptions -fno-rtti";;
194 if test x$with_warnings = xyes ; then
196 2.95.*) CXXFLAGS="$CXXFLAGS -Wall -W -Wconversion";;
197 *) CXXFLAGS="$CXXFLAGS -ansi -Wall -W";;
199 if test $lyx_devel_version = yes ; then
202 *) CXXFLAGS="$CXXFLAGS -pedantic";;
208 test "${CXXFLAGS+set}" = set || CXXFLAGS="-g"
213 dnl Usage: LYX_CXX_RTTI : checks whether the C++ compiler
215 AC_DEFUN(LYX_CXX_RTTI,[
216 ### Check whether the compiler supports runtime type information
217 AC_CACHE_CHECK(whether the C++ compiler supports RTTI,lyx_cv_rtti,
221 virtual int tag() { return 0; }
223 class derived1 : public rtti {
225 int tag() { return 1; }
227 class derived2 : public rtti {
229 int tag() { return 2; }
232 derived1 * foo1 = new derived1();
233 derived2 * foo2 = new derived2();
235 derived1 * bar1 = dynamic_cast<derived1 *>(bar);
239 bar1 = dynamic_cast<derived1 *>(bar);
244 ],lyx_cv_rtti=yes,lyx_cv_rtti=no,lyx_cv_rtti=no)
246 if test x$lyx_cv_rtti = xyes ; then
247 AC_DEFINE(HAVE_RTTI, 1,
248 [Define to 1 if your compiler supports runtime type information])
252 dnl Usage: LYX_CXX_EXPLICIT : checks whether the C++ compiler
253 dnl understands the "explicit" directive.
254 AC_DEFUN(LYX_CXX_EXPLICIT,[
255 ### Check whether the compiler understands the keyword `explicit'
256 AC_CACHE_CHECK(whether the C++ compiler understands explicit,lyx_cv_explicit,
261 };],,lyx_cv_explicit=yes,lyx_cv_explicit=no)
263 if test $lyx_cv_explicit = no ; then
264 AC_DEFINE(explicit,[ ],
265 [Define to nothing if your compiler does not understand the
266 'explicit' directive])
270 dnl Usage: LYX_CXX_STL_STACK : checks whether the C++ compiler
271 dnl has a working stl stack template
272 AC_DEFUN(LYX_CXX_STL_STACK,[
273 AC_CACHE_CHECK(for broken STL stack template,lyx_cv_broken_stack,
280 ],lyx_cv_broken_stack=no,lyx_cv_broken_stack=yes)
282 if test $lyx_cv_broken_stack = yes ; then
283 AC_DEFINE(BROKEN_STL_STACK, 1,
284 [Define if you have the STL from libg++ 2.7.x, where stack<> is not defined
289 dnl Usage: LYX_CXX_STL_MODERN_STREAMS : checks whether the C++ compiler
290 dnl supports modern STL streams
291 AC_DEFUN(LYX_CXX_STL_MODERN_STREAMS,[
292 AC_CACHE_CHECK(for modern STL streams,lyx_cv_modern_streams,
296 std::streambuf * test = std::cerr.rdbuf();
298 ],lyx_cv_modern_streams=yes,lyx_cv_modern_streams=no)
300 if test $lyx_cv_modern_streams = yes ; then
301 AC_DEFINE(MODERN_STL_STREAMS, 1,
302 [Define if you have modern standard-compliant STL streams])
306 dnl Usage: LYX_CXX_STL_STRING : checks whether the C++ compiler
307 dnl has a working stl string container, the check is really stupid
308 dnl and could need some improvement.
309 AC_DEFUN(LYX_CXX_STL_STRING,[
310 AC_REQUIRE([LYX_PROG_CXX])
311 AC_MSG_CHECKING(whether the included std::string should be used)
312 AC_ARG_WITH(included-string,[
313 --with-included-string use LyX string class instead of STL string
315 with_included_string=$withval
321 string a("hello there");
326 with_included_string=no
328 with_included_string=yes
332 if test x$with_included_string = xyes ; then
333 AC_DEFINE(USE_INCLUDED_STRING, 1,
334 [Define to use the lyxstring class bundled with LyX.])
335 lyx_flags="$lyx_flags included-string"
337 AM_CONDITIONAL(USE_LYXSTRING, test x$with_included_string = xyes)
338 AC_MSG_RESULT([$with_included_string])
343 AC_DEFUN(LYX_CXX_MUTABLE, [
344 AC_REQUIRE([LYX_PROG_CXX])
345 AC_MSG_CHECKING(if C++ compiler supports mutable)
351 void foo() const { c=0; }
356 AC_DEFINE(HAVE_MUTABLE, 1,
357 [Defined if you compiler supports 'mutable'.])
361 AC_MSG_RESULT([$ac_mutable])
366 AC_DEFUN(LYX_CXX_PARTIAL, [
367 AC_REQUIRE([LYX_PROG_CXX])
368 AC_MSG_CHECKING(if C++ compiler supports partial specialization)
371 template<class T, class K>
375 template<class T> class k<void,T> { };
380 ac_partial_specialization=yes
381 AC_DEFINE(HAVE_PARTIAL_SPECIALIZATION, 1,
382 [Defined if your compiler supports partial specialization.])
384 ac_partial_specialization=no
386 AC_MSG_RESULT([$ac_partial_specialization])
390 dnl Usage: LYX_CXX_NAMESPACES : checks whether the C++ compiler
391 dnl has a correct namespace handling and define CXX_WORKING_NAMESPACES
392 dnl if true. This macro does not do a thourough test, but it should be
393 dnl good enough to suit our needs.
394 AC_DEFUN(LYX_CXX_NAMESPACES,[
395 AC_CACHE_CHECK(for correct namespaces support,lyx_cv_cxx_namespace,
402 ],lyx_cv_cxx_namespace=yes,lyx_cv_cxx_namespace=no)
404 if test $lyx_cv_cxx_namespace = yes ; then
405 AC_DEFINE(CXX_WORKING_NAMESPACES, 1,
406 [Define if your C++ compiler has correct support for namespaces])
410 dnl Usage: LYX_CXX_CHEADERS : checks whether the C++ compiler
411 dnl provides wrappers for C headers and use our alternate version otherwise.
412 AC_DEFUN(LYX_CXX_CHEADERS,[
413 AC_CACHE_CHECK(for C headers wrappers,lyx_cv_cxx_cheaders,
423 #include <ctime>],[lyx_cv_cxx_cheaders=yes],[lyx_cv_cxx_cheaders=no])])
424 if test $lyx_cv_cxx_cheaders = no ; then
425 LYX_ADD_INC_DIR(lyx_cppflags,\$(top_srcdir)/src/cheaders)
429 dnl Usage LYX_PATH_XPM: Checks for xpm library and header
430 AC_DEFUN(LYX_PATH_XPM,[
431 ### Check for Xpm library
432 AC_CHECK_LIB(Xpm, XpmCreateBufferFromImage,LYX_LIBS="-lXpm $LYX_LIBS",
433 [LYX_LIB_ERROR(libXpm,Xpm)], $LYX_LIBS)
435 ### Check for Xpm headers
436 lyx_cv_xpm_h_location="<xpm.h>"
437 AC_CHECK_HEADER(X11/xpm.h,[
438 ac_cv_header_xpm_h=yes
439 lyx_cv_xpm_h_location="<X11/xpm.h>"],[
440 AC_CHECK_HEADER(xpm.h,[],[
441 LYX_LIB_ERROR(xpm.h,Xpm)])])
442 AC_DEFINE_UNQUOTED(XPM_H_LOCATION,$lyx_cv_xpm_h_location)
444 ### Test for the header version
445 if test $ac_cv_header_xpm_h = yes; then
446 AC_CACHE_CHECK([xpm header version],lyx_cv_xpmversion,
447 [ cat > conftest.$ac_ext <<EOF
448 #line __oline__ "configure"
449 #include "confdefs.h"
451 #include XPM_H_LOCATION
452 "%%%"lyx_cv_xpmv=XpmVersion;lyx_cv_xpmr=XpmRevision"%%%"
454 eval `(eval "$ac_cpp conftest.$ac_ext") 2>&5 | \
455 grep '^"%%%"' 2>/dev/null | \
456 sed -e 's/^"%%%"\(.*\)"%%%"/\1/' -e 's/ //g'`
457 case "$lyx_cv_xpmr" in
459 [0-9]) lyxxpmr_alpha=`echo $lyx_cv_xpmr |tr 123456789 abcdefghi`
460 lyxxpmv_alpha=" (aka 3.$lyx_cv_xpmv$lyxxpmr_alpha)";;
464 lyx_cv_xpmversion="$lyx_cv_xpmv.$lyx_cv_xpmr$lyxxpmv_alpha"
466 case "$lyx_cv_xpmr" in
468 [789]|[0-9][0-9]*) ;;
470 *) LYX_WARNING([Version $lyx_cv_xpmversion of the Xpm library is a bit old.
471 If you experience strange crashes with LyX, try to upgrade
472 to at least version 4.7 (aka 3.4g).
473 If you have installed a newer version of the library, check whether you
474 have an old xpm.h header file in your include path.]);;
479 dnl Usage LYX_PATH_XFORMS: Checks for xforms library and flags
480 AC_DEFUN(LYX_PATH_XFORMS,[
481 ### Check for xforms library
482 AC_CHECK_LIB(forms, fl_initialize, LYX_LIBS="-lforms $LYX_LIBS",
483 [AC_CHECK_LIB(xforms, fl_initialize, LYX_LIBS="-lxforms $LYX_LIBS",
484 [LYX_LIB_ERROR(libforms or libxforms,xforms)], $LYX_LIBS)], $LYX_LIBS)
486 ### Check for xforms headers
487 lyx_cv_forms_h_location="<forms.h>"
488 AC_CHECK_HEADER(X11/forms.h,[
489 ac_cv_header_forms_h=yes
490 lyx_cv_forms_h_location="<X11/forms.h>"],[
491 AC_CHECK_HEADER(forms.h,[],[
492 LYX_LIB_ERROR(forms.h,forms)])])
493 AC_DEFINE_UNQUOTED(FORMS_H_LOCATION,$lyx_cv_forms_h_location)
494 if test $ac_cv_header_forms_h = yes; then
495 AC_CACHE_CHECK([xforms header version],lyx_cv_xfversion,
496 [ cat > conftest.$ac_ext <<EOF
497 #line __oline__ "configure"
498 #include "confdefs.h"
500 #include FORMS_H_LOCATION
501 #if ! defined(FL_INCLUDE_VERSION)
504 "%%%"FL_VERSION.FL_REVISION"%%%"
507 lyx_cv_xfversion=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | \
508 grep '^"%%%"' 2>/dev/null | \
509 sed -e 's/^"%%%"\(.*\)"%%%"/\1/' -e 's/ //g'`
511 case "$lyx_cv_xfversion" in
512 "(unknown)"|0.82|0.83|0.84|0.85)
514 Version $lyx_cv_xfversion of xforms is not compatible with LyX.
515 This version of LyX works best with version 0.88[,] although it
516 supports also versions 0.81[,] 0.86 and 0.87.) ;;
519 While LyX is compatible with version $lyx_cv_xfversion of xforms[,]
520 it is recommended that you upgrade to version 0.88.) ;;
522 0.89) LYX_WARNING(dnl
523 LyX should work ok with version $lyx_cv_xfversion of xforms[,] but
524 it is an unproven version and might still have some bugs. If you
525 have problems[,] please use version 0.88 instead.) ;;
527 Version $lyx_cv_xfversion of xforms might not be compatible with LyX[,]
528 since it is newer than 0.88. You might have slight problems with it.);;
533 dnl Usage: LYX_HPUX Checks for HP-UX and update CXXFLAGS accordingly
535 [#It seems that HPUX requires using -fpcc-struct-return with gcc.
536 AC_CACHE_CHECK(for HP-UX,ac_cv_hpux,[
537 os=`uname -s | tr '[A-Z]' '[a-z]'`
539 test "$os" = hp-ux && ac_cv_hpux=yes])
540 if test "$ac_cv_hpux" = yes; then
541 test "x$GXX" = xyes && CXXFLAGS="$CXXFLAGS -fpcc-struct-return"
545 dnl Usage: LYX_SUNOS4 Checks for SunOS 4.x and sets the flag lyx_broken_headers
548 [#The headers are not correct under SunOS4
549 AC_CACHE_CHECK(for SunOS 4.x,ac_cv_sunos4,[
551 os=`uname -a | sed -e 's/^\([^ ]*\) [^ ]* \([0-9]\)\..*/\1\2/'`
552 changequote([, ]) dnl
554 test "$os" = SunOS4 && ac_cv_sunos4=yes])
555 if test "$ac_cv_sunos4" = yes; then
556 test "x$GXX" = xyes && lyx_broken_headers=yes
560 dnl Usage: LYX_SCO Checks for SCO and sets the flag lyx_broken_headers
563 [AC_CACHE_CHECK(for SCO 3.2v4,ac_cv_sco,[
565 if test `uname -s` != "SCO_SV"; then
566 lyx_machine_rel=`uname -m`:`uname -r`
567 if test $lyx_machine_rel = i386:3.2 || test $lyx_machine_rel = i486:3.2;
569 if test -f /usr/options/cb.name; then
571 elif /bin/uname -X 2>/dev/null >/dev/null ; then
576 if test "$ac_cv_sco" = yes; then
577 test "x$GXX" = xyes && lyx_broken_headers=yes
581 dnl Usage: LYX_WITH_DIR(dir-name,desc,dir-var-name,default-value,
582 dnl [default-yes-value])
583 dnl Adds a --with-'dir-name' option (described by 'desc') and puts the
584 dnl resulting directory name in 'dir-var-name'.
585 AC_DEFUN(LYX_WITH_DIR,[
586 AC_ARG_WITH($1,[ --with-$1 specify $2])
587 AC_MSG_CHECKING([for $2])
588 if test -z "$with_$3"; then
589 AC_CACHE_VAL(lyx_cv_$3, lyx_cv_$3=$4)
591 test "x$with_$3" = xyes && with_$3=$5
594 AC_MSG_RESULT($lyx_cv_$3)])
597 dnl Usage: LYX_LOOP_DIR(value,action)
598 dnl Executes action for values of variable `dir' in `values'. `values' can
599 dnl use ":" as a separator.
600 AC_DEFUN(LYX_LOOP_DIR,[
601 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
602 for dir in `eval "echo $1"`; do
603 if test ! "$dir" = NONE; then
604 test ! -d "$dir" && AC_ERROR([\"$dir\" is not a directory])
612 dnl Usage: LYX_ADD_LIB_DIR(var-name,dir) Adds a -L directive to variable
614 AC_DEFUN(LYX_ADD_LIB_DIR,[
616 if test "`(uname) 2>/dev/null`" = SunOS &&
617 uname -r | grep '^5' >/dev/null; then
618 if test $ac_cv_prog_gxx = yes ; then
619 $1="${$1} -Wl[,]-R$2"
626 dnl Usage: LYX_ADD_INC_DIR(var-name,dir) Adds a -I directive to variable
628 AC_DEFUN(LYX_ADD_INC_DIR,[$1="${$1} -I$2 "])
631 dnl AC_VALIDATE_CACHE_SYSTEM_TYPE[(cmd)]
632 dnl if the cache file is inconsistent with the current host,
633 dnl target and build system types, execute CMD or print a default
635 AC_DEFUN(AC_VALIDATE_CACHE_SYSTEM_TYPE, [
636 AC_REQUIRE([AC_CANONICAL_SYSTEM])
637 AC_MSG_CHECKING([config.cache system type])
638 if { test x"${ac_cv_host_system_type+set}" = x"set" &&
639 test x"$ac_cv_host_system_type" != x"$host"; } ||
640 { test x"${ac_cv_build_system_type+set}" = x"set" &&
641 test x"$ac_cv_build_system_type" != x"$build"; } ||
642 { test x"${ac_cv_target_system_type+set}" = x"set" &&
643 test x"$ac_cv_target_system_type" != x"$target"; }; then
644 AC_MSG_RESULT([different])
646 [AC_MSG_ERROR(["you must remove config.cache and restart configure"])])
648 AC_MSG_RESULT([same])
650 ac_cv_host_system_type="$host"
651 ac_cv_build_system_type="$build"
652 ac_cv_target_system_type="$target"
656 dnl We use this until autoconf fixes its version.
657 AC_DEFUN(LYX_FUNC_SELECT_ARGTYPES,
658 [AC_MSG_CHECKING([types of arguments for select()])
659 AC_CACHE_VAL(ac_cv_func_select_arg234,dnl
660 [AC_CACHE_VAL(ac_cv_func_select_arg1,dnl
661 [AC_CACHE_VAL(ac_cv_func_select_arg5,dnl
662 [for ac_cv_func_select_arg234 in 'fd_set *' 'int *' 'void *'; do
663 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
665 [#ifdef HAVE_SYS_TYPES_H
666 #include <sys/types.h>
668 #ifdef HAVE_SYS_TIME_H
669 #include <sys/time.h>
671 #ifdef HAVE_SYS_SELECT_H
672 #include <sys/select.h>
674 #ifdef HAVE_SYS_SOCKET_H
675 #include <sys/socket.h>
677 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
678 [ac_not_found=no ; break 3],ac_not_found=yes)
685 if test "$ac_not_found" = yes; then
686 ac_cv_func_select_arg1=int
687 ac_cv_func_select_arg234='int *'
688 ac_cv_func_select_arg5='struct timeval *'
690 AC_MSG_RESULT([$ac_cv_func_select_arg1,$ac_cv_func_select_arg234,$ac_cv_func_select_arg5])
691 AC_DEFINE_UNQUOTED(SELECT_TYPE_ARG1,$ac_cv_func_select_arg1)
692 AC_DEFINE_UNQUOTED(SELECT_TYPE_ARG234,($ac_cv_func_select_arg234))
693 AC_DEFINE_UNQUOTED(SELECT_TYPE_ARG5,($ac_cv_func_select_arg5))
696 ## libtool.m4 - Configure libtool for the target system. -*-Shell-script-*-
697 ## Copyright (C) 1996-1999 Free Software Foundation, Inc.
698 ## Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
700 ## This program is free software; you can redistribute it and/or modify
701 ## it under the terms of the GNU General Public License as published by
702 ## the Free Software Foundation; either version 2 of the License, or
703 ## (at your option) any later version.
705 ## This program is distributed in the hope that it will be useful, but
706 ## WITHOUT ANY WARRANTY; without even the implied warranty of
707 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
708 ## General Public License for more details.
710 ## You should have received a copy of the GNU General Public License
711 ## along with this program; if not, write to the Free Software
712 ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
714 ## As a special exception to the GNU General Public License, if you
715 ## distribute this file as part of a program that contains a
716 ## configuration script generated by Autoconf, you may include it under
717 ## the same distribution terms that you use for the rest of that program.
719 # serial 40 AC_PROG_LIBTOOL
720 AC_DEFUN(AC_PROG_LIBTOOL,
721 [AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
723 # Save cache, so that ltconfig can load it
726 # Actually configure libtool. ac_aux_dir is where install-sh is found.
727 CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
728 LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
729 LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" \
730 DLLTOOL="$DLLTOOL" AS="$AS" OBJDUMP="$OBJDUMP" \
731 ${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \
732 $libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \
733 || AC_MSG_ERROR([libtool configure failed])
735 # Reload cache, that may have been modified by ltconfig
738 # This can be used to rebuild libtool when needed
739 LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh"
741 # Always use our own libtool.
742 LIBTOOL='$(SHELL) $(top_builddir)/libtool'
745 # Redirect the config.log output again, so that the ltconfig log is not
746 # clobbered by the next message.
750 AC_DEFUN(AC_LIBTOOL_SETUP,
752 AC_REQUIRE([AC_ENABLE_SHARED])dnl
753 AC_REQUIRE([AC_ENABLE_STATIC])dnl
754 AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
755 AC_REQUIRE([AC_CANONICAL_HOST])dnl
756 AC_REQUIRE([AC_CANONICAL_BUILD])dnl
757 AC_REQUIRE([AC_PROG_RANLIB])dnl
758 AC_REQUIRE([AC_PROG_CC])dnl
759 AC_REQUIRE([AC_PROG_LD])dnl
760 AC_REQUIRE([AC_PROG_NM])dnl
761 AC_REQUIRE([AC_PROG_LN_S])dnl
764 # Check for any special flags to pass to ltconfig.
766 # the following will cause an existing older ltconfig to fail, so
767 # we ignore this at the expense of the cache file... Checking this
768 # will just take longer ... bummer!
769 #libtool_flags="--cache-file=$cache_file"
771 test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
772 test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
773 test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install"
774 test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
775 test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
776 ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN],
777 [libtool_flags="$libtool_flags --enable-dlopen"])
778 ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
779 [libtool_flags="$libtool_flags --enable-win32-dll"])
780 AC_ARG_ENABLE(libtool-lock,
781 [ --disable-libtool-lock avoid locking (might break parallel builds)])
782 test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock"
783 test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
785 # Some flags need to be propagated to the compiler or linker for good
789 # Find out which ABI we are using.
790 echo '[#]line __oline__ "configure"' > conftest.$ac_ext
791 if AC_TRY_EVAL(ac_compile); then
792 case "`/usr/bin/file conftest.o`" in
808 # On SCO OpenServer 5, we need -belf to get full-featured binaries.
809 SAVE_CFLAGS="$CFLAGS"
810 CFLAGS="$CFLAGS -belf"
811 AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
812 [AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])])
813 if test x"$lt_cv_cc_needs_belf" != x"yes"; then
814 # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
815 CFLAGS="$SAVE_CFLAGS"
819 ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
820 [*-*-cygwin* | *-*-mingw*)
821 AC_CHECK_TOOL(DLLTOOL, dlltool, false)
822 AC_CHECK_TOOL(AS, as, false)
823 AC_CHECK_TOOL(OBJDUMP, objdump, false)
829 # AC_LIBTOOL_DLOPEN - enable checks for dlopen support
830 AC_DEFUN(AC_LIBTOOL_DLOPEN, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])])
832 # AC_LIBTOOL_WIN32_DLL - declare package support for building win32 dll's
833 AC_DEFUN(AC_LIBTOOL_WIN32_DLL, [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])])
835 # AC_ENABLE_SHARED - implement the --enable-shared flag
836 # Usage: AC_ENABLE_SHARED[(DEFAULT)]
837 # Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
839 AC_DEFUN(AC_ENABLE_SHARED, [dnl
840 define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
841 AC_ARG_ENABLE(shared,
842 changequote(<<, >>)dnl
843 << --enable-shared[=PKGS] build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT],
845 [p=${PACKAGE-default}
847 yes) enable_shared=yes ;;
848 no) enable_shared=no ;;
851 # Look at the argument we got. We use all the common list separators.
852 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
853 for pkg in $enableval; do
854 if test "X$pkg" = "X$p"; then
861 enable_shared=AC_ENABLE_SHARED_DEFAULT)dnl
864 # AC_DISABLE_SHARED - set the default shared flag to --disable-shared
865 AC_DEFUN(AC_DISABLE_SHARED, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
866 AC_ENABLE_SHARED(no)])
868 # AC_ENABLE_STATIC - implement the --enable-static flag
869 # Usage: AC_ENABLE_STATIC[(DEFAULT)]
870 # Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
872 AC_DEFUN(AC_ENABLE_STATIC, [dnl
873 define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
874 AC_ARG_ENABLE(static,
875 changequote(<<, >>)dnl
876 << --enable-static[=PKGS] build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT],
878 [p=${PACKAGE-default}
880 yes) enable_static=yes ;;
881 no) enable_static=no ;;
884 # Look at the argument we got. We use all the common list separators.
885 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
886 for pkg in $enableval; do
887 if test "X$pkg" = "X$p"; then
894 enable_static=AC_ENABLE_STATIC_DEFAULT)dnl
897 # AC_DISABLE_STATIC - set the default static flag to --disable-static
898 AC_DEFUN(AC_DISABLE_STATIC, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
899 AC_ENABLE_STATIC(no)])
902 # AC_ENABLE_FAST_INSTALL - implement the --enable-fast-install flag
903 # Usage: AC_ENABLE_FAST_INSTALL[(DEFAULT)]
904 # Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
906 AC_DEFUN(AC_ENABLE_FAST_INSTALL, [dnl
907 define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
908 AC_ARG_ENABLE(fast-install,
909 changequote(<<, >>)dnl
910 << --enable-fast-install[=PKGS] optimize for fast installation [default=>>AC_ENABLE_FAST_INSTALL_DEFAULT],
912 [p=${PACKAGE-default}
914 yes) enable_fast_install=yes ;;
915 no) enable_fast_install=no ;;
917 enable_fast_install=no
918 # Look at the argument we got. We use all the common list separators.
919 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
920 for pkg in $enableval; do
921 if test "X$pkg" = "X$p"; then
922 enable_fast_install=yes
928 enable_fast_install=AC_ENABLE_FAST_INSTALL_DEFAULT)dnl
931 # AC_ENABLE_FAST_INSTALL - set the default to --disable-fast-install
932 AC_DEFUN(AC_DISABLE_FAST_INSTALL, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
933 AC_ENABLE_FAST_INSTALL(no)])
935 # AC_PROG_LD - find the path to the GNU or non-GNU linker
938 [ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
939 test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
940 AC_REQUIRE([AC_PROG_CC])dnl
941 AC_REQUIRE([AC_CANONICAL_HOST])dnl
942 AC_REQUIRE([AC_CANONICAL_BUILD])dnl
944 if test "$ac_cv_prog_gcc" = yes; then
945 # Check if gcc -print-prog-name=ld gives a path.
946 AC_MSG_CHECKING([for ld used by GCC])
947 ac_prog=`($CC -print-prog-name=ld) 2>&5`
949 # Accept absolute paths.
951 [\\/]* | [A-Za-z]:[\\/]*)
952 re_direlt='/[^/][^/]*/\.\./'
954 # Canonicalize the path of ld
955 ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
956 while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
957 ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
959 test -z "$LD" && LD="$ac_prog"
962 # If it fails, then pretend we aren't using GCC.
966 # If it is relative, then search for the first ld in PATH.
970 elif test "$with_gnu_ld" = yes; then
971 AC_MSG_CHECKING([for GNU ld])
973 AC_MSG_CHECKING([for non-GNU ld])
975 AC_CACHE_VAL(ac_cv_path_LD,
976 [if test -z "$LD"; then
977 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
978 for ac_dir in $PATH; do
979 test -z "$ac_dir" && ac_dir=.
980 if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
981 ac_cv_path_LD="$ac_dir/$ac_prog"
982 # Check to see if the program is GNU ld. I'd rather use --version,
983 # but apparently some GNU ld's only accept -v.
984 # Break only if it was the GNU/non-GNU ld that we prefer.
985 if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
986 test "$with_gnu_ld" != no && break
988 test "$with_gnu_ld" != yes && break
994 ac_cv_path_LD="$LD" # Let the user override the test with a path.
997 if test -n "$LD"; then
1002 test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
1007 AC_DEFUN(AC_PROG_LD_GNU,
1008 [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], ac_cv_prog_gnu_ld,
1009 [# I'd rather use --version here, but apparently some GNU ld's only accept -v.
1010 if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
1011 ac_cv_prog_gnu_ld=yes
1013 ac_cv_prog_gnu_ld=no
1017 # AC_PROG_NM - find the path to a BSD-compatible name lister
1018 AC_DEFUN(AC_PROG_NM,
1019 [AC_MSG_CHECKING([for BSD-compatible nm])
1020 AC_CACHE_VAL(ac_cv_path_NM,
1021 [if test -n "$NM"; then
1022 # Let the user override the test.
1025 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
1026 for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
1027 test -z "$ac_dir" && ac_dir=.
1028 if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext ; then
1029 # Check to see if the nm accepts a BSD-compat flag.
1030 # Adding the `sed 1q' prevents false positives on HP-UX, which says:
1031 # nm: unknown option "B" ignored
1032 if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
1033 ac_cv_path_NM="$ac_dir/nm -B"
1035 elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
1036 ac_cv_path_NM="$ac_dir/nm -p"
1039 ac_cv_path_NM=${ac_cv_path_NM="$ac_dir/nm"} # keep the first match, but
1040 continue # so that we can try to find one that supports BSD flags
1045 test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm
1048 AC_MSG_RESULT([$NM])
1052 # AC_CHECK_LIBM - check for math library
1053 AC_DEFUN(AC_CHECK_LIBM,
1054 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
1057 *-*-beos* | *-*-cygwin*)
1058 # These system don't have libm
1061 AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
1062 AC_CHECK_LIB(m, main, LIBM="$LIBM -lm")
1065 AC_CHECK_LIB(m, main, LIBM="-lm")
1070 ### Check for stl_string_fwd.h existence and location if it exists
1072 ### Three problems remain:
1073 ### 1. I don't check if $lyx_cv_extra_inc has a value before testing it.
1074 ### 2. I don't issue a warning/error if AC_CHECK_HEADERS finds it but I
1075 ### don't. The warning should only need to be something like:
1076 ### "Can't find path to stl_string_fwd.h please define
1077 ### STL_STRING_FWD_H_LOCATION in src/config.h or supply the path
1078 ### using --with-extra-inc"
1079 ### 3. Multiple extra include dirs? and I don't check --with-extra-prefix yet
1081 AC_DEFUN(LYX_STL_STRING_FWD,
1082 [AC_CHECK_HEADERS(stl_string_fwd.h,[
1083 lyx_cv_stl_string_fwd_h_location="<../include/stl_string_fwd.h>"
1084 AC_CHECK_HEADER(../include/stl_string_fwd.h,[
1085 ac_cv_header_stl_string_fwd_h=yes
1086 lyx_cv_stl_string_fwd_h_location="<../include/stl_string_fwd.h>"],[
1087 AC_CHECK_HEADER($lyx_cv_extra_inc/stl_string_fwd.h,[
1088 ac_cv_header_stl_string_fwd_h=yes
1089 lyx_cv_stl_string_fwd_h_location="<$lyx_cv_extra_inc/stl_string_fwd.h>"],[
1090 ac_cv_header_stl_string_fwd_h=no])])
1091 AC_DEFINE_UNQUOTED(STL_STRING_FWD_H_LOCATION,$lyx_cv_stl_string_fwd_h_location)])
1095 # AC_LIBLTDL_CONVENIENCE[(dir)] - sets LIBLTDL to the link flags for
1096 # the libltdl convenience library, adds --enable-ltdl-convenience to
1097 # the configure arguments. Note that LIBLTDL is not AC_SUBSTed, nor
1098 # is AC_CONFIG_SUBDIRS called. If DIR is not provided, it is assumed
1099 # to be `${top_builddir}/libltdl'. Make sure you start DIR with
1100 # '${top_builddir}/' (note the single quotes!) if your package is not
1101 # flat, and, if you're not using automake, define top_builddir as
1102 # appropriate in the Makefiles.
1103 AC_DEFUN(AC_LIBLTDL_CONVENIENCE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
1104 case "$enable_ltdl_convenience" in
1105 no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
1106 "") enable_ltdl_convenience=yes
1107 ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
1109 LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdlc.la
1110 INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl'])
1113 # AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for
1114 # the libltdl installable library, and adds --enable-ltdl-install to
1115 # the configure arguments. Note that LIBLTDL is not AC_SUBSTed, nor
1116 # is AC_CONFIG_SUBDIRS called. If DIR is not provided, it is assumed
1117 # to be `${top_builddir}/libltdl'. Make sure you start DIR with
1118 # '${top_builddir}/' (note the single quotes!) if your package is not
1119 # flat, and, if you're not using automake, define top_builddir as
1120 # appropriate in the Makefiles.
1121 # In the future, this macro may have to be called after AC_PROG_LIBTOOL.
1122 AC_DEFUN(AC_LIBLTDL_INSTALLABLE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
1123 AC_CHECK_LIB(ltdl, main,
1124 [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
1125 [if test x"$enable_ltdl_install" = xno; then
1126 AC_MSG_WARN([libltdl not installed, but installation disabled])
1128 enable_ltdl_install=yes
1131 if test x"$enable_ltdl_install" = x"yes"; then
1132 ac_configure_args="$ac_configure_args --enable-ltdl-install"
1133 LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdl.la
1134 INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl'])
1136 ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
1143 AC_DEFUN(AM_PROG_LIBTOOL, [indir([AC_PROG_LIBTOOL])])dnl
1144 AC_DEFUN(AM_ENABLE_SHARED, [indir([AC_ENABLE_SHARED], $@)])dnl
1145 AC_DEFUN(AM_ENABLE_STATIC, [indir([AC_ENABLE_STATIC], $@)])dnl
1146 AC_DEFUN(AM_DISABLE_SHARED, [indir([AC_DISABLE_SHARED], $@)])dnl
1147 AC_DEFUN(AM_DISABLE_STATIC, [indir([AC_DISABLE_STATIC], $@)])dnl
1148 AC_DEFUN(AM_PROG_LD, [indir([AC_PROG_LD])])dnl
1149 AC_DEFUN(AM_PROG_NM, [indir([AC_PROG_NM])])dnl
1151 dnl This is just to silence aclocal about the macro not being used
1152 ifelse([AC_DISABLE_FAST_INSTALL])dnl
1154 # Macro to add for using GNU gettext.
1155 # Ulrich Drepper <drepper@cygnus.com>, 1995.
1157 # This file can be copied and used freely without restrictions. It can
1158 # be used in projects which are not available under the GNU Public License
1159 # but which still want to provide support for the GNU gettext functionality.
1160 # Please note that the actual code is *not* freely available.
1164 AC_DEFUN(AM_WITH_NLS,
1165 [AC_MSG_CHECKING([whether NLS is requested])
1166 dnl Default is enabled NLS
1168 [ --disable-nls do not use Native Language Support],
1169 USE_NLS=$enableval, USE_NLS=yes)
1170 AC_MSG_RESULT($USE_NLS)
1173 USE_INCLUDED_LIBINTL=no
1175 dnl If we use NLS figure out what method
1176 if test "$USE_NLS" = "yes"; then
1177 AC_DEFINE(ENABLE_NLS)
1178 AC_MSG_CHECKING([whether included gettext is requested])
1179 AC_ARG_WITH(included-gettext,
1180 [ --with-included-gettext use the GNU gettext library included here],
1181 nls_cv_force_use_gnu_gettext=$withval,
1182 nls_cv_force_use_gnu_gettext=no)
1183 AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
1185 nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
1186 if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
1187 dnl User does not insist on using GNU NLS library. Figure out what
1188 dnl to use. If gettext or catgets are available (in this order) we
1189 dnl use this. Else we have to fall back to GNU NLS library.
1190 dnl catgets is only used if permitted by option --with-catgets.
1192 nls_cv_header_libgt=
1195 AC_CHECK_HEADER(libintl.h,
1196 [AC_CACHE_CHECK([for gettext in libc], gt_cv_func_gettext_libc,
1197 [AC_TRY_LINK([#include <libintl.h>], [return (int) gettext ("")],
1198 gt_cv_func_gettext_libc=yes, gt_cv_func_gettext_libc=no)])
1200 if test "$gt_cv_func_gettext_libc" != "yes"; then
1201 AC_CHECK_LIB(intl, bindtextdomain,
1202 [AC_CACHE_CHECK([for gettext in libintl],
1203 gt_cv_func_gettext_libintl,
1204 [AC_CHECK_LIB(intl, gettext,
1205 gt_cv_func_gettext_libintl=yes,
1206 gt_cv_func_gettext_libintl=no)],
1207 gt_cv_func_gettext_libintl=no)])
1210 if test "$gt_cv_func_gettext_libc" = "yes" \
1211 || test "$gt_cv_func_gettext_libintl" = "yes"; then
1212 AC_DEFINE(HAVE_GETTEXT)
1213 AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
1214 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
1215 if test "$MSGFMT" != "no"; then
1216 AC_CHECK_FUNCS(dcgettext)
1217 AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
1218 AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
1219 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
1220 AC_TRY_LINK(, [extern int _nl_msg_cat_cntr;
1221 return _nl_msg_cat_cntr],
1231 if test "$CATOBJEXT" = "NONE"; then
1232 AC_MSG_CHECKING([whether catgets can be used])
1233 AC_ARG_WITH(catgets,
1234 [ --with-catgets use catgets functions if available],
1235 nls_cv_use_catgets=$withval, nls_cv_use_catgets=no)
1236 AC_MSG_RESULT($nls_cv_use_catgets)
1238 if test "$nls_cv_use_catgets" = "yes"; then
1239 dnl No gettext in C library. Try catgets next.
1240 AC_CHECK_LIB(i, main)
1241 AC_CHECK_FUNC(catgets,
1242 [AC_DEFINE(HAVE_CATGETS)
1243 INTLOBJS="\$(CATOBJS)"
1244 AC_PATH_PROG(GENCAT, gencat, no)dnl
1245 if test "$GENCAT" != "no"; then
1246 AC_PATH_PROG(GMSGFMT, gmsgfmt, no)
1247 if test "$GMSGFMT" = "no"; then
1248 AM_PATH_PROG_WITH_TEST(GMSGFMT, msgfmt,
1249 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)
1251 AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
1252 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
1253 USE_INCLUDED_LIBINTL=yes
1257 INTLDEPS='$(top_builddir)/intl/libintl.a'
1259 LIBS=`echo $LIBS | sed -e 's/-lintl//'`
1260 nls_cv_header_intl=intl/libintl.h
1261 nls_cv_header_libgt=intl/libgettext.h
1266 if test "$CATOBJEXT" = "NONE"; then
1267 dnl Neither gettext nor catgets in included in the C library.
1268 dnl Fall back on GNU gettext library.
1269 nls_cv_use_gnu_gettext=yes
1273 if test "$nls_cv_use_gnu_gettext" = "yes"; then
1274 dnl Mark actions used to generate GNU NLS library.
1275 INTLOBJS="\$(GETTOBJS)"
1276 AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
1277 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt)
1278 AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
1279 AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
1280 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
1282 USE_INCLUDED_LIBINTL=yes
1286 INTLDEPS='$(top_builddir)/intl/libintl.a'
1288 LIBS=`echo $LIBS | sed -e 's/-lintl//'`
1289 nls_cv_header_intl=intl/libintl.h
1290 nls_cv_header_libgt=intl/libgettext.h
1293 dnl Test whether we really found GNU xgettext.
1294 if test "$XGETTEXT" != ":"; then
1295 dnl If it is no GNU xgettext we define it as : so that the
1296 dnl Makefiles still can work.
1297 if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
1301 [found xgettext program is not GNU xgettext; ignore it])
1306 # We need to process the po/ directory.
1310 nls_cv_header_intl=intl/libintl.h
1311 nls_cv_header_libgt=intl/libgettext.h
1313 AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl)
1315 [case "$CONFIG_FILES" in *po/Makefile.in*)
1316 sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
1320 # If this is used in GNU gettext we have to set USE_NLS to `yes'
1321 # because some of the sources are only built for this goal.
1322 if test "$PACKAGE" = gettext; then
1324 USE_INCLUDED_LIBINTL=yes
1327 dnl These rules are solely for the distribution goal. While doing this
1328 dnl we only have to keep exactly one list of the available catalogs
1329 dnl in configure.in.
1330 for lang in $ALL_LINGUAS; do
1331 GMOFILES="$GMOFILES $lang.gmo"
1332 POFILES="$POFILES $lang.po"
1335 dnl Make all variables we use known to autoconf.
1336 AC_SUBST(USE_INCLUDED_LIBINTL)
1339 AC_SUBST(DATADIRNAME)
1341 AC_SUBST(INSTOBJEXT)
1349 AC_DEFUN(AM_GNU_GETTEXT,
1350 [AC_REQUIRE([AC_PROG_MAKE_SET])dnl
1351 AC_REQUIRE([AC_PROG_CC])dnl
1352 AC_REQUIRE([AC_PROG_RANLIB])dnl
1353 AC_REQUIRE([AC_ISC_POSIX])dnl
1354 AC_REQUIRE([AC_HEADER_STDC])dnl
1355 AC_REQUIRE([AC_C_CONST])dnl
1356 AC_REQUIRE([AC_C_INLINE])dnl
1357 AC_REQUIRE([AC_TYPE_OFF_T])dnl
1358 AC_REQUIRE([AC_TYPE_SIZE_T])dnl
1359 AC_REQUIRE([AC_FUNC_ALLOCA])dnl
1360 AC_REQUIRE([AC_FUNC_MMAP])dnl
1362 AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \
1363 unistd.h sys/param.h])
1364 AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \
1365 strdup __argz_count __argz_stringify __argz_next])
1367 if test "${ac_cv_func_stpcpy+set}" != "set"; then
1368 AC_CHECK_FUNCS(stpcpy)
1370 if test "${ac_cv_func_stpcpy}" = "yes"; then
1371 AC_DEFINE(HAVE_STPCPY)
1377 if test "x$CATOBJEXT" != "x"; then
1378 if test "x$ALL_LINGUAS" = "x"; then
1381 AC_MSG_CHECKING(for catalogs to be installed)
1383 dnl ============== Fix is here! =======================
1384 dnl Some sh do not like substitution in bounds of for loops
1385 dnl for lang in ${LINGUAS=$ALL_LINGUAS}; do
1386 tmplinguas=${LINGUAS=$ALL_LINGUAS}
1387 for lang in ${tmplinguas}; do
1388 case "$ALL_LINGUAS" in
1389 *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
1392 LINGUAS=$NEW_LINGUAS
1393 AC_MSG_RESULT($LINGUAS)
1396 dnl Construct list of names of catalog files to be constructed.
1397 if test -n "$LINGUAS"; then
1398 for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
1402 dnl The reference to <locale.h> in the installed <libintl.h> file
1403 dnl must be resolved because we cannot expect the users of this
1404 dnl to define HAVE_LOCALE_H.
1405 if test $ac_cv_header_locale_h = yes; then
1406 INCLUDE_LOCALE_H="#include <locale.h>"
1409 /* The system does not provide the header <locale.h>. Take care yourself. */"
1411 AC_SUBST(INCLUDE_LOCALE_H)
1413 dnl Determine which catalog format we have (if any is needed)
1414 dnl For now we know about two different formats:
1415 dnl Linux libc-5 and the normal X/Open format
1416 test -d intl || mkdir intl
1417 if test "$CATOBJEXT" = ".cat"; then
1418 AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen)
1420 dnl Transform the SED scripts while copying because some dumb SEDs
1421 dnl cannot handle comments.
1422 sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed
1424 dnl po2tbl.sed is always needed.
1425 sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \
1426 $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed
1428 dnl In the intl/Makefile.in we have a special dependency which makes
1429 dnl only sense for gettext. We comment this out for non-gettext
1431 if test "$PACKAGE" = "gettext"; then
1441 dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
1442 dnl find the mkinstalldirs script in another subdir but ($top_srcdir).
1443 dnl Try to locate is.
1445 if test -n "$ac_aux_dir"; then
1446 MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
1448 if test -z "$MKINSTALLDIRS"; then
1449 MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
1451 AC_SUBST(MKINSTALLDIRS)
1453 dnl *** For now the libtool support in intl/Makefile is not for real.
1457 dnl Generate list of files to be processed by xgettext which will
1458 dnl be included in po/Makefile.
1459 test -d po || mkdir po
1460 if test "x$srcdir" != "x."; then
1461 if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
1462 posrcprefix="$srcdir/"
1464 posrcprefix="../$srcdir/"
1470 sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
1471 < $srcdir/po/POTFILES.in > po/POTFILES