This commit was manufactured by cvs2svn to create tag 'lyx-20000221'.
[lyx.git] / acinclude.m4
blob2330a68bc0edd4e2de05f560f007042a99be14a5
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,[
10 changequote(, ) dnl
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
15   lyx_devel_version=yes
16   echo "WARNING: This is a development version. Expect bugs."
17 else
18   lyx_devel_version=no
20 if echo "$VERSION" | grep 'pre' > /dev/null ; then
21     lyx_prerelease=yes
22     echo "WARNING: This is a prerelease. Be careful and backup your documents."
23 else
24     lyx_prerelease=no
26 changequote([, ]) dnl
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)
31 fi])
33 dnl Usage: LYX_ERROR(message)  Displays the warning "message" and sets the
34 dnl flag lyx_error to yes.
35 AC_DEFUN(LYX_ERROR,[
36 lyx_error_txt="$lyx_error_txt
37 ** $1
39 lyx_error=yes])
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
46 == $1
48 lyx_warning=yes])
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
62 cat <<EOF
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)
66 $lyx_error_txt
67 $lyx_warning_txt
68 deleting cache $cache_file
69 EOF
70   rm -f $cache_file
71 else
73 if test x$lyx_warning = xyes; then
74 cat <<EOF
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)
78 $lyx_warning_txt
79 EOF
81 cat <<EOF
82 Configuration of LyX was successful.  
83 Type 'make' to compile the program, 
84 and then 'make install' to install it.
85 EOF
86 fi])
89 dnl LYX_SEARCH_PROG(VARIABLE-NAME,PROGRAMS-LIST,ACTION-IF-FOUND)
90 dnl             
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
100         $1="$ac_prog"
101         break
102       fi
103     done
104     IFS="$ac_save_ifs"
105   fi
107   if test -n "[$]$1"; then
108     ac_result=yes
109   else
110     ac_result=no
111   fi
112   ifelse($3,,,[$3])
113   test -n "[$]$1" && break
114 done
115 ])dnl
118 AC_DEFUN(LYX_PROG_CXX_WORKS,
119 [AC_LANG_SAVE
120 AC_LANG_CPLUSPLUS
121 AC_TRY_COMPILER([class foo { int bar; }; int main(){return(0);}], ac_cv_prog_cxx_works, ac_cv_prog_cxx_cross)
122 AC_LANG_RESTORE
123 if test $ac_cv_prog_cxx_works = no; then
124   CXX=
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])
139 AC_SUBST(CXX)
140 AC_MSG_RESULT($CXX)
142 AC_MSG_CHECKING([whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler])
143 AC_MSG_RESULT($cross_compiling)
145 AC_PROG_CXX_GNU
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
151         with_warnings=yes;
152     else
153         with_warnings=no;
154     fi;])
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
164   lyx_opt="-O"
165 else
166   lyx_opt="-O2"
169 # set the debug flags correctly.
170 if test $ac_cv_prog_gxx = yes; then
171   GXX=yes
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"
177   CXXFLAGS=
178 dnl Check the version of g++
179   gxx_version=`g++ --version`
180   
181   AC_PROG_CXX_G
182   if test "$ac_test_CXXFLAGS" = set; then
183     CXXFLAGS="$ac_save_CXXFLAGS"
184   elif test $ac_cv_prog_cxx_g = yes; then
185     case $gxx_version in
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";;
191     esac
192   else
193     CXXFLAGS="$lyx_opt"
194   fi
195   if test x$with_warnings = xyes ; then
196     case $gxx_version in
197         2.95.*) CXXFLAGS="$CXXFLAGS -Wall -W -Wconversion";;
198         *) CXXFLAGS="$CXXFLAGS -ansi -Wall -W";;
199     esac
200     if test $lyx_devel_version = yes ; then
201         case $gxx_version in
202             2.95.*) ;;
203             *) CXXFLAGS="$CXXFLAGS -pedantic";;
204         esac
205     fi
206   fi
207 else
208   GXX=
209   test "${CXXFLAGS+set}" = set || CXXFLAGS="-g"
211 ])dnl
214 dnl Usage: LYX_CXX_RTTI : checks whether the C++ compiler
215 dnl   supports RTTI
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,
219  [AC_TRY_RUN([
220 class rtti {
221 public:
222    virtual int tag() { return 0; }
224 class derived1 : public rtti {
225 public:
226     int tag() { return 1; }
228 class derived2 : public rtti {
229 public:
230     int tag() { return 2; }
232 int main() {
233     derived1 * foo1 = new derived1();
234     derived2 * foo2 = new derived2();
235     rtti * bar = foo1;
236     derived1 * bar1 = dynamic_cast<derived1 *>(bar);
237     if (bar1 == 0)
238         exit(1);
239     bar = foo2;
240     bar1 = dynamic_cast<derived1 *>(bar);
241     if (bar1 != 0)
242         exit(1);
243     return 0;
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])
250 fi])
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,
258  [AC_TRY_COMPILE([
259 class Expl {
260 public:
261         explicit Expl() {};
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])
268 fi])
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,
275  [AC_TRY_COMPILE([
276 #include <stack>
277 using std::stack;
279     stack<int> stakk;
280     stakk.push(0);
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
286    correctly])
287 fi])
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,
294  [AC_TRY_COMPILE([
295 #include <string>
296 #include <algorithm>
297 using std::string;
298 using std::count;
299 int countChar(string const & a, char const c)
301         return count(a.begin(), a.end(), c);
304     string a("hello");
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.])
311 fi])
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,
318  [AC_TRY_COMPILE([
319 #include <iostream>
321  std::streambuf * test = std::cerr.rdbuf();
322  test->pubsync();
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])
328 fi])
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],
340        [AC_TRY_COMPILE([
341             #include <string>
342             using std::string;
343         ],[
344             string a("hello there");
345             a.clear();
346             a = "hey";
347             a.erase();
348         ],[
349             with_included_string=no
350         ],[
351             with_included_string=yes
352             
353         ])
354     ])
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"
359     fi
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.
368 AC_DEFUN(LYX_REGEX,[
369     AC_CHECK_HEADERS(regex.h, lyx_regex=no, lyx_regex=yes)
370     AM_CONDITIONAL(USE_REGEX, test x$lyx_regex = xyes)
374 dnl LYX_CXX_MUTABLE
375 AC_DEFUN(LYX_CXX_MUTABLE, [
376 AC_REQUIRE([LYX_PROG_CXX])
377 AC_MSG_CHECKING(if C++ compiler supports mutable)
378 AC_TRY_COMPILE(
380 class k {       
381         mutable char *c;
382 public:
383    void foo() const { c=0; }
387   ac_mutable=yes
388   AC_DEFINE(HAVE_MUTABLE, 1, 
389    [Defined if you compiler supports 'mutable'.])
391   ac_mutable=no
392 ]) 
393 AC_MSG_RESULT([$ac_mutable])
397 dnl LYX_CXX_PARTIAL
398 AC_DEFUN(LYX_CXX_PARTIAL, [
399 AC_REQUIRE([LYX_PROG_CXX])
400 AC_MSG_CHECKING(if C++ compiler supports partial specialization)
401 AC_TRY_COMPILE(
403 template<class T, class K>
404 class k {       
405 public:
407 template<class T> class k<void,T> { };
409   k<float, float> b;
410   k<void,void> a;
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
417 ]) 
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,
428  [AC_TRY_COMPILE([
429   namespace foo {
430     int bar;
431   }
433         foo::bar = 0;
434         return 0;
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])
440 fi])
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,
447  [AC_TRY_CPP([
448 #include <clocale>
449 #include <cctype>
450 #include <cerrno>
451 #include <cmath>
452 #include <csignal>
453 #include <cstdio>
454 #include <cstdlib>
455 #include <cstring>
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)  
459 fi])
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
491 changequote(,)
492      [0-9]) lyxxpmr_alpha=`echo $lyx_cv_xpmr |tr 123456789 abcdefghi`
493             lyxxpmv_alpha=" (aka 3.$lyx_cv_xpmv$lyxxpmr_alpha)";;
494 changequote([,])
495          *) ;;
496     esac
497     lyx_cv_xpmversion="$lyx_cv_xpmv.$lyx_cv_xpmr$lyxxpmv_alpha"
498     rm -f conftest*])
499   case "$lyx_cv_xpmr" in 
500 changequote(,)
501         [789]|[0-9][0-9]*) ;;
502 changequote([,])
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.]);;
508   esac
509 fi])
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)
535 "%%%"(unknown)"%%%"
536 #else
537 "%%%"FL_VERSION.FL_REVISION"%%%"
538 #endif
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'`
543 rm -f conftest*])
544 case "$lyx_cv_xfversion" in 
545   "(unknown)"|0.82|0.83|0.84|0.85) 
546      LYX_ERROR(dnl
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.) ;;
550   0.81|0.86|0.87) 
551      LYX_WARNING(dnl
552 While LyX is compatible with version $lyx_cv_xfversion of xforms[,] 
553    it is recommended that you upgrade to version 0.88.) ;;
554      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.) ;;
559           *) LYX_WARNING(dnl
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.);;
562 esac
563 fi])
566 dnl Usage: LYX_HPUX  Checks for HP-UX and update CXXFLAGS accordingly
567 AC_DEFUN(LYX_HPUX,
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]'`
571 ac_cv_hpux=no
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"
575 fi])
578 dnl Usage: LYX_SUNOS4 Checks for SunOS 4.x and sets the flag lyx_broken_headers
579 dnl   if necessary
580 AC_DEFUN(LYX_SUNOS4,
581 [#The headers are not correct under SunOS4
582 AC_CACHE_CHECK(for SunOS 4.x,ac_cv_sunos4,[
583 changequote(, ) dnl
584 os=`uname -a | sed -e 's/^\([^ ]*\) [^ ]* \([0-9]\)\..*/\1\2/'`
585 changequote([, ]) dnl
586 ac_cv_sunos4=no
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
590 fi])
593 dnl Usage: LYX_SCO Checks for SCO and sets the flag lyx_broken_headers
594 dnl   if necessary
595 AC_DEFUN(LYX_SCO,
596 [AC_CACHE_CHECK(for SCO 3.2v4,ac_cv_sco,[
597 ac_cv_sco=no
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;
601   then
602     if test -f /usr/options/cb.name; then
603       ac_cv_sco=no
604     elif /bin/uname -X 2>/dev/null >/dev/null ; then
605       ac_cv_sco=yes
606     fi
607   fi
608 fi])
609 if test "$ac_cv_sco" = yes; then
610  test "x$GXX" = xyes && lyx_broken_headers=yes
611 fi])
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
620   [AC_TRY_COMPILE(dnl
621 [#include <cstdlib>],
622 [char const * foo = "bar";
623  putenv(foo);],dnl
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)
639   else
640     test "x$with_$3" = xyes && with_$3=$5
641     lyx_cv_$3="$with_$3"
642   fi
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])
654     $2
655   fi
656 done
657 IFS=$ac_save_ifs
661 dnl Usage: LYX_ADD_LIB_DIR(var-name,dir) Adds a -L directive to variable 
662 dnl var-name. 
663 AC_DEFUN(LYX_ADD_LIB_DIR,[
664 $1="${$1} -L$2"
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" 
669   else
670     $1="${$1} -R$2"
671   fi
672 fi])
675 dnl Usage: LYX_ADD_INC_DIR(var-name,dir) Adds a -I directive to variable 
676 dnl var-name. 
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
685 ## reason.
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"
694 #include <$1>
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"`
699 rm -f conftest*])
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"`
717 rm -f conftest*])
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
729 dnl error message.
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])
740         ifelse($#, 1, [$1],
741                 [AC_MSG_ERROR(["you must remove config.cache and restart configure"])])
742     else
743         AC_MSG_RESULT([same])
744     fi
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
758        AC_TRY_COMPILE(dnl
759 [#ifdef HAVE_SYS_TYPES_H
760 #include <sys/types.h>
761 #endif
762 #ifdef HAVE_SYS_TIME_H
763 #include <sys/time.h>
764 #endif
765 #ifdef HAVE_SYS_SELECT_H
766 #include <sys/select.h>
767 #endif
768 #ifdef HAVE_SYS_SOCKET_H
769 #include <sys/socket.h>
770 #endif
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)
773       done
774      done
775     done
776    ])dnl AC_CACHE_VAL
777   ])dnl AC_CACHE_VAL
778  ])dnl AC_CACHE_VAL
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 *'
783  fi
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
818 AC_CACHE_SAVE
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
830 AC_CACHE_LOAD
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'
837 AC_SUBST(LIBTOOL)dnl
839 # Redirect the config.log output again, so that the ltconfig log is not
840 # clobbered by the next message.
841 exec 5>>./config.log
844 AC_DEFUN(AC_LIBTOOL_SETUP,
845 [AC_PREREQ(2.13)dnl
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
858 case "$target" in
859 NONE) lt_target="$host" ;;
860 *) lt_target="$target" ;;
861 esac
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
880 # libtool support.
881 case "$lt_target" in
882 *-*-irix6*)
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
887     *32-bit*)
888       LD="${LD-ld} -32"
889       ;;
890     *N32*)
891       LD="${LD-ld} -n32"
892       ;;
893     *64-bit*)
894       LD="${LD-ld} -64"
895       ;;
896     esac
897   fi
898   rm -rf conftest*
899   ;;
901 *-*-sco3.2v5*)
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"
910   fi
911   ;;
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)
918   ;;
920 esac
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
932 #   `yes'.
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],
938 changequote([, ])dnl
939 [p=${PACKAGE-default}
940 case "$enableval" in
941 yes) enable_shared=yes ;;
942 no) enable_shared=no ;;
944   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
949       enable_shared=yes
950     fi
951   done
952   IFS="$ac_save_ifs"
953   ;;
954 esac],
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
965 #   `yes'.
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],
971 changequote([, ])dnl
972 [p=${PACKAGE-default}
973 case "$enableval" in
974 yes) enable_static=yes ;;
975 no) enable_static=no ;;
977   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
982       enable_static=yes
983     fi
984   done
985   IFS="$ac_save_ifs"
986   ;;
987 esac],
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
999 #   `yes'.
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
1017     fi
1018   done
1019   IFS="$ac_save_ifs"
1020   ;;
1021 esac],
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
1037 ac_prog=ld
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`
1042   case "$ac_prog" in
1043     # Accept absolute paths.
1044 changequote(,)dnl
1045     [\\/]* | [A-Za-z]:[\\/]*)
1046       re_direlt='/[^/][^/]*/\.\./'
1047 changequote([,])dnl
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%/%"`
1052       done
1053       test -z "$LD" && LD="$ac_prog"
1054       ;;
1055   "")
1056     # If it fails, then pretend we aren't using GCC.
1057     ac_prog=ld
1058     ;;
1059   *)
1060     # If it is relative, then search for the first ld in PATH.
1061     with_gnu_ld=unknown
1062     ;;
1063   esac
1064 elif test "$with_gnu_ld" = yes; then
1065   AC_MSG_CHECKING([for GNU ld])
1066 else
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
1081       else
1082         test "$with_gnu_ld" != yes && break
1083       fi
1084     fi
1085   done
1086   IFS="$ac_save_ifs"
1087 else
1088   ac_cv_path_LD="$LD" # Let the user override the test with a path.
1089 fi])
1090 LD="$ac_cv_path_LD"
1091 if test -n "$LD"; then
1092   AC_MSG_RESULT($LD)
1093 else
1094   AC_MSG_RESULT(no)
1096 test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
1097 AC_PROG_LD_GNU
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
1105 else
1106   ac_cv_prog_gnu_ld=no
1107 fi])
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.
1116   ac_cv_path_NM="$NM"
1117 else
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"
1127         break
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"
1130         break
1131       else
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
1134       fi
1135     fi
1136   done
1137   IFS="$ac_save_ifs"
1138   test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm
1139 fi])
1140 NM="$ac_cv_path_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
1147 LIBM=
1148 case "$lt_target" in
1149 *-*-beos* | *-*-cygwin*)
1150   # These system don't have libm
1151   ;;
1152 *-ncr-sysv4.3*)
1153   AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
1154   AC_CHECK_LIB(m, main, LIBM="$LIBM -lm")
1155   ;;
1157   AC_CHECK_LIB(m, main, LIBM="-lm")
1158   ;;
1159 esac
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" ;;
1175   esac
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])
1194    else
1195      enable_ltdl_install=yes
1196    fi
1197   ])
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'])
1202   else
1203     ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
1204     LIBLTDL="-lltdl"
1205     INCLTDL=
1206   fi
1209 dnl old names
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.
1228 # serial 5
1230 AC_DEFUN(AM_WITH_NLS,
1231   [AC_MSG_CHECKING([whether NLS is requested])
1232     dnl Default is enabled NLS
1233     AC_ARG_ENABLE(nls,
1234       [  --disable-nls           do not use Native Language Support],
1235       USE_NLS=$enableval, USE_NLS=yes)
1236     AC_MSG_RESULT($USE_NLS)
1237     AC_SUBST(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.
1257         nls_cv_header_intl=
1258         nls_cv_header_libgt=
1259         CATOBJEXT=NONE
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)])
1274            fi
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],
1288                   [CATOBJEXT=.gmo
1289                    DATADIRNAME=share],
1290                   [CATOBJEXT=.mo
1291                    DATADIRNAME=lib])
1292                 INSTOBJEXT=.mo
1293               fi
1294             fi
1295         ])
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)
1316                  fi
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
1320                  CATOBJEXT=.cat
1321                  INSTOBJEXT=.cat
1322                  DATADIRNAME=lib
1323                  INTLDEPS='$(top_builddir)/intl/libintl.a'
1324                  INTLLIBS=$INTLDEPS
1325                  LIBS=`echo $LIBS | sed -e 's/-lintl//'`
1326                  nls_cv_header_intl=intl/libintl.h
1327                  nls_cv_header_libgt=intl/libgettext.h
1328                fi])
1329           fi
1330         fi
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
1336         fi
1337       fi
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)'`"], :)
1347         AC_SUBST(MSGFMT)
1348         USE_INCLUDED_LIBINTL=yes
1349         CATOBJEXT=.gmo
1350         INSTOBJEXT=.mo
1351         DATADIRNAME=share
1352         INTLDEPS='$(top_builddir)/intl/libintl.a'
1353         INTLLIBS=$INTLDEPS
1354         LIBS=`echo $LIBS | sed -e 's/-lintl//'`
1355         nls_cv_header_intl=intl/libintl.h
1356         nls_cv_header_libgt=intl/libgettext.h
1357       fi
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
1364           : ;
1365         else
1366           AC_MSG_RESULT(
1367             [found xgettext program is not GNU xgettext; ignore it])
1368           XGETTEXT=":"
1369         fi
1370       fi
1372       # We need to process the po/ directory.
1373       POSUB=po
1374     else
1375       DATADIRNAME=share
1376       nls_cv_header_intl=intl/libintl.h
1377       nls_cv_header_libgt=intl/libgettext.h
1378     fi
1379     AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl)
1380     AC_OUTPUT_COMMANDS(
1381      [case "$CONFIG_FILES" in *po/Makefile.in*)
1382         sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
1383       esac])
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
1389       USE_NLS=yes
1390       USE_INCLUDED_LIBINTL=yes
1391     fi
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"
1399     done
1401     dnl Make all variables we use known to autoconf.
1402     AC_SUBST(USE_INCLUDED_LIBINTL)
1403     AC_SUBST(CATALOGS)
1404     AC_SUBST(CATOBJEXT)
1405     AC_SUBST(DATADIRNAME)
1406     AC_SUBST(GMOFILES)
1407     AC_SUBST(INSTOBJEXT)
1408     AC_SUBST(INTLDEPS)
1409     AC_SUBST(INTLLIBS)
1410     AC_SUBST(INTLOBJS)
1411     AC_SUBST(POFILES)
1412     AC_SUBST(POSUB)
1413   ])
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)
1435    fi
1436    if test "${ac_cv_func_stpcpy}" = "yes"; then
1437      AC_DEFINE(HAVE_STPCPY)
1438    fi
1440    AM_LC_MESSAGES
1441    AM_WITH_NLS
1443    if test "x$CATOBJEXT" != "x"; then
1444      if test "x$ALL_LINGUAS" = "x"; then
1445        LINGUAS=
1446      else
1447        AC_MSG_CHECKING(for catalogs to be installed)
1448        NEW_LINGUAS=
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
1454 dnl ==== end of fix
1455          case "$ALL_LINGUAS" in
1456           *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
1457          esac
1458        done
1459        LINGUAS=$NEW_LINGUAS
1460        AC_MSG_RESULT($LINGUAS)
1461      fi
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
1466      fi
1467    fi
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>"
1474    else
1475      INCLUDE_LOCALE_H="\
1476 /* The system does not provide the header <locale.h>.  Take care yourself.  */"
1477    fi
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
1490    fi
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
1497    dnl packages.
1498    if test "$PACKAGE" = "gettext"; then
1499      GT_NO="#NO#"
1500      GT_YES=
1501    else
1502      GT_NO=
1503      GT_YES="#YES#"
1504    fi
1505    AC_SUBST(GT_NO)
1506    AC_SUBST(GT_YES)
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.
1511    MKINSTALLDIRS=
1512    if test -n "$ac_aux_dir"; then
1513      MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
1514    fi
1515    if test -z "$MKINSTALLDIRS"; then
1516      MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
1517    fi
1518    AC_SUBST(MKINSTALLDIRS)
1520    dnl *** For now the libtool support in intl/Makefile is not for real.
1521    l=
1522    AC_SUBST(l)
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/"
1530      else
1531        posrcprefix="../$srcdir/"
1532      fi
1533    else
1534      posrcprefix="../"
1535    fi
1536    rm -f po/POTFILES
1537    sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
1538         < $srcdir/po/POTFILES.in > po/POTFILES
1539   ])
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.
1548 # serial 1
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)
1557     fi
1558   fi])
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.
1567 # serial 1
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,
1576 [case "[$]$1" in
1577   /*)
1578   ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
1579   ;;
1580   *)
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
1585       if [$3]; then
1586         ac_cv_path_$1="$ac_dir/$ac_word"
1587         break
1588       fi
1589     fi
1590   done
1591   IFS="$ac_save_ifs"
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"
1595 ])dnl
1596   ;;
1597 esac])dnl
1598 $1="$ac_cv_path_$1"
1599 if test -n "[$]$1"; then
1600   AC_MSG_RESULT([$]$1)
1601 else
1602   AC_MSG_RESULT(no)
1604 AC_SUBST($1)dnl