]> git.lyx.org Git - features.git/blob - acinclude.m4
added a regex to be used when the system is missing one, use noinst instead of pkglib...
[features.git] / acinclude.m4
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)
4
5
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
19 fi
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
25 fi
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])
32
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
38 "
39 lyx_error=yes])
40
41
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
47 "
48 lyx_warning=yes])
49
50
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.])])
56
57
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
72
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
80 fi
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])
87
88
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
106
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
116
117
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=
125 fi
126 cross_compiling=$ac_cv_prog_cxx_cross
127 ])
128
129
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)
134
135 if test -z "$CXX" ; then
136   AC_ERROR([Unable to find a working C++ compiler])
137 fi
138
139 AC_SUBST(CXX)
140 AC_MSG_RESULT($CXX)
141
142 AC_MSG_CHECKING([whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler])
143 AC_MSG_RESULT($cross_compiling)
144
145 AC_PROG_CXX_GNU
146
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])
160 fi
161
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"
167 fi
168
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 -fno-rtti";;
189       *)    CXXFLAGS="-g $lyx_opt -fno-exceptions -fno-rtti";;
190     esac
191   else
192     CXXFLAGS="$lyx_opt"
193   fi
194   if test x$with_warnings = xyes ; then
195     case $gxx_version in
196         2.95.*) CXXFLAGS="$CXXFLAGS -Wall -W -Wconversion";;
197         *) CXXFLAGS="$CXXFLAGS -ansi -Wall -W";;
198     esac
199     if test $lyx_devel_version = yes ; then
200         case $gxx_version in
201             2.95.*) ;;
202             *) CXXFLAGS="$CXXFLAGS -pedantic";;
203         esac
204     fi
205   fi
206 else
207   GXX=
208   test "${CXXFLAGS+set}" = set || CXXFLAGS="-g"
209 fi
210 ])dnl
211
212
213 dnl Usage: LYX_CXX_RTTI : checks whether the C++ compiler
214 dnl   supports RTTI
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,
218  [AC_TRY_RUN([
219 class rtti {
220 public:
221    virtual int tag() { return 0; }
222 };
223 class derived1 : public rtti {
224 public:
225     int tag() { return 1; }
226 };
227 class derived2 : public rtti {
228 public:
229     int tag() { return 2; }
230 };
231 int main() {
232     derived1 * foo1 = new derived1();
233     derived2 * foo2 = new derived2();
234     rtti * bar = foo1;
235     derived1 * bar1 = dynamic_cast<derived1 *>(bar);
236     if (bar1 == 0)
237         exit(1);
238     bar = foo2;
239     bar1 = dynamic_cast<derived1 *>(bar);
240     if (bar1 != 0)
241         exit(1);
242     return 0;
243 }
244 ],lyx_cv_rtti=yes,lyx_cv_rtti=no,lyx_cv_rtti=no)
245 ])
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])
249 fi])
250
251
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,
257  [AC_TRY_COMPILE([
258 class Expl {
259 public:
260         explicit Expl() {};
261 };],,lyx_cv_explicit=yes,lyx_cv_explicit=no)
262 ])
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])
267 fi])
268
269
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,
274  [AC_TRY_COMPILE([
275 #include <stack>
276 using std::stack;
277 ],[
278     stack<int> stakk;
279     stakk.push(0);
280 ],lyx_cv_broken_stack=no,lyx_cv_broken_stack=yes)
281 ])
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
285    correctly])
286 fi])
287
288
289 dnl Usage: LYX_STD_COUNT : checks wherer the C++ library have a conforming
290 dnl    count template, if not the old HP version is assumed.
291 AC_DEFUN(LYX_STD_COUNT,[
292 AC_CACHE_CHECK(for conforming std::count,lyx_cv_std_count,
293  [AC_TRY_COMPILE([
294 #include <string>
295 #include <algorithm>
296 using std::string;
297 using std::count;
298 int countChar(string const & a, char const c)
299 {
300         return count(a.begin(), a.end(), c);
301 }
302 ],[
303     string a("hello");
304     int i = countChar(a, 'l');
305 ],lyx_cv_std_count=yes,lyx_cv_std_count=no)
306 ])
307 if test $lyx_cv_std_count = yes ; then
308     AC_DEFINE(HAVE_STD_COUNT, 1,
309     [Define if you have a conforming std::count template, otherwise HP version of count template is assumed.])
310 fi])
311
312
313 dnl Usage: LYX_CXX_STL_MODERN_STREAMS : checks whether the C++ compiler
314 dnl   supports modern STL streams
315 AC_DEFUN(LYX_CXX_STL_MODERN_STREAMS,[
316 AC_CACHE_CHECK(for modern STL streams,lyx_cv_modern_streams,
317  [AC_TRY_COMPILE([
318 #include <iostream>
319 ],[
320  std::streambuf * test = std::cerr.rdbuf();
321  test->pubsync();
322 ],lyx_cv_modern_streams=yes,lyx_cv_modern_streams=no)
323 ])
324 if test $lyx_cv_modern_streams = yes ; then
325   AC_DEFINE(MODERN_STL_STREAMS, 1, 
326    [Define if you have modern standard-compliant STL streams])
327 fi])
328
329
330 dnl Usage: LYX_CXX_STL_STRING : checks whether the C++ compiler
331 dnl   has a working stl string container, the check is really stupid
332 dnl   and could need some improvement.
333 AC_DEFUN(LYX_CXX_STL_STRING,[
334     AC_REQUIRE([LYX_PROG_CXX])
335     AC_MSG_CHECKING(whether the included std::string should be used)
336     AC_ARG_WITH(included-string,
337        [  --with-included-string  use LyX string class instead of STL string],
338        [with_included_string=$withval],
339        [AC_TRY_COMPILE([
340             #include <string>
341             using std::string;
342         ],[
343             string a("hello there");
344             a.clear();
345             a = "hey";
346             a.erase();
347         ],[
348             with_included_string=no
349         ],[
350             with_included_string=yes
351             
352         ])
353     ])
354     if test x$with_included_string = xyes ; then
355         AC_DEFINE(USE_INCLUDED_STRING, 1,
356             [Define to use the lyxstring class bundled with LyX.])
357             lyx_flags="$lyx_flags included-string"
358     fi
359     AM_CONDITIONAL(USE_LYXSTRING, test x$with_included_string = xyes)
360     AC_MSG_RESULT([$with_included_string])
361 ])
362
363
364 dnl Usage: LYX_REGEX : checks if the header regex.h is available
365 dnl   if it is not available the automake variable USE_REGEX will be
366 dnl   defined and the regex.h and regex.c that we provide will be used.
367 AC_DEFUN(LYX_REGEX,[
368     AC_CHECK_HEADERS(regex.h, lyx_regex=no, lyx_regex=yes)
369     AM_CONDITIONAL(USE_REGEX, test x$lyx_regex = xyes)
370 ])
371
372
373 dnl LYX_CXX_MUTABLE
374 AC_DEFUN(LYX_CXX_MUTABLE, [
375 AC_REQUIRE([LYX_PROG_CXX])
376 AC_MSG_CHECKING(if C++ compiler supports mutable)
377 AC_TRY_COMPILE(
378 [
379 class k {       
380         mutable char *c;
381 public:
382    void foo() const { c=0; }
383 };
384 ],[
385 ],[
386   ac_mutable=yes
387   AC_DEFINE(HAVE_MUTABLE, 1, 
388    [Defined if you compiler supports 'mutable'.])
389 ],[
390   ac_mutable=no
391 ]) 
392 AC_MSG_RESULT([$ac_mutable])
393 ])
394
395
396 dnl LYX_CXX_PARTIAL
397 AC_DEFUN(LYX_CXX_PARTIAL, [
398 AC_REQUIRE([LYX_PROG_CXX])
399 AC_MSG_CHECKING(if C++ compiler supports partial specialization)
400 AC_TRY_COMPILE(
401 [
402 template<class T, class K>
403 class k {       
404 public:
405 };
406 template<class T> class k<void,T> { };
407 ],[
408   k<float, float> b;
409   k<void,void> a;
410 ],[
411   ac_partial_specialization=yes
412   AC_DEFINE(HAVE_PARTIAL_SPECIALIZATION, 1, 
413    [Defined if your compiler supports partial specialization.])
414 ],[
415   ac_partial_specialization=no
416 ]) 
417 AC_MSG_RESULT([$ac_partial_specialization])
418 ])
419
420
421 dnl Usage: LYX_CXX_NAMESPACES : checks whether the C++ compiler
422 dnl   has a correct namespace handling and define CXX_WORKING_NAMESPACES 
423 dnl   if true. This macro does not do a thourough test, but it should be 
424 dnl   good enough to suit our needs.
425 AC_DEFUN(LYX_CXX_NAMESPACES,[
426 AC_CACHE_CHECK(for correct namespaces support,lyx_cv_cxx_namespace,
427  [AC_TRY_COMPILE([
428   #include <vector>
429   using std::vector;
430 ],[
431         vector<int> test;
432         return 0;
433 ],lyx_cv_cxx_namespace=yes,lyx_cv_cxx_namespace=no)
434 ])
435 if test $lyx_cv_cxx_namespace = yes ; then
436   AC_DEFINE(CXX_WORKING_NAMESPACES, 1, 
437    [Define if your C++ compiler has correct support for namespaces])
438 fi])
439
440
441 dnl Usage: LYX_CXX_CHEADERS : checks whether the C++ compiler
442 dnl   provides wrappers for C headers and use our alternate version otherwise.
443 AC_DEFUN(LYX_CXX_CHEADERS,[
444 AC_CACHE_CHECK(for C headers wrappers,lyx_cv_cxx_cheaders,
445  [AC_TRY_CPP([
446 #include <clocale>
447 #include <cctype>
448 #include <cerrno>
449 #include <cmath>
450 #include <csignal>
451 #include <cstdio>
452 #include <cstdlib>
453 #include <cstring>
454 #include <ctime>],[lyx_cv_cxx_cheaders=yes],[lyx_cv_cxx_cheaders=no])])
455 if test $lyx_cv_cxx_cheaders = no ; then
456   LYX_ADD_INC_DIR(lyx_cppflags,\$(top_srcdir)/src/cheaders)  
457 fi])
458
459
460 dnl Usage LYX_PATH_XPM: Checks for xpm library and header
461 AC_DEFUN(LYX_PATH_XPM,[
462 ### Check for Xpm library
463 AC_CHECK_LIB(Xpm, XpmCreateBufferFromImage,LYX_LIBS="-lXpm $LYX_LIBS",
464         [LYX_LIB_ERROR(libXpm,Xpm)], $LYX_LIBS)
465
466 ### Check for Xpm headers
467 lyx_cv_xpm_h_location="<xpm.h>"
468 AC_CHECK_HEADER(X11/xpm.h,[
469   ac_cv_header_xpm_h=yes
470   lyx_cv_xpm_h_location="<X11/xpm.h>"],[
471 AC_CHECK_HEADER(xpm.h,[],[
472 LYX_LIB_ERROR(xpm.h,Xpm)])])
473 AC_DEFINE_UNQUOTED(XPM_H_LOCATION,$lyx_cv_xpm_h_location)
474
475 ### Test for the header version
476 if test $ac_cv_header_xpm_h = yes; then
477   AC_CACHE_CHECK([xpm header version],lyx_cv_xpmversion,
478   [ cat > conftest.$ac_ext <<EOF
479 #line __oline__ "configure"
480 #include "confdefs.h"
481
482 #include XPM_H_LOCATION
483 "%%%"lyx_cv_xpmv=XpmVersion;lyx_cv_xpmr=XpmRevision"%%%"
484 EOF
485     eval `(eval "$ac_cpp conftest.$ac_ext") 2>&5 | \
486       grep '^"%%%"'  2>/dev/null | \
487       sed -e 's/^"%%%"\(.*\)"%%%"/\1/' -e 's/ //g'`
488     case "$lyx_cv_xpmr" in
489 changequote(,)
490      [0-9]) lyxxpmr_alpha=`echo $lyx_cv_xpmr |tr 123456789 abcdefghi`
491             lyxxpmv_alpha=" (aka 3.$lyx_cv_xpmv$lyxxpmr_alpha)";;
492 changequote([,])
493          *) ;;
494     esac
495     lyx_cv_xpmversion="$lyx_cv_xpmv.$lyx_cv_xpmr$lyxxpmv_alpha"
496     rm -f conftest*])
497   case "$lyx_cv_xpmr" in 
498 changequote(,)
499         [789]|[0-9][0-9]*) ;;
500 changequote([,])
501         *) LYX_WARNING([Version $lyx_cv_xpmversion of the Xpm library is a bit old. 
502    If you experience strange crashes with LyX, try to upgrade 
503    to at least version 4.7 (aka 3.4g).
504    If you have installed a newer version of the library, check whether you
505    have an old xpm.h header file in your include path.]);;
506   esac
507 fi])
508
509
510 dnl Usage LYX_PATH_XFORMS: Checks for xforms library and flags
511 AC_DEFUN(LYX_PATH_XFORMS,[
512 ### Check for xforms library
513 AC_CHECK_LIB(forms, fl_initialize, LYX_LIBS="-lforms $LYX_LIBS", 
514   [AC_CHECK_LIB(xforms, fl_initialize, LYX_LIBS="-lxforms $LYX_LIBS", 
515     [LYX_LIB_ERROR(libforms or libxforms,xforms)], $LYX_LIBS)], $LYX_LIBS) 
516
517 ### Check for xforms headers
518 lyx_cv_forms_h_location="<forms.h>"
519 AC_CHECK_HEADER(X11/forms.h,[
520   ac_cv_header_forms_h=yes
521   lyx_cv_forms_h_location="<X11/forms.h>"],[
522 AC_CHECK_HEADER(forms.h,[],[
523 LYX_LIB_ERROR(forms.h,forms)])])
524 AC_DEFINE_UNQUOTED(FORMS_H_LOCATION,$lyx_cv_forms_h_location)
525 if test $ac_cv_header_forms_h = yes; then
526   AC_CACHE_CHECK([xforms header version],lyx_cv_xfversion,
527   [ cat > conftest.$ac_ext <<EOF
528 #line __oline__ "configure"
529 #include "confdefs.h"
530
531 #include FORMS_H_LOCATION
532 #if ! defined(FL_INCLUDE_VERSION)
533 "%%%"(unknown)"%%%"
534 #else
535 "%%%"FL_VERSION.FL_REVISION"%%%"
536 #endif
537 EOF
538 lyx_cv_xfversion=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | \
539   grep '^"%%%"'  2>/dev/null | \
540   sed -e 's/^"%%%"\(.*\)"%%%"/\1/' -e 's/ //g'`
541 rm -f conftest*])
542 case "$lyx_cv_xfversion" in 
543   "(unknown)"|0.82|0.83|0.84|0.85) 
544      LYX_ERROR(dnl
545 Version $lyx_cv_xfversion of xforms is not compatible with LyX. 
546    This version of LyX works best with version 0.88[,] although it
547    supports also versions 0.81[,] 0.86 and 0.87.) ;;
548   0.81|0.86|0.87) 
549      LYX_WARNING(dnl
550 While LyX is compatible with version $lyx_cv_xfversion of xforms[,] 
551    it is recommended that you upgrade to version 0.88.) ;;
552      0.88) ;;
553      0.89) LYX_WARNING(dnl
554 LyX should work ok with version $lyx_cv_xfversion of xforms[,] but
555 it is an unproven version and might still have some bugs. If you
556 have problems[,] please use version 0.88 instead.) ;;
557           *) LYX_WARNING(dnl
558 Version $lyx_cv_xfversion of xforms might not be compatible with LyX[,] 
559    since it is newer than 0.88. You might have slight problems with it.);;
560 esac
561 fi])
562
563
564 dnl Usage: LYX_HPUX  Checks for HP-UX and update CXXFLAGS accordingly
565 AC_DEFUN(LYX_HPUX,
566 [#It seems that HPUX requires using -fpcc-struct-return with gcc.
567 AC_CACHE_CHECK(for HP-UX,ac_cv_hpux,[
568 os=`uname -s | tr '[A-Z]' '[a-z]'`
569 ac_cv_hpux=no
570 test "$os" = hp-ux && ac_cv_hpux=yes])
571 if test "$ac_cv_hpux" = yes; then
572  test "x$GXX" = xyes && CXXFLAGS="$CXXFLAGS -fpcc-struct-return"
573 fi])
574
575
576 dnl Usage: LYX_SUNOS4 Checks for SunOS 4.x and sets the flag lyx_broken_headers
577 dnl   if necessary
578 AC_DEFUN(LYX_SUNOS4,
579 [#The headers are not correct under SunOS4
580 AC_CACHE_CHECK(for SunOS 4.x,ac_cv_sunos4,[
581 changequote(, ) dnl
582 os=`uname -a | sed -e 's/^\([^ ]*\) [^ ]* \([0-9]\)\..*/\1\2/'`
583 changequote([, ]) dnl
584 ac_cv_sunos4=no
585 test "$os" = SunOS4 && ac_cv_sunos4=yes])
586 if test "$ac_cv_sunos4" = yes; then
587  test "x$GXX" = xyes && lyx_broken_headers=yes
588 fi])
589
590
591 dnl Usage: LYX_SCO Checks for SCO and sets the flag lyx_broken_headers
592 dnl   if necessary
593 AC_DEFUN(LYX_SCO,
594 [AC_CACHE_CHECK(for SCO 3.2v4,ac_cv_sco,[
595 ac_cv_sco=no
596 if test `uname -s` != "SCO_SV"; then
597   lyx_machine_rel=`uname -m`:`uname -r`
598   if test $lyx_machine_rel = i386:3.2 || test $lyx_machine_rel = i486:3.2;
599   then
600     if test -f /usr/options/cb.name; then
601       ac_cv_sco=no
602     elif /bin/uname -X 2>/dev/null >/dev/null ; then
603       ac_cv_sco=yes
604     fi
605   fi
606 fi])
607 if test "$ac_cv_sco" = yes; then
608  test "x$GXX" = xyes && lyx_broken_headers=yes
609 fi])
610
611
612 dnl Usage: LYX_WITH_DIR(dir-name,desc,dir-var-name,default-value, 
613 dnl                       [default-yes-value])  
614 dnl  Adds a --with-'dir-name' option (described by 'desc') and puts the 
615 dnl  resulting directory name in 'dir-var-name'.
616 AC_DEFUN(LYX_WITH_DIR,[
617   AC_ARG_WITH($1,[  --with-$1        specify $2])
618   AC_MSG_CHECKING([for $2])
619   if test -z "$with_$3"; then
620      AC_CACHE_VAL(lyx_cv_$3, lyx_cv_$3=$4)
621   else
622     test "x$with_$3" = xyes && with_$3=$5
623     lyx_cv_$3="$with_$3"
624   fi
625   AC_MSG_RESULT($lyx_cv_$3)])
626
627
628 dnl Usage: LYX_LOOP_DIR(value,action)
629 dnl Executes action for values of variable `dir' in `values'. `values' can 
630 dnl use ":" as a separator.
631 AC_DEFUN(LYX_LOOP_DIR,[
632 IFS="${IFS=     }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
633 for dir in `eval "echo $1"`; do
634   if test ! "$dir" = NONE; then
635     test ! -d "$dir" && AC_ERROR([\"$dir\" is not a directory])
636     $2
637   fi
638 done
639 IFS=$ac_save_ifs
640 ])
641
642
643 dnl Usage: LYX_ADD_LIB_DIR(var-name,dir) Adds a -L directive to variable 
644 dnl var-name. 
645 AC_DEFUN(LYX_ADD_LIB_DIR,[
646 $1="${$1} -L$2"
647 if test "`(uname) 2>/dev/null`" = SunOS &&
648     uname -r | grep '^5' >/dev/null; then
649   if test $ac_cv_prog_gxx = yes ; then 
650     $1="${$1} -Wl[,]-R$2" 
651   else
652     $1="${$1} -R$2"
653   fi
654 fi])
655
656
657 dnl Usage: LYX_ADD_INC_DIR(var-name,dir) Adds a -I directive to variable 
658 dnl var-name. 
659 AC_DEFUN(LYX_ADD_INC_DIR,[$1="${$1} -I$2 "])
660
661
662 dnl AC_VALIDATE_CACHE_SYSTEM_TYPE[(cmd)]
663 dnl if the cache file is inconsistent with the current host,
664 dnl target and build system types, execute CMD or print a default
665 dnl error message.
666 AC_DEFUN(AC_VALIDATE_CACHE_SYSTEM_TYPE, [
667     AC_REQUIRE([AC_CANONICAL_SYSTEM])
668     AC_MSG_CHECKING([config.cache system type])
669     if { test x"${ac_cv_host_system_type+set}" = x"set" &&
670          test x"$ac_cv_host_system_type" != x"$host"; } ||
671        { test x"${ac_cv_build_system_type+set}" = x"set" &&
672          test x"$ac_cv_build_system_type" != x"$build"; } ||
673        { test x"${ac_cv_target_system_type+set}" = x"set" &&
674          test x"$ac_cv_target_system_type" != x"$target"; }; then
675         AC_MSG_RESULT([different])
676         ifelse($#, 1, [$1],
677                 [AC_MSG_ERROR(["you must remove config.cache and restart configure"])])
678     else
679         AC_MSG_RESULT([same])
680     fi
681     ac_cv_host_system_type="$host"
682     ac_cv_build_system_type="$build"
683     ac_cv_target_system_type="$target"
684 ])
685
686
687 dnl We use this until autoconf fixes its version.
688 AC_DEFUN(LYX_FUNC_SELECT_ARGTYPES,
689 [AC_MSG_CHECKING([types of arguments for select()])
690  AC_CACHE_VAL(ac_cv_func_select_arg234,dnl
691  [AC_CACHE_VAL(ac_cv_func_select_arg1,dnl
692   [AC_CACHE_VAL(ac_cv_func_select_arg5,dnl
693    [for ac_cv_func_select_arg234 in 'fd_set *' 'int *' 'void *'; do
694      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
695        AC_TRY_COMPILE(dnl
696 [#ifdef HAVE_SYS_TYPES_H
697 #include <sys/types.h>
698 #endif
699 #ifdef HAVE_SYS_TIME_H
700 #include <sys/time.h>
701 #endif
702 #ifdef HAVE_SYS_SELECT_H
703 #include <sys/select.h>
704 #endif
705 #ifdef HAVE_SYS_SOCKET_H
706 #include <sys/socket.h>
707 #endif
708 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
709         [ac_not_found=no ; break 3],ac_not_found=yes)
710       done
711      done
712     done
713    ])dnl AC_CACHE_VAL
714   ])dnl AC_CACHE_VAL
715  ])dnl AC_CACHE_VAL
716  if test "$ac_not_found" = yes; then
717   ac_cv_func_select_arg1=int 
718   ac_cv_func_select_arg234='int *' 
719   ac_cv_func_select_arg5='struct timeval *'
720  fi
721  AC_MSG_RESULT([$ac_cv_func_select_arg1,$ac_cv_func_select_arg234,$ac_cv_func_select_arg5])
722  AC_DEFINE_UNQUOTED(SELECT_TYPE_ARG1,$ac_cv_func_select_arg1)
723  AC_DEFINE_UNQUOTED(SELECT_TYPE_ARG234,($ac_cv_func_select_arg234))
724  AC_DEFINE_UNQUOTED(SELECT_TYPE_ARG5,($ac_cv_func_select_arg5))
725 ])
726
727 ## libtool.m4 - Configure libtool for the target system. -*-Shell-script-*-
728 ## Copyright (C) 1996-1999 Free Software Foundation, Inc.
729 ## Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
730 ##
731 ## This program is free software; you can redistribute it and/or modify
732 ## it under the terms of the GNU General Public License as published by
733 ## the Free Software Foundation; either version 2 of the License, or
734 ## (at your option) any later version.
735 ##
736 ## This program is distributed in the hope that it will be useful, but
737 ## WITHOUT ANY WARRANTY; without even the implied warranty of
738 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
739 ## General Public License for more details.
740 ##
741 ## You should have received a copy of the GNU General Public License
742 ## along with this program; if not, write to the Free Software
743 ## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
744 ##
745 ## As a special exception to the GNU General Public License, if you
746 ## distribute this file as part of a program that contains a
747 ## configuration script generated by Autoconf, you may include it under
748 ## the same distribution terms that you use for the rest of that program.
749
750 # serial 40 AC_PROG_LIBTOOL
751 AC_DEFUN(AC_PROG_LIBTOOL,
752 [AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
753
754 # Save cache, so that ltconfig can load it
755 AC_CACHE_SAVE
756
757 # Actually configure libtool.  ac_aux_dir is where install-sh is found.
758 CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
759 LD="$LD" LDFLAGS="$LDFLAGS" LIBS="$LIBS" \
760 LN_S="$LN_S" NM="$NM" RANLIB="$RANLIB" \
761 DLLTOOL="$DLLTOOL" AS="$AS" OBJDUMP="$OBJDUMP" \
762 ${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig --no-reexec \
763 $libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \
764 || AC_MSG_ERROR([libtool configure failed])
765
766 # Reload cache, that may have been modified by ltconfig
767 AC_CACHE_LOAD
768
769 # This can be used to rebuild libtool when needed
770 LIBTOOL_DEPS="$ac_aux_dir/ltconfig $ac_aux_dir/ltmain.sh"
771
772 # Always use our own libtool.
773 LIBTOOL='$(SHELL) $(top_builddir)/libtool'
774 AC_SUBST(LIBTOOL)dnl
775
776 # Redirect the config.log output again, so that the ltconfig log is not
777 # clobbered by the next message.
778 exec 5>>./config.log
779 ])
780
781 AC_DEFUN(AC_LIBTOOL_SETUP,
782 [AC_PREREQ(2.13)dnl
783 AC_REQUIRE([AC_ENABLE_SHARED])dnl
784 AC_REQUIRE([AC_ENABLE_STATIC])dnl
785 AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
786 AC_REQUIRE([AC_CANONICAL_HOST])dnl
787 AC_REQUIRE([AC_CANONICAL_BUILD])dnl
788 AC_REQUIRE([AC_PROG_RANLIB])dnl
789 AC_REQUIRE([AC_PROG_CC])dnl
790 AC_REQUIRE([AC_PROG_LD])dnl
791 AC_REQUIRE([AC_PROG_NM])dnl
792 AC_REQUIRE([AC_PROG_LN_S])dnl
793 dnl
794
795 # Check for any special flags to pass to ltconfig.
796 #
797 # the following will cause an existing older ltconfig to fail, so
798 # we ignore this at the expense of the cache file... Checking this 
799 # will just take longer ... bummer!
800 #libtool_flags="--cache-file=$cache_file"
801 #
802 test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
803 test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
804 test "$enable_fast_install" = no && libtool_flags="$libtool_flags --disable-fast-install"
805 test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
806 test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
807 ifdef([AC_PROVIDE_AC_LIBTOOL_DLOPEN],
808 [libtool_flags="$libtool_flags --enable-dlopen"])
809 ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
810 [libtool_flags="$libtool_flags --enable-win32-dll"])
811 AC_ARG_ENABLE(libtool-lock,
812   [  --disable-libtool-lock  avoid locking (might break parallel builds)])
813 test "x$enable_libtool_lock" = xno && libtool_flags="$libtool_flags --disable-lock"
814 test x"$silent" = xyes && libtool_flags="$libtool_flags --silent"
815
816 # Some flags need to be propagated to the compiler or linker for good
817 # libtool support.
818 case "$host" in
819 *-*-irix6*)
820   # Find out which ABI we are using.
821   echo '[#]line __oline__ "configure"' > conftest.$ac_ext
822   if AC_TRY_EVAL(ac_compile); then
823     case "`/usr/bin/file conftest.o`" in
824     *32-bit*)
825       LD="${LD-ld} -32"
826       ;;
827     *N32*)
828       LD="${LD-ld} -n32"
829       ;;
830     *64-bit*)
831       LD="${LD-ld} -64"
832       ;;
833     esac
834   fi
835   rm -rf conftest*
836   ;;
837
838 *-*-sco3.2v5*)
839   # On SCO OpenServer 5, we need -belf to get full-featured binaries.
840   SAVE_CFLAGS="$CFLAGS"
841   CFLAGS="$CFLAGS -belf"
842   AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
843     [AC_TRY_LINK([],[],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])])
844   if test x"$lt_cv_cc_needs_belf" != x"yes"; then
845     # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
846     CFLAGS="$SAVE_CFLAGS"
847   fi
848   ;;
849
850 ifdef([AC_PROVIDE_AC_LIBTOOL_WIN32_DLL],
851 [*-*-cygwin* | *-*-mingw*)
852   AC_CHECK_TOOL(DLLTOOL, dlltool, false)
853   AC_CHECK_TOOL(AS, as, false)
854   AC_CHECK_TOOL(OBJDUMP, objdump, false)
855   ;;
856 ])
857 esac
858 ])
859
860 # AC_LIBTOOL_DLOPEN - enable checks for dlopen support
861 AC_DEFUN(AC_LIBTOOL_DLOPEN, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])])
862
863 # AC_LIBTOOL_WIN32_DLL - declare package support for building win32 dll's
864 AC_DEFUN(AC_LIBTOOL_WIN32_DLL, [AC_BEFORE([$0], [AC_LIBTOOL_SETUP])])
865
866 # AC_ENABLE_SHARED - implement the --enable-shared flag
867 # Usage: AC_ENABLE_SHARED[(DEFAULT)]
868 #   Where DEFAULT is either `yes' or `no'.  If omitted, it defaults to
869 #   `yes'.
870 AC_DEFUN(AC_ENABLE_SHARED, [dnl
871 define([AC_ENABLE_SHARED_DEFAULT], ifelse($1, no, no, yes))dnl
872 AC_ARG_ENABLE(shared,
873 changequote(<<, >>)dnl
874 <<  --enable-shared[=PKGS]  build shared libraries [default=>>AC_ENABLE_SHARED_DEFAULT],
875 changequote([, ])dnl
876 [p=${PACKAGE-default}
877 case "$enableval" in
878 yes) enable_shared=yes ;;
879 no) enable_shared=no ;;
880 *)
881   enable_shared=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
886       enable_shared=yes
887     fi
888   done
889   IFS="$ac_save_ifs"
890   ;;
891 esac],
892 enable_shared=AC_ENABLE_SHARED_DEFAULT)dnl
893 ])
894
895 # AC_DISABLE_SHARED - set the default shared flag to --disable-shared
896 AC_DEFUN(AC_DISABLE_SHARED, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
897 AC_ENABLE_SHARED(no)])
898
899 # AC_ENABLE_STATIC - implement the --enable-static flag
900 # Usage: AC_ENABLE_STATIC[(DEFAULT)]
901 #   Where DEFAULT is either `yes' or `no'.  If omitted, it defaults to
902 #   `yes'.
903 AC_DEFUN(AC_ENABLE_STATIC, [dnl
904 define([AC_ENABLE_STATIC_DEFAULT], ifelse($1, no, no, yes))dnl
905 AC_ARG_ENABLE(static,
906 changequote(<<, >>)dnl
907 <<  --enable-static[=PKGS]  build static libraries [default=>>AC_ENABLE_STATIC_DEFAULT],
908 changequote([, ])dnl
909 [p=${PACKAGE-default}
910 case "$enableval" in
911 yes) enable_static=yes ;;
912 no) enable_static=no ;;
913 *)
914   enable_static=no
915   # Look at the argument we got.  We use all the common list separators.
916   IFS="${IFS=   }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
917   for pkg in $enableval; do
918     if test "X$pkg" = "X$p"; then
919       enable_static=yes
920     fi
921   done
922   IFS="$ac_save_ifs"
923   ;;
924 esac],
925 enable_static=AC_ENABLE_STATIC_DEFAULT)dnl
926 ])
927
928 # AC_DISABLE_STATIC - set the default static flag to --disable-static
929 AC_DEFUN(AC_DISABLE_STATIC, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
930 AC_ENABLE_STATIC(no)])
931
932
933 # AC_ENABLE_FAST_INSTALL - implement the --enable-fast-install flag
934 # Usage: AC_ENABLE_FAST_INSTALL[(DEFAULT)]
935 #   Where DEFAULT is either `yes' or `no'.  If omitted, it defaults to
936 #   `yes'.
937 AC_DEFUN(AC_ENABLE_FAST_INSTALL, [dnl
938 define([AC_ENABLE_FAST_INSTALL_DEFAULT], ifelse($1, no, no, yes))dnl
939 AC_ARG_ENABLE(fast-install,
940 changequote(<<, >>)dnl
941 <<  --enable-fast-install[=PKGS]  optimize for fast installation [default=>>AC_ENABLE_FAST_INSTALL_DEFAULT],
942 changequote([, ])dnl
943 [p=${PACKAGE-default}
944 case "$enableval" in
945 yes) enable_fast_install=yes ;;
946 no) enable_fast_install=no ;;
947 *)
948   enable_fast_install=no
949   # Look at the argument we got.  We use all the common list separators.
950   IFS="${IFS=   }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
951   for pkg in $enableval; do
952     if test "X$pkg" = "X$p"; then
953       enable_fast_install=yes
954     fi
955   done
956   IFS="$ac_save_ifs"
957   ;;
958 esac],
959 enable_fast_install=AC_ENABLE_FAST_INSTALL_DEFAULT)dnl
960 ])
961
962 # AC_ENABLE_FAST_INSTALL - set the default to --disable-fast-install
963 AC_DEFUN(AC_DISABLE_FAST_INSTALL, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
964 AC_ENABLE_FAST_INSTALL(no)])
965
966 # AC_PROG_LD - find the path to the GNU or non-GNU linker
967 AC_DEFUN(AC_PROG_LD,
968 [AC_ARG_WITH(gnu-ld,
969 [  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]],
970 test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
971 AC_REQUIRE([AC_PROG_CC])dnl
972 AC_REQUIRE([AC_CANONICAL_HOST])dnl
973 AC_REQUIRE([AC_CANONICAL_BUILD])dnl
974 ac_prog=ld
975 if test "$ac_cv_prog_gcc" = yes; then
976   # Check if gcc -print-prog-name=ld gives a path.
977   AC_MSG_CHECKING([for ld used by GCC])
978   ac_prog=`($CC -print-prog-name=ld) 2>&5`
979   case "$ac_prog" in
980     # Accept absolute paths.
981 changequote(,)dnl
982     [\\/]* | [A-Za-z]:[\\/]*)
983       re_direlt='/[^/][^/]*/\.\./'
984 changequote([,])dnl
985       # Canonicalize the path of ld
986       ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
987       while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
988         ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
989       done
990       test -z "$LD" && LD="$ac_prog"
991       ;;
992   "")
993     # If it fails, then pretend we aren't using GCC.
994     ac_prog=ld
995     ;;
996   *)
997     # If it is relative, then search for the first ld in PATH.
998     with_gnu_ld=unknown
999     ;;
1000   esac
1001 elif test "$with_gnu_ld" = yes; then
1002   AC_MSG_CHECKING([for GNU ld])
1003 else
1004   AC_MSG_CHECKING([for non-GNU ld])
1005 fi
1006 AC_CACHE_VAL(ac_cv_path_LD,
1007 [if test -z "$LD"; then
1008   IFS="${IFS=   }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
1009   for ac_dir in $PATH; do
1010     test -z "$ac_dir" && ac_dir=.
1011     if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
1012       ac_cv_path_LD="$ac_dir/$ac_prog"
1013       # Check to see if the program is GNU ld.  I'd rather use --version,
1014       # but apparently some GNU ld's only accept -v.
1015       # Break only if it was the GNU/non-GNU ld that we prefer.
1016       if "$ac_cv_path_LD" -v 2>&1 < /dev/null | egrep '(GNU|with BFD)' > /dev/null; then
1017         test "$with_gnu_ld" != no && break
1018       else
1019         test "$with_gnu_ld" != yes && break
1020       fi
1021     fi
1022   done
1023   IFS="$ac_save_ifs"
1024 else
1025   ac_cv_path_LD="$LD" # Let the user override the test with a path.
1026 fi])
1027 LD="$ac_cv_path_LD"
1028 if test -n "$LD"; then
1029   AC_MSG_RESULT($LD)
1030 else
1031   AC_MSG_RESULT(no)
1032 fi
1033 test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
1034 AC_SUBST(LD)
1035 AC_PROG_LD_GNU
1036 ])
1037
1038 AC_DEFUN(AC_PROG_LD_GNU,
1039 [AC_CACHE_CHECK([if the linker ($LD) is GNU ld], ac_cv_prog_gnu_ld,
1040 [# I'd rather use --version here, but apparently some GNU ld's only accept -v.
1041 if $LD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
1042   ac_cv_prog_gnu_ld=yes
1043 else
1044   ac_cv_prog_gnu_ld=no
1045 fi])
1046 ])
1047
1048 # AC_PROG_NM - find the path to a BSD-compatible name lister
1049 AC_DEFUN(AC_PROG_NM,
1050 [AC_MSG_CHECKING([for BSD-compatible nm])
1051 AC_CACHE_VAL(ac_cv_path_NM,
1052 [if test -n "$NM"; then
1053   # Let the user override the test.
1054   ac_cv_path_NM="$NM"
1055 else
1056   IFS="${IFS=   }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
1057   for ac_dir in $PATH /usr/ccs/bin /usr/ucb /bin; do
1058     test -z "$ac_dir" && ac_dir=.
1059     if test -f $ac_dir/nm || test -f $ac_dir/nm$ac_exeext ; then
1060       # Check to see if the nm accepts a BSD-compat flag.
1061       # Adding the `sed 1q' prevents false positives on HP-UX, which says:
1062       #   nm: unknown option "B" ignored
1063       if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
1064         ac_cv_path_NM="$ac_dir/nm -B"
1065         break
1066       elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
1067         ac_cv_path_NM="$ac_dir/nm -p"
1068         break
1069       else
1070         ac_cv_path_NM=${ac_cv_path_NM="$ac_dir/nm"} # keep the first match, but
1071         continue # so that we can try to find one that supports BSD flags
1072       fi
1073     fi
1074   done
1075   IFS="$ac_save_ifs"
1076   test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm
1077 fi])
1078 NM="$ac_cv_path_NM"
1079 AC_MSG_RESULT([$NM])
1080 AC_SUBST(NM)
1081 ])
1082
1083 # AC_CHECK_LIBM - check for math library
1084 AC_DEFUN(AC_CHECK_LIBM,
1085 [AC_REQUIRE([AC_CANONICAL_HOST])dnl
1086 LIBM=
1087 case "$host" in
1088 *-*-beos* | *-*-cygwin*)
1089   # These system don't have libm
1090   ;;
1091 *-ncr-sysv4.3*)
1092   AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
1093   AC_CHECK_LIB(m, main, LIBM="$LIBM -lm")
1094   ;;
1095 *)
1096   AC_CHECK_LIB(m, main, LIBM="-lm")
1097   ;;
1098 esac
1099 ])
1100
1101
1102 ### Check for a headers existence and location iff it exists
1103 ## This is supposed to be a generalised version of LYX_STL_STRING_FWD
1104 ## It almost works.  I've tried a few variations but they give errors
1105 ## of one sort or other: bad substitution or file not found etc.  The
1106 ## actual header _is_ found though and the cache variable is set however
1107 ## the reported setting (on screen) is equal to $ac_safe for some unknown
1108 ## reason.
1109 AC_DEFUN(LYX_PATH_HEADER,
1110 [ AC_CHECK_HEADER($1,[
1111   ac_tr_safe=PATH_`echo $ac_safe | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
1112   AC_CACHE_CHECK([path to $1],lyx_cv_path_$ac_safe,
1113   [ cat > conftest.$ac_ext <<EOF
1114 #line __oline__ "configure"
1115 #include "confdefs.h"
1116
1117 #include <$1>
1118 EOF
1119 lyx_cv_path_$ac_safe=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | \
1120   grep $1  2>/dev/null | \
1121   sed -e 's/.*\(".*$1"\).*/\1/' -e "1q"`
1122 rm -f conftest*])
1123   AC_DEFINE_UNQUOTED(${ac_tr_safe},${lyx_cv_path_$ac_safe})])
1124 ])
1125 ### end of LYX_PATH_HEADER
1126
1127 ### Check for stl_string_fwd.h existence and location if it exists
1128 AC_DEFUN(LYX_STL_STRING_FWD,
1129 [ AC_CHECK_HEADER(stl_string_fwd.h,[
1130   AC_CACHE_CHECK([path to stl_string_fwd.h],lyx_cv_path_stl_string_fwd_h,
1131   [ cat > conftest.$ac_ext <<EOF
1132 #line __oline__ "configure"
1133 #include "confdefs.h"
1134
1135 #include <stl_string_fwd.h>
1136 EOF
1137 lyx_cv_path_stl_string_fwd_h=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | \
1138   grep 'stl_string_fwd.h'  2>/dev/null | \
1139   sed -e 's/.*\(".*stl_string_fwd.h"\).*/\1/' -e "1q"`
1140 rm -f conftest*])
1141   AC_DEFINE_UNQUOTED(STL_STRING_FWD_H_LOCATION,$lyx_cv_path_stl_string_fwd_h)])
1142 ])
1143
1144
1145 # AC_LIBLTDL_CONVENIENCE[(dir)] - sets LIBLTDL to the link flags for
1146 # the libltdl convenience library, adds --enable-ltdl-convenience to
1147 # the configure arguments.  Note that LIBLTDL is not AC_SUBSTed, nor
1148 # is AC_CONFIG_SUBDIRS called.  If DIR is not provided, it is assumed
1149 # to be `${top_builddir}/libltdl'.  Make sure you start DIR with
1150 # '${top_builddir}/' (note the single quotes!) if your package is not
1151 # flat, and, if you're not using automake, define top_builddir as
1152 # appropriate in the Makefiles.
1153 AC_DEFUN(AC_LIBLTDL_CONVENIENCE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
1154   case "$enable_ltdl_convenience" in
1155   no) AC_MSG_ERROR([this package needs a convenience libltdl]) ;;
1156   "") enable_ltdl_convenience=yes
1157       ac_configure_args="$ac_configure_args --enable-ltdl-convenience" ;;
1158   esac
1159   LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdlc.la
1160   INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl'])
1161 ])
1162
1163 # AC_LIBLTDL_INSTALLABLE[(dir)] - sets LIBLTDL to the link flags for
1164 # the libltdl installable library, and adds --enable-ltdl-install to
1165 # the configure arguments.  Note that LIBLTDL is not AC_SUBSTed, nor
1166 # is AC_CONFIG_SUBDIRS called.  If DIR is not provided, it is assumed
1167 # to be `${top_builddir}/libltdl'.  Make sure you start DIR with
1168 # '${top_builddir}/' (note the single quotes!) if your package is not
1169 # flat, and, if you're not using automake, define top_builddir as
1170 # appropriate in the Makefiles.
1171 # In the future, this macro may have to be called after AC_PROG_LIBTOOL.
1172 AC_DEFUN(AC_LIBLTDL_INSTALLABLE, [AC_BEFORE([$0],[AC_LIBTOOL_SETUP])dnl
1173   AC_CHECK_LIB(ltdl, main,
1174   [test x"$enable_ltdl_install" != xyes && enable_ltdl_install=no],
1175   [if test x"$enable_ltdl_install" = xno; then
1176      AC_MSG_WARN([libltdl not installed, but installation disabled])
1177    else
1178      enable_ltdl_install=yes
1179    fi
1180   ])
1181   if test x"$enable_ltdl_install" = x"yes"; then
1182     ac_configure_args="$ac_configure_args --enable-ltdl-install"
1183     LIBLTDL=ifelse($#,1,$1,['${top_builddir}/libltdl'])/libltdl.la
1184     INCLTDL=ifelse($#,1,-I$1,['-I${top_builddir}/libltdl'])
1185   else
1186     ac_configure_args="$ac_configure_args --enable-ltdl-install=no"
1187     LIBLTDL="-lltdl"
1188     INCLTDL=
1189   fi
1190 ])
1191
1192 dnl old names
1193 AC_DEFUN(AM_PROG_LIBTOOL, [indir([AC_PROG_LIBTOOL])])dnl
1194 AC_DEFUN(AM_ENABLE_SHARED, [indir([AC_ENABLE_SHARED], $@)])dnl
1195 AC_DEFUN(AM_ENABLE_STATIC, [indir([AC_ENABLE_STATIC], $@)])dnl
1196 AC_DEFUN(AM_DISABLE_SHARED, [indir([AC_DISABLE_SHARED], $@)])dnl
1197 AC_DEFUN(AM_DISABLE_STATIC, [indir([AC_DISABLE_STATIC], $@)])dnl
1198 AC_DEFUN(AM_PROG_LD, [indir([AC_PROG_LD])])dnl
1199 AC_DEFUN(AM_PROG_NM, [indir([AC_PROG_NM])])dnl
1200
1201 dnl This is just to silence aclocal about the macro not being used
1202 ifelse([AC_DISABLE_FAST_INSTALL])dnl
1203
1204 # Macro to add for using GNU gettext.
1205 # Ulrich Drepper <drepper@cygnus.com>, 1995.
1206 #
1207 # This file can be copied and used freely without restrictions.  It can
1208 # be used in projects which are not available under the GNU Public License
1209 # but which still want to provide support for the GNU gettext functionality.
1210 # Please note that the actual code is *not* freely available.
1211
1212 # serial 5
1213
1214 AC_DEFUN(AM_WITH_NLS,
1215   [AC_MSG_CHECKING([whether NLS is requested])
1216     dnl Default is enabled NLS
1217     AC_ARG_ENABLE(nls,
1218       [  --disable-nls           do not use Native Language Support],
1219       USE_NLS=$enableval, USE_NLS=yes)
1220     AC_MSG_RESULT($USE_NLS)
1221     AC_SUBST(USE_NLS)
1222
1223     USE_INCLUDED_LIBINTL=no
1224
1225     dnl If we use NLS figure out what method
1226     if test "$USE_NLS" = "yes"; then
1227       AC_DEFINE(ENABLE_NLS)
1228       AC_MSG_CHECKING([whether included gettext is requested])
1229       AC_ARG_WITH(included-gettext,
1230         [  --with-included-gettext use the GNU gettext library included here],
1231         nls_cv_force_use_gnu_gettext=$withval,
1232         nls_cv_force_use_gnu_gettext=no)
1233       AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
1234
1235       nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
1236       if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
1237         dnl User does not insist on using GNU NLS library.  Figure out what
1238         dnl to use.  If gettext or catgets are available (in this order) we
1239         dnl use this.  Else we have to fall back to GNU NLS library.
1240         dnl catgets is only used if permitted by option --with-catgets.
1241         nls_cv_header_intl=
1242         nls_cv_header_libgt=
1243         CATOBJEXT=NONE
1244
1245         AC_CHECK_HEADER(libintl.h,
1246           [AC_CACHE_CHECK([for gettext in libc], gt_cv_func_gettext_libc,
1247             [AC_TRY_LINK([#include <libintl.h>], [return (int) gettext ("")],
1248                gt_cv_func_gettext_libc=yes, gt_cv_func_gettext_libc=no)])
1249
1250            if test "$gt_cv_func_gettext_libc" != "yes"; then
1251              AC_CHECK_LIB(intl, bindtextdomain,
1252                [AC_CACHE_CHECK([for gettext in libintl],
1253                  gt_cv_func_gettext_libintl,
1254                  [AC_CHECK_LIB(intl, gettext,
1255                   gt_cv_func_gettext_libintl=yes,
1256                   gt_cv_func_gettext_libintl=no)],
1257                  gt_cv_func_gettext_libintl=no)])
1258            fi
1259
1260            if test "$gt_cv_func_gettext_libc" = "yes" \
1261               || test "$gt_cv_func_gettext_libintl" = "yes"; then
1262               AC_DEFINE(HAVE_GETTEXT)
1263               AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
1264                 [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl
1265               if test "$MSGFMT" != "no"; then
1266                 AC_CHECK_FUNCS(dcgettext)
1267                 AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
1268                 AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
1269                   [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
1270                 AC_TRY_LINK(, [extern int _nl_msg_cat_cntr;
1271                                return _nl_msg_cat_cntr],
1272                   [CATOBJEXT=.gmo
1273                    DATADIRNAME=share],
1274                   [CATOBJEXT=.mo
1275                    DATADIRNAME=lib])
1276                 INSTOBJEXT=.mo
1277               fi
1278             fi
1279         ])
1280
1281         if test "$CATOBJEXT" = "NONE"; then
1282           AC_MSG_CHECKING([whether catgets can be used])
1283           AC_ARG_WITH(catgets,
1284             [  --with-catgets          use catgets functions if available],
1285             nls_cv_use_catgets=$withval, nls_cv_use_catgets=no)
1286           AC_MSG_RESULT($nls_cv_use_catgets)
1287
1288           if test "$nls_cv_use_catgets" = "yes"; then
1289             dnl No gettext in C library.  Try catgets next.
1290             AC_CHECK_LIB(i, main)
1291             AC_CHECK_FUNC(catgets,
1292               [AC_DEFINE(HAVE_CATGETS)
1293                INTLOBJS="\$(CATOBJS)"
1294                AC_PATH_PROG(GENCAT, gencat, no)dnl
1295                if test "$GENCAT" != "no"; then
1296                  AC_PATH_PROG(GMSGFMT, gmsgfmt, no)
1297                  if test "$GMSGFMT" = "no"; then
1298                    AM_PATH_PROG_WITH_TEST(GMSGFMT, msgfmt,
1299                     [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)
1300                  fi
1301                  AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
1302                    [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
1303                  USE_INCLUDED_LIBINTL=yes
1304                  CATOBJEXT=.cat
1305                  INSTOBJEXT=.cat
1306                  DATADIRNAME=lib
1307                  INTLDEPS='$(top_builddir)/intl/libintl.a'
1308                  INTLLIBS=$INTLDEPS
1309                  LIBS=`echo $LIBS | sed -e 's/-lintl//'`
1310                  nls_cv_header_intl=intl/libintl.h
1311                  nls_cv_header_libgt=intl/libgettext.h
1312                fi])
1313           fi
1314         fi
1315
1316         if test "$CATOBJEXT" = "NONE"; then
1317           dnl Neither gettext nor catgets in included in the C library.
1318           dnl Fall back on GNU gettext library.
1319           nls_cv_use_gnu_gettext=yes
1320         fi
1321       fi
1322
1323       if test "$nls_cv_use_gnu_gettext" = "yes"; then
1324         dnl Mark actions used to generate GNU NLS library.
1325         INTLOBJS="\$(GETTOBJS)"
1326         AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
1327           [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], msgfmt)
1328         AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
1329         AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
1330           [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :)
1331         AC_SUBST(MSGFMT)
1332         USE_INCLUDED_LIBINTL=yes
1333         CATOBJEXT=.gmo
1334         INSTOBJEXT=.mo
1335         DATADIRNAME=share
1336         INTLDEPS='$(top_builddir)/intl/libintl.a'
1337         INTLLIBS=$INTLDEPS
1338         LIBS=`echo $LIBS | sed -e 's/-lintl//'`
1339         nls_cv_header_intl=intl/libintl.h
1340         nls_cv_header_libgt=intl/libgettext.h
1341       fi
1342
1343       dnl Test whether we really found GNU xgettext.
1344       if test "$XGETTEXT" != ":"; then
1345         dnl If it is no GNU xgettext we define it as : so that the
1346         dnl Makefiles still can work.
1347         if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
1348           : ;
1349         else
1350           AC_MSG_RESULT(
1351             [found xgettext program is not GNU xgettext; ignore it])
1352           XGETTEXT=":"
1353         fi
1354       fi
1355
1356       # We need to process the po/ directory.
1357       POSUB=po
1358     else
1359       DATADIRNAME=share
1360       nls_cv_header_intl=intl/libintl.h
1361       nls_cv_header_libgt=intl/libgettext.h
1362     fi
1363     AC_LINK_FILES($nls_cv_header_libgt, $nls_cv_header_intl)
1364     AC_OUTPUT_COMMANDS(
1365      [case "$CONFIG_FILES" in *po/Makefile.in*)
1366         sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
1367       esac])
1368
1369
1370     # If this is used in GNU gettext we have to set USE_NLS to `yes'
1371     # because some of the sources are only built for this goal.
1372     if test "$PACKAGE" = gettext; then
1373       USE_NLS=yes
1374       USE_INCLUDED_LIBINTL=yes
1375     fi
1376
1377     dnl These rules are solely for the distribution goal.  While doing this
1378     dnl we only have to keep exactly one list of the available catalogs
1379     dnl in configure.in.
1380     for lang in $ALL_LINGUAS; do
1381       GMOFILES="$GMOFILES $lang.gmo"
1382       POFILES="$POFILES $lang.po"
1383     done
1384
1385     dnl Make all variables we use known to autoconf.
1386     AC_SUBST(USE_INCLUDED_LIBINTL)
1387     AC_SUBST(CATALOGS)
1388     AC_SUBST(CATOBJEXT)
1389     AC_SUBST(DATADIRNAME)
1390     AC_SUBST(GMOFILES)
1391     AC_SUBST(INSTOBJEXT)
1392     AC_SUBST(INTLDEPS)
1393     AC_SUBST(INTLLIBS)
1394     AC_SUBST(INTLOBJS)
1395     AC_SUBST(POFILES)
1396     AC_SUBST(POSUB)
1397   ])
1398
1399 AC_DEFUN(AM_GNU_GETTEXT,
1400   [AC_REQUIRE([AC_PROG_MAKE_SET])dnl
1401    AC_REQUIRE([AC_PROG_CC])dnl
1402    AC_REQUIRE([AC_PROG_RANLIB])dnl
1403    AC_REQUIRE([AC_ISC_POSIX])dnl
1404    AC_REQUIRE([AC_HEADER_STDC])dnl
1405    AC_REQUIRE([AC_C_CONST])dnl
1406    AC_REQUIRE([AC_C_INLINE])dnl
1407    AC_REQUIRE([AC_TYPE_OFF_T])dnl
1408    AC_REQUIRE([AC_TYPE_SIZE_T])dnl
1409    AC_REQUIRE([AC_FUNC_ALLOCA])dnl
1410    AC_REQUIRE([AC_FUNC_MMAP])dnl
1411
1412    AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h string.h \
1413 unistd.h sys/param.h])
1414    AC_CHECK_FUNCS([getcwd munmap putenv setenv setlocale strchr strcasecmp \
1415 strdup __argz_count __argz_stringify __argz_next])
1416
1417    if test "${ac_cv_func_stpcpy+set}" != "set"; then
1418      AC_CHECK_FUNCS(stpcpy)
1419    fi
1420    if test "${ac_cv_func_stpcpy}" = "yes"; then
1421      AC_DEFINE(HAVE_STPCPY)
1422    fi
1423
1424    AM_LC_MESSAGES
1425    AM_WITH_NLS
1426
1427    if test "x$CATOBJEXT" != "x"; then
1428      if test "x$ALL_LINGUAS" = "x"; then
1429        LINGUAS=
1430      else
1431        AC_MSG_CHECKING(for catalogs to be installed)
1432        NEW_LINGUAS=
1433 dnl ============== Fix is here! =======================
1434 dnl Some sh do not like substitution in bounds of for loops
1435 dnl       for lang in ${LINGUAS=$ALL_LINGUAS}; do
1436     tmplinguas=${LINGUAS=$ALL_LINGUAS}
1437     for lang in ${tmplinguas}; do
1438          case "$ALL_LINGUAS" in
1439           *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
1440          esac
1441        done
1442        LINGUAS=$NEW_LINGUAS
1443        AC_MSG_RESULT($LINGUAS)
1444      fi
1445
1446      dnl Construct list of names of catalog files to be constructed.
1447      if test -n "$LINGUAS"; then
1448        for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
1449      fi
1450    fi
1451
1452    dnl The reference to <locale.h> in the installed <libintl.h> file
1453    dnl must be resolved because we cannot expect the users of this
1454    dnl to define HAVE_LOCALE_H.
1455    if test $ac_cv_header_locale_h = yes; then
1456      INCLUDE_LOCALE_H="#include <locale.h>"
1457    else
1458      INCLUDE_LOCALE_H="\
1459 /* The system does not provide the header <locale.h>.  Take care yourself.  */"
1460    fi
1461    AC_SUBST(INCLUDE_LOCALE_H)
1462
1463    dnl Determine which catalog format we have (if any is needed)
1464    dnl For now we know about two different formats:
1465    dnl   Linux libc-5 and the normal X/Open format
1466    test -d intl || mkdir intl
1467    if test "$CATOBJEXT" = ".cat"; then
1468      AC_CHECK_HEADER(linux/version.h, msgformat=linux, msgformat=xopen)
1469
1470      dnl Transform the SED scripts while copying because some dumb SEDs
1471      dnl cannot handle comments.
1472      sed -e '/^#/d' $srcdir/intl/$msgformat-msg.sed > intl/po2msg.sed
1473    fi
1474    dnl po2tbl.sed is always needed.
1475    sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \
1476      $srcdir/intl/po2tbl.sed.in > intl/po2tbl.sed
1477
1478    dnl In the intl/Makefile.in we have a special dependency which makes
1479    dnl only sense for gettext.  We comment this out for non-gettext
1480    dnl packages.
1481    if test "$PACKAGE" = "gettext"; then
1482      GT_NO="#NO#"
1483      GT_YES=
1484    else
1485      GT_NO=
1486      GT_YES="#YES#"
1487    fi
1488    AC_SUBST(GT_NO)
1489    AC_SUBST(GT_YES)
1490
1491    dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
1492    dnl find the mkinstalldirs script in another subdir but ($top_srcdir).
1493    dnl Try to locate is.
1494    MKINSTALLDIRS=
1495    if test -n "$ac_aux_dir"; then
1496      MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs"
1497    fi
1498    if test -z "$MKINSTALLDIRS"; then
1499      MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
1500    fi
1501    AC_SUBST(MKINSTALLDIRS)
1502
1503    dnl *** For now the libtool support in intl/Makefile is not for real.
1504    l=
1505    AC_SUBST(l)
1506
1507    dnl Generate list of files to be processed by xgettext which will
1508    dnl be included in po/Makefile.
1509    test -d po || mkdir po
1510    if test "x$srcdir" != "x."; then
1511      if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
1512        posrcprefix="$srcdir/"
1513      else
1514        posrcprefix="../$srcdir/"
1515      fi
1516    else
1517      posrcprefix="../"
1518    fi
1519    rm -f po/POTFILES
1520    sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
1521         < $srcdir/po/POTFILES.in > po/POTFILES
1522   ])