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