1 dnl Some useful functions for LyXs configure.in -*- sh -*-
2 dnl Author: Jean-Marc Lasgouttes (Jean-Marc.Lasgouttes@inria.fr)
3 dnl Lars Gullik Bjønnes (larsbj@lyx.org)
6 dnl Usage LYX_GET_VERSION Sets "lyx_version" to the version of LyX being
7 dnl built, displays it and sets variable "lyx_devel" to yes or no depending
8 dnl whether the version is a development release or not.
9 AC_DEFUN(LYX_GET_VERSION,[
11 VERSION=`grep '#define *LYX_VERSION' $1 |
12 sed -e 's/^.*"\(.*\)"$/\1/' 2>/dev/null`
13 echo "configuring LyX version $VERSION"
14 if echo "$VERSION" | grep 'cvs' >/dev/null ; then
16 echo "WARNING: This is a development version. Expect bugs."
20 if echo "$VERSION" | grep 'pre' > /dev/null ; then
22 echo "WARNING: This is a prerelease. Be careful and backup your documents."
27 PACKAGE=lyx${program_suffix}
28 AC_SUBST(lyx_devel_version)
29 if test $lyx_devel_version = yes ; then
30 AC_DEFINE(DEVEL_VERSION, 1, Define if you are building a development version of LyX)
33 dnl Usage: LYX_ERROR(message) Displays the warning "message" and sets the
34 dnl flag lyx_error to yes.
36 lyx_error_txt="$lyx_error_txt
42 dnl Usage: LYX_WARNING(message) Displays the warning "message" and sets the
43 dnl flag lyx_warning to yes.
44 AC_DEFUN(LYX_WARNING,[
45 lyx_warning_txt="$lyx_warning_txt
51 dnl Usage: LYX_LIB_ERROR(file,library) Displays an error message indication
52 dnl that 'file' cannot be found because 'lib' may be uncorrectly installed.
53 AC_DEFUN(LYX_LIB_ERROR,[
54 LYX_ERROR([Cannot find $1. Please check that the $2 library
55 is correctly installed on your system.])])
58 dnl Usage: LYX_CHECK_ERRORS Displays a warning message if a LYX_ERROR
59 dnl has occured previously.
60 AC_DEFUN(LYX_CHECK_ERRORS,[
61 if test x$lyx_error = xyes; then
63 **** The following problems have been detected by configure.
64 **** Please check the messages below before running 'make'.
65 **** (see the section 'Problems' in the INSTALL file)
68 deleting cache $cache_file
73 if test x$lyx_warning = xyes; then
75 === The following minor problems have been detected by configure.
76 === Please check the messages below before running 'make'.
77 === (see the section 'Problems' in the INSTALL file)
82 Configuration of LyX was successful.
83 Type 'make' to compile the program,
84 and then 'make install' to install it.
89 dnl LYX_SEARCH_PROG(VARIABLE-NAME,PROGRAMS-LIST,ACTION-IF-FOUND)
91 define(LYX_SEARCH_PROG,[dnl
92 for ac_prog in $2 ; do
93 # Extract the first word of "$ac_prog", so it can be a program name with args.
94 set dummy $ac_prog ; ac_word=$[2]
95 if test -z "[$]$1"; then
96 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
97 for ac_dir in $PATH; do
98 test -z "$ac_dir" && ac_dir=.
99 if test -f [$ac_dir/$ac_word]; then
107 if test -n "[$]$1"; then
113 test -n "[$]$1" && break
118 AC_DEFUN(LYX_PROG_CXX_WORKS,
121 AC_TRY_COMPILER([class foo { int bar; }; int main(){return(0);}], ac_cv_prog_cxx_works, ac_cv_prog_cxx_cross)
123 if test $ac_cv_prog_cxx_works = no; then
126 cross_compiling=$ac_cv_prog_cxx_cross
130 AC_DEFUN(LYX_PROG_CXX,
131 [AC_BEFORE([$0], [AC_PROG_CXXCPP])dnl
132 AC_MSG_CHECKING([for a working C++ compiler])
133 LYX_SEARCH_PROG(CXX, $CCC g++ gcc c++ CC cxx xlC cc++, LYX_PROG_CXX_WORKS)
135 if test -z "$CXX" ; then
136 AC_ERROR([Unable to find a working C++ compiler])
142 AC_MSG_CHECKING([whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler])
143 AC_MSG_RESULT($cross_compiling)
147 dnl We might want to get or shut warnings.
148 AC_ARG_WITH(warnings,
149 [ --with-warnings tell the compiler to display more warnings],,
150 [ if test $lyx_devel_version = yes -o $lyx_prerelease = yes && test $ac_cv_prog_gxx = yes ; then
155 if test x$with_warnings = xyes ; then
156 lyx_flags="$lyx_flags warnings"
157 AC_DEFINE(WITH_WARNINGS, 1,
158 [Define this if you want to see the warning directives put here and
159 there by the developpers to get attention])
162 # optimize less for development versions
163 if test $lyx_devel_version = yes -o $lyx_prerelease = yes ; then
169 # set the debug flags correctly.
170 if test $ac_cv_prog_gxx = yes; then
172 dnl Check whether -g works, even if CXXFLAGS is set, in case the package
173 dnl plays around with CXXFLAGS (such as to build both debugging and
174 dnl normal versions of a library), tasteless as that idea is.
175 ac_test_CXXFLAGS="${CXXFLAGS+set}"
176 ac_save_CXXFLAGS="$CXXFLAGS"
178 dnl Check the version of g++
179 gxx_version=`g++ --version`
182 if test "$ac_test_CXXFLAGS" = set; then
183 CXXFLAGS="$ac_save_CXXFLAGS"
184 elif test $ac_cv_prog_cxx_g = yes; then
186 2.7*) CXXFLAGS="$lyx_opt";;
187 2.95.1) CXXFLAGS="-g $lyx_opt -fpermissive -fno-rtti";;
188 2.95.*) CXXFLAGS="-g $lyx_opt -fno-rtti";;
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],
314 [with_included_string=$withval],
319 string a("hello there");
324 with_included_string=no
326 with_included_string=yes
330 if test x$with_included_string = xyes ; then
331 AC_DEFINE(USE_INCLUDED_STRING, 1,
332 [Define to use the lyxstring class bundled with LyX.])
333 lyx_flags="$lyx_flags included-string"
335 AM_CONDITIONAL(USE_LYXSTRING, test x$with_included_string = xyes)
336 AC_MSG_RESULT([$with_included_string])
341 AC_DEFUN(LYX_CXX_MUTABLE, [
342 AC_REQUIRE([LYX_PROG_CXX])
343 AC_MSG_CHECKING(if C++ compiler supports mutable)
349 void foo() const { c=0; }
354 AC_DEFINE(HAVE_MUTABLE, 1,
355 [Defined if you compiler supports 'mutable'.])
359 AC_MSG_RESULT([$ac_mutable])
364 AC_DEFUN(LYX_CXX_PARTIAL, [
365 AC_REQUIRE([LYX_PROG_CXX])
366 AC_MSG_CHECKING(if C++ compiler supports partial specialization)
369 template<class T, class K>
373 template<class T> class k<void,T> { };
378 ac_partial_specialization=yes
379 AC_DEFINE(HAVE_PARTIAL_SPECIALIZATION, 1,
380 [Defined if your compiler supports partial specialization.])
382 ac_partial_specialization=no
384 AC_MSG_RESULT([$ac_partial_specialization])
388 dnl Usage: LYX_CXX_NAMESPACES : checks whether the C++ compiler
389 dnl has a correct namespace handling and define CXX_WORKING_NAMESPACES
390 dnl if true. This macro does not do a thourough test, but it should be
391 dnl good enough to suit our needs.
392 AC_DEFUN(LYX_CXX_NAMESPACES,[
393 AC_CACHE_CHECK(for correct namespaces support,lyx_cv_cxx_namespace,
400 ],lyx_cv_cxx_namespace=yes,lyx_cv_cxx_namespace=no)
402 if test $lyx_cv_cxx_namespace = yes ; then
403 AC_DEFINE(CXX_WORKING_NAMESPACES, 1,
404 [Define if your C++ compiler has correct support for namespaces])
408 dnl Usage: LYX_CXX_CHEADERS : checks whether the C++ compiler
409 dnl provides wrappers for C headers and use our alternate version otherwise.
410 AC_DEFUN(LYX_CXX_CHEADERS,[
411 AC_CACHE_CHECK(for C headers wrappers,lyx_cv_cxx_cheaders,
421 #include <ctime>],[lyx_cv_cxx_cheaders=yes],[lyx_cv_cxx_cheaders=no])])
422 if test $lyx_cv_cxx_cheaders = no ; then
423 LYX_ADD_INC_DIR(lyx_cppflags,\$(top_srcdir)/src/cheaders)
427 dnl Usage LYX_PATH_XPM: Checks for xpm library and header
428 AC_DEFUN(LYX_PATH_XPM,[
429 ### Check for Xpm library
430 AC_CHECK_LIB(Xpm, XpmCreateBufferFromImage,LYX_LIBS="-lXpm $LYX_LIBS",
431 [LYX_LIB_ERROR(libXpm,Xpm)], $LYX_LIBS)
433 ### Check for Xpm headers
434 lyx_cv_xpm_h_location="<xpm.h>"
435 AC_CHECK_HEADER(X11/xpm.h,[
436 ac_cv_header_xpm_h=yes
437 lyx_cv_xpm_h_location="<X11/xpm.h>"],[
438 AC_CHECK_HEADER(xpm.h,[],[
439 LYX_LIB_ERROR(xpm.h,Xpm)])])
440 AC_DEFINE_UNQUOTED(XPM_H_LOCATION,$lyx_cv_xpm_h_location)
442 ### Test for the header version
443 if test $ac_cv_header_xpm_h = yes; then
444 AC_CACHE_CHECK([xpm header version],lyx_cv_xpmversion,
445 [ cat > conftest.$ac_ext <<EOF
446 #line __oline__ "configure"
447 #include "confdefs.h"
449 #include XPM_H_LOCATION
450 "%%%"lyx_cv_xpmv=XpmVersion;lyx_cv_xpmr=XpmRevision"%%%"
452 eval `(eval "$ac_cpp conftest.$ac_ext") 2>&5 | \
453 grep '^"%%%"' 2>/dev/null | \
454 sed -e 's/^"%%%"\(.*\)"%%%"/\1/' -e 's/ //g'`
455 case "$lyx_cv_xpmr" in
457 [0-9]) lyxxpmr_alpha=`echo $lyx_cv_xpmr |tr 123456789 abcdefghi`
458 lyxxpmv_alpha=" (aka 3.$lyx_cv_xpmv$lyxxpmr_alpha)";;
462 lyx_cv_xpmversion="$lyx_cv_xpmv.$lyx_cv_xpmr$lyxxpmv_alpha"
464 case "$lyx_cv_xpmr" in
466 [789]|[0-9][0-9]*) ;;
468 *) LYX_WARNING([Version $lyx_cv_xpmversion of the Xpm library is a bit old.
469 If you experience strange crashes with LyX, try to upgrade
470 to at least version 4.7 (aka 3.4g).
471 If you have installed a newer version of the library, check whether you
472 have an old xpm.h header file in your include path.]);;
477 dnl Usage LYX_PATH_XFORMS: Checks for xforms library and flags
478 AC_DEFUN(LYX_PATH_XFORMS,[
479 ### Check for xforms library
480 AC_CHECK_LIB(forms, fl_initialize, LYX_LIBS="-lforms $LYX_LIBS",
481 [AC_CHECK_LIB(xforms, fl_initialize, LYX_LIBS="-lxforms $LYX_LIBS",
482 [LYX_LIB_ERROR(libforms or libxforms,xforms)], $LYX_LIBS)], $LYX_LIBS)
484 ### Check for xforms headers
485 lyx_cv_forms_h_location="<forms.h>"
486 AC_CHECK_HEADER(X11/forms.h,[
487 ac_cv_header_forms_h=yes
488 lyx_cv_forms_h_location="<X11/forms.h>"],[
489 AC_CHECK_HEADER(forms.h,[],[
490 LYX_LIB_ERROR(forms.h,forms)])])
491 AC_DEFINE_UNQUOTED(FORMS_H_LOCATION,$lyx_cv_forms_h_location)
492 if test $ac_cv_header_forms_h = yes; then
493 AC_CACHE_CHECK([xforms header version],lyx_cv_xfversion,
494 [ cat > conftest.$ac_ext <<EOF
495 #line __oline__ "configure"
496 #include "confdefs.h"
498 #include FORMS_H_LOCATION
499 #if ! defined(FL_INCLUDE_VERSION)
502 "%%%"FL_VERSION.FL_REVISION"%%%"
505 lyx_cv_xfversion=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | \
506 grep '^"%%%"' 2>/dev/null | \
507 sed -e 's/^"%%%"\(.*\)"%%%"/\1/' -e 's/ //g'`
509 case "$lyx_cv_xfversion" in
510 "(unknown)"|0.82|0.83|0.84|0.85)
512 Version $lyx_cv_xfversion of xforms is not compatible with LyX.
513 This version of LyX works best with version 0.88[,] although it
514 supports also versions 0.81[,] 0.86 and 0.87.) ;;
517 While LyX is compatible with version $lyx_cv_xfversion of xforms[,]
518 it is recommended that you upgrade to version 0.88.) ;;
520 0.89) LYX_WARNING(dnl
521 LyX should work ok with version $lyx_cv_xfversion of xforms[,] but
522 it is an unproven version and might still have some bugs. If you
523 have problems[,] please use version 0.88 instead.) ;;
525 Version $lyx_cv_xfversion of xforms might not be compatible with LyX[,]
526 since it is newer than 0.88. You might have slight problems with it.);;
531 dnl Usage: LYX_HPUX Checks for HP-UX and update CXXFLAGS accordingly
533 [#It seems that HPUX requires using -fpcc-struct-return with gcc.
534 AC_CACHE_CHECK(for HP-UX,ac_cv_hpux,[
535 os=`uname -s | tr '[A-Z]' '[a-z]'`
537 test "$os" = hp-ux && ac_cv_hpux=yes])
538 if test "$ac_cv_hpux" = yes; then
539 test "x$GXX" = xyes && CXXFLAGS="$CXXFLAGS -fpcc-struct-return"
543 dnl Usage: LYX_SUNOS4 Checks for SunOS 4.x and sets the flag lyx_broken_headers
546 [#The headers are not correct under SunOS4
547 AC_CACHE_CHECK(for SunOS 4.x,ac_cv_sunos4,[
549 os=`uname -a | sed -e 's/^\([^ ]*\) [^ ]* \([0-9]\)\..*/\1\2/'`
550 changequote([, ]) dnl
552 test "$os" = SunOS4 && ac_cv_sunos4=yes])
553 if test "$ac_cv_sunos4" = yes; then
554 test "x$GXX" = xyes && lyx_broken_headers=yes
558 dnl Usage: LYX_SCO Checks for SCO and sets the flag lyx_broken_headers
561 [AC_CACHE_CHECK(for SCO 3.2v4,ac_cv_sco,[
563 if test `uname -s` != "SCO_SV"; then
564 lyx_machine_rel=`uname -m`:`uname -r`
565 if test $lyx_machine_rel = i386:3.2 || test $lyx_machine_rel = i486:3.2;
567 if test -f /usr/options/cb.name; then
569 elif /bin/uname -X 2>/dev/null >/dev/null ; then
574 if test "$ac_cv_sco" = yes; then
575 test "x$GXX" = xyes && lyx_broken_headers=yes
579 dnl Usage: LYX_WITH_DIR(dir-name,desc,dir-var-name,default-value,
580 dnl [default-yes-value])
581 dnl Adds a --with-'dir-name' option (described by 'desc') and puts the
582 dnl resulting directory name in 'dir-var-name'.
583 AC_DEFUN(LYX_WITH_DIR,[
584 AC_ARG_WITH($1,[ --with-$1 specify $2])
585 AC_MSG_CHECKING([for $2])
586 if test -z "$with_$3"; then
587 AC_CACHE_VAL(lyx_cv_$3, lyx_cv_$3=$4)
589 test "x$with_$3" = xyes && with_$3=$5
592 AC_MSG_RESULT($lyx_cv_$3)])
595 dnl Usage: LYX_LOOP_DIR(value,action)
596 dnl Executes action for values of variable `dir' in `values'. `values' can
597 dnl use ":" as a separator.
598 AC_DEFUN(LYX_LOOP_DIR,[
599 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
600 for dir in `eval "echo $1"`; do
601 if test ! "$dir" = NONE; then
602 test ! -d "$dir" && AC_ERROR([\"$dir\" is not a directory])
610 dnl Usage: LYX_ADD_LIB_DIR(var-name,dir) Adds a -L directive to variable
612 AC_DEFUN(LYX_ADD_LIB_DIR,[
614 if test "`(uname) 2>/dev/null`" = SunOS &&
615 uname -r | grep '^5' >/dev/null; then
616 if test $ac_cv_prog_gxx = yes ; then
617 $1="${$1} -Wl[,]-R$2"
624 dnl Usage: LYX_ADD_INC_DIR(var-name,dir) Adds a -I directive to variable
626 AC_DEFUN(LYX_ADD_INC_DIR,[$1="${$1} -I$2 "])
629 dnl AC_VALIDATE_CACHE_SYSTEM_TYPE[(cmd)]
630 dnl if the cache file is inconsistent with the current host,
631 dnl target and build system types, execute CMD or print a default
633 AC_DEFUN(AC_VALIDATE_CACHE_SYSTEM_TYPE, [
634 AC_REQUIRE([AC_CANONICAL_SYSTEM])
635 AC_MSG_CHECKING([config.cache system type])
636 if { test x"${ac_cv_host_system_type+set}" = x"set" &&
637 test x"$ac_cv_host_system_type" != x"$host"; } ||
638 { test x"${ac_cv_build_system_type+set}" = x"set" &&
639 test x"$ac_cv_build_system_type" != x"$build"; } ||
640 { test x"${ac_cv_target_system_type+set}" = x"set" &&
641 test x"$ac_cv_target_system_type" != x"$target"; }; then
642 AC_MSG_RESULT([different])
644 [AC_MSG_ERROR(["you must remove config.cache and restart configure"])])
646 AC_MSG_RESULT([same])
648 ac_cv_host_system_type="$host"
649 ac_cv_build_system_type="$build"
650 ac_cv_target_system_type="$target"
654 dnl We use this until autoconf fixes its version.
655 AC_DEFUN(LYX_FUNC_SELECT_ARGTYPES,
656 [AC_MSG_CHECKING([types of arguments for select()])
657 AC_CACHE_VAL(ac_cv_func_select_arg234,dnl
658 [AC_CACHE_VAL(ac_cv_func_select_arg1,dnl
659 [AC_CACHE_VAL(ac_cv_func_select_arg5,dnl
660 [for ac_cv_func_select_arg234 in 'fd_set *' 'int *' 'void *'; do
661 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
663 [#ifdef HAVE_SYS_TYPES_H
664 #include <sys/types.h>
666 #ifdef HAVE_SYS_TIME_H
667 #include <sys/time.h>
669 #ifdef HAVE_SYS_SELECT_H
670 #include <sys/select.h>
672 #ifdef HAVE_SYS_SOCKET_H
673 #include <sys/socket.h>
675 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
676 [ac_not_found=no ; break 3],ac_not_found=yes)
683 if test "$ac_not_found" = yes; then
684 ac_cv_func_select_arg1=int
685 ac_cv_func_select_arg234='int *'
686 ac_cv_func_select_arg5='struct timeval *'
688 AC_MSG_RESULT([$ac_cv_func_select_arg1,$ac_cv_func_select_arg234,$ac_cv_func_select_arg5])
689 AC_DEFINE_UNQUOTED(SELECT_TYPE_ARG1,$ac_cv_func_select_arg1)
690 AC_DEFINE_UNQUOTED(SELECT_TYPE_ARG234,($ac_cv_func_select_arg234))
691 AC_DEFINE_UNQUOTED(SELECT_TYPE_ARG5,($ac_cv_func_select_arg5))
694 ## libtool.m4 - Configure libtool for the target system. -*-Shell-script-*-
695 ## Copyright (C) 1996-1999 Free Software Foundation, Inc.
696 ## Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
698 ## This program is free software; you can redistribute it and/or modify
699 ## it under the terms of the GNU General Public License as published by
700 ## the Free Software Foundation; either version 2 of the License, or
701 ## (at your option) any later version.
703 ## This program is distributed in the hope that it will be useful, but
704 ## WITHOUT ANY WARRANTY; without even the implied warranty of
705 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
706 ## General Public License for more details.
708 ## You should have received a copy of the GNU General Public License
709 ## along with this program; if not, write to the Free Software
710 ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
712 ## As a special exception to the GNU General Public License, if you
713 ## distribute this file as part of a program that contains a
714 ## configuration script generated by Autoconf, you may include it under
715 ## the same distribution terms that you use for the rest of that program.
717 # serial 40 AC_PROG_LIBTOOL
718 AC_DEFUN(AC_PROG_LIBTOOL,
719 [AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
721 # Save cache, so that ltconfig can load it
724 # Actually configure libtool. ac_aux_dir is where install-sh is found.
725 CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
726 LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
727 LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" \
728 DLLTOOL="$DLLTOOL" AS="$AS" OBJDUMP="$OBJDUMP" \
729 ${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \
730 $libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \
731 || AC_MSG_ERROR([libtool configure failed])
733 # Reload cache, that may have been modified by ltconfig
736 # This can be used to rebuild libtool when needed
737 LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh"
739 # Always use our own libtool.
740 LIBTOOL='$(SHELL) $(top_builddir)/libtool'
743 # Redirect the config.log output again, so that the ltconfig log is not
744 # clobbered by the next message.
748 AC_DEFUN(AC_LIBTOOL_SETUP,
750 AC_REQUIRE([AC_ENABLE_SHARED])dnl
751 AC_REQUIRE([AC_ENABLE_STATIC])dnl
752 AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
753 AC_REQUIRE([AC_CANONICAL_HOST])dnl
754 AC_REQUIRE([AC_CANONICAL_BUILD])dnl
755 AC_REQUIRE([AC_PROG_RANLIB])dnl
756 AC_REQUIRE([AC_PROG_CC])dnl
757 AC_REQUIRE([AC_PROG_LD])dnl
758 AC_REQUIRE([AC_PROG_NM])dnl
759 AC_REQUIRE([AC_PROG_LN_S])dnl
762 # Check for any special flags to pass to ltconfig.
764 # the following will cause an existing older ltconfig to fail, so
765 # we ignore this at the expense of the cache file... Checking this
766 # will just take longer ... bummer!
767 #libtool_flags="--cache-file=$cache_file"
769 test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
770 test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
771 test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install"
772 test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
773 test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
774 ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN],
775 [libtool_flags="$libtool_flags --enable-dlopen"])
776 ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
777 [libtool_flags="$libtool_flags --enable-win32-dll"])
778 AC_ARG_ENABLE(libtool-lock,
779 [ --disable-libtool-lock avoid locking (might break parallel builds)])
780 test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock"
781 test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
783 # Some flags need to be propagated to the compiler or linker for good
787 # Find out which ABI we are using.
788 echo '[#]line __oline__ "configure"' > conftest.$ac_ext
789 if AC_TRY_EVAL(ac_compile); then
790 case "`/usr/bin/file conftest.o`" in
806 # On SCO OpenServer 5, we need -belf to get full-featured binaries.
807 SAVE_CFLAGS="$CFLAGS"
808 CFLAGS="$CFLAGS -belf"
809 AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
810 [AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])])
811 if test x"$lt_cv_cc_needs_belf" != x"yes"; then
812 # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
813 CFLAGS="$SAVE_CFLAGS"
817 ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
818 [*-*-cygwin* | *-*-mingw*)
819 AC_CHECK_TOOL(DLLTOOL, dlltool, false)
820 AC_CHECK_TOOL(AS, as, false)
821 AC_CHECK_TOOL(OBJDUMP, objdump, false)
827 # AC_LIBTOOL_DLOPEN - enable checks for dlopen support
828 AC_DEFUN(AC_LIBTOOL_DLOPEN, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])])
830 # AC_LIBTOOL_WIN32_DLL - declare package support for building win32 dll's
831 AC_DEFUN(AC_LIBTOOL_WIN32_DLL, [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])])
833 # AC_ENABLE_SHARED - implement the --enable-shared flag
834 # Usage: AC_ENABLE_SHARED[(DEFAULT)]
835 # Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
837 AC_DEFUN(AC_ENABLE_SHARED, [dnl
838 define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
839 AC_ARG_ENABLE(shared,
840 changequote(<<, >>)dnl
841 << --enable-shared[=PKGS] build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT],
843 [p=${PACKAGE-default}
845 yes) enable_shared=yes ;;
846 no) enable_shared=no ;;
849 # Look at the argument we got. We use all the common list separators.
850 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
851 for pkg in $enableval; do
852 if test "X$pkg" = "X$p"; then
859 enable_shared=AC_ENABLE_SHARED_DEFAULT)dnl
862 # AC_DISABLE_SHARED - set the default shared flag to --disable-shared
863 AC_DEFUN(AC_DISABLE_SHARED, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
864 AC_ENABLE_SHARED(no)])
866 # AC_ENABLE_STATIC - implement the --enable-static flag
867 # Usage: AC_ENABLE_STATIC[(DEFAULT)]
868 # Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
870 AC_DEFUN(AC_ENABLE_STATIC, [dnl
871 define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
872 AC_ARG_ENABLE(static,
873 changequote(<<, >>)dnl
874 << --enable-static[=PKGS] build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT],
876 [p=${PACKAGE-default}
878 yes) enable_static=yes ;;
879 no) enable_static=no ;;
882 # Look at the argument we got. We use all the common list separators.
883 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
884 for pkg in $enableval; do
885 if test "X$pkg" = "X$p"; then
892 enable_static=AC_ENABLE_STATIC_DEFAULT)dnl
895 # AC_DISABLE_STATIC - set the default static flag to --disable-static
896 AC_DEFUN(AC_DISABLE_STATIC, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
897 AC_ENABLE_STATIC(no)])
900 # AC_ENABLE_FAST_INSTALL - implement the --enable-fast-install flag
901 # Usage: AC_ENABLE_FAST_INSTALL[(DEFAULT)]
902 # Where DEFAULT is either `yes' or `no'. If omitted, it defaults to
904 AC_DEFUN(AC_ENABLE_FAST_INSTALL, [dnl
905 define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
906 AC_ARG_ENABLE(fast-install,
907 changequote(<<, >>)dnl
908 << --enable-fast-install[=PKGS] optimize for fast installation [default=>>AC_ENABLE_FAST_INSTALL_DEFAULT],
910 [p=${PACKAGE-default}
912 yes) enable_fast_install=yes ;;
913 no) enable_fast_install=no ;;
915 enable_fast_install=no
916 # Look at the argument we got. We use all the common list separators.
917 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
918 for pkg in $enableval; do
919 if test "X$pkg" = "X$p"; then
920 enable_fast_install=yes
926 enable_fast_install=AC_ENABLE_FAST_INSTALL_DEFAULT)dnl
929 # AC_ENABLE_FAST_INSTALL - set the default to --disable-fast-install
930 AC_DEFUN(AC_DISABLE_FAST_INSTALL, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
931 AC_ENABLE_FAST_INSTALL(no)])
933 # AC_PROG_LD - find the path to the GNU or non-GNU linker
936 [ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
937 test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
938 AC_REQUIRE([AC_PROG_CC])dnl
939 AC_REQUIRE([AC_CANONICAL_HOST])dnl
940 AC_REQUIRE([AC_CANONICAL_BUILD])dnl
942 if test "$ac_cv_prog_gcc" = yes; then
943 # Check if gcc -print-prog-name=ld gives a path.
944 AC_MSG_CHECKING([for ld used by GCC])
945 ac_prog=`($CC -print-prog-name=ld) 2>&5`
947 # Accept absolute paths.
949 [\\/]* | [A-Za-z]:[\\/]*)
950 re_direlt='/[^/][^/]*/\.\./'
952 # Canonicalize the path of ld
953 ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
954 while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
955 ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
957 test -z "$LD" && LD="$ac_prog"
960 # If it fails, then pretend we aren't using GCC.
964 # If it is relative, then search for the first ld in PATH.
968 elif test "$with_gnu_ld" = yes; then
969 AC_MSG_CHECKING([for GNU ld])
971 AC_MSG_CHECKING([for non-GNU ld])
973 AC_CACHE_VAL(ac_cv_path_LD,
974 [if test -z "$LD"; then
975 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
976 for ac_dir in $PATH; do
977 test -z "$ac_dir" && ac_dir=.
978 if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
979 ac_cv_path_LD="$ac_dir/$ac_prog"
980 # Check to see if the program is GNU ld. I'd rather use --version,
981 # but apparently some GNU ld's only accept -v.
982 # Break only if it was the GNU/non-GNU ld that we prefer.
983 if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
984 test "$with_gnu_ld" != no && break
986 test "$with_gnu_ld" != yes && break
992 ac_cv_path_LD="$LD" # Let the user override the test with a path.
995 if test -n "$LD"; then
1000 test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
1005 AC_DEFUN(AC_PROG_LD_GNU,
1006 [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], ac_cv_prog_gnu_ld,
1007 [# I'd rather use --version here, but apparently some GNU ld's only accept -v.
1008 if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
1009 ac_cv_prog_gnu_ld=yes
1011 ac_cv_prog_gnu_ld=no
1015 # AC_PROG_NM - find the path to a BSD-compatible name lister
1016 AC_DEFUN(AC_PROG_NM,
1017 [AC_MSG_CHECKING([for BSD-compatible nm])
1018 AC_CACHE_VAL(ac_cv_path_NM,
1019 [if test -n "$NM"; then
1020 # Let the user override the test.
1023 IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
1024 for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
1025 test -z "$ac_dir" && ac_dir=.
1026 if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext ; then
1027 # Check to see if the nm accepts a BSD-compat flag.
1028 # Adding the `sed 1q' prevents false positives on HP-UX, which says:
1029 # nm: unknown option "B" ignored
1030 if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
1031 ac_cv_path_NM="$ac_dir/nm -B"
1033 elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
1034 ac_cv_path_NM="$ac_dir/nm -p"
1037 ac_cv_path_NM=${ac_cv_path_NM="$ac_dir/nm"} # keep the first match, but
1038 continue # so that we can try to find one that supports BSD flags
1043 test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm
1046 AC_MSG_RESULT([$NM])
1050 # AC_CHECK_LIBM - check for math library
1051 AC_DEFUN(AC_CHECK_LIBM,
1052 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
1055 *-*-beos* | *-*-cygwin*)
1056 # These system don't have libm
1059 AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
1060 AC_CHECK_LIB(m, main, LIBM="$LIBM -lm")
1063 AC_CHECK_LIB(m, main, LIBM="-lm")
1068 ### Check for stl_string_fwd.h existence and location if it exists
1070 ### Three problems remain:
1071 ### 1. I don't check if $lyx_cv_extra_inc has a value before testing it.
1072 ### 2. I don't issue a warning/error if AC_CHECK_HEADERS finds it but I
1073 ### don't. The warning should only need to be something like:
1074 ### "Can't find path to stl_string_fwd.h please define
1075 ### STL_STRING_FWD_H_LOCATION in src/config.h or supply the path
1076 ### using --with-extra-inc"
1077 ### 3. Multiple extra include dirs? and I don't check --with-extra-prefix yet
1079 AC_DEFUN(LYX_STL_STRING_FWD,
1080 [AC_CHECK_HEADERS(stl_string_fwd.h,[
1081 lyx_cv_stl_string_fwd_h_location="<../include/stl_string_fwd.h>"
1082 AC_CHECK_HEADER(../include/stl_string_fwd.h,[
1083 ac_cv_header_stl_string_fwd_h=yes
1084 lyx_cv_stl_string_fwd_h_location="<../include/stl_string_fwd.h>"],[
1085 AC_CHECK_HEADER($lyx_cv_extra_inc/stl_string_fwd.h,[
1086 ac_cv_header_stl_string_fwd_h=yes
1087 lyx_cv_stl_string_fwd_h_location="<$lyx_cv_extra_inc/stl_string_fwd.h>"],[
1088 ac_cv_header_stl_string_fwd_h=no])])
1089 AC_DEFINE_UNQUOTED(STL_STRING_FWD_H_LOCATION,$lyx_cv_stl_string_fwd_h_location)])
1093 # AC_LIBLTDL_CONVENIENCE[(dir)] - sets LIBLTDL to the link flags for
1094 # the libltdl convenience library, adds --enable-ltdl-convenience to
1095 # the configure arguments. Note that LIBLTDL is not AC_SUBSTed, nor
1096 # is AC_CONFIG_SUBDIRS called. If DIR is not provided, it is assumed
1097 # to be `${top_builddir}/libltdl'. Make sure you start DIR with
1098 # '${top_builddir}/' (note the single quotes!) if your package is not
1099 # flat, and, if you're not using automake, define top_builddir as
1100 # appropriate in the Makefiles.
1101 AC_DEFUN(AC_LIBLTDL_CONVENIENCE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
1102 case "$enable_ltdl_convenience" in
1103 no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
1104 "") enable_ltdl_convenience=yes
1105 ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
1107 LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdlc.la
1108 INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl'])
1111 # AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for
1112 # the libltdl installable library, and adds --enable-ltdl-install to
1113 # the configure arguments. Note that LIBLTDL is not AC_SUBSTed, nor
1114 # is AC_CONFIG_SUBDIRS called. If DIR is not provided, it is assumed
1115 # to be `${top_builddir}/libltdl'. Make sure you start DIR with
1116 # '${top_builddir}/' (note the single quotes!) if your package is not
1117 # flat, and, if you're not using automake, define top_builddir as
1118 # appropriate in the Makefiles.
1119 # In the future, this macro may have to be called after AC_PROG_LIBTOOL.
1120 AC_DEFUN(AC_LIBLTDL_INSTALLABLE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
1121 AC_CHECK_LIB(ltdl, main,
1122 [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
1123 [if test x"$enable_ltdl_install" = xno; then
1124 AC_MSG_WARN([libltdl not installed, but installation disabled])
1126 enable_ltdl_install=yes
1129 if test x"$enable_ltdl_install" = x"yes"; then
1130 ac_configure_args="$ac_configure_args --enable-ltdl-install"
1131 LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdl.la
1132 INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl'])
1134 ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
1141 AC_DEFUN(AM_PROG_LIBTOOL, [indir([AC_PROG_LIBTOOL])])dnl
1142 AC_DEFUN(AM_ENABLE_SHARED, [indir([AC_ENABLE_SHARED], $@)])dnl
1143 AC_DEFUN(AM_ENABLE_STATIC, [indir([AC_ENABLE_STATIC], $@)])dnl
1144 AC_DEFUN(AM_DISABLE_SHARED, [indir([AC_DISABLE_SHARED], $@)])dnl
1145 AC_DEFUN(AM_DISABLE_STATIC, [indir([AC_DISABLE_STATIC], $@)])dnl
1146 AC_DEFUN(AM_PROG_LD, [indir([AC_PROG_LD])])dnl
1147 AC_DEFUN(AM_PROG_NM, [indir([AC_PROG_NM])])dnl
1149 dnl This is just to silence aclocal about the macro not being used
1150 ifelse([AC_DISABLE_FAST_INSTALL])dnl
1152 # Macro to add for using GNU gettext.
1153 # Ulrich Drepper <drepper@cygnus.com>, 1995.
1155 # This file can be copied and used freely without restrictions. It can
1156 # be used in projects which are not available under the GNU Public License
1157 # but which still want to provide support for the GNU gettext functionality.
1158 # Please note that the actual code is *not* freely available.
1162 AC_DEFUN(AM_WITH_NLS,
1163 [AC_MSG_CHECKING([whether NLS is requested])
1164 dnl Default is enabled NLS
1166 [ --disable-nls do not use Native Language Support],
1167 USE_NLS=$enableval, USE_NLS=yes)
1168 AC_MSG_RESULT($USE_NLS)
1171 USE_INCLUDED_LIBINTL=no
1173 dnl If we use NLS figure out what method
1174 if test "$USE_NLS" = "yes"; then
1175 AC_DEFINE(ENABLE_NLS)
1176 AC_MSG_CHECKING([whether included gettext is requested])
1177 AC_ARG_WITH(included-gettext,
1178 [ --with-included-gettext use the GNU gettext library included here],
1179 nls_cv_force_use_gnu_gettext=$withval,
1180 nls_cv_force_use_gnu_gettext=no)
1181 AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
1183 nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
1184 if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
1185 dnl User does not insist on using GNU NLS library. Figure out what
1186 dnl to use. If gettext or catgets are available (in this order) we
1187 dnl use this. Else we have to fall back to GNU NLS library.
1188 dnl catgets is only used if permitted by option --with-catgets.
1190 nls_cv_header_libgt=
1193 AC_CHECK_HEADER(libintl.h,
1194 [AC_CACHE_CHECK([for gettext in libc], gt_cv_func_gettext_libc,
1195 [AC_TRY_LINK([#include <libintl.h>], [return (int) gettext ("")],
1196 gt_cv_func_gettext_libc=yes, gt_cv_func_gettext_libc=no)])
1198 if test "$gt_cv_func_gettext_libc" != "yes"; then
1199 AC_CHECK_LIB(intl, bindtextdomain,
1200 [AC_CACHE_CHECK([for gettext in libintl],
1201 gt_cv_func_gettext_libintl,
1202 [AC_CHECK_LIB(intl, gettext,
1203 gt_cv_func_gettext_libintl=yes,
1204 gt_cv_func_gettext_libintl=no)],
1205 gt_cv_func_gettext_libintl=no)])
1208 if test "$gt_cv_func_gettext_libc" = "yes" \
1209 || test "$gt_cv_func_gettext_libintl" = "yes"; then
1210 AC_DEFINE(HAVE_GETTEXT)
1211 AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
1212 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
1213 if test "$MSGFMT" != "no"; then
1214 AC_CHECK_FUNCS(dcgettext)
1215 AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
1216 AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
1217 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
1218 AC_TRY_LINK(, [extern int _nl_msg_cat_cntr;
1219 return _nl_msg_cat_cntr],
1229 if test "$CATOBJEXT" = "NONE"; then
1230 AC_MSG_CHECKING([whether catgets can be used])
1231 AC_ARG_WITH(catgets,
1232 [ --with-catgets use catgets functions if available],
1233 nls_cv_use_catgets=$withval, nls_cv_use_catgets=no)
1234 AC_MSG_RESULT($nls_cv_use_catgets)
1236 if test "$nls_cv_use_catgets" = "yes"; then
1237 dnl No gettext in C library. Try catgets next.
1238 AC_CHECK_LIB(i, main)
1239 AC_CHECK_FUNC(catgets,
1240 [AC_DEFINE(HAVE_CATGETS)
1241 INTLOBJS="\$(CATOBJS)"
1242 AC_PATH_PROG(GENCAT, gencat, no)dnl
1243 if test "$GENCAT" != "no"; then
1244 AC_PATH_PROG(GMSGFMT, gmsgfmt, no)
1245 if test "$GMSGFMT" = "no"; then
1246 AM_PATH_PROG_WITH_TEST(GMSGFMT, msgfmt,
1247 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)
1249 AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
1250 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
1251 USE_INCLUDED_LIBINTL=yes
1255 INTLDEPS='$(top_builddir)/intl/libintl.a'
1257 LIBS=`echo $LIBS | sed -e 's/-lintl//'`
1258 nls_cv_header_intl=intl/libintl.h
1259 nls_cv_header_libgt=intl/libgettext.h
1264 if test "$CATOBJEXT" = "NONE"; then
1265 dnl Neither gettext nor catgets in included in the C library.
1266 dnl Fall back on GNU gettext library.
1267 nls_cv_use_gnu_gettext=yes
1271 if test "$nls_cv_use_gnu_gettext" = "yes"; then
1272 dnl Mark actions used to generate GNU NLS library.
1273 INTLOBJS="\$(GETTOBJS)"
1274 AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
1275 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt)
1276 AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
1277 AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
1278 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
1280 USE_INCLUDED_LIBINTL=yes
1284 INTLDEPS='$(top_builddir)/intl/libintl.a'
1286 LIBS=`echo $LIBS | sed -e 's/-lintl//'`
1287 nls_cv_header_intl=intl/libintl.h
1288 nls_cv_header_libgt=intl/libgettext.h
1291 dnl Test whether we really found GNU xgettext.
1292 if test "$XGETTEXT" != ":"; then
1293 dnl If it is no GNU xgettext we define it as : so that the
1294 dnl Makefiles still can work.
1295 if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
1299 [found xgettext program is not GNU xgettext; ignore it])
1304 # We need to process the po/ directory.
1308 nls_cv_header_intl=intl/libintl.h
1309 nls_cv_header_libgt=intl/libgettext.h
1311 AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl)
1313 [case "$CONFIG_FILES" in *po/Makefile.in*)
1314 sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
1318 # If this is used in GNU gettext we have to set USE_NLS to `yes'
1319 # because some of the sources are only built for this goal.
1320 if test "$PACKAGE" = gettext; then
1322 USE_INCLUDED_LIBINTL=yes
1325 dnl These rules are solely for the distribution goal. While doing this
1326 dnl we only have to keep exactly one list of the available catalogs
1327 dnl in configure.in.
1328 for lang in $ALL_LINGUAS; do
1329 GMOFILES="$GMOFILES $lang.gmo"
1330 POFILES="$POFILES $lang.po"
1333 dnl Make all variables we use known to autoconf.
1334 AC_SUBST(USE_INCLUDED_LIBINTL)
1337 AC_SUBST(DATADIRNAME)
1339 AC_SUBST(INSTOBJEXT)
1347 AC_DEFUN(AM_GNU_GETTEXT,
1348 [AC_REQUIRE([AC_PROG_MAKE_SET])dnl
1349 AC_REQUIRE([AC_PROG_CC])dnl
1350 AC_REQUIRE([AC_PROG_RANLIB])dnl
1351 AC_REQUIRE([AC_ISC_POSIX])dnl
1352 AC_REQUIRE([AC_HEADER_STDC])dnl
1353 AC_REQUIRE([AC_C_CONST])dnl
1354 AC_REQUIRE([AC_C_INLINE])dnl
1355 AC_REQUIRE([AC_TYPE_OFF_T])dnl
1356 AC_REQUIRE([AC_TYPE_SIZE_T])dnl
1357 AC_REQUIRE([AC_FUNC_ALLOCA])dnl
1358 AC_REQUIRE([AC_FUNC_MMAP])dnl
1360 AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \
1361 unistd.h sys/param.h])
1362 AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \
1363 strdup __argz_count __argz_stringify __argz_next])
1365 if test "${ac_cv_func_stpcpy+set}" != "set"; then
1366 AC_CHECK_FUNCS(stpcpy)
1368 if test "${ac_cv_func_stpcpy}" = "yes"; then
1369 AC_DEFINE(HAVE_STPCPY)
1375 if test "x$CATOBJEXT" != "x"; then
1376 if test "x$ALL_LINGUAS" = "x"; then
1379 AC_MSG_CHECKING(for catalogs to be installed)
1381 dnl ============== Fix is here! =======================
1382 dnl Some sh do not like substitution in bounds of for loops
1383 dnl for lang in ${LINGUAS=$ALL_LINGUAS}; do
1384 tmplinguas=${LINGUAS=$ALL_LINGUAS}
1385 for lang in ${tmplinguas}; do
1386 case "$ALL_LINGUAS" in
1387 *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
1390 LINGUAS=$NEW_LINGUAS
1391 AC_MSG_RESULT($LINGUAS)
1394 dnl Construct list of names of catalog files to be constructed.
1395 if test -n "$LINGUAS"; then
1396 for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
1400 dnl The reference to <locale.h> in the installed <libintl.h> file
1401 dnl must be resolved because we cannot expect the users of this
1402 dnl to define HAVE_LOCALE_H.
1403 if test $ac_cv_header_locale_h = yes; then
1404 INCLUDE_LOCALE_H="#include <locale.h>"
1407 /* The system does not provide the header <locale.h>. Take care yourself. */"
1409 AC_SUBST(INCLUDE_LOCALE_H)
1411 dnl Determine which catalog format we have (if any is needed)
1412 dnl For now we know about two different formats:
1413 dnl Linux libc-5 and the normal X/Open format
1414 test -d intl || mkdir intl
1415 if test "$CATOBJEXT" = ".cat"; then
1416 AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen)
1418 dnl Transform the SED scripts while copying because some dumb SEDs
1419 dnl cannot handle comments.
1420 sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed
1422 dnl po2tbl.sed is always needed.
1423 sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \
1424 $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed
1426 dnl In the intl/Makefile.in we have a special dependency which makes
1427 dnl only sense for gettext. We comment this out for non-gettext
1429 if test "$PACKAGE" = "gettext"; then
1439 dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
1440 dnl find the mkinstalldirs script in another subdir but ($top_srcdir).
1441 dnl Try to locate is.
1443 if test -n "$ac_aux_dir"; then
1444 MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
1446 if test -z "$MKINSTALLDIRS"; then
1447 MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
1449 AC_SUBST(MKINSTALLDIRS)
1451 dnl *** For now the libtool support in intl/Makefile is not for real.
1455 dnl Generate list of files to be processed by xgettext which will
1456 dnl be included in po/Makefile.
1457 test -d po || mkdir po
1458 if test "x$srcdir" != "x."; then
1459 if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
1460 posrcprefix="$srcdir/"
1462 posrcprefix="../$srcdir/"
1468 sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
1469 < $srcdir/po/POTFILES.in > po/POTFILES