]> git.lyx.org Git - lyx.git/blob - config/lyxinclude.m4
0def2730d3c3b427b7f810629857ed79d78c1f62
[lyx.git] / config / lyxinclude.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 dnl         Allan Rae (rae@lyx.org)
5
6
7 dnl Usage LYX_CHECK_VERSION   Displays version of LyX being built and
8 dnl sets variables "lyx_devel_version" and "lyx_prerelease"
9 AC_DEFUN([LYX_CHECK_VERSION],[
10 echo "configuring LyX version" AC_PACKAGE_VERSION
11 if echo AC_PACKAGE_VERSION | grep 'svn' >/dev/null ; then
12   lyx_devel_version=yes
13   AC_DEFINE(DEVEL_VERSION, 1, [Define if you are building a development version of LyX])
14   echo "WARNING: This is a development version. Expect bugs."
15 else
16   lyx_devel_version=no
17 fi
18 if echo AC_PACKAGE_VERSION | grep 'pre' > /dev/null ; then
19     lyx_prerelease=yes
20     echo "WARNING: This is a prerelease. Be careful and backup your documents."
21 else
22     lyx_prerelease=no
23 fi
24 AC_SUBST(lyx_devel_version)])
25
26
27 dnl Define the option to set a LyX version on installed executables and directories
28 dnl
29 dnl
30 AC_DEFUN([LYX_VERSION_SUFFIX],[
31 AC_MSG_CHECKING([for version suffix])
32 RPM_VERSION_SUFFIX='""'
33 AC_ARG_WITH(version-suffix,
34   [  --with-version-suffix[=<version>]  install lyx files as lyx<version>],
35   [if test "x$withval" = "xyes";
36    then
37      withval="-"AC_PACKAGE_VERSION
38      ac_configure_args=`echo $ac_configure_args | sed "s,--with-version-suffix,--with-version-suffix=$withval,"`
39    fi
40    version_suffix=$withval
41    RPM_VERSION_SUFFIX="--with-version-suffix=$withval"])
42 AC_SUBST(RPM_VERSION_SUFFIX)
43 AC_MSG_RESULT([$withval])
44 ])
45
46
47 dnl Usage: LYX_ERROR(message)  Displays the warning "message" and sets the
48 dnl flag lyx_error to yes.
49 AC_DEFUN([LYX_ERROR],[
50 lyx_error_txt="$lyx_error_txt
51 ** $1
52 "
53 lyx_error=yes])
54
55
56 dnl Usage: LYX_WARNING(message)  Displays the warning "message" and sets the
57 dnl flag lyx_warning to yes.
58 AC_DEFUN([LYX_WARNING],[
59 lyx_warning_txt="$lyx_warning_txt
60 == $1
61 "
62 lyx_warning=yes])
63
64
65 dnl Usage: LYX_LIB_ERROR(file,library)  Displays an error message indication
66 dnl  that 'file' cannot be found because 'lib' may be uncorrectly installed.
67 AC_DEFUN([LYX_LIB_ERROR],[
68 LYX_ERROR([Cannot find $1. Please check that the $2 library
69    is correctly installed on your system.])])
70
71
72 dnl Usage: LYX_CHECK_ERRORS  Displays a warning message if a LYX_ERROR
73 dnl   has occured previously.
74 AC_DEFUN([LYX_CHECK_ERRORS],[
75 if test x$lyx_error = xyes; then
76 cat <<EOF
77 **** The following problems have been detected by configure.
78 **** Please check the messages below before running 'make'.
79 **** (see the section 'Problems' in the INSTALL file)
80 $lyx_error_txt
81 $lyx_warning_txt
82 EOF
83 else
84
85 if test x$lyx_warning = xyes; then
86 cat <<EOF
87 === The following minor problems have been detected by configure.
88 === Please check the messages below before running 'make'.
89 === (see the section 'Problems' in the INSTALL file)
90 $lyx_warning_txt
91 EOF
92 fi
93 cat <<EOF
94 Configuration of LyX was successful.
95 Type 'make' to compile the program,
96 and then 'make install' to install it.
97 EOF
98 fi])
99
100
101 dnl LYX_SEARCH_PROG(VARIABLE-NAME,PROGRAMS-LIST,ACTION-IF-FOUND)
102 dnl
103 define(LYX_SEARCH_PROG,[dnl
104 for ac_prog in $2 ; do
105 # Extract the first word of "$ac_prog", so it can be a program name with args.
106   set dummy $ac_prog ; ac_word=$[2]
107   if test -z "[$]$1"; then
108     IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
109     for ac_dir in $PATH; do
110       test -z "$ac_dir" && ac_dir=.
111       if test -f [$ac_dir/$ac_word]; then
112         $1="$ac_prog"
113         break
114       fi
115     done
116     IFS="$ac_save_ifs"
117   fi
118
119   if test -n "[$]$1"; then
120     ac_result=yes
121   else
122     ac_result=no
123   fi
124   ifelse($3,,,[$3])
125   test -n "[$]$1" && break
126 done
127 ])dnl
128
129
130 AC_DEFUN([LYX_PROG_CXX_WORKS],
131 [rm -f conftest.C
132 cat >conftest.C <<EOF
133 class foo {
134    // we require the mutable keyword
135    mutable int bar;
136  };
137  // we require namespace support
138  namespace baz {
139    int bar;
140  }
141  int main() {
142    return(0);
143  }
144 EOF
145 $CXX -c $CXXFLAGS $CPPFLAGS conftest.C >&5 || CXX=
146 rm -f conftest.C conftest.o conftest.obj || true
147 ])
148
149
150 AC_DEFUN([LYX_PROG_CXX],
151 [AC_MSG_CHECKING([for a good enough C++ compiler])
152 LYX_SEARCH_PROG(CXX, $CXX $CCC g++ gcc c++ CC cxx xlC cc++, [LYX_PROG_CXX_WORKS])
153
154 if test -z "$CXX" ; then
155   AC_MSG_ERROR([Unable to find a good enough C++ compiler])
156 fi
157 AC_MSG_RESULT($CXX)
158
159 AC_PROG_CXX
160
161 ### We might want to get or shut warnings.
162 AC_ARG_ENABLE(warnings,
163   AC_HELP_STRING([--enable-warnings],[tell the compiler to display more warnings]),,
164   [ if test $lyx_devel_version = yes -o $lyx_prerelease = yes && test $ac_cv_prog_gxx = yes ; then
165         enable_warnings=yes;
166     else
167         enable_warnings=no;
168     fi;])
169 if test x$enable_warnings = xyes ; then
170   lyx_flags="warnings $lyx_flags"
171   AC_DEFINE(WITH_WARNINGS, 1,
172   [Define this if you want to see the warning directives put here and
173    there by the developpers to get attention])
174 fi
175
176 ### We might want to disable debug
177 AC_ARG_ENABLE(debug,
178   AC_HELP_STRING([--enable-debug],[enable debug information]),,
179   [ if test $lyx_devel_version = yes -o $lyx_prerelease = yes ; then
180         enable_debug=yes;
181     else
182         enable_debug=no;
183     fi;])
184
185 AC_ARG_ENABLE(stdlib-debug,
186   AC_HELP_STRING([--enable-stdlib-debug],[enable debug mode in the standard library]),,
187   [ if test $lyx_devel_version = yes ; then
188       enable_stdlib_debug=yes;
189     else
190       enable_stdlib_debug=no;
191     fi;])
192
193 AC_ARG_ENABLE(concept-checks,
194   AC_HELP_STRING([--enable-concept-checks],[enable concept checks]),,
195   [ if test $lyx_devel_version = yes -o $lyx-prerelease = yes ; then
196         enable_concept_checks=yes;
197     else
198         enable_concept_checks=no;
199     fi;])
200
201 AC_ARG_ENABLE(profiling,
202   AC_HELP_STRING([--enable-profiling],[enable profiling]),,
203   enable_profiling=no;)
204
205 ### set up optimization
206 AC_ARG_ENABLE(optimization,
207     AC_HELP_STRING([--enable-optimization[=value]],[enable compiler optimisation]),,
208     enable_optimization=yes;)
209 case $enable_optimization in
210     yes)
211         if test $lyx_devel_version = yes ; then
212             lyx_opt=-O
213         else
214             lyx_opt=-O2
215         fi;;
216     no) lyx_opt=;;
217     *) lyx_opt=${enable_optimization};;
218 esac
219
220 AC_ARG_ENABLE(pch,
221   AC_HELP_STRING([--enable-pch],[enable precompiled headers]),,
222         enable_pch=yes;)
223 lyx_pch_comp=no
224
225 # set the compiler options correctly.
226 if test x$GXX = xyes; then
227   dnl Useful for global version info
228   gxx_version=`${CXX} -dumpversion`
229   CXX_VERSION="($gxx_version)"
230
231   if test "$ac_test_CXXFLAGS" = set; then
232     CXXFLAGS="$ac_save_CXXFLAGS"
233   else
234       CFLAGS="$lyx_opt"
235       CXXFLAGS="$lyx_opt"
236     if test x$enable_debug = xyes ; then
237         CFLAGS="-g $CFLAGS"
238         CXXFLAGS="-g $CXXFLAGS"
239     fi
240     if test x$enable_profiling = xyes ; then
241         CFLAGS="-pg $CFLAGS"
242         CXXFLAGS="-pg $CXXFLAGS"
243         LDFLAGS="-pg $LDFLAGS"
244     fi
245     if test x$enable_warnings = xyes ; then
246         case $gxx_version in
247             3.1*|3.2*|3.3*)
248                 CPPFLAGS="-W -Wall $CPPFLAGS"
249                 ;;
250             *)
251                 CPPFLAGS="-Wextra -Wall $CPPFLAGS "
252                 ;;
253         esac
254     fi
255   fi
256   case $gxx_version in
257       3.1*)    AM_CXXFLAGS="-finline-limit=500 ";;
258       3.2*|3.3*)    AM_CXXFLAGS="";;
259       3.4*|4.0*)
260           AM_CXXFLAGS=""
261           test $enable_pch = yes && lyx_pch_comp=yes
262           ;;
263       *)       AM_CXXFLAGS="";;
264   esac
265   if test x$enable_stdlib_debug = xyes ; then
266     case $gxx_version in
267       3.4*|4.0*)
268         lyx_flags="stdlib-debug $lyx_flags"
269         AC_DEFINE(_GLIBCXX_DEBUG, 1, [libstdc++ debug mode])
270         AC_DEFINE(_GLIBCXX_DEBUG_PEDANTIC, 1, [libstdc++ pedantic debug mode])
271         ;;
272     esac
273   fi
274   if test x$enable_concept_checks = xyes ; then
275     case $gxx_version in
276       3.3*)
277         lyx_flags="concept-checks $lyx_flags"
278         AC_DEFINE(_GLIBCPP_CONCEPT_CHECKS, 1, [libstdc++ concept checking])
279         ;;
280       3.4*|4.0*)
281         lyx_flags="concept-checks $lyx_flags"
282         AC_DEFINE(_GLIBCXX_CONCEPT_CHECKS, 1, [libstdc++ concept checking])
283         ;;
284     esac
285   fi
286 fi
287 test "$lyx_pch_comp" = yes && lyx_flags="pch $lyx_flags"
288 AM_CONDITIONAL(LYX_BUILD_PCH, test "$lyx_pch_comp" = yes)
289 ])dnl
290
291
292 dnl NOT USED CURRENTLY*************************************
293 dnl Usage: LYX_CXX_RTTI : checks whether the C++ compiler
294 dnl   supports RTTI
295 AC_DEFUN([LYX_CXX_RTTI],[
296 ### Check whether the compiler supports runtime type information
297 AC_CACHE_CHECK(whether the C++ compiler supports RTTI,lyx_cv_rtti,
298  [AC_TRY_RUN([
299 class rtti {
300 public:
301    virtual int tag() { return 0; }
302 };
303 class derived1 : public rtti {
304 public:
305     int tag() { return 1; }
306 };
307 class derived2 : public rtti {
308 public:
309     int tag() { return 2; }
310 };
311 int main() {
312     derived1 * foo1 = new derived1();
313     derived2 * foo2 = new derived2();
314     rtti * bar = foo1;
315     derived1 * bar1 = dynamic_cast<derived1 *>(bar);
316     if (bar1 == 0)
317         exit(1);
318     bar = foo2;
319     bar1 = dynamic_cast<derived1 *>(bar);
320     if (bar1 != 0)
321         exit(1);
322     return 0;
323 }
324 ],lyx_cv_rtti=yes,lyx_cv_rtti=no,lyx_cv_rtti=no)
325 ])
326 if test x$lyx_cv_rtti = xyes ; then
327   AC_DEFINE(HAVE_RTTI, 1,
328    [Define to 1 if your compiler supports runtime type information])
329 fi])
330
331
332 dnl Usage: LYX_CXX_EXPLICIT : checks whether the C++ compiler
333 dnl   understands the "explicit" directive.
334 AC_DEFUN([LYX_CXX_EXPLICIT],[
335 ### Check whether the compiler understands the keyword `explicit'
336 AC_CACHE_CHECK(whether the C++ compiler understands explicit,lyx_cv_explicit,
337  [AC_TRY_COMPILE([
338 class Expl {
339 public:
340         explicit Expl() {}
341 };],,lyx_cv_explicit=yes,lyx_cv_explicit=no)
342 ])
343 if test $lyx_cv_explicit = no ; then
344   AC_DEFINE(explicit,[ ],
345    [Define to nothing if your compiler does not understand the
346    'explicit' directive])
347 fi])
348
349
350 dnl NOT USED CURRENTLY*************************************
351 dnl Usage: LYX_CXX_STL_STACK : checks whether the C++ compiler
352 dnl   has a working stl stack template
353 AC_DEFUN([LYX_CXX_STL_STACK],[
354 AC_CACHE_CHECK(for broken STL stack template,lyx_cv_broken_stack,
355  [AC_TRY_COMPILE([
356 #include <stack>
357 using std::stack;
358 ],[
359     stack<int> stakk;
360     stakk.push(0);
361 ],lyx_cv_broken_stack=no,lyx_cv_broken_stack=yes)
362 ])
363 if test $lyx_cv_broken_stack = yes ; then
364   AC_DEFINE(BROKEN_STL_STACK, 1,
365    [Define if you have the STL from libg++ 2.7.x, where stack<> is not defined
366    correctly])
367 fi])
368
369
370 dnl Usage: LYX_STD_COUNT : checks wherer the C++ library have a conforming
371 dnl    count template, if not the old HP version is assumed.
372 AC_DEFUN([LYX_STD_COUNT],[
373 AC_CACHE_CHECK(for conforming std::count,lyx_cv_std_count,
374  [AC_TRY_COMPILE([
375 #include <algorithm>
376 using std::count;
377 int countChar(char * b, char * e, char const c)
378 {
379         return count(b, e, c);
380 }
381 ],[
382     char a[] = "hello";
383     int i = countChar(a, a + 5, 'l');
384 ],lyx_cv_std_count=yes,lyx_cv_std_count=no)
385 ])
386 if test $lyx_cv_std_count = yes ; then
387     AC_DEFINE(HAVE_STD_COUNT, 1,
388     [Define if you have a conforming std::count template, otherwise HP version of count template is assumed.])
389 fi])
390
391
392 dnl Usage: LYX_CXX_STL_MODERN_STREAMS : checks whether the C++ compiler
393 dnl   supports modern STL streams
394 AC_DEFUN([LYX_CXX_STL_MODERN_STREAMS],[
395 AC_CACHE_CHECK(for modern STL streams,lyx_cv_modern_streams,
396  [AC_TRY_COMPILE([
397 #include <iostream>
398 ],[
399  std::streambuf * test = std::cerr.rdbuf();
400  test->pubsync();
401 ],lyx_cv_modern_streams=yes,lyx_cv_modern_streams=no)
402 ])
403 if test $lyx_cv_modern_streams = yes ; then
404   AC_DEFINE(MODERN_STL_STREAMS, 1,
405    [Define if you have modern standard-compliant STL streams])
406 fi])
407
408
409 dnl Usage: LYX_USE_INCLUDED_BOOST : select if the included boost should
410 dnl        be used.
411 AC_DEFUN([LYX_USE_INCLUDED_BOOST],[
412         AC_ARG_WITH(included-boost,
413             [  --with-included-boost  use the boost lib supplied with LyX],
414             [lyx_cv_with_included_boost=$withval
415                 AC_MSG_RESULT([$with_included_boost])],
416             [lyx_cv_with_included_boost=yes])
417         AM_CONDITIONAL(USE_INCLUDED_BOOST, test x$lyx_cv_with_included_boost = xyes)
418 ])
419
420
421 dnl NOT USED CURRENTLY*************************************
422 dnl LYX_CXX_PARTIAL
423 AC_DEFUN([LYX_CXX_PARTIAL], [
424     AC_REQUIRE([AC_PROG_CXX])
425     AC_CACHE_CHECK([if C++ compiler supports partial specialization],
426         [lyx_cv_cxx_partial_specialization],
427         [AC_TRY_COMPILE(
428             [
429             template<class T, class K>
430             class k {
431             public:
432             };
433             template<class T> class k<void,T> { };
434             ],[
435             k<float, float> b;
436             k<void,void> a;
437             ],[
438             lyx_cv_cxx_partial_specialization=yes
439             ],[
440             lyx_cv_cxx_partial_specialization=no
441             ])
442         ])
443     if test x$lyx_cv_cxx_partial_specialization = xyes ; then
444         AC_DEFINE(HAVE_PARTIAL_SPECIALIZATION, 1,
445         [Defined if your compiler supports partial specialization.])
446     fi
447 ])
448
449
450 dnl Usage: LYX_CXX_GLOBAL_CSTD: checks whether C library functions
451 dnl   are already in the global namespace
452 AC_DEFUN([LYX_CXX_GLOBAL_CSTD],[
453     AC_CACHE_CHECK(whether C library functions are already in the global namespace,
454     lyx_cv_cxx_global_cstd,
455     [AC_TRY_COMPILE([
456     #include <cctype>
457     using std::tolower;
458     ],[
459     return 0;
460     ],[lyx_cv_cxx_global_cstd=no],[lyx_cv_cxx_global_cstd=yes])])
461     if test x$lyx_cv_cxx_global_cstd = xyes; then
462         AC_DEFINE(CXX_GLOBAL_CSTD,1,
463         [Define if your C++ compiler puts C library functions in the global namespace])
464     fi
465 ])
466
467
468 dnl Usage: LYX_WITH_DIR(dir-name,desc,dir-var-name,default-value,
469 dnl                       [default-yes-value])
470 dnl  Adds a --with-'dir-name' option (described by 'desc') and puts the
471 dnl  resulting directory name in 'dir-var-name'.
472 AC_DEFUN([LYX_WITH_DIR],[
473   AC_ARG_WITH($1,[  --with-$1        specify $2])
474   AC_MSG_CHECKING([for $2])
475   if test -z "$with_$3"; then
476      AC_CACHE_VAL(lyx_cv_$3, lyx_cv_$3=$4)
477   else
478     test "x$with_$3" = xyes && with_$3=$5
479     lyx_cv_$3="$with_$3"
480   fi
481   AC_MSG_RESULT($lyx_cv_$3)])
482
483
484 dnl Usage: LYX_LOOP_DIR(value,action)
485 dnl Executes action for values of variable `dir' in `values'. `values' can
486 dnl use ":" as a separator.
487 AC_DEFUN([LYX_LOOP_DIR],[
488 IFS="${IFS=     }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
489 for dir in `eval "echo $1"`; do
490   if test ! "$dir" = NONE; then
491     test ! -d "$dir" && AC_MSG_ERROR([\"$dir\" is not a directory])
492     $2
493   fi
494 done
495 IFS=$ac_save_ifs
496 ])
497
498
499 dnl Usage: LYX_ADD_LIB_DIR(var-name,dir) Adds a -L directive to variable
500 dnl var-name.
501 AC_DEFUN([LYX_ADD_LIB_DIR],[
502 $1="${$1} -L$2"
503 if test "`(uname) 2>/dev/null`" = SunOS &&
504     uname -r | grep '^5' >/dev/null; then
505   if test $ac_cv_prog_gxx = yes ; then
506     $1="${$1} -Wl[,]-R$2"
507   else
508     $1="${$1} -R$2"
509   fi
510 fi])
511
512
513 dnl Usage: LYX_ADD_INC_DIR(var-name,dir) Adds a -I directive to variable
514 dnl var-name.
515 AC_DEFUN([LYX_ADD_INC_DIR],[$1="${$1} -I$2 "])
516
517 ### Check for a headers existence and location iff it exists
518 ## This is supposed to be a generalised version of LYX_STL_STRING_FWD
519 ## It almost works.  I've tried a few variations but they give errors
520 ## of one sort or other: bad substitution or file not found etc.  The
521 ## actual header _is_ found though and the cache variable is set however
522 ## the reported setting (on screen) is equal to $ac_safe for some unknown
523 ## reason.
524 ## Additionally, autoheader can't figure out what to use as the name in
525 ## the config.h.in file so we need to write our own entries there -- one for
526 ## each header in the form PATH_HEADER_NAME_H
527 ##
528 AC_DEFUN([LYX_PATH_HEADER],
529 [ AC_CHECK_HEADER($1,[
530   ac_tr_safe=PATH_`echo $ac_safe | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
531 ### the only remaining problem is getting the second parameter to this
532 ### AC_CACHE_CACHE to print correctly. Currently it just results in value
533 ### of $ac_safe being printed.
534   AC_CACHE_CHECK([path to $1],[lyx_cv_path2_$ac_safe],
535   [ cat > conftest.$ac_ext <<EOF
536 #line __oline__ "configure"
537 #include "confdefs.h"
538
539 #include <$1>
540 EOF
541 lyx_path_header_path=`(eval "$ac_cpp conftest.$ac_ext") 2>&5 | \
542   grep $1  2>/dev/null | \
543   sed -e 's/.*\(".*$1"\).*/\1/' -e "1q"`
544 eval "lyx_cv_path2_${ac_safe}=\$lyx_path_header_path"
545 rm -f conftest*])
546   AC_DEFINE_UNQUOTED($ac_tr_safe, $lyx_path_header_path, [dummy])])
547 ])
548 ### end of LYX_PATH_HEADER
549
550 ### Check which frontends we want to use. The default is XForms only
551 ###
552 AC_DEFUN([LYX_USE_FRONTENDS],
553 [AC_MSG_CHECKING([what frontend should be used for the GUI])
554 AC_ARG_WITH(frontend,
555   [  --with-frontend=THIS    Use THIS frontend as main GUI:
556                             Possible values: xforms, qt, gtk(EXPERIMENTAL)],
557   [FRONTENDS="$withval"])
558 if test "x$FRONTENDS" = x ; then
559   AC_MSG_RESULT(none)
560   AC_ERROR("Please select a frontend using --with-frontend")
561 fi
562 AC_MSG_RESULT($FRONTENDS)
563 AC_SUBST(FRONTENDS)
564 AC_SUBST(FRONTENDS_SUBDIRS)
565 AC_SUBST(FRONTENDS_PROGS)
566 ])
567
568
569 ## Check what kind of packaging should be used at install time.
570 ## The default is autodetected.
571 AC_DEFUN([LYX_USE_PACKAGING],
572 [AC_MSG_CHECKING([what packaging should be used])
573 AC_ARG_WITH(packaging,
574   [  --with-packaging=THIS   Use THIS packaging for installation:
575                             Possible values: posix, windows, macosx],
576   [lyx_use_packaging="$withval"], [
577   case $host in
578     *-apple-darwin*) lyx_use_packaging=macosx ;;
579      *-pc-mingw32*) lyx_use_packaging=windows;;
580                   *) lyx_use_packaging=posix;;
581   esac])
582 AC_MSG_RESULT($lyx_use_packaging)
583 case $lyx_use_packaging in
584    macosx) AC_DEFINE(USE_MACOSX_PACKAGING, 1, [Define to 1 if LyX should use a MacOS X application bundle file layout])
585            PACKAGE=LyX${version_suffix}
586            default_prefix="/Applications/${PACKAGE}.app"
587            bindir='${prefix}/Contents/MacOS'
588            libdir='${prefix}/Contents/Resources'
589            datadir='${prefix}/Contents/Resources'
590            pkgdatadir='${datadir}'
591            mandir='${datadir}/man' ;;
592   windows) AC_DEFINE(USE_WINDOWS_PACKAGING, 1, [Define to 1 if LyX should use a Windows-style file layout])
593            PACKAGE=LyX${version_suffix}
594            program_suffix=$version_suffix
595            default_prefix="C:/Program Files/${PACKAGE}"
596            bindir='${prefix}/bin'
597            libdir='${prefix}/Resources'
598            datadir='${prefix}/Resources'
599            pkgdatadir='${datadir}'
600            mandir='${prefix}/Resources/man' ;;
601     posix) AC_DEFINE(USE_POSIX_PACKAGING, 1, [Define to 1 if LyX should use a POSIX-style file layout])
602            PACKAGE=lyx${version_suffix}
603            program_suffix=$version_suffix
604            pkgdatadir='${datadir}/${PACKAGE}'
605            default_prefix=$ac_default_prefix ;;
606     *) LYX_ERROR([Unknown packaging type $lyx_use_packaging]) ;;
607 esac
608 AC_SUBST(pkgdatadir)
609 ])
610
611
612 ## ------------------------------------------------------------------------
613 ## Find a file (or one of more files in a list of dirs)
614 ## ------------------------------------------------------------------------
615 ##
616 AC_DEFUN([AC_FIND_FILE],
617 [
618 $3=NO
619 for i in $2;
620 do
621   for j in $1;
622   do
623     if test -r "$i/$j"; then
624       $3=$i
625       break 2
626     fi
627   done
628 done
629 ])
630
631 dnl just a wrapper to clean up configure.in
632 AC_DEFUN([LYX_PROG_LIBTOOL],
633 [
634 AC_REQUIRE([AC_ENABLE_SHARED])
635 AC_REQUIRE([AC_ENABLE_STATIC])
636 dnl libtool is only for C, so I must force him
637 dnl to find the correct flags for C++
638 ac_save_cc=$CC
639 ac_save_cflags="$CFLAGS"
640 CC=$CXX
641 CFLAGS="$CXXFLAGS"
642 AC_PROG_LIBTOOL dnl for libraries
643 CC=$ac_save_cc
644 CFLAGS="$ac_save_cflags"
645 ])
646
647
648 ## ------------------------------------------------------------------------
649 ## Check whether mkdir() is mkdir or _mkdir, and whether it takes
650 ## one or two arguments.
651 ##
652 ## http://ac-archive.sourceforge.net/C_Support/ac_func_mkdir.html
653 ## ------------------------------------------------------------------------
654 ##
655 AC_DEFUN([AC_FUNC_MKDIR],
656 [AC_CHECK_FUNCS([mkdir _mkdir])
657 AC_CACHE_CHECK([whether mkdir takes one argument],
658                [ac_cv_mkdir_takes_one_arg],
659 [AC_TRY_COMPILE([
660 #include <sys/stat.h>
661 #if HAVE_UNISTD_H
662 #  include <unistd.h>
663 #endif
664 ], [mkdir (".");],
665 [ac_cv_mkdir_takes_one_arg=yes], [ac_cv_mkdir_takes_one_arg=no])])
666 if test x"$ac_cv_mkdir_takes_one_arg" = xyes; then
667   AC_DEFINE([MKDIR_TAKES_ONE_ARG], 1,
668             [Define if mkdir takes only one argument.])
669 fi
670 ])
671
672
673 dnl Set VAR to the canonically resolved absolute equivalent of PATHNAME,
674 dnl (which may be a relative path, and need not refer to any existing 
675 dnl entity).
676
677 dnl On Win32-MSYS build hosts, the returned path is resolved to its true
678 dnl native Win32 path name, (but with slashes, not backslashes).
679
680 dnl On any other system, it is simply the result which would be obtained
681 dnl if PATHNAME represented an existing directory, and the pwd command was
682 dnl executed in that directory.
683 AC_DEFUN([MSYS_AC_CANONICAL_PATH],
684 [ac_dir="$2"
685  ( exec 2>/dev/null; cd / && pwd -W ) | grep ':' >/dev/null &&
686     ac_pwd_w="pwd -W" || ac_pwd_w=pwd
687  until ac_val=`exec 2>/dev/null; cd "$ac_dir" && $ac_pwd_w`
688  do
689    ac_dir=`AS_DIRNAME(["$ac_dir"])`
690  done
691  ac_dir=`echo "$ac_dir" | sed 's?^[[./]]*??'`
692  ac_val=`echo "$ac_val" | sed 's?/*$[]??'`
693  $1=`echo "$2" | sed "s?^[[./]]*$ac_dir/*?$ac_val/?"'
694    s?/*$[]??'`
695 ])